- From: Vladimir Alexiev <vladimir.alexiev@ontotext.com>
- Date: Sat, 19 Feb 2022 00:37:18 +0200
- To: Mark van Berkel <mark@schemaapp.com>
- Cc: Public Shacl W3C <public-shacl@w3.org>
- Message-ID: <CAMv+wg7X2TwggrghiHWnmFcvM3eMkG72nzV+Mjo41gExr1fYYQ@mail.gmail.com>
In our case we don't share prop shapes between node shapes.
And the metadata is always at the node shapes .
It helps to have named prop shapes, to understand what's happening eg in
the Playground . But fir or case we'r have to get to the node shape
On Fri, Feb 18, 2022, 23:31 Mark van Berkel <mark@schemaapp.com> wrote:
> Hi,
>
> We wanted to do something similar, and ended up switching to use named
> nodes to facilitate this. Named nodes might provided for reuse
> opportunities as well.
>
> Regards
> Mark
>
> On Fri., Feb. 18, 2022, 10:03 Vladimir Alexiev, <
> vladimir.alexiev@ontotext.com> wrote:
>
>> Hi! We have a bunch of rules (NodeShapes) with a lot of metadata in them.
>> We want ValidationResults to point to those shapes, so we can display the
>> metadata along with the node and value to blame.
>> Our rules are often implemented as a single sh:property, and sometimes
>> with sh:and, sh:or, sh:node.
>>
>> We find with both TQ SHACL and RDF4J SHACL that sh:sourceShape is set to
>> the PropertyShape, which in our case is a blank node.
>> For example:
>>
>> <sh1> a sh:NodeShape;
>> sh:target...
>> sh:property [sh:path ...; ...]. <<< set to this blank-node PropertyShape
>>
>> <sh2> a sh:NodeShape;
>> sh:target...
>> sh:not [sh:property [sh:path ...; ...]]. <<< set to the NodeShape
>>
>> Paradoxically, results from the more complicated shape sh2 ends up
>> pointing to the right node, whereas the simpler shape sh1 points to a blank
>> node.
>>
>> What we do is post-process the validation results to redirect
>> sh:sourceShape to the right node, eg:
>>
>> delete {?x sh:sourceShape ?propShape}
>> insert {?x sh:sourceShape ?nodeShape}
>> where {
>> ?x sh:sourceShape ?propShape
>> filter(isBlank(?propShape))
>> filter exists {?propShape sh:path []}
>> ?propShape ^sh:property ?nodeShape
>> }
>>
>> However, shouldn't the spec lay down some rules that sh:sourceShape is
>> redirected "upwards" from blank-node PropertyShape?
>>
>> --
>> Vladimir Alexiev, PhD, PMP
>> Chief Data Architect
>> Sirma AI, trading as Ontotext: https://www.ontotext.com, LinkedIn,
>> Twitter, Rate GraphDB
>> Email: vladimir.alexiev@ontotext.com, skype:valexiev1
>> Mobile: +359 888 568 132, SMS: 359888568132@sms.mtel.net
>> Calendar:
>> https://www.google.com/calendar/embed?src=vladimir.alexiev@ontotext.com
>> Publications and CV: https://github.com/VladimirAlexiev/my
>>
>
Received on Friday, 18 February 2022 22:37:43 UTC