On 2022-04-01 4:13 am, [email protected] wrote:
I've been digging back into some SHACL work that I discussed with Holger <https://groups.google.com/g/topbraid-users/c/b4pARn09t3s/m/986x35OmAgAJ> a couple months ago. I'm still bumping up against what seems to be a limitation in the expressivity of sh:values when it comes to re-using inferred values, but I'm probably just doing it wrong.

Let's assume that ex:inferredValueProp is a property shape that produces inferred values for my dataset via its own sh:values rules, defined elsewhere. Expressions like this one are accepted as valid by EDG:

sh:values [
      sh:filterShape [
          sh:property [
              sh:path ex:prop ;
              sh:hasValue ex:Value ;
            ] ;
        ] ;
      sh:nodes [
          sh:path (
              ex:inferredValueProp ex:prop2
            ) ;
        ] ;
    ]

But this produces no values. Holger has said this is because inferred values cannot be reused in complex path expressions like this. Instead, he suggests to use nested path expressions like this:

sh:values [
    sh:path ex:prop2 ;
    sh:nodes [
        sh:path ex:inferredValueProp  ;
    ]
]

But if I do this, where would I put my sh:filterShape?

Have you tried

sh:values [
      sh:filterShape [
          sh:property [
              sh:path ex:prop ;
              sh:hasValue ex:Value ;
            ] ;
        ] ;
      sh:nodes [
        sh:path ex:prop2 ;
        sh:nodes [
            sh:path ex:inferredValueProp  ;
        ]
      ]
]

which would first evaluate the "path" expression ex:inferredValueProp / ex:prop2 and then keep those values of prop2 that have ex:prop ex:Value.

Holger


--
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/3cda939c-d235-4db5-a6ce-bac67f1cdee3n%40googlegroups.com <https://groups.google.com/d/msgid/topbraid-users/3cda939c-d235-4db5-a6ce-bac67f1cdee3n%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/78b2f249-c1fa-d356-a1bb-796ec7a8177d%40topquadrant.com.

Reply via email to