Another SHACL question for the topbraid-users group:

This one is a bit hard to explain, but the general idea is to create a 
shape that requires two target classes, and the hierarchical parent must be 
one of three classes, and the target cannot have any properties are a 
sub-property of a property.

Working it out a bit I believe the following is the equivalent query in 
SPARQL:

SELECT * 
WHERE {
   $this a ex:Cls1, ex:Cls2  .
   { $this ex:parent/rdf:type ex:Cls3 . }
   UNION
   { $this ex:parent/rdf:type ex:Cls4 . }
   UNION
   { $this ex:parent/rdf:type ex:Cls5. }
   ?prop rdfs:subPropertyOf ex:assoc .
   $this ?prop ?x
}

Any $this found by this query would be a violation, based on the last 
triple pattern - i.e. the rest are requirements,that are taken up by other 
shapes.  But what I want here is to report if the target class combination, 
with appropriate parents, has one of the ex:assoc sub-properties.  To 
paraphrase: "Instances of Cls1 and Cls2 ... cannot have any ex:assoc 
properties.

Any hints or direction on this would be useful.  I've tried a few things 
but have so far failed to make much headway.

Appreciate it and TIA.
-- Scott

-- 
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/3a55f966-d99d-4d32-875e-3e32a1f643c4n%40googlegroups.com.

Reply via email to