@@ -10715,7 +10715,7 @@ <h5>Sample</h5>
1071510715 </section>
1071610716 <section id="sparqlAlgebraEval">
1071710717 <h3>Evaluation Semantics</h3>
10718- <p id="defn_eval">We define <a href="#defn_eval" class="evalFct">eval</a>(|D|(|G|), |A |, <var>μ<sub>ctx</sub></var>) as the evaluation of an <a href="#defn_AlgebraicQueryExpression">algebraic query expression</a> |A | with
10718+ <p id="defn_eval">We define <a href="#defn_eval" class="evalFct">eval</a>(|D|(|G|), |AQE |, <var>μ<sub>ctx</sub></var>) as the evaluation of an <a href="#defn_AlgebraicQueryExpression">algebraic query expression</a> |AQE | with
1071910719 respect to a <a href="#sparqlDataset">dataset</a> |D| having <a href="#defn_ActiveGraph">active graph</a> |G|
1072010720 in correlation with solution mapping <var>μ<sub>ctx</sub></var>.</p>
1072110721 <p>The active graph is initially the default graph of |D| and
@@ -10727,15 +10727,13 @@ <h3>Evaluation Semantics</h3>
1072710727 as defined in <a href="#func-filter-exists" class="sectionRef"></a>.</p>
1072810728 <p>Further symbols used in the following definitions are:</p>
1072910729 <ul>
10730- <li>|P |, <var>P <sub>1</sub></var>, <var>P <sub>2</sub></var> : graph patterns</li>
10731- <li>|L| : a solution sequence </li>
10730+ <li>|A |, <var>A <sub>1</sub></var>, <var>A <sub>2</sub></var> :
10731+ <a href="#defn_AlgebraicQueryExpression">algebraic query expressions</a> </li>
1073210732 <li>|F| : an <a href="#expressions">expression</a></li>
1073310733 </ul>
10734- <div class="issue" data-number="308">
10735- |L| should not be a solution sequence but an <a href="#defn_AlgebraicQueryExpression">algebraic query expression</a>.</div>
1073610734<div class="issue" data-number="225">
1073710735 The definitions in this section do not cover the cases in which
10738- |A | is a sequence or a multiset of solution mappings.</div>
10736+ |AQE | is a sequence or a multiset of solution mappings.</div>
1073910737 <div class="defn">
1074010738 <p><b>Definition: <span id="defn_evalBasicGraphPattern">Evaluation of a Basic Graph Pattern</span></b></p>
1074110739 <p><a href="#defn_eval" class="evalFct">eval</a>( |D|(|G|), |BGP|, <var>μ<sub>ctx</sub></var> ) = multiset of solution mappings</p>
@@ -10752,49 +10750,49 @@ <h3>Evaluation Semantics</h3>
1075210750 </div>
1075310751 <div class="defn">
1075410752 <p><b>Definition: <span id="defn_evalFilter">Evaluation of Filter</span></b></p>
10755- <p><a href="#defn_eval" class="evalFct">eval</a>( |D|(|G|), <a href="#defn_absFilter" class="absOp">Filter</a>(|F|, |P |), <var>μ<sub>ctx</sub></var> ) = <a href="#defn_algFilter" class="algFct">Filter</a>( |F|, <a href="#defn_eval" class="evalFct">eval</a>(|D|(|G|), |P |, <var>μ<sub>ctx</sub></var>), |D|, |G| )</p>
10753+ <p><a href="#defn_eval" class="evalFct">eval</a>( |D|(|G|), <a href="#defn_absFilter" class="absOp">Filter</a>(|F|, |A |), <var>μ<sub>ctx</sub></var> ) = <a href="#defn_algFilter" class="algFct">Filter</a>( |F|, <a href="#defn_eval" class="evalFct">eval</a>(|D|(|G|), |A |, <var>μ<sub>ctx</sub></var>), |D|, |G| )</p>
1075610754 </div>
1075710755 <div class="defn">
1075810756 <p><b>Definition: <span id="defn_evalJoin">Evaluation of Join</span></b></p>
10759- <p><a href="#defn_eval" class="evalFct">eval</a>( |D|(|G|), <a href="#defn_absJoin" class="absOp">Join</a>(<var>P <sub>1</sub></var>, <var>P <sub>2</sub></var>), <var>μ<sub>ctx</sub></var> ) = <a href="#defn_algJoin" class="algFct">Join</a>( <a href="#defn_eval" class="evalFct">eval</a>(|D|(|G|), <var>P <sub>1</sub></var>, <var>μ<sub>ctx</sub></var>), <a href="#defn_eval" class="evalFct">eval</a>(|D|(|G|), <var>P <sub>2</sub></var>, <var>μ<sub>ctx</sub></var>) )</p>
10757+ <p><a href="#defn_eval" class="evalFct">eval</a>( |D|(|G|), <a href="#defn_absJoin" class="absOp">Join</a>(<var>A <sub>1</sub></var>, <var>A <sub>2</sub></var>), <var>μ<sub>ctx</sub></var> ) = <a href="#defn_algJoin" class="algFct">Join</a>( <a href="#defn_eval" class="evalFct">eval</a>(|D|(|G|), <var>A <sub>1</sub></var>, <var>μ<sub>ctx</sub></var>), <a href="#defn_eval" class="evalFct">eval</a>(|D|(|G|), <var>A <sub>2</sub></var>, <var>μ<sub>ctx</sub></var>) )</p>
1076010758 </div>
1076110759 <div class="defn">
1076210760 <p><b>Definition: <span id="defn_evalLeftJoin">Evaluation of LeftJoin</span></b></p>
1076310761 <p>
10764- <a href="#defn_eval" class="evalFct">eval</a>( |D|(|G|), <a href="#defn_absLeftJoin" class="absOp">LeftJoin</a>(<var>P <sub>1</sub></var>, <var>P <sub>2</sub></var>, |F|), <var>μ<sub>ctx</sub></var> ) = <a href="#defn_algLeftJoin" class="algFct">LeftJoin</a>( <a href="#defn_eval" class="evalFct">eval</a>(|D|(|G|), <var>P <sub>1</sub></var>, <var>μ<sub>ctx</sub></var>), <a href="#defn_eval" class="evalFct">eval</a>(|D|(|G|), <var>P <sub>2</sub></var>, <var>μ<sub>ctx</sub></var>), |F|, |D|, |G| )
10762+ <a href="#defn_eval" class="evalFct">eval</a>( |D|(|G|), <a href="#defn_absLeftJoin" class="absOp">LeftJoin</a>(<var>A <sub>1</sub></var>, <var>A <sub>2</sub></var>, |F|), <var>μ<sub>ctx</sub></var> ) = <a href="#defn_algLeftJoin" class="algFct">LeftJoin</a>( <a href="#defn_eval" class="evalFct">eval</a>(|D|(|G|), <var>A <sub>1</sub></var>, <var>μ<sub>ctx</sub></var>), <a href="#defn_eval" class="evalFct">eval</a>(|D|(|G|), <var>A <sub>2</sub></var>, <var>μ<sub>ctx</sub></var>), |F|, |D|, |G| )
1076510763 </p>
1076610764 </div>
1076710765 <div class="defn">
1076810766 <p><b>Definition: <span id="defn_evalUnion">Evaluation of Union</span></b></p>
10769- <p><a href="#defn_eval" class="evalFct">eval</a>( |D|(|G|), <a href="#defn_absUnion" class="absOp">Union</a>(<var>P <sub>1</sub></var>, <var>P <sub>2</sub></var>), <var>μ<sub>ctx</sub></var> ) = <a href="#defn_algUnion" class="algFct">Union</a>( <a href="#defn_eval" class="evalFct">eval</a>(|D|(|G|), <var>P <sub>1</sub></var>, <var>μ<sub>ctx</sub></var>), <a href="#defn_eval" class="evalFct">eval</a>(|D|(|G|), <var>P <sub>2</sub></var>, <var>μ<sub>ctx</sub></var>) )</p>
10767+ <p><a href="#defn_eval" class="evalFct">eval</a>( |D|(|G|), <a href="#defn_absUnion" class="absOp">Union</a>(<var>A <sub>1</sub></var>, <var>A <sub>2</sub></var>), <var>μ<sub>ctx</sub></var> ) = <a href="#defn_algUnion" class="algFct">Union</a>( <a href="#defn_eval" class="evalFct">eval</a>(|D|(|G|), <var>A <sub>1</sub></var>, <var>μ<sub>ctx</sub></var>), <a href="#defn_eval" class="evalFct">eval</a>(|D|(|G|), <var>A <sub>2</sub></var>, <var>μ<sub>ctx</sub></var>) )</p>
1077010768 </div>
1077110769 <div class="defn">
1077210770 <p><b>Definition: <span id="defn_evalGraph">Evaluation of Graph</span></b></p>
1077310771 <p>For every |x| that is
1077410772 an <a data-cite="RDF12-CONCEPTS#dfn-iri">IRI</a> or
1077510773 a <a href="#defn_QueryVariable">variable</a>,
10776- <a href="#defn_eval" class="evalFct">eval</a>( |D|(|G|), <a href="#defn_absGraph" class="absOp">Graph</a>(|x|, |P |), <var>μ<sub>ctx</sub></var> )
10774+ <a href="#defn_eval" class="evalFct">eval</a>( |D|(|G|), <a href="#defn_absGraph" class="absOp">Graph</a>(|x|, |A |), <var>μ<sub>ctx</sub></var> )
1077710775 is defined as follows:</p>
1077810776 <ul>
1077910777 <li>If |x| is an IRI
1078010778 that is a <a data-cite="RDF12-CONCEPTS#dfn-graph-name">graph name</a> in |D|,
1078110779 <div class="indentedFormula">
10782- <a href="#defn_eval" class="evalFct">eval</a>( |D|(|G|), <a href="#defn_absGraph" class="absOp">Graph</a>(|x|, |P |), <var>μ<sub>ctx</sub></var> )
10780+ <a href="#defn_eval" class="evalFct">eval</a>( |D|(|G|), <a href="#defn_absGraph" class="absOp">Graph</a>(|x|, |A |), <var>μ<sub>ctx</sub></var> )
1078310781 =
10784- <a href="#defn_eval" class="evalFct">eval</a>( |D|(<var>G<sub>|x|</sub></var>), |P |, <var>μ<sub>ctx</sub></var> ),
10782+ <a href="#defn_eval" class="evalFct">eval</a>( |D|(<var>G<sub>|x|</sub></var>), |A |, <var>μ<sub>ctx</sub></var> ),
1078510783 </div>
1078610784 where <var>G<sub>|x|</sub></var> is the RDF graph of the named graph with name |x| in |D|.
1078710785 </li>
1078810786 <li>If |x| is an IRI
1078910787 that is not a <a data-cite="RDF12-CONCEPTS#dfn-graph-name">graph name</a> in |D|,
1079010788 <div class="indentedFormula">
10791- <a href="#defn_eval" class="evalFct">eval</a>( |D|(|G|), <a href="#defn_absGraph" class="absOp">Graph</a>(|x|, |P |), <var>μ<sub>ctx</sub></var> )
10789+ <a href="#defn_eval" class="evalFct">eval</a>( |D|(|G|), <a href="#defn_absGraph" class="absOp">Graph</a>(|x|, |A |), <var>μ<sub>ctx</sub></var> )
1079210790 is the empty multiset.
1079310791 </div>
1079410792 </li>
1079510793 <li>If |x| is a variable,
1079610794 <div class="indentedFormula">
10797- <a href="#defn_eval" class="evalFct">eval</a>( |D|(|G|), <a href="#defn_absGraph" class="absOp">Graph</a>(|x|, |P |), <var>μ<sub>ctx</sub></var> )
10795+ <a href="#defn_eval" class="evalFct">eval</a>( |D|(|G|), <a href="#defn_absGraph" class="absOp">Graph</a>(|x|, |A |), <var>μ<sub>ctx</sub></var> )
1079810796 =
1079910797 <var>Ω</var>,
1080010798 </div>
@@ -10803,7 +10801,7 @@ <h3>Evaluation Semantics</h3>
1080310801<var>Ω</var> := the empty multiset
1080410802for each <a data-cite="RDF12-CONCEPTS#dfn-graph-name">graph name</a> <var>gn</var> in <var>D</var> (recall that a graph name may be an IRI or a blank node)
1080510803 <var>G'</var> := the RDF graph of the named graph with name <var>gn</var> in <var>D</var>
10806- <var>Ω'</var> := <a href="#defn_eval" class="evalFct">eval</a>( <var>D</var>(<var>G'</var>), <var>P </var>, <var>μ<sub>ctx</sub></var> )
10804+ <var>Ω'</var> := <a href="#defn_eval" class="evalFct">eval</a>( <var>D</var>(<var>G'</var>), <var>A </var>, <var>μ<sub>ctx</sub></var> )
1080710805 <var>Ω</var> := <a href="#defn_algUnion" class="algFct">Union</a>( <var>Ω</var>, <a href="#defn_algJoin" class="algFct">Join</a>(<var>Ω'</var>, <var>μ</var>) ), where <var>μ</var> = {<var>x</var> → <var>gn</var>}
1080810806the result is <var>Ω</var>
1080910807 </pre>
@@ -10814,7 +10812,7 @@ <h3>Evaluation Semantics</h3>
1081410812 <div id="defn_evalGroup">
1081510813 <b>Definition: Evaluation of Group</b>
1081610814 </div>
10817- <p><a href="#defn_eval" class="evalFct">eval</a>( |D|(|G|), <a href="#defn_absGroup" class="absOp">Group</a>(|exprlist|, |P |), <var>μ<sub>ctx</sub></var> ) = <a href="#defn_algGroup" class="algFct">Group</a>( |exprlist|, <a href="#defn_eval" class="evalFct">eval</a>(|D|(|G|), |P |, <var>μ<sub>ctx</sub></var>) )</p>
10815+ <p><a href="#defn_eval" class="evalFct">eval</a>( |D|(|G|), <a href="#defn_absGroup" class="absOp">Group</a>(|exprlist|, |A |), <var>μ<sub>ctx</sub></var> ) = <a href="#defn_algGroup" class="algFct">Group</a>( |exprlist|, <a href="#defn_eval" class="evalFct">eval</a>(|D|(|G|), |A |, <var>μ<sub>ctx</sub></var>) )</p>
1081810816 </div>
1081910817 <div class="defn">
1082010818 <div id="defn_evalAggregation">
@@ -10834,43 +10832,43 @@ <h3>Evaluation Semantics</h3>
1083410832 <div class="defn">
1083510833 <p><b>Definition: <span id="defn_evalExtend">Evaluation of Extend</span></b></p>
1083610834 <p>
10837- <a href="#defn_eval" class="evalFct">eval</a>( |D|(|G|), <a href="#defn_absExtend" class="absOp">Extend</a>(|P |, |var|, |expr|), <var>μ<sub>ctx</sub></var> ) = <a href="#defn_algExtend" class="algFct">Extend</a>( <a href="#defn_eval" class="evalFct">eval</a>(|D|(|G|), |P |, <var>μ<sub>ctx</sub></var>), |var|, |expr|, |D|, |G| )
10835+ <a href="#defn_eval" class="evalFct">eval</a>( |D|(|G|), <a href="#defn_absExtend" class="absOp">Extend</a>(|A |, |var|, |expr|), <var>μ<sub>ctx</sub></var> ) = <a href="#defn_algExtend" class="algFct">Extend</a>( <a href="#defn_eval" class="evalFct">eval</a>(|D|(|G|), |A |, <var>μ<sub>ctx</sub></var>), |var|, |expr|, |D|, |G| )
1083810836 </p>
1083910837 </div>
1084010838 <div class="defn">
1084110839 <p><b>Definition: <span id="defn_evalList">Evaluation of ToList</span></b></p>
10842- <p><a href="#defn_eval" class="evalFct">eval</a>( |D|(|G|), <a href="#defn_absToList" class="absOp">ToList</a>(|P |), <var>μ<sub>ctx</sub></var> ) = <a href="#defn_algToList" class="algFct">ToList</a>( <a href="#defn_eval" class="evalFct">eval</a>(|D|(|G|), |P |, <var>μ<sub>ctx</sub></var>) )</p>
10840+ <p><a href="#defn_eval" class="evalFct">eval</a>( |D|(|G|), <a href="#defn_absToList" class="absOp">ToList</a>(|A |), <var>μ<sub>ctx</sub></var> ) = <a href="#defn_algToList" class="algFct">ToList</a>( <a href="#defn_eval" class="evalFct">eval</a>(|D|(|G|), |A |, <var>μ<sub>ctx</sub></var>) )</p>
1084310841 </div>
1084410842 <div class="defn">
1084510843 <p><b>Definition: <span id="defn_evalDistinct">Evaluation of Distinct</span></b></p>
10846- <p><a href="#defn_eval" class="evalFct">eval</a>( |D|(|G|), <a href="#defn_absDistinct" class="absOp">Distinct</a>(|L |), <var>μ<sub>ctx</sub></var> ) = <a href="#defn_algDistinct" class="algFct">Distinct</a>( <a href="#defn_eval" class="evalFct">eval</a>(|D|(|G|), |L |, <var>μ<sub>ctx</sub></var>) )
10844+ <p><a href="#defn_eval" class="evalFct">eval</a>( |D|(|G|), <a href="#defn_absDistinct" class="absOp">Distinct</a>(|A |), <var>μ<sub>ctx</sub></var> ) = <a href="#defn_algDistinct" class="algFct">Distinct</a>( <a href="#defn_eval" class="evalFct">eval</a>(|D|(|G|), |A |, <var>μ<sub>ctx</sub></var>) )
1084710845 </p>
1084810846 </div>
1084910847 <div class="defn">
1085010848 <p><b>Definition: <span id="defn_evalReduced">Evaluation of Reduced</span></b></p>
10851- <p><a href="#defn_eval" class="evalFct">eval</a>( |D|(|G|), <a href="#defn_absReduced" class="absOp">Reduced</a>(|L |), <var>μ<sub>ctx</sub></var> ) = <a href="#defn_algReduced" class="algFct">Reduced</a>( <a href="#defn_eval" class="evalFct">eval</a>(|D|(|G|), |L |, <var>μ<sub>ctx</sub></var>) )
10849+ <p><a href="#defn_eval" class="evalFct">eval</a>( |D|(|G|), <a href="#defn_absReduced" class="absOp">Reduced</a>(|A |), <var>μ<sub>ctx</sub></var> ) = <a href="#defn_algReduced" class="algFct">Reduced</a>( <a href="#defn_eval" class="evalFct">eval</a>(|D|(|G|), |A |, <var>μ<sub>ctx</sub></var>) )
1085210850 </p>
1085310851 </div>
1085410852 <div class="defn">
1085510853 <p><b>Definition: <span id="defn_evalProject">Evaluation of Project</span></b></p>
10856- <p><a href="#defn_eval" class="evalFct">eval</a>( |D|(|G|), <a href="#defn_absProject" class="absOp">Project</a>(|L |, |vars|), <var>μ<sub>ctx</sub></var> ) = <a href="#defn_algProject" class="algFct">Project</a>( <a href="#defn_eval" class="evalFct">eval</a>(|D|(|G|), |L |, <var>μ<sub>ctx</sub></var>), |vars| )
10854+ <p><a href="#defn_eval" class="evalFct">eval</a>( |D|(|G|), <a href="#defn_absProject" class="absOp">Project</a>(|A |, |vars|), <var>μ<sub>ctx</sub></var> ) = <a href="#defn_algProject" class="algFct">Project</a>( <a href="#defn_eval" class="evalFct">eval</a>(|D|(|G|), |A |, <var>μ<sub>ctx</sub></var>), |vars| )
1085710855 </p>
1085810856 </div>
1085910857 <div class="defn">
1086010858 <p><b>Definition: <span id="defn_evalOrderBy">Evaluation of OrderBy</span></b></p>
10861- <p><a href="#defn_eval" class="evalFct">eval</a>( |D|(|G|), <a href="#defn_absOrderBy" class="absOp">OrderBy</a>(|L |, |condition|), <var>μ<sub>ctx</sub></var> ) = <a href="#defn_algOrderBy" class="algFct">OrderBy</a>( <a href="#defn_eval" class="evalFct">eval</a>(|D|(|G|), |L |, <var>μ<sub>ctx</sub></var>), |condition| )
10859+ <p><a href="#defn_eval" class="evalFct">eval</a>( |D|(|G|), <a href="#defn_absOrderBy" class="absOp">OrderBy</a>(|A |, |condition|), <var>μ<sub>ctx</sub></var> ) = <a href="#defn_algOrderBy" class="algFct">OrderBy</a>( <a href="#defn_eval" class="evalFct">eval</a>(|D|(|G|), |A |, <var>μ<sub>ctx</sub></var>), |condition| )
1086210860 </p>
1086310861 </div>
1086410862 <div class="defn">
1086510863 <p><b>Definition: <span id="defn_evalToMultiSet">Evaluation of ToMultiSet</span></b></p>
10866- <p><a href="#defn_eval" class="evalFct">eval</a>( |D|(|G|), <a href="#defn_absToMultiset" class="absOp">ToMultiset</a>(|L |), <var>μ<sub>ctx</sub></var> ) = <a href="#defn_algToMultiSet" class="algFct">ToMultiSet</a>( <a href="#defn_eval" class="evalFct">eval</a>(|D|(|G|), |L |, <var>μ<sub>ctx</sub></var>) )</p>
10864+ <p><a href="#defn_eval" class="evalFct">eval</a>( |D|(|G|), <a href="#defn_absToMultiset" class="absOp">ToMultiset</a>(|A |), <var>μ<sub>ctx</sub></var> ) = <a href="#defn_algToMultiSet" class="algFct">ToMultiSet</a>( <a href="#defn_eval" class="evalFct">eval</a>(|D|(|G|), |A |, <var>μ<sub>ctx</sub></var>) )</p>
1086710865 </div>
1086810866 <div class="defn">
1086910867 <p><b>Definition: <span id="defn_evalSlice">Evaluation of Slice</span></b></p>
10870- <p><a href="#defn_eval" class="evalFct">eval</a>( |D|(|G|), <a href="#defn_absSlice" class="absOp">Slice</a>(|L |, |offset|), <var>μ<sub>ctx</sub></var> ) = <a href="#defn_algSlice" class="algFct">Slice</a>( <a href="#defn_eval" class="evalFct">eval</a>(|D|(|G|), |L |, <var>μ<sub>ctx</sub></var>), |offset| )
10868+ <p><a href="#defn_eval" class="evalFct">eval</a>( |D|(|G|), <a href="#defn_absSlice" class="absOp">Slice</a>(|A |, |offset|), <var>μ<sub>ctx</sub></var> ) = <a href="#defn_algSlice" class="algFct">Slice</a>( <a href="#defn_eval" class="evalFct">eval</a>(|D|(|G|), |A |, <var>μ<sub>ctx</sub></var>), |offset| )
1087110869 </p>
1087210870 <p>
10873- <a href="#defn_eval" class="evalFct">eval</a>( |D|(|G|), <a href="#defn_absSlice" class="absOp">Slice</a>(|L |, |offset|, |limit|), <var>μ<sub>ctx</sub></var> ) = <a href="#defn_algSlice" class="algFct">Slice</a>( <a href="#defn_eval" class="evalFct">eval</a>(|D|(|G|), |L |, <var>μ<sub>ctx</sub></var>), |offset|, |limit| )
10871+ <a href="#defn_eval" class="evalFct">eval</a>( |D|(|G|), <a href="#defn_absSlice" class="absOp">Slice</a>(|A |, |offset|, |limit|), <var>μ<sub>ctx</sub></var> ) = <a href="#defn_algSlice" class="algFct">Slice</a>( <a href="#defn_eval" class="evalFct">eval</a>(|D|(|G|), |A |, <var>μ<sub>ctx</sub></var>), |offset|, |limit| )
1087410872 </p>
1087510873 </div>
1087610874 </section>
0 commit comments