shapes-ISSUE-65 (shapes, scopes, and constraints): A consistent and cohesive definition of shapes, scopes, and constraints [SHACL Spec]

shapes-ISSUE-65 (shapes, scopes, and constraints): A consistent and cohesive definition of shapes, scopes, and constraints [SHACL Spec]

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

Raised by: Peter Patel-Schneider
On product: SHACL Spec

The current version of the Shapes Constraint Language (SHACL) document, at
https://w3c.github.io/data-shapes/shacl/, does not have a clear definition of a shape, a scope, or a constraint.

Here are some things that the document says about shapes, scopes, and constraints:


Shape
WRONG - "describes a group of constraints with the same focus node"
WRONG - "is a group of constraints that have the same focus node"
 - Ignores scope aspect of shapes.
 - Misleading about the role of a focus node.

Closed Shape
? - closed shape as one of the "other shape-based constraints"
- Is closed shape a constraint?

Scope
AMBIGUOUS - "pre-conditions that must hold before a constraint is applied to
      a given focus node"
- No notion of constraint application defined in document.
- Scope is used on both shapes and constraints.

Class Scope -
AMBIGUOUS - "apply to all instances of these linked classes"
- What is an instance of a class?

Constraint
WRONG - "a condition that can be validated against a graph"
WRONG - "defines restrictions on the structure of an RDF graph"
- Most constraints are validated against a graph and a node in the graph.
WRONG - "evaluated against a focus node"
- Not for global constraints.

Global Constraint
- Different from other constraints as they don't have a real scope.

I propose that shapes, scopes, and constraints be given a firm and clear structure, along the lines of:

A shape has either a query or a scope, a set of constraints, and whether or not the shape is closed.

A scope picks out some of the nodes in an RDF graph for validation against the constraints of the shape.

A constraint forms a condition that a node in an RDF graph must satisfy to satisfy the constraint.

Received on Monday, 1 June 2015 14:27:15 UTC