W3C home > Mailing lists > Public > public-data-shapes-wg@w3.org > April 2016

Re: More wording

From: Karen Coyle <kcoyle@kcoyle.net>
Date: Tue, 19 Apr 2016 09:13:45 -0700
To: "Peter F. Patel-Schneider" <pfpschneider@gmail.com>, "public-data-shapes-wg@w3.org" <public-data-shapes-wg@w3.org>
Message-ID: <57165939.2030307@kcoyle.net>
Thanks, Peter. I see places in the spec where shapes are given agency in 
odd ways:

"2.1.1 Node scopes (sh:scopeNode)

Shapes define node scopes with the sh:scopeNode predicate"

I would be more comfortable with:

"The scope of a shape is defined with (?by?) the sh:scopeNode predicate."

Also, I find places where it isn't clear whether a statement is about 
the shape graph or the data graph, such as:

2.1
"Node scopes define a specific RDF node as scope."

The RDF node in this case is a node in the data graph,* but that may not 
be clear to the reader.

Also, in some places I see "shape" and in others "Shape", and I believe 
these are referring to the same thing, so one form should be chosen.

Again, I'd like to see editorial changes of this nature made, but am 
unclear how to coordinate with the current editors.

kc
* Yes, the data graph can be a SHACL document. That doesn't change this.

On 4/18/16 1:19 PM, Peter F. Patel-Schneider wrote:
> 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.
>
> peter
>
>
> 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: <http://example.com/> .
>>> @prefix ex: <http://www.w3.org/ns/shacl#> .
>>>
>>> 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. http://example.com/s1
>>> 2. http://example.com/s2
>>> 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
>>>
>>
>

-- 
Karen Coyle
kcoyle@kcoyle.net http://kcoyle.net
m: 1-510-435-8234
skype: kcoylenet/+1-510-984-3600
Received on Tuesday, 19 April 2016 16:14:16 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 19:30:31 UTC