You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jena.apache.org by Rob Vesse <rv...@yarcdata.com> on 2013/07/02 23:41:24 UTC
Obscure Algebra Operators
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
Re: Obscure Algebra Operators
Posted by Rob Vesse <rv...@yarcdata.com>.
Thanks Andy
Everything I need to know was in your reply
Cheers,
Rob
On 7/7/13 7:57 AM, "Andy Seaborne" <an...@apache.org> wrote:
>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
>
Re: Obscure Algebra Operators
Posted by Andy Seaborne <an...@apache.org>.
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