- From: Dimitris Kontokostas <kontokostas@informatik.uni-leipzig.de>
- Date: Fri, 8 May 2015 10:45:59 +0300
- To: Holger Knublauch <holger@topquadrant.com>
- Cc: public-data-shapes-wg <public-data-shapes-wg@w3.org>
- Message-ID: <CA+u4+a29rcCWFU7H2050Ydx2r-H9FZk9rznthvzvX4NHGZep5Q@mail.gmail.com>
Unless we declare rdfs:Class to be disjoint with sh:Shape we cannot enforce users not to use the same IRI for both. I am skeptical to direct relations from sh:Shape(s) to rdfs:Class (e.g. rdfs:subClassOf) but, if we drop these for now until we make sure they do not cause any problems it would be fine for me to start with something like #1 separate definition ex:ClassA a rdfs:Class . ex:ShapeA a sh:ClassShape ; sh:class ex:ClassA . #2 use of the same IRI if sh:class does not exists ex:ClassA a rdfs:Class, sh:ClassShape . note that in option 2 we still have to declare ex:ClassA to be a sh:ClassShape in addition to rdfs:Class. My top-level class definition would be something like the following without interfering with rdfs/owl reasoning sh:Shape a rdfs:Class. # "abstract" class not directly instantiated sh:ClassShape a rdfs:Class ; rdfs:subClassOf sh:Shape . #Shapes used for classes sh:ResourceShape a rdfs:Class ; rdfs:subClassOf sh:Shape . #Shapes used for ShEx shapes sh:GlobalShape a rdfs:Class ; rdfs:subClassOf sh:Shape . #Shapes used for global constraints # additional shape types we might introduce e.g. sh:PropertyShape Could something like this set a common-ground to start with? Best, Dimitris On Thu, May 7, 2015 at 2:33 AM, Holger Knublauch <holger@topquadrant.com> wrote: > I have meanwhile updated my draft to include sh:ShapeClass. Works > nicely. I added an illustration that may help understand how these > metaclasses relate to each other: > > http://w3c.github.io/data-shapes/shacl/#shape-classes > > As shown in the illustration, I have added a relationship sh:scopeClass > that points from a sh:Shape to an rdfs:Class. This should cover the cases > where classes and shapes are developed and maintained independently. To > clarify its role, I have renamed the property formerly known as sh:scope to > sh:scopeShape. I also updated my prototype implementation and noticed that > sh:scopeClass introduces all kinds of complications that will need to be > worked out, e.g. the sh:scopeClass triples will live in the Shapes graphs, > while the rdf:type triples remain in the data graphs. > > On this occasion I also created a diagram for some of the constraint types: > > http://w3c.github.io/data-shapes/shacl/#shape-constraints > > Feedback appreciated, as usual. > > Holger > > > On 4/30/2015 12:34, Holger Knublauch wrote: > > I believe I could live with sh:classShape or sh:classScope, if we also > introduced syntactic sugar for the case above. We should introduce a > metaclass > > sh:ShapeClass > a rdfs:Class ; > rdfs:subClassOf sh:Shape ; > rdfs:subClassOf rdfs:Class . > > which would be instantiated as follows: > > ex:MyClassAndShape > a sh:ShapeClass ; > sh:property [ ... ] . > > Such ShapeClasses would be instances of sh:Shape and rdfs:Class at the > same time. In order to avoid the need to write down the superfluous > sh:classShape triple pointing to itself, the engine would assume that this > triple exists - a fairly small change to the algorithm. Introducing > sh:ShapeClass would be similar to having owl:Class, which extends the > rdfs:Class metaclass with additional properties. By having users > instantiate the new metaclass they make a conscious choice that the URI of > that class can also be used as a shape. The benefit is that we still have > readable code with much fewer triples, and fewer people facepalming about > the complexity of the trivial use cases - why introduce a separate sh:Shape > when there is a one-to-one mapping anyway. > > Thanks for your feedback, > Holger > > > -- Dimitris Kontokostas Department of Computer Science, University of Leipzig & DBpedia Association Projects: http://dbpedia.org, http://http://aligned-project.eu Homepage:http://aksw.org/DimitrisKontokostas Research Group: http://aksw.org
Received on Friday, 8 May 2015 07:46:55 UTC