- From: <henry.story@bblfish.net>
- Date: Mon, 24 Feb 2014 19:50:24 +0100
- To: "Linked Data Platform (LDP) Working Group" <public-ldp-wg@w3.org>
- Cc: Sandro Hawke <sandro@w3.org>
Hi,
in today's call there was a discussion on what the class hierarchy of the containers
should be. (There was also a discussion of what the names should be, but I'd better leave that
to another thread.) With the spec as it is currently I'd propose the following ontology.
~~~~~~~~~~~~~~~~~definition of the well known classes and relation ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
ldp:Resource a rdfs:Class;
rdfs:comment """
A HTTP resource whose state is represented in any way that conforms to the simple
lifecycle patterns and conventions in section 5. Linked Data Platform Resources.
""" .
ldp:Container a rdfs:Class;
owl:subClassOf ldp:Resource;
rdfs:comment """
An LDPR representing a collection of member resources and/or contained documents
(RDF Document [rdf11-concepts] or information resources [WEBARCH]) that responds
to client requests for creation, modification, and/or enumeration
of its members and documents, and that conforms to the simple lifecycle patterns
and conventions in section6. Linked Data Platform Containers.
""";
skos:editorialNote """
This used to be known as the ldp:IndirectContainer. A client successfully posting
to an ldp:Container will create a new resource that is linked to this ldp:container
via an ldp:contains relation, but may also create what are currently known as membership
properties.
""" .
ldp:contains a rdf:Property;
rdfs:domain ldp:Container;
rdfs:range ldp:Resource;
rdfs:comment """
the ldp:contains relation relates an ldp:Container to an information r
""" .
ldp:membershipResource a rdf:Property;
rdfs:domain ldp:Container;
rdfs:range rdf:Resource .
ldp:hasMemberRelation a rdf:Property;
rdfs:domain ldp:Container;
rdfs:range rdf:Property .
ldp:insertedContentRelation a rdf:Property;
rdfs:domain ldp:Container;
rdfs:range rdf:Resource .
ldp:BasicContainer a rdfs:Class;
owl:subClassOf ldp:Container;
rdfs:comment """
A LDPC that uses a single pre-defined predicate to link to both its contained and
member documents (information resources)
""" .
ldp:DirectContainer a rdfs:Class;
owl:subClassOf ldp:Container;
rdfs:comment """
A LDPC that has the flexibility of choosing what form its membership triples take,
and allows members to be any resources [WEBARCH], not only documents.
""" .
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
So here is I think why the group has been thinking of ldp:BasicContainer
as a subclass of ldp:Container, and that is that it could be defined
as a a set of constraints on ldp:Container, something like this perhaps
( my owl is not good enough so I am not sure)
ldp:BasicContainer owl:subClassOf
[ a owl:Restriction;
owl:onProperty ldp:membershipResource;
owl:hasValue ?self ],
[ a owl:Restriction;
owl:onProperty ldp:hasMemberRelation;
owl:hasValue ldp:contains ],
[ a owl:Restriction;
owl:onProperty ldp:insertedContentRelation;
owl:hasValue ldp:MemberSubject ] .
I could not find how to express the first restriction in owl, so I put
?self there to represent that one wants the value to be bound to container
itself. ( each membership resource should point back to itself )
At least it makes a good case that ldp:BasicContainer is a subclass of the
ldp:Container .
But this does perhaps reveal something odd. Namely that we are here
adding a restriction on relations such as ldp:membershipResource,
ldp:hasMemberRelation and ldp:insertedContentRelation that have ldp:Container
in their domain, and that therefore already have ldp:contains set...
Perhaps this can explain Sandro Hawke recent arguments that one feels that there
are two different classes that are somewhat merged together. [1]
Henry
[1] https://www.w3.org/2012/ldp/wiki/Collection_Types
Social Web Architect
http://bblfish.net/
Received on Monday, 24 February 2014 18:51:30 UTC