shapes-ISSUE-221 (sh:Shape hierarchy): Simplify the class hierarchy of shapes [SHACL - Core]

shapes-ISSUE-221 (sh:Shape hierarchy): Simplify the class hierarchy of shapes [SHACL - Core]

http://www.w3.org/2014/data-shapes/track/issues/221

Raised by: Dimitris Kontokostas
On product: SHACL - Core

as a task from today;s resolution on ISSUE-211 I created this issue

The current editors draft defines three classes for shapes: 
sh:Shape with the following subclasses
 -> sh:NodeShape 
 -> sh:PropertyShape

However, all shape-expecting constraint components (sh:shape, sh:or, sh:and) use only sh:Shape and do not distinguish between the two subclasses. 

The only exception is sh:property that expects a property shape.
This, however, creates redundancy in the shape definitions e.g.

ex:a a sh:Shape
  sh:shape [
    sh:path ex:name;
    sh:minCount 1;
  ]

is the equivalent shape for

ex:a a sh:Shape
  sh:property [
    sh:path ex:name;
    sh:minCount 1;
  ]

In addition, property shapes, as a separate subclass of sh:shape, are not needed anywhere else in the spec. There very few occurrences can be easily reworded.

This indicates that the only reason for this hierarchy is sh:property and this is something that can be defined with sh:shape.

It would be a great simplification if we removed both subclasses and kept only sh:Shape as defined in 
https://jimkont.github.io/data-shapes/shacl/core.html#shacl-shapes
https://jimkont.github.io/data-shapes/shacl/core.html#value-nodes

Received on Wednesday, 25 January 2017 22:33:08 UTC