Re: Comments on SHACL, especially regarding compatibility with OSLC Resource Shapes 2.0

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