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

Re: shapes-ISSUE-134 (knowing inverse): does SHACL syntax distinguish inverse property constraints [SHACL Spec]

From: Holger Knublauch <holger@topquadrant.com>
Date: Fri, 11 Mar 2016 14:12:33 +1000
To: public-data-shapes-wg@w3.org
Message-ID: <56E245B1.1020800@topquadrant.com>
On 11/03/2016 13:38, Peter F. Patel-Schneider wrote:
> _:c will be both a sh:PropertyConstraint and sh:InversePropertyConstraint.
> Which SPARQL query will it pick?  Both?  In this case things might work out,

Yes both. I am glad we agree.

> but what happens if the incoming links are from different places, as in
>
> ex:s a sh:Shape ;
>    sh:property _:c ;
>    sh:property [ sh:predicate ex:q ;
>                  sh:valueShape [ sh:property _:c ] ] .
>
> _:c [ sh:predicate ex:p ;
>        sh:minCount 5 ] .

I see no problem there. In both cases it's a sh:PropertyConstraint based 
on the sh:defaultValueType of sh:property. They are not executed at the 
same time, and on different focus nodes.

Does this answer your ticket?

Holger


>
> peter
>
>
>
> On 03/10/2016 04:43 PM, Holger Knublauch wrote:
>> In the current draft this is handled by sh:defaultValueType:
>>
>> ex:s a sh:Shape ;
>>    sh:property _:c ;
>>    sh:inverseProperty _:c .
>> _:c [ sh:predicate ex:p ;
>>        sh:minCount 5 ] .
>>
>>
>> The engine will "add" two type triples:
>>
>> _:c a sh:PropertyConstraint .
>> _:c a sh:InversePropertyConstraint .
>>
>> The engine can then pick the correct validator (SPARQL query) for each
>> rdf:type of that constraint.
>>
>> Holger
>>
>>
>> On 11/03/2016 7:15, RDF Data Shapes Working Group Issue Tracker wrote:
>>> shapes-ISSUE-134 (knowing inverse): does SHACL syntax distinguish inverse
>>> property constraints [SHACL Spec]
>>>
>>> http://www.w3.org/2014/data-shapes/track/issues/134
>>>
>>> Raised by: Peter Patel-Schneider
>>> On product: SHACL Spec
>>>
>>>> From
>>> https://lists.w3.org/Archives/Public/public-data-shapes-wg/2016Mar/0106.html
>>>
>>> Some constraint types require different SPARQL queries (or JavaScript or
>>> whatever) depending on the direction of a property (or even worse, for an
>>> arbitrary path). For example sh:minCount needs to count subjects versus
>>> objects.
>>>
>>> Is it possible to determine whether a sh:minCount constraint is an inverse
>>> or not?  Consider
>>>
>>> ex:s a sh:Shape ;
>>>     sh:property _:c ;
>>>     sh:inverseProperty _:c .
>>> _:c [ sh:predicate ex:p ;
>>>         sh:minCount 5 ] .
>>>
>>>
>>>
>>
Received on Friday, 11 March 2016 04:13:07 UTC

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