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

  • Deploying Fedora
  • Explore core and external features
  • Gain insight into content modeling
  • Set up a federation over a local filesystem
  • Set up JMS message consumer
  • Set up external triplestore(PCDM)

Prerequisites

  • Java7 installed
  • WAR file(s) downloaded
  • Configuration files downloaded
  • Tomcat installed (optional)

Downloads

War files

Required

Optional

Configuration files

Triplestore

  • Download and unpack Jena Fuseki (ZIP or TAR) prior to the training

Deploying Fedora4

In OSX or Windows you can simply double-click the fcrepo-webapp-4.1.0-auth.war file to launch the Fedora 4 console. Then click Start and wait for the application to load in your browser.

You can also run the application from the command line using the following command:

Code Block
java -jar fcrepo-webapp-4.1.0-jetty-console.war --headless

Note: The location where Fedora writes to disk can be specified with the following flag:

Code Block
java -Dfcrepo.home=/path/fedora/data -jar fcrepo-webapp-4.1.0-jetty-console.war --headless

Using Admin Features

Transactions (docs)

Versioning (docs)

Create a version with a label

Code Block
curl -XPOST http://localhost:8080/rest/item/fcr:versions/my-label

Import/Export (docs)

Content Modeling

External Triplestore

  1. Setup Fuseki (docs)
    1. Start Fuseki

      Code Block
      ./fuseki-server --update --mem /test
    2. Verify running at – http://localhost:3030
  2. Start Fedora

    Code Block
    java -Dfcrepo.modeshape.configuration=file:/path/to/repository-federation.json -jar fcrepo-webapp-4.1.0-jetty-console.war --headless
  3. Start fcrepo-message-consumer

    Code Block
    java -jar fcrepo-message-consumer-webapp-4.1.0-jetty-console.war --headless --port 9090
  4. Create/Update some objects and perform some queries (examples)

Additional Resources

Either

  1. Vagrant setup:
  2. Or, Standalone apps setup

Explore Features

Using Google Chrome PostMan app, execute the following requests (attached)

