@@ -10679,7 +10679,7 @@ <h4>Syntax Restriction</h4>
10679
10679
</table>
10680
10680
<div class="note">
10681
10681
<p>
10682
- This restriction means that <a href="#defn_valuesinsertion"> values inserted</a>
10682
+ This restriction means that inserted values
10683
10683
do not conflict with values assigned to variables within the pattern.
10684
10684
</p>
10685
10685
<p>
@@ -10702,13 +10702,14 @@ <h4>Remapping</h4>
10702
10702
<div class="defn">
10703
10703
<b>Definition: <span id="defn_projmap">Projection Expression Variable Remapping</span></b>
10704
10704
<p>
10705
- For a projection algebra operation #sparqlProjection `Project(A, PV)` acting on algreg express `A` and with set of variables `PV`, define
10706
- a partial mapping `F` from
10707
- `<a href="#sparqlQueryVariables">V</a>`,
10708
- the set of all variables, to `V` where:
10705
+ For a <a href="#sparqlProjection">projection algebra operation</a>
10706
+ `Project(A, PV)` acting on algebra expression `A` and with set of variables `PV`,
10707
+ define a mapping `F` from `V`,
10708
+ <a href="#sparqlQueryVariables">the set of all variables</a>,
10709
+ to `V` where:
10709
10710
</p>
10710
- <pre>F(v) = v1 if v is in PV, where v1 is a fresh variable
10711
- F(v) = v if v is not in PV</pre>
10711
+ <pre>F(v) = v1 if v is not in PV, where v1 is a fresh variable
10712
+ F(v) = v if v is in PV</pre>
10712
10713
<p>
10713
10714
Define the Projection Expression Variable Remapping `ProjectMap(P, PV)`
10714
10715
</p>
@@ -10726,15 +10727,15 @@ <h4>Remapping</h4>
10726
10727
<div class="defn">
10727
10728
<b>Definition: <span id="defn_varrename">Variable Remapping</span></b>
10728
10729
<p>
10729
- For any algebra expression `X`, define the Variable Remapping `PrjMap(X)`
10730
+ For any algebra expression `X`, define the Variable Remapping `PrjMap(X)`
10730
10731
of algebra expression `X`:
10731
10732
</p>
10732
10733
<pre>PrjMap(X) = replace all project operations Project(P, PV)
10733
- with ProjectMap(P , PV) for each projection in X.</pre>
10734
+ with ProjectMap(Project(A, PV) , PV) for each projection in X.</pre>
10734
10735
</div>
10735
10736
<p>
10736
10737
The outcome of `PrjMap` is independent of the order of replacement
10737
- (e.g. bottom-up or top-down) .
10738
+ (whether " bottom-up" or " top-down") order .
10738
10739
Replacements may happen several times, depending on recursive order
10739
10740
but each time a replacement is made, the variable not used anywhere else.
10740
10741
</p>
@@ -10767,6 +10768,7 @@ <h4>Values Insertion</h4>
10767
10768
being the current binding of the enclosing filter.
10768
10769
</p>
10769
10770
</div>
10771
+ <p class="ednote">Need to define `BindingInScope`</p>
10770
10772
</div>
10771
10773
10772
10774
<div class="defn">
@@ -10775,13 +10777,14 @@ <h4>Values Insertion</h4>
10775
10777
<p>
10776
10778
During <a href="#sparqlQuery">translation to the SPARQL algebra</a>
10777
10779
</p>
10780
+ <p class="ednote">Define putting in the `BindingInScope` operator</p>
10778
10781
<pre>
10779
- Replace each occurence of `Y` in X where `Y` is one of
10782
+ Replace each occurence of Y where Y is one of
10780
10783
<a href="#sparqlTranslateBasicGraphPatterns">Basic Graph Pattern</a>,
10781
- <a href="#sparqlTranslatePathExpressions ">Property Path Expression </a>,
10782
- <a href="#sparqlTranslateGraphPatterns">` Graph(Var, pattern)` </a>,
10784
+ <a href="#sparqlTranslatePathPatterns ">Property Path Patterns </a>,
10785
+ <a href="#sparqlTranslateGraphPatterns">Graph(Var, pattern)</a>,
10783
10786
<a href="#https://www.w3.org/TR/sparql12-query/#sparqlTranslateGraphPatterns">Inline Data</a>
10784
- with ` join(Y, BindingInScope())` .</pre>
10787
+ with join(Y, BindingInScope()).</pre>
10785
10788
</div>
10786
10789
<div class="note">
10787
10790
c.f. section <a href="#sparqlTranslateGraphPatterns">Translate Graph Patterns</a>
@@ -10803,18 +10806,18 @@ <h4>Values Insertion</h4>
10803
10806
</p>
10804
10807
<div class="defn">
10805
10808
<div>
10806
- <b>Definition: <span id="defn_valuesinsertion">Values Insertion </span></b>
10809
+ <b>Definition: <span id="defn_insertvalues">Insert Values </span></b>
10807
10810
<p>
10808
- Define the Values Insertion function `ValuesInsert (X, μ)`
10811
+ Define the function `InsertValues (X, μ)`
10809
10812
</p>
10810
10813
<pre>Let Table(μ) = { μ } and multiplicity( μ | Table(μ) = { μ } ) = 1
10811
10814
10812
- Replace each occurence of `Y` in X where `Y` is one of
10815
+ Replace each occurence of Y in X where Y is one of
10813
10816
<a href="#sparqlTranslateBasicGraphPatterns">Basic Graph Pattern</a>,
10814
- <a href="#sparqlTranslatePathExpressions ">Property Path Expression </a>,
10815
- <a href="#sparqlTranslateGraphPatterns">` Graph(Var, pattern)` </a>,
10817
+ <a href="#sparqlTranslatePathPatterns ">Property Path Patterns </a>,
10818
+ <a href="#sparqlTranslateGraphPatterns">Graph(Var, pattern)</a>,
10816
10819
<a href="#https://www.w3.org/TR/sparql12-query/#sparqlTranslateGraphPatterns">Inline Data</a>
10817
- with ` join(Y, Table(μ))` .</pre>
10820
+ with join(Y, Table(μ)).</pre>
10818
10821
10819
10822
</div>
10820
10823
</div>
@@ -10828,8 +10831,11 @@ <h4>Evaluation of EXISTS</h4>
10828
10831
Let `μ` be the current solution mapping for a filter, and `X` a graph pattern,
10829
10832
define the Evaluation of Exists `exists(X)`
10830
10833
</p>
10834
+ <p class="ednote">
10835
+ @@ Set up the current row for `BindingdInScope`.
10836
+ </p>
10831
10837
<pre>exists(X) = true
10832
- if eval( D(G), ValuesInScope(PrjMap(X)), μ)
10838
+ if eval( D(G), μ)
10833
10839
is a non-empty solution sequence.
10834
10840
exists(X) = false otherwise</pre>
10835
10841
</div>
0 commit comments