@@ -10631,7 +10631,7 @@ <h4>Syntax Restriction</h4>
10631
10631
</table>
10632
10632
<div class="note">
10633
10633
<p>
10634
- This restriction means that <a href="#defn_valuesinsertion"> values inserted</a>
10634
+ This restriction means that inserted values
10635
10635
do not conflict with values assigned to variables within the pattern.
10636
10636
</p>
10637
10637
<p>
@@ -10654,13 +10654,14 @@ <h4>Remapping</h4>
10654
10654
<div class="defn">
10655
10655
<b>Definition: <span id="defn_projmap">Projection Expression Variable Remapping</span></b>
10656
10656
<p>
10657
- For a projection algebra operation #sparqlProjection `Project(A, PV)` acting on algreg express `A` and with set of variables `PV`, define
10658
- a partial mapping `F` from
10659
- `<a href="#sparqlQueryVariables">V</a>`,
10660
- the set of all variables, to `V` where:
10657
+ For a <a href="#sparqlProjection">projection algebra operation</a>
10658
+ `Project(A, PV)` acting on algebra expression `A` and with set of variables `PV`,
10659
+ define a mapping `F` from `V`,
10660
+ <a href="#sparqlQueryVariables">the set of all variables</a>,
10661
+ to `V` where:
10661
10662
</p>
10662
- <pre>F(v) = v1 if v is in PV, where v1 is a fresh variable
10663
- F(v) = v if v is not in PV</pre>
10663
+ <pre>F(v) = v1 if v is not in PV, where v1 is a fresh variable
10664
+ F(v) = v if v is in PV</pre>
10664
10665
<p>
10665
10666
Define the Projection Expression Variable Remapping `ProjectMap(P, PV)`
10666
10667
</p>
@@ -10678,15 +10679,15 @@ <h4>Remapping</h4>
10678
10679
<div class="defn">
10679
10680
<b>Definition: <span id="defn_varrename">Variable Remapping</span></b>
10680
10681
<p>
10681
- For any algebra expression `X`, define the Variable Remapping `PrjMap(X)`
10682
+ For any algebra expression `X`, define the Variable Remapping `PrjMap(X)`
10682
10683
of algebra expression `X`:
10683
10684
</p>
10684
10685
<pre>PrjMap(X) = replace all project operations Project(P, PV)
10685
- with ProjectMap(P , PV) for each projection in X.</pre>
10686
+ with ProjectMap(Project(A, PV) , PV) for each projection in X.</pre>
10686
10687
</div>
10687
10688
<p>
10688
10689
The outcome of `PrjMap` is independent of the order of replacement
10689
- (e.g. bottom-up or top-down) .
10690
+ (whether " bottom-up" or " top-down") order .
10690
10691
Replacements may happen several times, depending on recursive order
10691
10692
but each time a replacement is made, the variable not used anywhere else.
10692
10693
</p>
@@ -10719,6 +10720,7 @@ <h4>Values Insertion</h4>
10719
10720
being the current binding of the enclosing filter.
10720
10721
</p>
10721
10722
</div>
10723
+ <p class="ednote">Need to define `BindingInScope`</p>
10722
10724
</div>
10723
10725
10724
10726
<div class="defn">
@@ -10727,13 +10729,14 @@ <h4>Values Insertion</h4>
10727
10729
<p>
10728
10730
During <a href="#sparqlQuery">translation to the SPARQL algebra</a>
10729
10731
</p>
10732
+ <p class="ednote">Define putting in the `BindingInScope` operator</p>
10730
10733
<pre>
10731
- Replace each occurence of `Y` in X where `Y` is one of
10734
+ Replace each occurence of Y where Y is one of
10732
10735
<a href="#sparqlTranslateBasicGraphPatterns">Basic Graph Pattern</a>,
10733
- <a href="#sparqlTranslatePathExpressions ">Property Path Expression </a>,
10734
- <a href="#sparqlTranslateGraphPatterns">` Graph(Var, pattern)` </a>,
10736
+ <a href="#sparqlTranslatePathPatterns ">Property Path Patterns </a>,
10737
+ <a href="#sparqlTranslateGraphPatterns">Graph(Var, pattern)</a>,
10735
10738
<a href="#https://www.w3.org/TR/sparql12-query/#sparqlTranslateGraphPatterns">Inline Data</a>
10736
- with ` join(Y, BindingInScope())` .</pre>
10739
+ with join(Y, BindingInScope()).</pre>
10737
10740
</div>
10738
10741
<div class="note">
10739
10742
c.f. section <a href="#sparqlTranslateGraphPatterns">Translate Graph Patterns</a>
@@ -10755,18 +10758,18 @@ <h4>Values Insertion</h4>
10755
10758
</p>
10756
10759
<div class="defn">
10757
10760
<div>
10758
- <b>Definition: <span id="defn_valuesinsertion">Values Insertion </span></b>
10761
+ <b>Definition: <span id="defn_insertvalues">Insert Values </span></b>
10759
10762
<p>
10760
- Define the Values Insertion function `ValuesInsert (X, μ)`
10763
+ Define the function `InsertValues (X, μ)`
10761
10764
</p>
10762
10765
<pre>Let Table(μ) = { μ } and multiplicity( μ | Table(μ) = { μ } ) = 1
10763
10766
10764
- Replace each occurence of `Y` in X where `Y` is one of
10767
+ Replace each occurence of Y in X where Y is one of
10765
10768
<a href="#sparqlTranslateBasicGraphPatterns">Basic Graph Pattern</a>,
10766
- <a href="#sparqlTranslatePathExpressions ">Property Path Expression </a>,
10767
- <a href="#sparqlTranslateGraphPatterns">` Graph(Var, pattern)` </a>,
10769
+ <a href="#sparqlTranslatePathPatterns ">Property Path Patterns </a>,
10770
+ <a href="#sparqlTranslateGraphPatterns">Graph(Var, pattern)</a>,
10768
10771
<a href="#https://www.w3.org/TR/sparql12-query/#sparqlTranslateGraphPatterns">Inline Data</a>
10769
- with ` join(Y, Table(μ))` .</pre>
10772
+ with join(Y, Table(μ)).</pre>
10770
10773
10771
10774
</div>
10772
10775
</div>
@@ -10780,8 +10783,11 @@ <h4>Evaluation of EXISTS</h4>
10780
10783
Let `μ` be the current solution mapping for a filter, and `X` a graph pattern,
10781
10784
define the Evaluation of Exists `exists(X)`
10782
10785
</p>
10786
+ <p class="ednote">
10787
+ @@ Set up the current row for `BindingdInScope`.
10788
+ </p>
10783
10789
<pre>exists(X) = true
10784
- if eval( D(G), ValuesInScope(PrjMap(X)), μ)
10790
+ if eval( D(G), μ)
10785
10791
is a non-empty solution sequence.
10786
10792
exists(X) = false otherwise</pre>
10787
10793
</div>
0 commit comments