Skip to content

Conversation

@liviorobaldo
Copy link

@liviorobaldo
Copy link
Author

My first PR ☺️

Some comments:

  • I wrote “for deriving new content” rather than “for deriving new RDF triples” because rules can also add new RDF resources and RDF literals.

  • I removed “beyond validation” because, as discussed in the last PR for SHACL Core, we should avoid over-emphasising validation and instead present it as one task among others. The same applies to the phrase “While SHACL Core focuses on constraint validation”.

  • Regarding “SHACL Rules only add content to the knowledge graph”, rules do not remove content. See the discussion here: allowing rules to remove content, although potentially useful, could introduce several issues, particularly with respect to guaranteeing termination of rule execution. For this reason, I think we should avoid this.

  • For the discussion on infer() and query(), see discussion here.

  • Concerning the statement “Well-formedness conditions in SHACL Rules prevent infinite loops”, see discussion here . However, I am not sure whether stratification also plays a role in preventing infinite loops; if so, we could consider stating this explicitly in the abstract as well.

@afs
Copy link
Contributor

afs commented Jan 14, 2026

“Well-formedness conditions in SHACL Rules prevent infinite loops"

The well-formedness conditions are not about loops. They are "set variable before use" where use is needing the variable setting - a filter or a head - or for stopping re-assignment.
https://raw.githack.com/w3c/data-shapes/SHACL-rules-introduction/shacl12-rules/index.html#wellformed

Infinite loops: There is an open issue here related to term introduction where stratification may be part of the solution.

@liviorobaldo
Copy link
Author

Hi Andy, okay. My understanding is that this should still be implemented as part of the Rule Set Evaluation (§5). Perhaps the abstract should not go into these details, but I think it is important to at least state that correct implementations of SHACL Rules prevent infinite loops and non-deterministic behaviour.

By the way, I have just noticed that what I called the "initial knowledge graph" in the current version of the abstract is referred to as the "base graph" in §5. I am going to update index.html in this branch to keep the terminology consistent with §5.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants