- From: Peter F. Patel-Schneider <pfpschneider@gmail.com>
- Date: Mon, 26 Sep 2016 22:38:52 -0700
- To: Holger Knublauch <holger@topquadrant.com>, public-rdf-shapes@w3.org
On 09/26/2016 09:52 PM, Holger Knublauch wrote:
> 
> 
> On 27/09/2016 4:36, Peter F. Patel-Schneider wrote:
>> What happens here?
>>
>> Shapes graph
>>
>> s:s1 rdf:type sh:Shape ;
>>    sh:targetClass ex:foo ;
>>    sh:shape s:s2 ;
>>    sh:property s:s2 .
>>
>> s:s2 sh:predicate ex:p ;
>>   sh:class ex:c .
>>
>> Is s:s2 a property constraint?  Is it a focus node constraint?
> 
> It's both, and an implementation would treat them as both, depending on the
> context. Can you point at a section of the spec where this would cause issues?
> I do remember that older versions of the spec had a problem with this
> ambiguity, but I can't find those sections anymore.
> 
> Thanks,
> Holger
Yes.  Anyone with knowledge of the spec should be able to also easily find
parts of the spec that cause problems here.
Here is one such place:
"Property constraints specify conditions that must be met with respect to
nodes that can be reached from the focus node either by directly following a
given property (specified using sh:predicate) or a given property path
(specified using sh:path)."
Consider the following modification of the above constraint:
 s:s1 rdf:type sh:Shape ;
    sh:targetClass ex:foo ;
    sh:property [ sh:predicate ex:q ; sh:shape s:s2 ] ;
    sh:property s:s2 .
 s:s2 sh:predicate ex:p ;
   sh:class ex:c .
The data graph
ex:i rdf:type ex:foo ;
   ex:q [ rdf:type ex:c ; ex:p [ ] ] ;
   ex:p [ rdf:type ex:c ] .
does not validate against this shape in two ways:
1/ it does not have type ex:c
2/ it has a ex:q/ex:p value that does not have type ex:c
This is the same problem as before.
Peter F. Patel-Schneider
Nuance Communications
Received on Tuesday, 27 September 2016 05:39:24 UTC