Just to add I don't see a solution to your specific issue either. Custom
target types can only access their own parameters, not the context shape
or the properties of that.
Holger
On 11/3/2020 2:01 PM, Matt Goldberg wrote:
Hello-
Thanks for the reply. I have considered doing exactly this, and may
end up trying this further. My reservations with this method are that
this requires Advanced Features which may not be supported by all
SHACL engines, and with every usage of this Target Type the shape must
specify itself as a parameter and I was hoping there would be a way to
make it a bit smarter to avoid doing that. However, if that's the best
option, I'll experiment with it.
On Monday, November 2, 2020 at 10:44:27 PM UTC-5 Irene Polikoff wrote:
Hi Matt,
There are pre-defined target types in SHACL. You can not change
their behavior.
There is also a way to create SPARQL based targets using a SPARQL
query. If a query is a pattern that may be re-used in different
contexts, you could declare a custom type by parametrizing the
query as described here
_https://w3c.github.io/shacl/shacl-af/#SPARQLTargetType
<https://w3c.github.io/shacl/shacl-af/#SPARQLTargetType>_
This would be your own type of target, using your namespace, not sh:.
The query, for example, could have predicate and object as parameters:
ex:MyTarget
a sh:SPARQLTargetType ;
rdfs:subClassOf sh:Target ;
sh:parameter [
sh:path ex:predicate ;
sh:nodeKind sh:IRI ;
] ;
sh:parameter [
sh:path ex:object ;
sh:nodeKind sh:IRI ;
] ;
sh:prefixes ex: ;
sh:select """
SELECT ?this
WHERE {
?this $predicate $object .
}
""" .
Then, when you assign this custom target type, you would provide
values for the predicate and object. I have assumed above that
objects are resources.
This is just a quickly sketched example. I have not tried it. Read
the spec for more details.
On Nov 2, 2020, at 8:20 PM, Matt Goldberg <[email protected]> wrote:
Left out a detail- an ideal solution would also avoid sh:node
such that errors in validation reports would be informative
instead of sh:node's uninformative "does not conform to shape"
message.
Thanks for any help!
On Monday, November 2, 2020 at 8:07:44 PM UTC-5 Matt Goldberg wrote:
Hello-
I've experimented with the Custom Targets and Custom Target
Types and I can't seem to find a reasonable way to define
targets in a particular way. What I'd like to do is have the
focus nodes specified by resources themselves via a property
that points to the shape to use, effectively how rdf:type
does for implicit shapes, but by using a specified term in
the domain ontology instead of rdf:type. In other words, I'd
like to specify that the focus nodes for some node shape S
are the subjects of triples with predicate P and object S,
where P is specified and is not necessarily rdf:type.
sh:targetSubjectsOf and sh:targetObjectsOf do not provide
this functionality, as they only look at the predicate. I
don't think $currentShape is pre-bound for custom target
types like for constraint components (at least my experiments
didn't seem to work), but even if it is, it would likely be
an optional feature as is stated in the specification. An
ideal solution would be something that would not use any
TopBraid specific features, as we are using SHACL in other
systems as well.
Thanks for any help!
--
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/4cc9fc07-6309-4c53-aaee-7073dd62ac2cn%40googlegroups.com
<https://groups.google.com/d/msgid/topbraid-users/4cc9fc07-6309-4c53-aaee-7073dd62ac2cn%40googlegroups.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]
<mailto:[email protected]>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/topbraid-users/6f1d4307-437a-404c-8628-b304a12efb61n%40googlegroups.com
<https://groups.google.com/d/msgid/topbraid-users/6f1d4307-437a-404c-8628-b304a12efb61n%40googlegroups.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/c4d6fa5b-cbcd-8856-91c5-c7e16562fb39%40topquadrant.com.