Skip to content

Commit 5ed3156

Browse files
authored
Merge pull request #255 from w3c/Issue212
Fixes inconsistency in the definition versus the use of the 'Filter' algebra operator
2 parents a81b291 + 6c9575a commit 5ed3156

File tree

1 file changed

+19
-9
lines changed

1 file changed

+19
-9
lines changed

spec/index.html

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9904,14 +9904,20 @@ <h3>SPARQL Algebra</h3>
99049904
described above.</p>
99059905
<div class="defn">
99069906
<p><b>Definition: <span id="defn_algFilter">Filter</span></b></p>
9907-
<p>Let <var>Ω</var> be a multiset of solution mappings and <var>expr</var> be an expression. We define:</p>
9908-
<p><a href="#defn_algFilter" class="algFct">Filter</a>(<var>expr</var>, <var>Ω</var>) = { <var>μ</var> | <var>μ</var> in <var>Ω</var> and <var>expr</var>(<var>μ</var>) is an expression that has an
9907+
<p>Let <var>Ω</var> be a multiset of solution mappings,
9908+
<var>expr</var> be an <a href="#expressions">expression</a>,
9909+
|D| be a <a href="#sparqlDataset">dataset</a>,
9910+
and |G| be the <a href="#defn_ActiveGraph">active graph</a>.
9911+
We define:</p>
9912+
<p><a href="#defn_algFilter" class="algFct">Filter</a>(<var>expr</var>, <var>Ω</var>, |D|, |G|) = { <var>μ</var> in <var>Ω</var> | <var>expr</var>(<var>μ</var>) is an expression that has an
99099913
effective boolean value of true }</p>
9910-
<p><a href="#defn_Multiplicity">multiplicity</a>( <var>μ</var> | <a href="#defn_algFilter" class="algFct">Filter</a>(<var>expr</var>, <var>Ω</var>) )
9914+
<div class="issue" data-number="254">
9915+
It is not clear what <var>expr</var>(<var>μ</var>) is, and it is not apparent in the formula that the expression |expr| is meant to be evaluated not only with respect to <var>μ</var> but also with respect to |D| with active graph |G|.</div>
9916+
<p><a href="#defn_Multiplicity">multiplicity</a>( <var>μ</var> | <a href="#defn_algFilter" class="algFct">Filter</a>(<var>expr</var>, <var>Ω</var>, |D|, |G|) )
99119917
= <a href="#defn_Multiplicity">multiplicity</a>( <var>μ</var> | <var>Ω</var> )</p>
99129918
<blockquote>
9913-
Note that evaluating an <code>exists(pattern)</code> expression uses the dataset and
9914-
active graph, D(G). See the <a href="#defn_evalFilter">evaluation of filter</a>.
9919+
Note that evaluating an <code>exists(pattern)</code> expression uses the dataset |D| and
9920+
active graph |G|. See the <a href="#defn_evalFilter">evaluation of filter</a>.
99159921
</blockquote>
99169922
</div>
99179923
<div class="defn">
@@ -9933,10 +9939,12 @@ <h3>SPARQL Algebra</h3>
99339939
<div class="defn">
99349940
<p><b>Definition: <span id="defn_algDiff">Diff</span></b></p>
99359941
<p>Let <var>Ω<sub>1</sub></var> and <var>Ω<sub>2</sub></var> be multisets of solution mappings and <var>expr</var> be an
9936-
expression. We define:</p>
9942+
<a href="#expressions">expression</a>. We define:</p>
99379943
<p><a href="#defn_algDiff" class="algFct">Diff</a>(<var>Ω<sub>1</sub></var>, <var>Ω<sub>2</sub></var>, <var>expr</var>) = { <var>μ</var> | <var>μ</var> in <var>Ω<sub>1</sub></var> such that ∀ <var>μ'</var> in
99389944
<var>Ω<sub>2</sub></var>, either <var>μ</var> and <var>μ'</var> are not <a href="#defn_algCompatibleMapping">compatible</a> or <var>μ</var> and <var>μ'</var> are <a href="#defn_algCompatibleMapping">compatible</a> and
99399945
<var>expr</var>(merge(<var>μ</var>, <var>μ'</var>)) does not have an effective boolean value of true }</p>
9946+
<div class="issue" data-number="254">
9947+
It is not clear what <var>expr</var>(<var>μ</var>) is, and it is not apparent in the formula that the expression |expr| is meant to be evaluated not only with respect to <var>μ</var> but also with respect to |D| with active graph |G|.</div>
99409948
<p><a href="#defn_Multiplicity">multiplicity</a>( <var>μ</var> | <a href="#defn_algDiff" class="algFct">Diff</a>(<var>Ω<sub>1</sub></var>, <var>Ω<sub>2</sub></var>, <var>expr</var>) ) =
99419949
<a href="#defn_Multiplicity">multiplicity</a>( <var>μ</var> | <var>Ω<sub>1</sub></var> )</p>
99429950
</div>
@@ -9946,7 +9954,7 @@ <h3>SPARQL Algebra</h3>
99469954
<div class="defn">
99479955
<p><b>Definition: <span id="defn_algLeftJoin">LeftJoin</span></b></p>
99489956
<p>Let <var>Ω<sub>1</sub></var> and <var>Ω<sub>2</sub></var> be multisets of solution mappings and <var>expr</var> be an
9949-
expression. We define:</p>
9957+
<a href="#expressions">expression</a>. We define:</p>
99509958
<p><a href="#defn_algLeftJoin" class="algFct">LeftJoin</a>(<var>Ω<sub>1</sub></var>, <var>Ω<sub>2</sub></var>, <var>expr</var>) = <a href="#defn_algFilter" class="algFct">Filter</a>(<var>expr</var>, <a href="#defn_algJoin" class="algFct">Join</a>(<var>Ω<sub>1</sub></var>,
99519959
<var>Ω<sub>2</sub></var>)) ∪ <a href="#defn_algDiff" class="algFct">Diff</a>(<var>Ω<sub>1</sub></var>, <var>Ω<sub>2</sub></var>, <var>expr</var>)</p>
99529960
<p><a href="#defn_Multiplicity">multiplicity</a>( <var>μ</var> | <a href="#defn_algLeftJoin" class="algFct">LeftJoin</a>(<var>Ω<sub>1</sub></var>, <var>Ω<sub>2</sub></var>, <var>expr</var>) ) =
@@ -9984,6 +9992,8 @@ <h3>SPARQL Algebra</h3>
99849992
<p>Let <var>μ</var> be a solution mapping, <var>Ω</var> a multiset of solution mappings, <var>var</var> a variable
99859993
and <var>expr</var> be an <a href="#expressions">expression</a>, then we define:</p>
99869994
<p><a href="#defn_algExtend" class="algFct">Extend</a>(<var>μ</var>, <var>var</var>, <var>expr</var>) = <var>μ</var> ∪ { (<var>var</var>, <var>value</var>) | <var>var</var> not in dom(<var>μ</var>) and <var>value</var> = <var>expr</var>(<var>μ</var>) }</p>
9995+
<div class="issue" data-number="254">
9996+
It is not clear what <var>expr</var>(<var>μ</var>) is, and it is not apparent in the formula that the expression |expr| is meant to be evaluated not only with respect to <var>μ</var> but also with respect to |D| with active graph |G|.</div>
99879997
<p><a href="#defn_algExtend" class="algFct">Extend</a>(<var>μ</var>, <var>var</var>, <var>expr</var>) = <var>μ</var> if <var>var</var> not in dom(<var>μ</var>) and expr(<var>μ</var>) is an error</p>
99889998
<p><a href="#defn_algExtend" class="algFct">Extend</a> is undefined if <var>var</var> in dom(<var>μ</var>).</p>
99899999
<p><a href="#defn_algExtend" class="algFct">Extend</a>(<var>Ω</var>, <var>var</var>, <var>expr</var>) = { <a href="#defn_algExtend" class="algFct">Extend</a>(<var>μ</var>, <var>var</var>, <var>expr</var>) | <var>μ</var> in <var>Ω</var> }</p>
@@ -10437,7 +10447,7 @@ <h3>Evaluation Semantics</h3>
1043710447
<ul>
1043810448
<li>|P|, <var>P<sub>1</sub></var>, <var>P<sub>2</sub></var> : graph patterns</li>
1043910449
<li>|L| : a solution sequence</li>
10440-
<li>|F| : an expression</li>
10450+
<li>|F| : an <a href="#expressions">expression</a></li>
1044110451
</ul>
1044210452
<div class="issue" data-number="225">
1044310453
The definitions in this section do not cover the cases in which
@@ -10454,7 +10464,7 @@ <h3>Evaluation Semantics</h3>
1045410464
</div>
1045510465
<div class="defn">
1045610466
<p><b>Definition: <span id="defn_evalFilter">Evaluation of Filter</span></b></p>
10457-
<p><a href="#defn_eval" class="evalFct">eval</a>( |D|(|G|), <a href="#defn_absFilter" class="absOp">Filter</a>(|F|, |P|) ) = <a href="#defn_algFilter" class="algFct">Filter</a>( |F|, <a href="#defn_eval" class="evalFct">eval</a>(|D|(|G|), |P|), |D|(|G|) )</p>
10467+
<p><a href="#defn_eval" class="evalFct">eval</a>( |D|(|G|), <a href="#defn_absFilter" class="absOp">Filter</a>(|F|, |P|) ) = <a href="#defn_algFilter" class="algFct">Filter</a>( |F|, <a href="#defn_eval" class="evalFct">eval</a>(|D|(|G|), |P|), |D|, |G| )</p>
1045810468
</div>
1045910469
<p>'substitute' is a filter function in support of the evaluation of
1046010470
<a href="#func-filter-exists"><code>EXISTS</code>

0 commit comments

Comments
 (0)