Re: ISSUE-139: uniform descriptions and implementations of constraint components

sh:scopeClass <foaf:Person> and sh:scopeNode <foaf:Person> appear to 
identify the same focus node(s) in the data graph.

***shape1***
ex:MyShape
     a sh:Shape ;
     sh:scopeNode foaf:Person ;
     sh:inverseProperty [
         sh:predicate rdf:type ;
         sh:maxCount 2 ;
     ] .

***shape2***
ex:PersonShape
 a sh:Shape ;
 sh:scopeClass ex:Person .

***data graph***

ex:Alice a ex:Person .
ex:Bob a ex:Person .
ex:NewYork a ex:Place .

Where does the spec address the reason for this?

kc

On 6/7/16 10:09 PM, Holger Knublauch wrote:
>
>
> On 8/06/2016 14:57, Karen Coyle wrote:
>>
>>
>> On 6/7/16 7:38 PM, Holger Knublauch wrote:
>>> Yes and SHACL should implement the same policy, because sh:maxCount also
>>> only makes sense for predicate-based constraints and not node
>>> constraints.
>>
>> Does this then rule out a constraint like "n things of type x"? For
>> example, if you want to limit the number of foaf:Person nodes?
>
> No. To express "A graph must have at most 2 instances of foaf:Person"
> you would write
>
> ex:MyShape
>     a sh:Shape ;
>     sh:scopeNode foaf:Person ;
>     sh:inverseProperty [
>         sh:predicate rdf:type ;
>         sh:maxCount 2 ;
>     ] .
>
> In other words "there must be at most 2 triples that have foaf:Person as
> object and rdf:type as predicate".
>
> Peter's suggested use of sh:maxCount at node constraints would mean
>
> "Verify that the set of value nodes is not larger than two. Oh, and
> regardless of the actual data, I already know that this set of value
> nodes has size 1, because it always consists of the focus node only. So
> actually I only need to test whether the value of sh:maxCount > 0."
>
> which is a rather useless construct. You have just confirmed that
> misusing sh:maxCount as node constraints will likely confuse users.
>
> Is this difference clearer now, or what else could I clarify?
>
> Thanks,
> Holger
>
>
>

-- 
Karen Coyle
kcoyle@kcoyle.net http://kcoyle.net
m: 1-510-435-8234
skype: kcoylenet/+1-510-984-3600

Received on Thursday, 9 June 2016 04:41:11 UTC