...
Note that 'Objects' in the Fedora model map to the LDP-RS interaction model, while 'Datastreams' in Fedora map to the LDP-NR interaction model. The distinguishing factor of a Fedora object, as exposed by LDP, is that is an RDF source. The distinguishing factor of a datastream is that it is a non-RDF source.
Proposal: LDPRs as "Pointlike objects" with no constraints on RDF statements.
(This is included largely for completeness sake, but it is interesting)
This is like the "LDPRs as pointlike objects" proposal, except that it removes Fedora's existing constraints on triples associated with objects in general. In this view, a Fedora object can be seen as a bag of triples with an identity (named graph). Fedora enhances the value of these bags by defining an ontology, and maintaining a set of triples that express its identity in the Fedora object model according to this ontology. Users of Fedora can embrace or extend the Fedora model, or ignore it completely.
LDP Concept | Fedora Concept | LDP Interaction Modes | Constraints on Content |
---|---|---|---|
LDPC | Object | LDPC, LDP-RS | RDF, must contain LDP membership triples |
LDP-NR | Datastream | LDPR, LDP-NR | none |
LDP-RS-NC | Object | LDPR, LDP-RS | RDF |
Note that 'Objects' in the Fedora model map to the LDP-RS interaction model, while 'Datastreams' in Fedora map to the LDP-NR interaction model. The distinguishing factor of a Fedora object, as exposed by LDP, is that is an RDF source. The distinguishing factor of a datastream is that it is a non-RDF source.
Discussion
In this proposal, Fedora's relationship with LDP can be seen as a "value add service:" in creating an LDP-RS, Fedora enhances the value of these LDP resources by managing s set of triples that give it an identity in the Fedora model, describe it as such, and enable services on it such as fixity, indexing, etc.
- Any statements outside this ontology are preserved, but largely ignored by the Fedora service stack.
- To an outside user, Fedora would appear just like a fully-featured LDP service that happens to have a lot of server-managed triples.
- Fedora would be completely usable as a generic LDP service without any knowledge of the Fedora model
- An outside user would not need to understand the Fedora model in order to understand why an LDP request failed.
- To a current user of Fedora 4, there would be no observable difference in an object and how it behaves, other than the fact that triples will not be rejected unless they contradict the Fedora ontology
Implementation notes
- According to JIRA and the mailing list, this would be difficult to implement, given the way Fedora objects are currently expressed as JCR nodes
- I believe triples are currently expressed as properties in the JCR model. Do Fedora objects (not datastreams) have any JCR binary content? If not, could that be leveraged to implement something like this (e.g. serialize all statements that do not have a repository subject as binary)