- From: Holger Knublauch <holger@topquadrant.com>
- Date: Fri, 24 Apr 2015 10:26:23 +1000
- To: RDF Data Shapes Working Group <public-data-shapes-wg@w3.org>
- Message-ID: <55398DAF.2050601@topquadrant.com>
On 4/24/15 10:15 AM, Michel Dumontier wrote: > Hi Holger, > I think a key aspect of SHACL that would be nice to highlight is how > shapes can *specialize* existing Classes/Shapes. Example 1 shows a > simple example where the ex:Issue is declared as an rdfs:Class, but is > simultaneously specialized as a Shape due to its associated SHACL > constraint. Can we, for the sake of simplicity and modularity, show > how a shape can be applied to an existing class? We could then > demonstrate the modularity by showing that we could have two shapes > that specialize the class. How is exactly would that be done? In my current proposal, if a shape is supposed to participate in a specialization relationship, then it should be declared as an rdfs:Class. There is no real downside from a Shape perspective - it is still a shape even if it is (also) a class. Having two parallel specializations hierarchies would IMHO lead to chaos and unnecessary overhead. > > I also wonder why sh:valueType doesn't just point directly to one > value - in this case a shape description that specializes > schema:Person - e.g. ex:SubmitterShape. That would eliminate sh:shape, > a seemingly redundant predicate to specify the value type. sh:valueType restricts the rdf:type triple that is stored in the model. sh:shape only defines additional constraints that these values also need to have (possibly in addition to being an instance of schema:Person). sh:shape actually walks into the nested properties of the given shape, while sh:valueType only scratches the surface and only looks for the rdf:type triple. Since these are very different use cases, I believe we still need both. Holger > > Taking this approach would help users see a simpler, modular design. > It also actually follows what we already do with our SADI semantic web > services (where service inputs are specializations of ontology-defined > classes, and outputs are specializations of service inputs). > > m. > > Michel Dumontier, PhD > Associate Professor of Medicine (Biomedical Informatics) > Stanford University > http://dumontierlab.com > > On Thu, Apr 23, 2015 at 4:18 PM, Holger Knublauch > <holger@topquadrant.com <mailto:holger@topquadrant.com>> wrote: > > In an attempt to make the discussion about ISSUE-23 [1] a bit more > specific, I would like to suggest the following design. I have > experimented with this design for a while and it appears to work > nicely - both from an implementation perspective and user > experience. My current draft [2] uses this design in its examples. > > In this proposal, the base class is sh:Shape, which carries the > system properties to define constraints, i.e. sh:constraint, > sh:property and sh:inverseProperty. sh:Shape can be instantiated > and used by itself. To instruct a SHACL engine, the property > sh:nodeShape is used to link a resource with its sh:Shape(s) that > it is supposed to have. This design pattern is especially suitable > for people who want to avoid any conflicts between existing RDFS > data models and constraint checking. > > In the context of SHACL, rdfs:Class is declared as a > rdfs:subClassOf sh:Shape, which means that any class can play the > role of a Shape, and a Class can have constraints attached to it. > Furthermore the rdf:type property is used by the SHACL engine to > link instances with their class shapes, in the same way that > sh:nodeShape is used. As a consequence, we have a natural > implementation of specialization - rdfs:subClassOf is used to > express sub-shape relationships. This design pattern is > especially suitable for people who want to naturally build upon > the data models that already exist, and existing rdf:type triples. > > I believe this design produces a very attractive user-facing > syntax (no bloating extra triples) while maintaining a very good > level of flexibility and backwards compatibility. Existing > RDFS/OWL ontologies and their instances can be incrementally > enhanced with SHACL constraints. > > I would welcome specific, practice-oriented criticism of this design. > > Thanks, > Holger > > [1] http://www.w3.org/2014/data-shapes/track/issues/23 > [2] http://w3c.github.io/data-shapes/shacl/ > > >
Received on Friday, 24 April 2015 00:28:24 UTC