Why is my SHACL SPARQLRule with SPARQLUpdateAction not firing in EDG?

23 views
Skip to first unread message

Jared Sands

unread,
Dec 5, 2025, 3:46:50 PMDec 5
to TopBraid Suite Users

Hello Holger,

I'm trying to automatically remove RDF-star provenance metadata when a SME marks a concept as approved. I modeled this using a SHACL SPARQLRule with a boolean condition shape. The simplified architecture is as follows:

  • reviewApproved is a boolean property
  • A sh:PropertyShape checks that value
  • A sh:SPARQLRule with sh:SPARQLUpdateAction deletes RDF-star metadata when reviewApproved = true
  • A NodeShape (targetClass = the concept class) attaches the rule

The rule loads correctly in EDG, but never fires — no meta metadata is deleted, either automatically or on save.

My questions:

  1. When does EDG execute sh:SPARQLRule + sh:SPARQLUpdateAction?
  2. Is there something wrong with attaching the shape + rule to a class NodeShape instead of a Shapes Collection?
  3. Based on the architecture described above, should this approach work?

Do you need to see the specific implementation I used?

Any guidance on why this rule is not being executed — or how EDG expects rules to be structured for update-based automation — would be greatly appreciated.

Thank you!
—Jared

Holger Knublauch

unread,
Dec 7, 2025, 9:43:51 PM (12 days ago) Dec 7
to topbrai...@googlegroups.com
Hi Jared,

if you are familiar with JavaScript, these kinds of side effects are better modeled using a dash:ChangeScript.


These are executed as part of each regular edit in TopBraid. So if one of the added triples is 

?s reviewApproved true

then the script would perform the changes, e.g. using graph.update(`… SPARQL `)

If you’re nervous that this is TopBraid-specific, keep in mind that sh:SPARQLRule etc are also going to be replaced in SHACL 1.2 and would only work in TopBraid too until that happens. (I don’t see sh:SPARQLUpdateAction BTW).

Holger

PS: If you’re not familiar with JS, modern AI code assistants can help a lot to get started.


--
The topics of this mailing list include TopBraid EDG and related technologies such as SHACL.
To post to this group, send email to topbrai...@googlegroups.com
---
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-user...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/topbraid-users/22dfbe97-4d80-4f1e-8d0d-f1606199e40bn%40googlegroups.com.

Jared Sands

unread,
Dec 15, 2025, 1:46:48 PM (5 days ago) Dec 15
to TopBraid Suite Users
Thanks for this.  Very helpful.

I’ve recently been investigating automated cleanup of RDF-star provenance metadata in TopBraid EDG and ran into what appears to be a fundamental architectural constraint, and I wanted to confirm whether my understanding is correct.

Through testing, I’m seeing that dash:ChangeScripts (and other rule-based mechanisms) do not appear to execute when changes are made within a Taxonomy.

Specifically:

  • ChangeScripts placed in an ontology or schema graph do not fire when editing taxonomy concepts.
  • No added / deleted triple stream seems to be generated for taxonomy edits.

My understanding is that taxonomy editing uses a different internal editing pipeline that does not trigger the rule/change listener framework, and that this is by design rather than a bug.

Could you please confirm whether:

  1. ChangeScripts and rule-based side effects are intentionally not supported for taxonomy edits?
  2. If so, whether the recommended patterns for automation in taxonomies are limited to workflows, buttons/actions, or scheduled jobs, rather than rule-based execution?

Thanks!

David Price

unread,
Dec 15, 2025, 2:32:44 PM (5 days ago) Dec 15
to 'Felix Sasaki' via TopBraid Suite Users
Hi,

As far as I know there is no difference in Taxonomies collections and any other collection wrt ChangeScripts being initiated.

Something else must be happening? e.g. maybe the ChangeScript is not being Setting/Includes into the Taxonomy or maybe the Script panel "refresh" button needs to be used?

Cheers,
David

Reply all
Reply to author
Forward
0 new messages