Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Warning

These training archives may be out of date, but have been retained and kept available for the community's benefit in reviewing previous sessions.

Current training documentation can be found here: Training

Table of Contents

Learning Outcomes

  • Understand the purpose of a repository
  • Learn what Fedora can do for you
  • Understand the key capabilities of the software

...

  • Flexible, extensible object modelling
  • Atomic objects with semantic connections using standard ontologies
  • RDF-based metadata using Linked Data
  • RESTful API with native RDF response format

New Vocabulary

Fedora 3Fedora 4
Objects and datastreamsResources
ObjectContainer
DatastreamBinary

Core Components

Durable Storage

...

  • Indexing repository content for external applications can be accomplished by using the Camel component.
  • The Camel component receives JMS messages on repository updates and relays these messages to one or more external applications.
  • Repository content needs to can be optionally assigned the rdf:type property "IndexibleIndexable" in order to be indexed.filtered from non-indexable content (any predicate will do)
Triplestore
  • An external triplestore can be used to index the RDF triples of content managed by Fedora.
  • Any triplestore that supports SPARQL-update can be used; Fuseki and Sesame have been tested.

...

  • An external search application can be used to perform more complex search queries on repository content.
  • Any search application that supports SPARQLJSON-update based updates can be used; Solr has been tested.

...

  • Authentication (not to be confused with authorization) is assumed to take place in a layer above the application.
  • The authorization framework provides a plug-in point within the repository that calls out to an optional authorization enforcement module.
  • Currently, two authorization implementations exist.

...

Role-based Authorization

  • Basic authorization compares the user's role(s) with an Access Control List (ACL) defined on a Fedora resource.
  • ACLs can be inherited; if a given resource does not have an associated ACL, Fedora will examine parent resources until it finds one.

...

  • XACML policies can provide much more complex and granular authorization.
  • A default policy must be defined for the repository, and each resource can override the default with another policy.
  • A XACML policy referenced by a resource will also apply to all the resource's children, unless they define their own XACML policies that override the parent policy.

Audit Service

  • Maintains a history of events for each repository resource
  • Both internal repository events and events from exterior sources can be recorded
  • Uses the existing event system, Camel component, and external triplestore

OAI Provider

  • Implements Open Archives Protocol Version 2.0 using Fedora 4 as the backend.
  • Exposes an endpoint which accepts OAI conforming HTTP requests.
  • Supports oai_dc out if the box, but users are able to add their own metadata format definitions to oai.xml.

Performance

Transactions

  • Multiple actions can be bundled together into a single repository event (transaction).
  • Transactions offer performance benefits by cutting down on the number of times data is written to the repository filesystem (which tends to be the slowest action).

...