class hierarchy of containers

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