Skip to content

Commit 2a76378

Browse files
authored
Merge pull request #315 from w3c/Issue314
Minor edits in the definition of ALP
2 parents d650b65 + a1f48b3 commit 2a76378

File tree

1 file changed

+11
-13
lines changed

1 file changed

+11
-13
lines changed

spec/index.html

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9959,7 +9959,7 @@ <h3>Property Path Patterns</h3>
99599959
either (<var>yn</var> in <a href="#defn_nodeSet">nodes</a>(<var>G</var>) and <var>xn</var> = <var>yn</var>)
99609960
or {(<var>X</var>, <var>xn</var>), (<var>Y</var>, <var>yn</var>)} in ppeval(<var>X</var>, <var>ppe</var>, <var>Y</var>) }</pre>
99619961
</div>
9962-
<p>We define an auxiliary function, <a href="#defn_evalALP_1">ALP</a>, used in the definitions of <a href="#defn_evalZeroOrMorePath">ZeroOrMorePath</a> and
9962+
<p>We define an auxiliary function, <a href="#defn_evalALP">ALP</a>, used in the definitions of <a href="#defn_evalZeroOrMorePath">ZeroOrMorePath</a> and
99639963
<a href="#defn_evalOneOrMorePath">OneOrMorePath</a>. Note that the algorithm given here serves to specify the feature. An
99649964
implementor is free to implement evaluation by any method that produces the same results
99659965
for the query overall. The <a href="#defn_ppeZeroOrMorePath" class="ppeOp">ZeroOrMorePath</a> and <a href="#defn_ppeOneOrMorePath" class="ppeOp">OneOrMorePath</a> forms return matches based on
@@ -9971,26 +9971,24 @@ <h3>Property Path Patterns</h3>
99719971
a node has been visited for the path under consideration, it is not a candidate for another
99729972
step.</p>
99739973
<div class="defn">
9974-
<p><b>Definition: <span id="defn_evalALP_1">Function ALP</span></b></p>
9974+
<p><b>Definition: <span id="defn_evalALP">Function ALP</span><span id="defn_evalALP_1"><!-- obsolete id --></span></b></p>
99759975
<pre class="nohighlight">
99769976
Let <var>ppe</var> be an <a href="#defn_AlgebraicPropertyPathExpression">algebraic property path expression</a>.
99779977
Let <span id="defn_reachableTerms"><var>reachableTerms</var></span>(<var>x</var>:term, <var>ppe</var>) be the set of RDF terms
99789978
reached by repeated matches of <var>ppe</var>,
99799979
when starting at RDF term <var>x</var>.
99809980

9981-
<a href="#defn_evalALP_1">ALP</a>(<var>x</var>:term, <var>ppe</var>) =
9982-
Let <var>V</var> = empty set
9983-
<a href="#defn_evalALP_1">ALP</a>(<var>x</var>:term, <var>ppe</var>, <var>V</var>)
9981+
<a href="#defn_evalALP">ALP</a>(<var>x</var>:term, <var>ppe</var>) =
9982+
Let <var>V</var> = empty set of terms
9983+
<a href="#defn_evalALP_recurse">ALP_recurse</a>(<var>x</var>:term, <var>ppe</var>, <var>V</var>)
99849984
return is <var>V</var>
99859985

9986-
# <var>V</var> is the set of nodes visited
9987-
9988-
<a href="#defn_evalALP_1">ALP</a>(<var>x</var>:term, <var>ppe</var>, <var>V</var>:set of RDF terms) =
9986+
<a id="defn_evalALP_recurse" href="#defn_evalALP_recurse">ALP_recurse</a>(<var>x</var>:term, <var>ppe</var>, <var>V</var>:set of RDF terms) =
99899987
if ( <var>x</var> in <var>V</var> ) return
99909988
add <var>x</var> to <var>V</var>
99919989
<var>X</var> = <a href="#defn_reachableTerms"><var>reachableTerms</var></a>(<var>x</var>, <var>ppe</var>)
99929990
For <var>n</var>:term in <var>X</var>
9993-
<a href="#defn_evalALP_1">ALP</a>(<var>n</var>, <var>ppe</var>, <var>V</var>)
9991+
<a href="#defn_evalALP_recurse">ALP_recurse</a>(<var>n</var>, <var>ppe</var>, <var>V</var>)
99949992
End
99959993
</pre>
99969994
</div>
@@ -10000,7 +9998,7 @@ <h3>Property Path Patterns</h3>
100009998
Let <var>G</var> be the <a href="#defn_ActiveGraph">active graph</a>.</p>
100019999
<pre class="nohighlight">
1000210000
ppeval(<var>X</var>:term, <a href="#defn_ppeZeroOrMorePath" class="ppeOp">ZeroOrMorePath</a>(<var>ppe</var>), <var>vy</var>:var) =
10003-
{ { (<var>vy</var>, <var>n</var>) } | <var>n</var> in <a href="#defn_evalALP_1">ALP</a>(<var>X</var>, <var>ppe</var>) }
10001+
{ { (<var>vy</var>, <var>n</var>) } | <var>n</var> in <a href="#defn_evalALP">ALP</a>(<var>X</var>, <var>ppe</var>) }
1000410002

