@prefix rdf: . @prefix : . @prefix rdfs: . @prefix mf: . @prefix qt: . @prefix dawgt: . <> rdf:type mf:Manifest ; rdfs:label "Algebra" ; mf:entries ( :nested-opt-1 :nested-opt-2 :opt-filter-1 :opt-filter-2 :opt-filter-3 :filter-place-1 :filter-place-2 :filter-place-3 :filter-nested-1 :filter-nested-2 :filter-scope-1 :join-scope-1 :join-combo-1 :join-combo-2 ) . :join-combo-1 a mf:QueryEvaluationTest ; mf:name "Join operator with OPTs, BGPs, and UNIONs" ; rdfs:comment """Tests nested combination of Join with a BGP / OPT and a BGP / UNION""" ; dawgt:approvedBy ; dawgt:approval dawgt:Approved ; mf:action [ qt:query ; qt:data ] ; mf:result . :join-combo-2 a mf:QueryEvaluationTest ; mf:name "Join operator with Graph and Union" ; rdfs:comment """Tests combination of Join operator with Graph on LHS and Union on RHS""" ; dawgt:approvedBy ; dawgt:approval dawgt:Approved ; mf:action [ qt:query ; qt:graphData ; qt:data ] ; mf:result . :nested-opt-1 rdf:type mf:QueryEvaluationTest ; mf:name "Nested Optionals - 1" ; dawgt:approval dawgt:Approved ; dawgt:approvedBy ; rdfs:comment """Nested-optionals with a shared variable that does not appear in the middle pattern (a not well-formed query pattern as per "Semantics and Complexity" of SPARQL""" ; mf:action [ qt:query ; qt:data ] ; mf:result . :nested-opt-2 rdf:type mf:QueryEvaluationTest ; mf:name "Nested Optionals - 2" ; rdfs:comment "OPTIONALs parse in a left-associative manner" ; dawgt:approval dawgt:Approved ; dawgt:approvedBy ; mf:action [ qt:query ; qt:data ] ; mf:result . :opt-filter-1 rdf:type mf:QueryEvaluationTest ; mf:name "Optional-filter - 1" ; rdfs:comment "A FILTER inside an OPTIONAL can reference a variable bound in the required part of the OPTIONAL" ; dawgt:approval dawgt:Approved ; dawgt:approvedBy ; mf:action [ qt:query ; qt:data ] ; mf:result . :opt-filter-2 rdf:type mf:QueryEvaluationTest ; mf:name "Optional-filter - 2 filters" ; rdfs:comment "FILTERs inside an OPTIONAL can refer to variables from both the required and optional parts of the construct." ; dawgt:approval dawgt:Approved ; dawgt:approvedBy ; mf:action [ qt:query ; qt:data ] ; mf:result . :opt-filter-3 rdf:type mf:QueryEvaluationTest ; mf:name "Optional-filter - scope of variable" ; rdfs:comment "FILTERs in an OPTIONAL do not extend to variables bound outside of the LeftJoin(...) operation" ; dawgt:approval dawgt:Approved ; dawgt:approvedBy ; mf:action [ qt:query ; qt:data ] ; mf:result . :filter-place-1 rdf:type mf:QueryEvaluationTest ; mf:name "Filter-placement - 1" ; rdfs:comment "FILTER placed after the triple pattern that contains the variable tested" ; dawgt:approval dawgt:Approved ; dawgt:approvedBy ; mf:action [ qt:query ; qt:data ] ; mf:result . :filter-place-2 rdf:type mf:QueryEvaluationTest ; mf:name "Filter-placement - 2" ; rdfs:comment "FILTERs are scoped to the nearest enclosing group - placement within that group does not matter" ; dawgt:approval dawgt:Approved ; dawgt:approvedBy ; mf:action [ qt:query ; qt:data ] ; mf:result . :filter-place-3 rdf:type mf:QueryEvaluationTest ; mf:name "Filter-placement - 3" ; rdfs:comment "FILTERs are scoped to the nearest enclosing group - placement within that group does not matter" ; dawgt:approval dawgt:Approved ; dawgt:approvedBy ; mf:action [ qt:query ; qt:data ] ; mf:result . :filter-nested-1 rdf:type mf:QueryEvaluationTest ; mf:name "Filter-nested - 1" ; rdfs:comment "A FILTER is in scope for variables bound at the same level of the query tree" ; dawgt:approval dawgt:Approved ; dawgt:approvedBy ; mf:action [ qt:query ; qt:data ] ; mf:result . :filter-nested-2 rdf:type mf:QueryEvaluationTest ; mf:name "Filter-nested - 2" ; rdfs:comment "A FILTER in a group { ... } cannot see variables bound outside that group" ; dawgt:approval dawgt:Approved ; dawgt:approvedBy ; mf:action [ qt:query ; qt:data ] ; mf:result . :filter-scope-1 rdf:type mf:QueryEvaluationTest ; mf:name "Filter-scope - 1" ; rdfs:comment "FILTERs in an OPTIONAL do not extend to variables bound outside of the LeftJoin(...) operation" ; dawgt:approval dawgt:Approved ; dawgt:approvedBy ; mf:action [ qt:query ; qt:data ] ; mf:result . :join-scope-1 rdf:type mf:QueryEvaluationTest ; mf:name "Join scope - 1" ; rdfs:comment "Variables have query scope." ; dawgt:approval dawgt:Approved ; dawgt:approvedBy ; mf:action [ qt:query ; qt:data ] ; mf:result .