- https://github.com/w3c/data-shapes/blob/gh-pages/sparql12-rl/index.html#L1097-L1098 ->
V_all is defined as V_N where N is the length of the rule-element sequence. But V_i is defined at index.html:1092-1094 as the union of V_0 and all vars_j for j less than i. Therefore V_N = V_0 ∪ vars_1 ∪ ... ∪ vars_(N-1)
=> it excludes vars_N, the variables contributed by the last element of the body. A rule whose head variable is bound only by its final body element is therefore not a well-formed rule per the text, or am I missing something?
Suggested fix:
Let Vall be the union of V0 and all varsj for j from 1 to N, where N is the length of the sequence.
index.html:1891 -> inside evalFunction:
return F(evalFunction(expr1, row), ..., evalFunction(exprN, row))
=> shouldnt row be replaced with μ?
sparql-rl-grammar.bnf:16 -> (ForClause ::= 'FOR' Var 'IN' iri), referenced from sparql-rl-grammar.bnf:12 (Rule1) and :13 (Rule2)
-> CHANGES.md:22 states: "FOR ?var IN <shape>" removed.
=>But it was not removed from the grammar. (it's also still used in syntax-ruleset-structure-10.srl)
sparql-rl-grammar.bnf:13** (Rule2 ::= 'IF' iri? ForClause? 'DATA'? BodyPattern 'THEN' HeadTemplate)
=> this is also not part of the spec anymore
V_allis defined asV_NwhereNis the length of the rule-element sequence. ButV_iis defined atindex.html:1092-1094as the union ofV_0and allvars_jforjless thani. ThereforeV_N = V_0 ∪ vars_1 ∪ ... ∪ vars_(N-1)=> it excludes
vars_N, the variables contributed by the last element of the body. A rule whose head variable is bound only by its final body element is therefore not a well-formed rule per the text, or am I missing something?Suggested fix:
index.html:1891-> insideevalFunction:=> shouldnt
rowbe replaced withμ?sparql-rl-grammar.bnf:16-> (ForClause ::= 'FOR' Var 'IN' iri), referenced fromsparql-rl-grammar.bnf:12(Rule1) and:13(Rule2)->
CHANGES.md:22states:"FOR ?var IN <shape>" removed.=>But it was not removed from the grammar. (it's also still used in syntax-ruleset-structure-10.srl)
sparql-rl-grammar.bnf:13** (Rule2 ::= 'IF' iri? ForClause? 'DATA'? BodyPattern 'THEN' HeadTemplate)=> this is also not part of the spec anymore