@@ -10656,7 +10656,7 @@ <h4>Syntax Restriction</h4>
10656
10656
</table>
10657
10657
<div class="note">
10658
10658
<p>
10659
- This restriction means that <a href="#defn_valuesinsertion"> values inserted</a>
10659
+ This restriction means that inserted values
10660
10660
do not conflict with values assigned to variables within the pattern.
10661
10661
</p>
10662
10662
<p>
@@ -10679,13 +10679,14 @@ <h4>Remapping</h4>
10679
10679
<div class="defn">
10680
10680
<b>Definition: <span id="defn_projmap">Projection Expression Variable Remapping</span></b>
10681
10681
<p>
10682
- For a projection algebra operation #sparqlProjection `Project(A, PV)` acting on algreg express `A` and with set of variables `PV`, define
10683
- a partial mapping `F` from
10684
- `<a href="#sparqlQueryVariables">V</a>`,
10685
- the set of all variables, to `V` where:
10682
+ For a <a href="#sparqlProjection">projection algebra operation</a>
10683
+ `Project(A, PV)` acting on algebra expression `A` and with set of variables `PV`,
10684
+ define a mapping `F` from `V`,
10685
+ <a href="#sparqlQueryVariables">the set of all variables</a>,
10686
+ to `V` where:
10686
10687
</p>
10687
- <pre>F(v) = v1 if v is in PV, where v1 is a fresh variable
10688
- F(v) = v if v is not in PV</pre>
10688
+ <pre>F(v) = v1 if v is not in PV, where v1 is a fresh variable
10689
+ F(v) = v if v is in PV</pre>
10689
10690
<p>
10690
10691
Define the Projection Expression Variable Remapping `ProjectMap(P, PV)`
10691
10692
</p>
@@ -10703,15 +10704,15 @@ <h4>Remapping</h4>
10703
10704
<div class="defn">
10704
10705
<b>Definition: <span id="defn_varrename">Variable Remapping</span></b>
10705
10706
<p>
10706
- For any algebra expression `X`, define the Variable Remapping `PrjMap(X)`
10707
+ For any algebra expression `X`, define the Variable Remapping `PrjMap(X)`
10707
10708
of algebra expression `X`:
10708
10709
</p>
10709
10710
<pre>PrjMap(X) = replace all project operations Project(P, PV)
10710
- with ProjectMap(P , PV) for each projection in X.</pre>
10711
+ with ProjectMap(Project(A, PV) , PV) for each projection in X.</pre>
10711
10712
</div>
10712
10713
<p>
10713
10714
The outcome of `PrjMap` is independent of the order of replacement
10714
- (e.g. bottom-up or top-down) .
10715
+ (whether " bottom-up" or " top-down") order .
10715
10716
Replacements may happen several times, depending on recursive order
10716
10717
but each time a replacement is made, the variable not used anywhere else.
10717
10718
</p>
@@ -10744,6 +10745,7 @@ <h4>Values Insertion</h4>
10744
10745
being the current binding of the enclosing filter.
10745
10746
</p>
10746
10747
</div>
10748
+ <p class="ednote">Need to define `BindingInScope`</p>
10747
10749
</div>
10748
10750
10749
10751
<div class="defn">
@@ -10752,13 +10754,14 @@ <h4>Values Insertion</h4>
10752
10754
<p>
10753
10755
During <a href="#sparqlQuery">translation to the SPARQL algebra</a>
10754
10756
</p>
10757
+ <p class="ednote">Define putting in the `BindingInScope` operator</p>
10755
10758
<pre>
10756
- Replace each occurence of `Y` in X where `Y` is one of
10759
+ Replace each occurence of Y where Y is one of
10757
10760
<a href="#sparqlTranslateBasicGraphPatterns">Basic Graph Pattern</a>,
10758
- <a href="#sparqlTranslatePathExpressions ">Property Path Expression </a>,
10759
- <a href="#sparqlTranslateGraphPatterns">` Graph(Var, pattern)` </a>,
10761
+ <a href="#sparqlTranslatePathPatterns ">Property Path Patterns </a>,
10762
+ <a href="#sparqlTranslateGraphPatterns">Graph(Var, pattern)</a>,
10760
10763
<a href="#https://www.w3.org/TR/sparql12-query/#sparqlTranslateGraphPatterns">Inline Data</a>
10761
- with ` join(Y, BindingInScope())` .</pre>
10764
+ with join(Y, BindingInScope()).</pre>
10762
10765
</div>
10763
10766
<div class="note">
10764
10767
c.f. section <a href="#sparqlTranslateGraphPatterns">Translate Graph Patterns</a>
@@ -10780,18 +10783,18 @@ <h4>Values Insertion</h4>
10780
10783
</p>
10781
10784
<div class="defn">
10782
10785
<div>
10783
- <b>Definition: <span id="defn_valuesinsertion">Values Insertion </span></b>
10786
+ <b>Definition: <span id="defn_insertvalues">Insert Values </span></b>
10784
10787
<p>
10785
- Define the Values Insertion function `ValuesInsert (X, μ)`
10788
+ Define the function `InsertValues (X, μ)`
10786
10789
</p>
10787
10790
<pre>Let Table(μ) = { μ } and multiplicity( μ | Table(μ) = { μ } ) = 1
10788
10791
10789
- Replace each occurence of `Y` in X where `Y` is one of
10792
+ Replace each occurence of Y in X where Y is one of
10790
10793
<a href="#sparqlTranslateBasicGraphPatterns">Basic Graph Pattern</a>,
10791
- <a href="#sparqlTranslatePathExpressions ">Property Path Expression </a>,
10792
- <a href="#sparqlTranslateGraphPatterns">` Graph(Var, pattern)` </a>,
10794
+ <a href="#sparqlTranslatePathPatterns ">Property Path Patterns </a>,
10795
+ <a href="#sparqlTranslateGraphPatterns">Graph(Var, pattern)</a>,
10793
10796
<a href="#https://www.w3.org/TR/sparql12-query/#sparqlTranslateGraphPatterns">Inline Data</a>
10794
- with ` join(Y, Table(μ))` .</pre>
10797
+ with join(Y, Table(μ)).</pre>
10795
10798
10796
10799
</div>
10797
10800
</div>
@@ -10805,8 +10808,11 @@ <h4>Evaluation of EXISTS</h4>
10805
10808
Let `μ` be the current solution mapping for a filter, and `X` a graph pattern,
10806
10809
define the Evaluation of Exists `exists(X)`
10807
10810
</p>
10811
+ <p class="ednote">
10812
+ @@ Set up the current row for `BindingdInScope`.
10813
+ </p>
10808
10814
<pre>exists(X) = true
10809
- if eval( D(G), ValuesInScope(PrjMap(X)), μ)
10815
+ if eval( D(G), μ)
10810
10816
is a non-empty solution sequence.
10811
10817
exists(X) = false otherwise</pre>
10812
10818
</div>
0 commit comments