- From: Holger Knublauch <holger@topquadrant.com>
- Date: Tue, 13 Oct 2015 09:08:15 +1000
- To: public-data-shapes-wg@w3.org
- Message-ID: <561C3D5F.9000802@topquadrant.com>
On 10/13/15 5:12 AM, Jim Amsden wrote: > 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. This is one way of using SHACL, among others. It is perfectly legal to publish SHACL constraints globally, and we should leave this decision to the users instead of preferring one philosophy over the other. > > 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. Yes, and this coupling is often intentional and desirable. Nobody is forced to use sh:ShapeClass. Just use sh:Shape instead if you want to keep all doors open. Having said this, even with sh:ShapeClass it is perfectly valid to have In the shapes graph: ex:MyClass a sh:ShapeClass . In the ontology: ex:MyClass a rdfs:Class . In the data: ex:MyInstance a ex:MyClass . The sh:ShapeClass triple is mere syntactic sugar for ex:MyClass a rdfs:Class , sh:Shape . Thanks Holger
Received on Monday, 12 October 2015 23:08:48 UTC