modelling using SHACL - a bad idea - ISSUE-23

Several classes in
show the problems with conflating classes and shapes.  The problematic
classes include sh:Shape, sh:ShapeClass, and particularly rdfs:Class.

It looks as if
defines an RDFS taxonomy and these nodes are regular RDFS classes in that
taxonomy.  However, this appearance is deceiving.  Only a small portion of
the RDFS meaning of classes ends up attaching to these node.  The full
meaning of RDFS:subClassOf is not available for these nodes.  Subproperties
of rdfs:subClass will not have any RDFS effect on these nodes.  Providing
domain and range information for properties related to these nodes will not
have any RDFS effect.

Some of the effects of this difference can be seen in where
several classes, including rdfs:Class, are explicitly stated as being
subclasses of rdfs:Resource, which would be unnecessary under RDFS.

Because of these differences from RDFS, I believe that SHACL should not be
used for modelling taxonomies and thus that sh:shapeClass should not be part

Aside from the above, there are other modelling issues that should not
be part of SHACL.  SHACL should not be used to set up object-oriented
notions, such as those coming from sh:abstract, sh:final, and sh:private,
particularly as there will be no support for enforcing their meaning.

Peter F. Patel-Schneider
Nuance Communications

Received on Tuesday, 4 August 2015 20:27:27 UTC