on constraints

What are constraints?  What are constraint components?  What are constraint
component parameters?  The document appears to be contradictory about what
is what.

Relevant quotes from the SHACL document:

"Constraints are defined within a shape and sh:Constraint is the SHACL
superclass of all constraint types."

What counts as "defining" a constraint?

"Focus node constraints define constraints about the focus node itself."

How can a constraint define a constraint?

"Focus node constraints are attached directly to Shapes"

Not any more.

"sh:shape can be used to group focus node constraints."

Not any more, except by using sh:shape itself, I guess.

"The class sh:Shape is defined as rdfs:subClassOf sh:Constraint."

"Some constraint components have only a single parameter. For example
sh:ClassConstraintComponent has the single parameter sh:class.  These
parameters may be used multiple times within the same constraint node."

How can anything be "within" a node?

"Parameters of constraint components that have more than one parameter, such
as sh:PatternConstaintComponent, are not allowed to be used more than once
in the same constraint."

"A recursive shape is a shape thar refers to itself directly or transitively
via shape-based constraint components (i.e. sh:shape)"

"4.8.1 sh:shape

The property sh:shape can be used verify that all value nodes must have a
given shape. The value type of sh:shape is sh:Shape, but the rdf:type triple
of those shapes can be omitted.

Constraint Component: sh:ShapeConstraintComponent
Parameters:
Property  Value Type  Summary
sh:shape  sh:Shape  The required shape of all value nodes"


Peter F. Patel-Schneider
Nuance Communcations

Received on Friday, 30 September 2016 00:47:17 UTC