...
Internal Representation of resources
Here's an example of a LDPRv - what signifies that it is a LDPRv is that it has a `fedora:hasVersions` triple. This is the current behavior of the Modeshape Fedora and doesn't seem to need any change, other then maybe how the `fcr:versions` triple is created.
Code Block |
---|
|
@prefix premis: <http://www.loc.gov/premis/rdf/v1#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@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#> .
</path/to/resource/xyz>
rdf:type fedora:Container ;
rdf:type fedora:Resource ;
rdf:type ldp:RDFSource ;
rdf:type ldp:Container ;
fedora:lastModifiedBy "bypassAdmin"^^<http://www.w3.org/2001/XMLSchema#string> ;
fedora:createdBy "bypassAdmin"^^<http://www.w3.org/2001/XMLSchema#string> ;
fedora:lastModified "2017-09-18T20:01:33.501Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> ;
fedora:created "2017-09-15T21:19:49.731Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> ;
fedora:writable "true"^^<http://www.w3.org/2001/XMLSchema#boolean> ;
fedora:hasParent </path/to/resource> ;
ldp:contains </path/to/resource/xyz/abc> ;
fedora:hasVersions </path/to/resource/xyz/fcr:versions> . # pointer to the LDPCv (TimeMap) |
LDPCv - Memento Container (TimeMap)
Code Block |
---|
language | text |
---|
title | TimeMap (LDPCv) |
---|
|
@prefix acl: <http://www.w3.org/ns/auth/acl#> .
@prefix iana: <http://www.iana.org/assignments/relation/> .
@prefix ldp: <http://www.w3.org/ns/ldp#> .
@prefix memento: <http://example.com/memento#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix time: <http://www.w3.org/2006/time#> .
</path/to/resource/xyz/fcr:versions> a ldp:Container ;
acl:hasAccessControl </path/to/acls> ; # this is for the LDPCv itself, for the TimeMap retrieval
prov:startedAtTime "2017-09-08T21:35:19Z"^^xsd:dateTime ; # first memento
prov:endedAtTime "2017-09-11T15:41:04Z"^^xsd:dateTime ; # last memento
memento:hasAccessControl </path/to/acls> ;
memento:hasOriginalResource </path/to/orig/resource/xyz> ; # how else can we represent this? is this a given based on url?
memento:hasTimeGate </path/to/orig/resource/xyz> ; # how else can we represent this? is this a given based on url?
iana:first </path/to/resource/xyz/fcr:versions/12344> ;
iana:last </path/to/resource/xyz/fcr:versions/12347> ;
ldp:contains </path/to/resource/xyz/fcr:versions/12344>, </path/to/resource/xyz/fcr:versions/12345>,
</path/to/resource/xyz/fcr:versions/12347>, </path/to/resource/xyz/fcr:versions/12346> . |
...
LDPRm - Memento
Code Block |
---|
language | text |
---|
title | Memento (LDPRm) |
---|
|
@prefix acl: <http://www.w3.org/ns/auth/acl#> .
@prefix iana: <http://www.iana.org/assignments/relation/> .
@prefix ldp: <http://www.w3.org/ns/ldp#> .
@prefix memento: <http://example.com/memento#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix time: <http://www.w3.org/2006/time#> .
</path/to/resource/xyz/fcr:versions/12345> a ldp:RDFSource , prov:InstantaneousEvent;
prov:atTime "2012-04-30T20:40:40"^^xsd:dateTime;
memento:hasTimegate </path/to/orig/resource/xyz> ; # how else can we represent this? is this this a given based on url?
memento:hasOriginalResource </path/to/orig/resource/xyz> ; # how else can we represent this? Is this a given based on url?
iana:next </path/to/xyz/fcr:versions/12346> ; # to memento
iana:prev </path/to/xyz/fcr:versions/12344> ; # to memento
... triples from original resource at the time of versioning...
or, if we keep them separate, it might look like this:
(I'm not clear on how a binary and it's metadata would be represented)
ldp:contains </path/to/xyz/fcr:versions/12345/version> ,
</path/to/xyz/fcr:versions/12345/version/fcr:metadata> ;
|
...