Versions Compared

Key

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

...

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

    1. A Persistent Identifier or PID – The PID provides the key by which the FDO is accessed from the repository.

    2. Dublin Core – It provides a basic description of the FDO.

  2. Datastream – A component of an FDO that represents a data source. An FDO 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 an FDO, 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 FDO itself and is thus included when the it 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 FDO. 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.

...

It is often useful to provide access to a digital document in several formats. For example an ePrints server might provide HTML for those who wish to render the document in a browser, PDF for those who wish to view the document with author-determined formatting, and TeX for those who wish to access and use the document source. This example demonstrates how to construct an FDO where each Datastream corresponds to an available format. More advanced techniques, demonstrated later in this tutorial, make it possible to achieve the same results by generating formats dynamically from a single base format. But for now, we'll stick to simple static aggregation.

Start by selecting File/New/Data Object in the Fedora Admin GUI. Complete the New Object dialog box as shown in Figure 3.

Section
Wiki Markup
{center}
!worddav4b5e407dacee583f446eadcf9addc2b5.png|height=160260,width=402502!
*Figure 3 -- New Object Dialog*
{center}

Check the box for Use Custom PID and enter demo:100. Note that when you do not assign your own PID, the Fedora repository will create one for you. Select the Create button and you should see a window like that shown in Figure 4. Observe that the PID of the created object (in this case demo:100) is displayed in the title bar.

Section
Wiki Markup
{center}
!worddav319948af5af752845bf27346d9b96313.png|height=398598,width=576776!
*Figure 4 -- Configuring an Object* 
{center}

...

Section
Wiki Markup
{center}
!worddav608a69750e00da2921703a97416a49b4.png|height=398598,width=576776!
*Figure 5 -- Datastream Display*
{center}

...

To get started follow the same procedure as illustrated in Figure 3, this time entering Example 2 as the Label and demo:200 as the custom PID. As in Example 1, select the Datastreams tab and then enter the information as shown in Figure 9.

...

This will create the digital object with PID demo:ex3SDef in your repository. This SDef defines one method getContent. This generic method name is intentional – one could imagine this one SDef being used as the basis for several SDeps, each of which produces "content" via a unique transformation of an underlying source. This is one of the advantages of Fedora – providing a common interface despite multiple underlying representations.

Follow the same procedure to ingest a sample SDep object into the repository. Select the file FEDORA_HOME/userdocs/tutorials/2/example3/SDep.xml. This will create the digital object with the PID demo:ex3SDep. This SDep represents a concrete implementation of the abstract service operations defined in the SDef demo:ex3SDef . The SDep object contains metadata that specifies the following:

  • 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.

...

  • Create a new digital object (the XSL digital object) assigning the PID demo:400. Create one Datastream in addition to the DC with ID XSL. As before, this Datastream should be configured as:
    • ID – xsl
    • Control Group – Managed Content
    • Mime type – text/xml
    • Label - Poem XSL Transform
    • Import location: FEDORA_HOME/userdocs/tutorials/2/example3/poem.xsl
  • Create another digital object (the "disseminator" digital object) assigning the PID demo:500.
  • Create two new Datastreams
    • One configured as follows (the same as the Source Datastream in Example 3):
      1. ID – source
      2. Control Group – Managed Content
      3. MIME type – text/xml
      4. Label - Poem XML Source
      5. Import location: FEDORA_HOME/userdocs/tutorials/2/example3/poem.xml
    • Now create the Datastream that will redirect to the XSL in demo:400 as follows:
      1. ID – xsl
      2. Control Group – Redirect
      3. Mime Type – text/xml
      4. Label - Poem XSL Transform
      5. location: http://localhost:8080/fedora/get/demo:400/XSL
      6. • On the New RELS-EXT... tab add the same hasContentModel relationship to demo:ex3CModel as you did in example 3.

...