- From: <henry.story@bblfish.net>
- Date: Fri, 7 Mar 2014 00:48:56 +0100
- To: Linked Data Platform WG <public-ldp-wg@w3.org>
Hi all, As an academic exercise I tried to explore what one could call the unified container model. This shows how one can reduce all the containers we have to one simple relation: the ldp:bindingRule. The bindingRule relates a container to a rule. There are three predefined rules: ldp:ContainerRule, which specifies how an ldp:contains relation is created on POST, the ldp:IndirectContainerRule and the ldp:DirectContainerRule . In English here are some of the definitions: • A Container is any object that has 1 binding rule of ldp:ContainerRule . • An IndirectContainer is an object that only has at most 2 rules of which 1 binding rule is of type IndirectBindingRule. • An DirectContainer is an object that only has at most 2 rules of which 1 binding rule is of type DirectBindingRule. • A BasicContainer is now just a ldp:Container with only 1 binding rule: the ldp:ContainerRule The advantages of this are: (1) one unified view over all containers (2) more complex containers can be build with more complex rules if needed ( it was never clear to me why we thought only 1 binding consequence was interesting ) (3) easy to explain the difference between BasicContainers and the others: the basic container is basic because it only has 1 rule Once defined we get the right hierarchy of Rules and Containers. $ sh pellet.sh classify --input-format Turtle -l jena https://raw.github.com/bblfish/ldp/1bd8df4da79996ec8e8f6430503871723ea2fa2c/ldp.binding.ttl Classifying 13 elements Classifying: 100% complete in 00:00 Classifying finished in 00:00 owl:Thing rdf:Property ldp:HTTPActionRule ldp:IndirectBindingRule ldp:DirectBindingRule ldp:ContainerRule ldp:Resource ldp:Source ldp:Container ldp:DirectContainer ldp:IndirectContainer ldp:BasicContainer You can view the latest of the ontology here: https://github.com/bblfish/ldp/blob/master/ldp.binding.ttl Of course my formalisation may be wrong or misguided. It could certainly be improved. But it helps a lot to be able to reason about what we are doing with the existing rdf tools. NOTE: this does NOT mean that our clients MUST become OWL reasoners. This is just a good way to be clear about what we are speaking about in the spec! Ah so here is our netWorth example using the binding rules </netWorth/> a ldp:DirectContainer; dcterms:title "The assets of JohnZSmith"; ldp:bindingRule [ a ldp:DirectBindingRule; ldp:membershipResource </netWorth/nw1/>; ldp:hasMemberRelation o:asset; ]; ldp:contains </netWorth/a1>, </netWorth/a2> . It is also possible to imagine later more advanced binding rule languages. Henry Social Web Architect http://bblfish.net/ Social Web Architect http://bblfish.net/
Received on Thursday, 6 March 2014 23:50:02 UTC