ISSUE-115: Closeness is an aspect of a Shape, but the current syntax treats it like all other constraints.
ClosedShape
Closeness is an aspect of a Shape, but the current syntax treats it like all other constraints.
- State:
- CLOSED
- Product:
- SHACL Spec
- Raised by:
- Arnaud Le Hors
- Opened on:
- 2015-12-16
- Description:
- This is a language syntax design issue. Conceptually, a Shape may be Open or Closed, so this seems like an aspect of the Shape. However, the current SHACL syntax expresses this as a NodeConstraint. This approach is technically defensible but results in a node constraint that is very different that all other defined node constraints. An alternative is to promote Closeness to a higher syntactical level, namely to make it a direct property of the Shape.
- Related Actions Items:
- No related actions
- Related emails:
- ISSUE-115: Spec updated (from holger@topquadrant.com on 2016-01-22)
- Re: ISSUE-115: Did we rush this decision? (from holger@topquadrant.com on 2016-01-15)
- ISSUE-115: Did we rush this decision? (from holger@topquadrant.com on 2016-01-15)
- ISSUE-115: Closeness is an aspect of a Shape, but the current syntax treats it like all other constraints. (from arthur.ryman@gmail.com on 2016-01-07)
- Re: shapes-ISSUE-115 (ClosedShape): Current way of specifying closed shapes is not satisfactory [SHACL Spec] (from kcoyle@kcoyle.net on 2015-12-22)
- Re: shapes-ISSUE-115 (ClosedShape): Current way of specifying closed shapes is not satisfactory [SHACL Spec] (from holger@topquadrant.com on 2015-12-18)
- Re: shapes-ISSUE-115 (ClosedShape): Current way of specifying closed shapes is not satisfactory [SHACL Spec] (from arthur.ryman@gmail.com on 2015-12-16)
- shapes-ISSUE-115 (ClosedShape): Current way of specifying closed shapes is not satisfactory [SHACL Spec] (from sysbot+tracker@w3.org on 2015-12-16)
Related notes:
I think that this is about the closed construct looking like other constraints, but maybe not being like other constraints and thus deserving a different form.
Design alternative 1: add a new boolean property sh:close of shapes, and move sh:ignoredProperties to be a property of shapes.
Concretely, the Turtle for Example 31 we become:
ex:ClosedShapeExampleShape
a sh:Shape ;
sh:close true;
sh:ignoredProperties (rdf:type) ;
sh:property [
sh:predicate ex:exampleProperty1 ;
] ;
sh:property [
sh:predicate ex:exampleProperty2 ;
] .
Design alternative 2: We could introduce a new class:
sh:ClosedShape rdfs:subClassOf sh:Shape .
ex:ClosedShapeExampleShape
a sh:ClosedShape ;
sh:ignoredProperties (rdf:type) ;
sh:property [
sh:predicate ex:exampleProperty1 ;
] ;
sh:property [
sh:predicate ex:exampleProperty2 ;
] .
RESOLUTION: Close ISSUE-115, adopting sh:closed on sh:Shape
See https://www.w3.org/2016/01/14-shapes-minutes.html#resolution04
RESOLUTION: Change Resolution of ISSUE-115 to have sh:closed on sh:NodeConstraint instead of sh:Shape, and define sh:Closed as syntactic sugar
See https://www.w3.org/2016/01/21-shapes-minutes.html#resolution03Arnaud Le Hors, 27 Jan 2016, 17:15:56
Display change log