-
Web Service Interfaces
The interface to the system consists of three open APIs that are exposed as web services:
- Management API (API-M) defines an interface for administering the repository. It includes operations necessary for clients to create and maintain digital objects and their components. API-M is implemented as a SOAP-enabled web service.
- Access API (API-A) defines an interface for accessing digital objects stored in the repository. It includes operations necessary for clients to perform disseminations on objects in the repository and to discover information about an object using object reflection. API-A is implemented as a SOAP-enabled web service.
- Access-Lite API (API-A-Lite) defines a light-weight version of the Fedora Access Service that is implemented as a REST-based web service that can be invoked with a simple URL syntax.
- Management-Lite API (API-M-Lite) this interface is under development. The intent is to provide a light-weight version of the Fedora Management Service implemented as a REST-based web service that can be invoked with a simple URL syntax. Currently, there is only one operation implemented, which is the getNextPID. A full versioin of this interface may be provided in a future release, depending on user demand.
- Search API (part of API-A-Lite) this interface provides a simple search of the repository. The search operates upon the default index for the repository which contains object properties and the default Dublin Core record for the repository. This search interface is intended as a basic field search of the object registry. It is expected that other services will be used to created to index Fedora objects at a finer-grained level than provided by the default search.
- Resource Index Search API this is a new interface as of Fedora 2.0 that provides searching of the new Resource Index. The Resource Index is an RDF-based index of the Fedora repository that includes the following for each digital object:
- object-to-object relationships (from the RELS-EXT datastream of a digital object)
- custom user-defined properties (from the RELS-EXT datastream of a digital object)
- object properties (derived from the FOXML digital object)
- metadata about datastreams and disseminations (derived from the FOXML digital object)
- Dublin Core metadata (obtained from the default DC datastream of a digital object)
-
Major Features of the Fedora Repository
- Open Source The Fedora repository system is open source software licensed under the Mozilla Public License.
- Flexible Digital Object Model The Fedora digital object model provides the flexibility to create kinds of objects including documents, images, electronic books, multi-media learning objects, datasets, metadata, and more. Please refer to the Fedora Digital Object documentation for more details. The model a supports the aggregation of one or more content items as "Datastreams". The bytestream content of a Datastream can be any media type and can be either stored locally in the repository, or referenced by a digital object (i.e., content stored outside the repository. The Fedora object model also provides a mechanism (known as a Disseminator) for associating services with an object to produce dynamic or computed content from digital objects.
- Fedora Identifiers: PIDS and Fedora URIs
- Content Versioning The Fedora content versioning system keeps an audit trail of how an object changed, and maintains a copy of each version of each datastream and disseminator in a digital object. Any modifications made to a Datastream or Disseminator through the Fedora management interface (API-M) will automatically result in the creation of a new version of that Datastream or Disseminator. The Fedora object contains a record of alll versions, thereby creating a history of how objects changed over time. Additionally, Fedora maintains an audit trail record of the nature of the object change events. Access to prior versions is available by adding a date-time stamp to requests on the Fedora Access service (API-A and API-A-LITE).
- XML Ingest and Export Digital objects can be submitted to a Fedora repository as XML-encoded files that conform to either the Fedora Object XML (FOXML) schema or an extension of the Metadata Encoding and Transmission Standard (METS) schema. In future releases of Fedora other formats will be supported including MPEG2/DIDL and METS 1.4
- XML Storage By default, Fedora digital objects are stored in a Fedora repository as XML-encoded files that conform to Fedora Object XML (FOXML) format. As previously mentioned, objects can be both ingested and exported in other XML formats. Content bytestreams that are aggregated as Datastreams in a digital object are stored in their native formats in the repository persistent storage area.
- Object-to-Object Relationships Fedora provides the ability to assert object-to-object relationships. Object-to-Object relationship metadata is a way of asserting various kinds of relationships among Fedora objects including the notion that an object is a member of a collection, is considered a part of another object, is a derivation of another object, is a description of another object, or is equivalent to another object. A default set of common relationships is defined in the Fedora relationship ontology, although other community or user-defined relationships may also be asserted. These relationships are automatically indexed by Fedora as part of the Fedora Resource Index.
- Access Control and Authentication Release 2.1 includes configurable authentication (Tomcat realms and login modules) with out-of-box support for multiplexing multiple authentication sources, including Tomcat-users and LDAP. Access Control is supported by a new XACML-based Policy Enforcement module that enables fine-grained authorization at the level of the Fedora web service APIs and down to the object/datastream/dissemination level.
- Simple Search Fedora automatically creates two indexes of the repository. The default search index is a simple index of the repository searchable by object properties and object Dublin Core elements. As of Fedora 2.0 there is the new RDF-based Resource Index which includes more information about objects plus object-to-object relationships. Both of these indexes are searchable via REST-based web service interfaces.
- RDF-based Resource Index As of Fedora 2.0 there is the new RDF-based Resource Index which includes object properties, object datastream properties, object dissemination properties, Dublin Core properties, and object-to-object relationships. Fedora automatically, and incrementally, indexes information in the Resource Index. The Resource Index data model is naturally extensible, enabling Fedora users to index customized object properties (by asserting them in the RDF-based "RELS-EXT" datastream within a digital object). The Resource Index is searchable via REST-based a web service interface. See the Resource Index Guide for more information.
- Simple OAI Provider The OAI Protocol for Metadata Harvesting is a standard for sharing metadata across repositories. The Fedora repository service itself has a simple OAI provider interface. Every Fedora digital object has a primary Dublin Core record that conforms to the schema at: http://www.openarchives.org/OAI/2.0/oai_dc.xsd. This metadata is accessible using the OAI Protocol for Metadata Harvesting, v2.0. For more advanced OAI functionality, see the documentation for the new PROAI service, available since Fedora 2.1 as part of the new Fedora Service Framework.
- Migration Utility A new migration utility is provided to perform mass export and mass ingest of objects. At the core, the migration utility is built upon two newly enhanced command-line functions: fedora-export and fedora-ingest. Used together, these two command line functions can support a variety of scenarios involving moving or copying objects between repositories. The utility is general-purpose in that it can be used to copy or move objects among repositories for many reasons including upgrading from previous releases of Fedora. Client access to the migration comes in two forms: (1) run fedora-export and fedora-ingest at the command line, or (2) use the Fedora Administrator client to invoke these functions (see menu items File/Ingest and File/Export).
- Batch Utility The Fedora repository system includes a Batch Utility as part of the Fedora Administrator client that enables the mass creation and modification of Fedora digital objects.
- Reporting Utility A reporting utility is provided providing different management views of the contents of the Fedora repository.
-
New Services in the Fedora Service Framework
- Directory Ingest Service (DirIngest) A stand-alone web
service application that interacts with a Fedora repository to
provide for ingesting directories or archives or files into a Fedora
repository. The service receives a zip/jar file of files in
directory hierarchy (i.e., a file archive), including a METS-based
manifest file. The Directory Ingest Service will receive the
archive, open it up, create a digital object in the repository for
every file and directory, and populate the RELS-EXT datastream
preserve the relationships between files and directories as
represented in the input archive.
- "Pro" OAI Provider Service (PROAI) A stand-alone web
service application that is a highly configurable OAI provider.
The PROAI service can be set up to harvest any type of datastream or
dissemination of digital objects in a Fedora repository. It also
supports OAI sets. (Note: PROAI can be used outside the
context of Fedora too, by writing a custom adapter.)