Rework well-formedness (rules)#941
Conversation
|
Only the new version is now in the PR document. |
|
In V2, these three items:
are repeated twice? Also, I am quite confused about the difference/relation between a condition element and an expression. V2 states: If elti is a condition element,
However, I do not understand what “expression of the condition element” means. The definitions say:
So a condition element is itself an expression. In that case, what does “expression of the condition element” refer to? I think these definitions should be clearer. For instance: Expressions are described as being compatible with SHACL list parameter functions and with SPARQL expressions. What does “compatible with” mean in this context? Does this mean that expressions are either SHACL list parameter functions (e.g., Finally, is it necessary to distinguish between condition, condition element, and SPARQL expressions (essentially Overall, the terminology appears difficult to follow in its current form... do we truly need all these definitions, can't some of them be collapses into one? |
A condition is a special kind of expression - a condition evaluates to true or false. The expression is wrapped in A filter element ( It can be confusing because here there is a 1-1 correspondence but it is trying to call out the role being played. Filters have an expression and nothing else - unlike assignments which have expressions and a variable.
"compatible with" is meant to mean either can be used in the places expressions occur - but also other libraries could be used e.g. domain specific functions. It's not only Some SPARQL expressions are more than shnex evaluation. |
24526b8 to
a6eca7d
Compare
|
Hello! The new version is better, thanks @afs. However, I still see some elements of confusion. In particular, I still see: every variable mentioned in the expression of the filter element is an element of Vi-1. I do not understand "the expression of the filter element", since "A filter element is an expression", according to the definition. In the definitions, I am also not sure about: A filter element is an expression that appears as a rule element and A triple pattern element is a triple pattern that appears as a rule element. I am not a native English speaker, so I am not sure whether the expression "that appears as" is appropriate in this case. I would simply say: A filter element is an expression and a rule element A triple pattern element is a triple pattern and a rule element. This would be consistent with the definitions of negation element and assignment element. All the rest looks good to me 👍 |
|
The role in which expression is being used matters. "that appears as" is talking about the role. A filter element is an expression. But an expression is not a filter element. "A is a B" can be read as an equivalence, also meaning "B is an A".
That can be just the filter element. Change made. (Please say where quoted text is coming from, position within the document and/or an earlier comment or use the "files changed" view. I can't search for text in the HTML because it looks different. Also - documents change so text may be different but the point still valid. /thanks) |
|
Could I get an approval on this PR, please? I'm more than happy to further refine definitions. In order to progress on other sections of the document, I need the definitions to in the editing copy. And the vacation season approaches - the review cycle gets longer. I'll use a "working copy" approach to completing the document, not a multiple-PR approach. Then, changes can seen for review and progress made, while not needing approvals on small increments in separate PRs. |
simonstey
left a comment
There was a problem hiding this comment.
looks good for now, thx!
|
@liviorobaldo , @simonstey |
The V1 way wasn't very good at expressing the conditions on negation.
The idea is that well-formedness is defined on a sequence of rule elements and an initial set of active variables a rule is a body is sequence of rule elements where the initial set of active variables is empty.
A negation is a sequence of rule elements, with restrictions on the rule elements allowed, where the initial set of active variables is the accumulated of the body-level rule elements preceding the negation element.
Some definition changes - there is is no "rule body element" anymore, "condition" goes away and "condition element" becomes "filter element".