Versions Compared

Key

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

Scenario 1: Read Non-Fedora-generated OCFL containing RDF. 

Fedora is smart about extracting LDP structure

Starting with an OCFL like this:

[storage_root/myroot]
├── 0=ocfl_1.0
├── ocfl_1.0.html (optional copy of the OCFL specification)
├── myobject1
                  ├── 0=ocfl_object_1.0
                  ├── inventory.json
                  ├── inventory.json.sha512

...

                                            └── myobject1/

                                                            └── myobject1/└── child.ttl

                  

Scenario 1.A.1:  myobject1.ttl contains relative subjects 

Code Block
</myroot/myobject1> <predicate> <object>.


Code Block
curl -X GET http://localhost:8080/root/myobject
curl -i http://localhost:8080/rest/myroot/myobject1
HTTP/1.1 200 OK
Date: Thu, 07 Mar 2019 23:46:18 GMT
ETag: W/"243866ce79cb4bdea2baf53f764c107a04312bf1"
Last-Modified: Thu, 07 Mar 2019 23:44:00 GMT
Link: <http://www.w3.org/ns/ldp#Resource>;rel="type"
Link: <http://www.w3.org/ns/ldp#Container>;rel="type"
Link: <http://www.w3.org/ns/ldp#RDFSource>; rel="type"
Link: <http://www.w3.org/ns/ldp#BasicContainer>;rel="type"
Link: <http://localhost:8080/rest/myroot/myobject1>; rel="timegate"
Link: <http://localhost:8080/rest/myroot/myobject1>; rel="original"
Link: <http://localhost:8080/rest/myroot/myobject1/fcr:versions>; rel="timemap"
Link: <http://mementoweb.org/ns#OriginalResource>; rel="type"
Link: <http://mementoweb.org/ns#TimeGate>; rel="type"
Accept-External-Content-Handling: copy,redirect,proxy
Accept-Patch: application/sparql-update
Accept-Post: 

...

Scenario 1a:  myobject1.ttl contains relative subjects 

Code Block
text/turtle,text/rdf+n3,text/n3,application/rdf+xml,application/n-triples,application/ld+json
Allow: MOVE,COPY,DELETE,POST,HEAD,GET,PUT,PATCH,OPTIONS
Link: <http://localhost:8080/rest/myroot/myobject1/fcr:acl>; rel="acl"
Preference-Applied: return=representation
Vary: Prefer
Vary: Accept
Vary: Range
Vary: Accept-Encoding
Vary: Accept-Language
Vary: Accept-Datetime
Content-Type: text/turtle;charset=utf-8
Content-Length: 860
Server: Jetty(9.3.25.v20180904)

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix fedora: <http://fedora.info/definitions/v4/repository#> .
@prefix ldp: <http://www.w3.org/ns/ldp#> .
@prefix dcterms: <http://purl.org/dc/terms/>.
</some-context/myobject1>  .

<http://localhost:8080/rest/myroot/myobject1>
rdf:type fedora:Container ;
rdf:type fedora:Resource ;
rdf:type ldp:BasicContainer ;
fedora:lastModifiedBy "bypassAdmin" ;
fedora:createdBy "bypassAdmin" ;
fedora:created "2019-03-07T23:43:44.13Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> ;
fedora:lastModified "2019-03-07T23:44:00.991Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> ;
dcterms:title "my object 1". title" ;
rdf:type ldp:RDFSource ;
rdf:type ldp:Container .

Questions:

  1. Where do the server managed triples come from if they are not specified in the RDF? Ie on import are they added to .fcrepo/server-managed.ttl and automatically versioned?  

Scenario 1.A.2:  myobject1.ttl contains relative subjects 


curl -X GET http://localhost:8080/root/myobject

Code Block
@prefix dcterms: <http://purl.org/dc/terms/>.
</some-context<http://localhost:8080/rest/myroot/myobject1> dcterms:title "my object 1".

...

Code Block
@prefix dcterms: <http://purl.org/dc/terms/>.
<http://non-fedora-host:port/context/myobject> dcterms:title "my object 1".


Scenario 1c:  myobject1.ttl contains LDP type and containment info 


Code Block
@prefix ldp: <http://www.w3.org/ns/ldp#>.
</some-context/myobject1> a <http://www.w3.org/ns/ldp#RDFSource>, <http://www.w3.org/ns/ldp#BasicContainer>;
                         ldp:contains </some-context/myobject1/child> .
                    

Is this a scenario we need to consider?

Scenario 2:  Update resources originally imported from non-Fedora OCFL