On 02/07/13 22:41, Rob Vesse wrote:
I was wondering if anyone could enlighten me as to what the following algebra 
operators are supposed to represent, where I have at least a rough idea I have 
included my guess of the purpose but knowing for sure would be useful for 
something we're working on here atm

OpList - something list related?
OpDatasetNames - named graphs in the dataset?
OpLabel - ??
OpDiff – some variant on OpMinus?

Thanks,

Rob


(sorry - forgot to reply)

** OpList - converts multiset of solution mappings (i.e. the result of the WHERE clause) to sequence of solution mappings. The modifiers work on sequences, joins etc work on multisets.

http://www.w3.org/TR/sparql11-query/#defn_algToList

Not really needed in ARQ as it represents multisets and sequnces via iterators.

** OpDatasetNames - needed in quad form for the case of

GRAPH ?g {}
(and GRAPH <V> {} -- which is just a check)

** OpLabel -- no-op : adds a label into the algebra expression for labelling purposes. No computational effect. Seemed like it might be useful when rewriting either to add explanations for humans or markers to stop re-transforming recursively.

** OpDiff -- not to do with Minus, it's in SPARQL 1.0 -- to do with Optional in the strict SPARQL case. ARQ directly implements LeftJoin, not as the expansion:

LeftJoin(Ω1, Ω2, expr) =
    Filter(expr, Join(Ω1, Ω2)) ∪ Diff(Ω1, Ω2, expr)

http://www.w3.org/TR/sparql11-query/#defn_algLeftJoin
http://www.w3.org/TR/sparql11-query/#defn_algDiff

        Andy

Reply via email to