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

Oops, I messed up the example.  Sorry for the confusion.

Here is what I meant

ex:s a sh:Shape ;
    sh:property _:c ;
    sh:property [ sh:predicate ex:q ;
                  sh:valueShape [ sh:inverseProperty _:c ] ] .

 _:c [ sh:predicate ex:p ;
        sh:minCount 5 ] .

peter



On 03/10/2016 08:12 PM, Holger Knublauch wrote:
> 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.

We don't agree, even here.  Doing both works only because _:c was used in the
same place.

> 
>> 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:22:32 UTC