1000510003
ppeval(<var>vx</var>:var, <a href="#defn_ppeZeroOrMorePath" class="ppeOp">ZeroOrMorePath</a>(<var>ppe</var>), <var>vy</var>:var) =
1000610004
{ { (<var>vx</var>, <var>t</var>), (<var>vy</var>, <var>n</var>) } |
@@ -10026,7 +10024,7 @@ <h3>Property Path Patterns</h3>
1002610024
Let <var>X</var> = <a href="#defn_reachableTerms"><var>reachableTerms</var></a>(<var>x</var>, <var>ppe</var>)
1002710025
Let <var>V</var> = the empty multiset
1002810026
For <var>n</var> in <var>X</var>
10029-
<a href="#defn_evalALP_1">ALP</a>(<var>n</var>, <var>ppe</var>, <var>V</var>)
10027+
<a href="#defn_evalALP_recurse">ALP_recurse</a>(<var>n</var>, <var>ppe</var>, <var>V</var>)
1003010028
End
1003110029
result is <var>V</var>
1003210030

@@ -12755,7 +12753,7 @@ <h2>Changes between SPARQL 1.1 Query Language and SPARQL 1.2 Query Language</h2>
1275512753
in <a href="#PropertyPathPatterns" class="sectionRef"></a>
1275612754
from <i>eval</i> to <i>ppeval</i>.</li>
1275712755
<li>Rename the function used within the definition of
12758-
the <a href="#defn_evalALP_1">ALP</a> function
12756+
the <a href="#defn_evalALP">ALP</a> function
1275912757
from <i>eval</i> to <i>reachableTerms</i>.</li>
1276012758
<li>Add section <a href="#sparql-error" class="sectionRef"></a> about SPARQL expression evaluation errors</a>.</li>
1276112759
<li>Rename section "Filter evaluation" as <a href="#expression-evaluation" class="sectionRef"></a>.</li>
@@ -12773,7 +12771,7 @@ <h2>Changes between SPARQL 1.1 Query Language and SPARQL 1.2 Query Language</h2>
1277312771
<li><a href="https://www.w3.org/2013/sparql-errata#clarification-query-1">clarification-query-1</a>: Fix explanation of IN and NOT IN in <a href="#func-in" class="sectionRef"></a> and <a href="#func-not-in" class="sectionRef"></a></li>
1277412772
<li><a href="https://www.w3.org/2013/sparql-errata#clarification-query-2">clarification-query-2</a>: Remove unneeded reference to the semantics above in <a href="#operatorExtensibility" class="sectionRef"></a></li>
1277512773
<li><a href="https://www.w3.org/2013/sparql-errata#clarification-query-3">clarification-query-3</a>: Rephrase equality definition in <a href="#func-sameValue" class="sectionRef"></a></li>
12776-
<li><a href="https://www.w3.org/2013/sparql-errata#errata-query-1">errata-query-1</a>: Let V be an empty set instead of empty multiset in <a href="#defn_evalALP_1">Function ALP definition</a></li>
12774+
<li><a href="https://www.w3.org/2013/sparql-errata#errata-query-1">errata-query-1</a>: Let V be an empty set instead of empty multiset in <a href="#defn_evalALP">Function ALP definition</a></li>
1277712775
<li><a href="https://www.w3.org/2013/sparql-errata#errata-query-2">errata-query-2</a>: Fix grammar of PropertyListPathNotEmpty in <a href="#grammar" class="sectionRef"></a></li>
1277812776
<li><a href="https://www.w3.org/2013/sparql-errata#errata-query-4">errata-query-4</a>: Fix CONCAT definition for zero and one argument in <a href="#func-concat" class="sectionRef"></a></li>
1277912777
<li><a href="https://www.w3.org/2013/sparql-errata#errata-query-5">errata-query-5</a>: Mention illegal nesting of aggregates in <a href="#sparqlGrammar" class="sectionRef"></a></li>

0 commit comments

Comments
 (0)