- From: Jim Amsden <jamsden@us.ibm.com>
- Date: Mon, 12 Oct 2015 15:12:45 -0400
- To: public-data-shapes-wg@w3.org
- Message-Id: <201510121912.t9CJCrkh016686@d01av03.pok.ibm.com>
Abstract should make it clearer that SHACL is intended to specify constraints on an RDF vocabulary for use in a particular context, and that those constraints are not intended to control the vocabulary in other contexts. That is, SHACL closes the world up for a specific purpose, but doesn’t enforce closed-world assumptions on all uses of a vocabulary. 2.1.1: I prefer the shape pointing to the thing it constrains - this keeps the constraints out of the vocabulary and allows the vocabulary to be easily reused in different contexts with different constraints for different purposes. 2.1.2 Example 4: why does the example include ex:ExampleClass a refs:Class? Wouldn’t the example be the same without it? Is this to highlight issue 23? Using sh:ShapeClass couples the shape scope and the object definition together. This essentially closes the world because it is no longer possible to separate the vocabulary from constraints on that vocabulary in a context: e.g., validate(graph, shape) —> [true, false]. There’s no way to separate the graph from the shape in the arguments to validate. issue 78, I like the idea of abstract classes, its helpful to know something is not intended to have direct instances and encourages the reader to go look for more specific, concrete subclasses. 3.1 mentions rdfs:label and rdfs:comment, but what about dcterms:title and dcterms:description? Would these be more general and not introduce additional coupling to RDFS? There are some concepts defined in OSLC Resource Shapes 2.0 that are not in this SHACL draft: 1. oslc:readOnly - indicates a property value cannot be changed after the containing resource is created. 2. oslc:hidden - gives a hint to applications that the property may be hidden in a user interface 3. oslc:name - the name of the property being defined (not sure why this was needed). 4. oslc:representation - for properties whose oslc:valueType was Resource or AnyResource, specifies if the property value should be Inline, Reference or Either. This is important for defining resource representations that include property values in the same resource representation for efficient access. This is not the same as sh:nodeKind because oslc:Inline can still be an IRI, its just that the content of the IRI reference must be contained in the same resource representation. 5. oslc:isMemberProperty - to indicate the property is a membership property (used to specify shapes for Query results) Jim Amsden, Senior Technical Staff Member OSLC and Linked Lifecycle Data 919-525-6575
Received on Monday, 12 October 2015 19:13:27 UTC