Expand
  1. curl -XPUT localhost:8080/fcrepo/rest/objects/
  2. curl -XGET localhost:8080/fcrepo/rest/objects/
  3. curl -XPUT -H"Content-Type: text/turtle" --data-binary @body localhost:8080/fcrepo/rest/objects/raven/

    Code Block
    titlebody
    PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
    PREFIX indexing: <http://fedora.info/definitions/v4/indexing#>
    
    <> a indexing:Indexable ;
      indexing:hasIndexingTransformation \"default\" ."
    
  4. curl -XGET localhost:8080/fcrepo/rest/objects/raven/
  5. curl -XPUT -H"Content-Type: text/turtle" --data-binary @body localhost:8080/fcrepo/rest/objects/raven/files/

    Code Block
    titlebody
    PREFIX ldp: <http://www.w3.org/ns/ldp#>
    PREFIX pcdm: <http://pcdm.org/models#>
    
    <> a ldp:DirectContainer; 
      ldp:membershipResource </fcrepo/rest/objects/raven/>;
      ldp:hasMemberRelation pcdm:hasFiles ."
    
  6. curl -XGET localhost:8080/fcrepo/rest/objects/raven/files/
  7. curl -XGET -H"Prefer: return=representation; include=\"http://fedora.info/definitions/v4/repository#EmbedResources\"" localhost:8080/fcrepo/rest/objects/raven/files/
  8. curl -XGET -H"Prefer: return=representation; omit=\"http://fedora.info/definitions/v4/repository#ServerManaged\"" localhost:8080/fcrepo/rest/objects/raven/files/
  9. curl -XPUT -H"Content-Type: application/pdf" localhost:8080/fcrepo/rest/objects/raven/files/page0
  10. curl -XPATCH -H"Content-Type: application/sparql-update" --data-binary @body localhost:8080/fcrepo/rest/objects/raven/files/page0/fcr:metadata

    Code Block
    titlebody
    PREFIX dc: <http://purl.org/dc/elements/1.1/>
    PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
    PREFIX indexing: <http://fedora.info/definitions/v4/indexing#>
    DELETE { }
    INSERT {
      <> indexing:hasIndexingTransformation \"default\";
      rdf:type indexing:Indexable }
    WHERE { }"
    
  11. curl -XPUT -H"Content-Type: application/pdf" localhost:8080/fcrepo/rest/objects/raven/files/page1
  12. curl -XPATCH -H"Content-Type: application/sparql-update" --data-binary @body localhost:8080/fcrepo/rest/objects/raven/files/page1/fcr:metadata

    Code Block
    titlebody
    PREFIX dc: <http://purl.org/dc/elements/1.1/>
    PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
    PREFIX indexing: <http://fedora.info/definitions/v4/indexing#>
    DELETE { }
    INSERT {
      <> indexing:hasIndexingTransformation \"default\";
      rdf:type indexing:Indexable }
    WHERE { }"
    
  13. curl -XPUT -H"Content-Type: text/turtle" --data-binary @body localhost:8080/fcrepo/rest/collections/

    Code Block
    titlebody
    PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
    PREFIX indexing: <http://fedora.info/definitions/v4/indexing#>
    
    <> a indexing:Indexable ;
      indexing:hasIndexingTransformation \"default\" ."
    
  14. curl -XGET -H"Content-Type: text/turtle" --data-binary @body localhost:8080/fcrepo/rest/collections/poe/

    Code Block
    titlebody
    PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
    PREFIX indexing: <http://fedora.info/definitions/v4/indexing#>
    
    <> a indexing:Indexable ;
      indexing:hasIndexingTransformation \"default\" ."
    
  15. curl -XGET localhost:8080/fcrepo/rest/collections/poe/
  16. curl -XPUT -H"Content-Type: text/turtle" --data-binary @body localhost:8080/fcrepo/rest/collections/poe/members/

    Code Block
    titlebody
    PREFIX ldp: <http://www.w3.org/ns/ldp#>
    PREFIX pcdm: <http://pcdm.org/models#>
    PREFIX ore: <http://www.openarchives.org/ore/terms/>
    
    <> a ldp:IndirectContainer; 
      ldp:membershipResource </fcrepo/rest/collections/poe/>;
      ldp:hasMemberRelation pcdm:hasMember ;
      ldp:insertedContentRelation ore:proxyFor ."
    
  17. curl -XPUT -H"Content-Type: text/turtle" --data-binary @body localhost:8080/fcrepo/rest/collections/poe/members/member0

    Code Block
    titlebody
    PREFIX ore: <http://www.openarchives.org/ore/terms/>
    PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
    PREFIX indexing: <http://fedora.info/definitions/v4/indexing#>
    
    <> a ore:Proxy; 
      ore:proxyIn </fcrepo/rest/collections/poe/> ;
      ore:proxyFor </fcrepo/rest/objects/raven/> ;
      indexing:hasIndexingTransformation \"default\";
      rdf:type indexing:Indexable ."
    

 

 

SPARQL Query

In Fuseki console (localhost:3030)

  1. Select "Control Panel"
  2. Select Dataset "/test"
  3. Select Output "Text"
  4. Select "Force the accept header text/plain regardless"
  5. Query

    No Format
    prefix pcdm: <http://pcdm.org/models#>
    select ?work 
    where {
      <http://localhost:8080/fcrepo/rest/collections/poe> pcdm:hasMember ?work .
      ?work pcdm:hasFiles ?files .
    }
    group by ?work 
    having (count(?files) > 1)

Using Admin Features

Transactions (docs)

Versioning (docs)

Create a version with a label

Code Block
curl -XPOST http://localhost:8080/rest/item/fcr:versions/my-label

Import/Export (docs)

Additional Resources

...

...