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