Re: on property constraints vs focus node constraints

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