Re: More wording

Yeah, I can see how that might be confusing.  You have to think that the
constraints of a shape are those that are (somehow) connected, or close, to
the shape node, which is not what one might think of if one was making an
analogy to programming languages or even SPARQL.

Your suggested wording looks promising to me.


On 04/18/2016 01:11 PM, Karen Coyle wrote:
> OK, thanks, Peter. That truly wasn't clear, so I'll read further to see if
> this definition is followed in the text.
> But as an example, to me, the definition does not fit with the statement:
> "SHACL groups descriptive information and constraints that apply to a given
> data node into shapes. This document defines what it means for an RDF graph,
> referred to as the "data graph", to conform to a graph containing SHACL
> shapes, referred to as the "shapes graph"."
> I have trouble with "groups ... constraints ... into shapes" if a shape is an
> IRI/bnode. That is what made me think that shapes were intended to be graphs,
> not things (graphs being groups of 1 or more triples). (You wouldn't say:
> "groups names into Persons".) Perhaps:
> "A shape is an instance of the class sh:Shape, either an IRI or a blank node.
> The descriptive information and constraints that apply to a given data node
> are defined as the properties of a shape. A set of shapes that defines
> validation rules for a data graph (?or a portion of a data graph?) is called a
> 'shapes graph'. A shapes graph consists of one or more shapes."
> Closer?
> kc
> On 4/18/16 9:40 AM, Peter F. Patel-Schneider wrote:
>> There may be some misunderstanding here.  Shapes in SHACL are IRIs or blank
>> nodes and come from RDF graphs that are to be considered as shapes graphs.
>> RDF graphs are generally not considered to be instances of classes.
>> SHACL documents should be clear that SHACL shapes are IRIs or blank nodes
>> and not graphs or sets of triples.
>> Here is some Turtle syntax for an RDF graph
>> @prefix ex: <> .
>> @prefix ex: <> .
>> ex:s1 a sh:Shape ;
>>    sh:scopeClass ex:Person ;
>>    ex:property [ a sh:PropertyConstraint ;
>>               ex:predicate ex:p1 ;
>>                  ex:valueShape ex:s2 ] ;
>>    ex:constraint [ a sh:PropertyConstraint ;
>>                    ex:predicate ex:p2 ;
>>           ex:valueShape [ a sh:Shape ;
>>                     ex:constraint [ a sh:NodeConstraint ;
>>                                           sh:class ex:Student ] ] ] .
>> ex:s2 a sh:Shape ;
>>    sh:constraint [ a sh:NodeConstraint ;
>>              sh:nodeKind sh:IRI ] .
>> When treated as a shapes graph, an RDF graph that results from this Turtle
>> syntax has three shapes in it
>> 1.
>> 2.
>> 3. the blank node that is allocated when matching
>>        [ a sh:Shape ;
>>       ex:constraint [ a sh:NodeConstraint ;
>>                 sh:class ex:Student ] ]
>> peter
>> On 04/18/2016 09:03 AM, Karen Coyle wrote:
>>> 2. Shapes
>>> Is: "Shapes are instances of the class sh:Shape and define a group of
>>> constraints that a set of focus nodes can be validated against."
>>> Suggest: "Shapes are graphs that are instances of the the class sh:Shape.
>>> Shapes define one or more focus nodes in a data graph and constraints on
>>> triples in those focus nodes. The triples in the focus nodes are validated
>>> against the constraints in the shape."
>>> I also suggest that we define "shape" as "an RDF graph of type sh:Shape" and
>>> not use "shape graph" but always use "shape" since "shape graph" is redundant.
>>> I can make this change if we have agreement on it. If I don't hear back I may
>>> make this definition an issue.
>>> kc

Received on Monday, 18 April 2016 20:20:00 UTC