- From: Karen Coyle <kcoyle@kcoyle.net>
- Date: Wed, 8 Jun 2016 21:40:40 -0700
- To: public-data-shapes-wg@w3.org
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