Decomposing shapes

There have been quite a few talks lately about what is a shape, focus
nodes, referenced shapes, filters etc and most boil down to how shapes are
used and different roles shapes take
e.g. as a simple shape, as a filter shape, constraining shape (in sh:shape,
sh:or, etc)

One idea to fix this that came up after yesterday's telco with Karen was to
differentiate these cases as follows
A shape is a constraint with optional targets (currently shape is a
 subclass of Constraint so this is true anyway)
All other cases will be referring to constraints, not shapes
e.g. the range of a filter is a constraint, not a shape
similar the range of sh:shape is again a constraint as for sh:and, sh:or,

this fixes the problems of what we do with targets of a shape when that
shape is referenced from another shape. With this change, the reference
will be only to constraints, not shapes.

This will require the renaming of some SHACL Core constructs but I believe
it will improve the language.
e.g. sh:filterShape could be renamed to sh:filterConstrain, sh:filter,
sh:shape to sh:constraint
sh:qualifiedValueShape to qualifiedValueConstraint
(sh:not/or/and are not affected)

Any feedback is welcome

Dimitris Kontokostas
Department of Computer Science, University of Leipzig & DBpedia Association
Research Group: AKSW/KILT

Received on Thursday, 13 October 2016 11:48:55 UTC