Hi, I am trying to recreate a recursive magic property, using a SHACL property shape. However, I suspect that the reason the recursion is not working is because the property identified in the sh:path statement isn't really a function in the same sense as a magic property is a function.
My shape code is as follows: qudt:QuantityKind-appropriateUnit rdf:type sh:NodeShape ; sh:property [ rdf:type sh:PropertyShape ; sh:path qudt:dappropriateUnit ; sh:values [ sh:prefixes <http://qudt.org/2.1/schema/shacl/overlay/qudt> ; sh:select """SELECT DISTINCT ?unit WHERE { { ?unit qudt:hasQuantityKind $this . } UNION { NOT EXISTS { ?unit qudt:hasQuantityKind $this . } . $this skos:broader ?parent1 . ?parent1 qudt:dappropriateUnit ?unit . } . } """ ; ] ; ] ; sh:targetClass qudt:QuantityKind ; . The non-recursive part works (the first clause of the union). But the second union clause does not work. Is there a way to make the qudt:dappropriateUnit property know that there's this associated sh:values clause? 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 topbraid-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/topbraid-users/CAGUep86_5U4TAKX-Jjb5erVdzZZZ9Xrfvv5%3DOzNJi-69gCjdzg%40mail.gmail.com.