Versions Compared

Key

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

...

This document is intended to be hands-on, with you trying the examples on a running Fedora repository. You should therefore, have already downloaded and installed Fedora, and started a server. You should then access the Fedora repository by running the Fedora Administrator interface, fedora-admin, which is located in the FEDORA_HOME/client directory (you can start this program from the command line if you have configured your environment variables properly). Upon starting up the administrator interface you will be presented with the Login screen shown in Figure 2. This document assumes that you have not changed any of the configuration defaults for your Fedora server so the password you enter should be fedoraAdmin. If you have changed your configuration values or are running the Fedora Administrator from a machine different from the machine on which your Fedora server is running you will need to change the values in the Login screen appropriately.

Section
Wiki Markup
{center}
!worddava87ec66bf28c396bfd9dcd6fac7dd9dd.png|height=428,width=489!
*Figure 2 -- Fedora Administrator Login Screen*
{center}

...

To understand content aggregation in Fedora, you need to be comfortable with two terms:

  1. Fedora Digital Object or FDO – This is the basic unit for information aggregation in Fedora. At a minimum a digital object has:

    1. An identifier A Persistent Identifier or PID (Persistent Identifier). The PID provides the key by which the digital object is accessed from the repository.

    2. Dublin Core metadata that – It provides a basic description of the digital object.

  2. Datastream – A component of a digital object that represents a data source. A digital object may have just the basic Dublin Core Datastream, or any number of additional Datastreams. Each Datastream can be any MIME-typed data or metadata, and can either be content managed locally in the Fedora repository or by some external data source (and referenced by a URL). When you create a new Datastream in a digital object, you assign it to one of four types, or control groups, depending on the nature of the data that it represents.

    1. Managed Content (M): Datastream content is stored and managed within the Fedora repository's persistent storage. The content can be any MIME type including XML.

    2. Inline XML (X): A special case of M, restricted to well-formed XML. In this case, the Datastream content is stored as part of the XML structure of the digital object itself and is thus included when the digital object is exported (e.g., for archival purposes).

    3. Externally Referenced (E): Datastream content is external to the Fedora repository and is referenced by a URL that is recorded within the digital object. The content can be any MIME type including XML.

    4. Redirected Content (R): Like E, but Datastream content is delivered to the client without any mediation by Fedora; i.e., via an HTTP redirect. You should use this Datastream type when the external content is a web page with relative links or it is streaming audio or video. The content can be any MIME type including XML.

Decisions about what to include in a digital object and how to configure its Datastreams are basic modeling choices as you develop your repository. The examples in this tutorial demonstrate some common models that you may find useful as you develop your application.

...

  1. The ID of the Datastream should be a single token. By convention, it describes the purpose of the Datastream.
  2. The Label can be a longer, more descriptive string.
  3. Note that the Control Group is Managed Content. As shown in the descriptive text this Datastream type is appropriate for any type of data (MIME type), in contrast to Internal XML Metadata. Once you select this radio button, you can select from the variety of MIME Types of the managed content – in this case text/html.

You can now select the Save Datastream button and repeat the same process to add the PDF and TeX Datastreams. For the PDF, you can select Mime MIME Type: application/pdf and import the file ex1.pdf. For TeX, you can select Mime MIME Type: text/plain and import the file ex1.tex. In each case you should enter appropriate IDs and Labels.

...

You will enter the Datastream identifier of IMAGE1, a label for this Datastream, and then information about the content. The content is of MIME type image/gif. You should select the Control Group of Redirect, and then enter a URL that specifies the Location of the image file, specifically:

...

  • Pertaining to the selection of a Control Group, you have two choices if you want the Datastream to point to content that resides outside the Fedora repository (External Referenced Content and Redirect). In this case we chose Redirect . To review, the meaning of the two options for mapping to external content are:
    o External Referenced Content is useful when you want Fedora to mediate access to the Datastream, for example when you want to hide the source URL from the user. Fedora mediates access to these Datastreams, meaning that the content is streamed through the Fedora server.
    o Redirect. makes use of a simple HTTP redirect to provide the content. This is useful when there are relative hyperlinks in the external content, but reveals the source URL to the user.
  • Make sure that the MIME Type type choice matches that of the content offered by the external source, in this case image/gif.

...

Finally, add another Datastream labeled MyText (containing some descriptive text about the images), with MIME Type type text/html. Assign this Datastream a Control Group of Managed Content indicating that the content will be imported and stored permanently in the Fedora repository. Import the content from the following location:

...

  1. Service Definition (SDef): A digital object that is a template for client-side services, defining a set of abstract operations (methods) and their client-side arguments. Association of a SDef with a digital object augments the basic behavior of the object with the operations defined in the SDef template. A SDef may be associated with more than one digital object, thereby augmenting all of them with the same operations.
  2. Service Deployment (SDep): A digital object that registers within Fedora the capability of web service(s) to perform the operations defined by a specific SDef. This registration includes defining service binding metadata encoded in the Web Service Description Language (WSDL) and also a data profile of the SDep. The data profile defines the types of inputs that are considered compatible with the service. In particular it declares the MIME types that are needed by the respective web service to perform its task. Multiple SDeps may be registered for an individual SDef, thereby exposing a generic client-side interface (defined by the SDef) over multiple data and web service foundations (defined by the SDep).
  3. Content Model (CModel): A digital object that is used to store information which will allow Fedora to determine whether a data object, which asserts conformance to a content model, is valid. The Content Model is also important for performing disseminations in Fedora, based on the Content Model Architecture. A Data Object will indicate which Content model they represent via a special RELS-EXT relationship. The Content Model will in turn indicate which SDef(s) it is associated with (also with a special RELS-EXT relationship).

...

  • Service Contract: the SDep indicates the PID of the SDef that it is related to. This is like saying that the SDep provides and implementation of the SDef.
  • Service binding metadata (i.e., in WSDL) : concrete binding for the getContent method that is defined. Specifically, the WSDL indicates that the getContent operation binding exists at the base URL of http://localhost:8080/service/saxon. Note that this service is hosted at the same host and port as the Fedora repository. As noted earlier, this is a local service that is packaged with Fedora.
  • Data input profile that indicates that the SDep service operation getContent will take the following inputs at runtime:
    • "xsl" with MIME type text/xml.
    • "source" with MIME type text/xml.

Next follow the same procedure to ingest a sample CModel object into the repository. Select the file FEDORA_HOME/userdocs/tutorials/2/example3/CModel.xml. This will create the digital object with the PID demo:ex3CModel. This CModel describes the Datastreams that should be present in data objects that conform to this content model, it also has a RELS-EXT hasService relationship link to the digital object demo:ex3SDef ingested previously.

...