Also, the ambiguity in the example is that ex: represents both a prefix
found in the SPARQL query and also represents the URI for the ontology in
which the prefixes are defined. I had interpreted the example at
https://www.w3.org/TR/shacl/#sparql-constraints-example to mean "Identify
all the prefixes you need in the query here" rather than "go to this URI to
find all the prefix definitions".

Also, by the way, I have never succeeded in using the prefix as in your
example at  https://www.w3.org/TR/shacl/#sparql-constraints-example
<https://www.w3.org/TR/shacl/#sparql-constraints-example>.  In your example
you say

        sh:prefixes ex: ;
                sh:select """

I have only gotten it to work when I expand ex: to the full URI. I wondered
whether it was because the ex: turns into http://example.com/ns# and when I
spell it out I don't include the #, rather I write <http://example.com/ns>.

Steve




On Tue, Mar 23, 2021 at 3:32 PM Holger Knublauch <[email protected]>
wrote:

>
> On 2021-03-24 2:36 am, Steve Ray wrote:
>
> I think the light bulb just went on.
>
> Are you saying that the natural language interpretation of the sh:prefixes
> triple *inside* a SPARQLRule is:
>
> "Go to the following graph URI to get the definitions for the prefixes you
> will need in the SPARQL query"...
>
> ...and in the ontology declaration, you use the sh:declare to do those
> definitions.  (without wrapping those sh:declare statements inside a
> sh:prefixes clause)?
>
> Yes exactly. The idea is that each graph declares its "main" prefix and
> then includes the other prefixes that it needs via owl:imports. Since the
> owl:imports are found at the graph URI resource, this was a natural place
> to attach this info to, without too much redundancy. Anyone who owl:imports
> your graph can then use its own owl:Ontology and will get the other prefix
> declarations automatically.
>
> A problem is that this one example in the SHACL spec
>
>     https://www.w3.org/TR/shacl/#sparql-constraints-example
>
> doesn't include the triples behind ex: and most readers will not scroll
> down to
>
>     https://www.w3.org/TR/shacl/#sparql-prefixes
>
> for the full picture.
>
> Holger
>
>
>
> (I will test this while waiting for the Australian day to begin. :)
>
>
> Steve
>
>
>
>
> On Mon, Mar 22, 2021 at 4:49 PM Holger Knublauch <[email protected]>
> wrote:
>
>> In your first example, add
>>
>>   sh:rule [
>>       a sh:SPARQLRule ;
>>       sh:prefixes
>> <http://data.ashrae.org/standard223/1.0/inference/owl-subset>
>> <http://data.ashrae.org/standard223/1.0/inference/owl-subset> ;
>>
>> because
>>
>> <http://data.ashrae.org/standard223/1.0/inference/owl-subset>
>> <http://data.ashrae.org/standard223/1.0/inference/owl-subset>
>>     sh:declare [
>>       sh:namespace "http://www.w3.org/2002/07/owl#";
>> <http://www.w3.org/2002/07/owl#>^^xsd:anyURI ;
>>       sh:prefix "owl" ;
>>     ] .
>>
>> is already a correct prefix declaration.
>>
>> If you attempt something like in your second example:
>>
>>       sh:prefixes <http://www.w3.org/2002/07/owl>
>> <http://www.w3.org/2002/07/owl> ;
>>
>> then the assumption is that the following triples are present
>>
>> <http://www.w3.org/2002/07/owl> <http://www.w3.org/2002/07/owl>
>>     sh:declare [
>>       sh:namespace "http://www.w3.org/2002/07/owl#";
>> <http://www.w3.org/2002/07/owl#>^^xsd:anyURI ;
>>       sh:prefix "owl" ;
>>     ] .
>>
>> which they are not.
>>
>> There is clear evidence that too many people struggle with this aspect of
>> the SHACL spec, and that as an editor I should have done a better job
>> there. If I could simply re-upload the SHACL spec this would be the first
>> thing to fix. However, the formal W3C process doesn't allow this easily.
>>
>> I have to admit I never liked to even have the need to declare those
>> namespaces as triples - this is a mixed blessing because nobody seems to
>> understand the syntax yet namespace prefixes are a serialization concept
>> only, not a graph concept. At some stage I may just give up on this and
>> change our SHACL engine to simply add the declared prefixes from the files,
>> like SPIN did for pragmatic reasons, ignoring the spec.
>>
>> BTW both examples have a mismatch between the baseURI and the
>> owl:Ontology. I suggest to keep them aligned.
>>
>> HTH
>> Holger
>>
>>
>> On 2021-03-23 6:40 am, Steve Ray wrote:
>>
>> I have been working around this problem by avoiding any prefixes when
>> defining a shape with SPARQL, but this still bugs me. Attached are two tiny
>> files, epp1.shapes.ttl and epp2.shapes.ttl.
>>
>> I'm running the SHACL reasoner.
>> epp1 works - it does not use any prefixes inside the shape.
>> epp2 is identical to epp1, except it declares the owl: prefix in the
>> shape.
>>
>> TBC complains that it cannot resolve owl:SymmetricProperty.
>>
>> I have tried following the documentation for this, but clearly I'm
>> getting something wrong. What am I missing?
>>
>> Steve
>>
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "TopBraid Suite Users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/topbraid-users/CAGUep85Rf1yk3YVsLV3ihJjso7w5uF%2BBGqFOSpPWybBCuGw6nQ%40mail.gmail.com
>> <https://groups.google.com/d/msgid/topbraid-users/CAGUep85Rf1yk3YVsLV3ihJjso7w5uF%2BBGqFOSpPWybBCuGw6nQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "TopBraid Suite Users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/topbraid-users/e0633424-2ad7-12b8-e035-fd553f0e92ed%40topquadrant.com
>> <https://groups.google.com/d/msgid/topbraid-users/e0633424-2ad7-12b8-e035-fd553f0e92ed%40topquadrant.com?utm_medium=email&utm_source=footer>
>> .
>>
> --
> You received this message because you are subscribed to the Google Groups
> "TopBraid Suite Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/topbraid-users/CAGUep85BWQbeqdh35OGKrqcmG13TbTo%3DD7Or-QsVOQoFq61PUA%40mail.gmail.com
> <https://groups.google.com/d/msgid/topbraid-users/CAGUep85BWQbeqdh35OGKrqcmG13TbTo%3DD7Or-QsVOQoFq61PUA%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>
> --
> You received this message because you are subscribed to the Google Groups
> "TopBraid Suite Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/topbraid-users/8e829632-e471-b342-a957-b9b49c5c0ca8%40topquadrant.com
> <https://groups.google.com/d/msgid/topbraid-users/8e829632-e471-b342-a957-b9b49c5c0ca8%40topquadrant.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"TopBraid Suite Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/topbraid-users/CAGUep84OsS4puuF3e9UM2k8sR5Eg9b_MvVGb1Eh9Ks%2Bj5-rbQQ%40mail.gmail.com.

Reply via email to