Re: Negation decision : unexpected effects

On 06/04/2010 10:19 AM, Steve Harris wrote:
> On 2010-04-06, at 09:59, Andy Seaborne wrote:
>> On 06/04/2010 9:20 AM, Steve Harris wrote:
>>> On 2010-04-06, at 09:07, Andy Seaborne wrote:
>>>>
>>>> On 05/04/2010 10:16 PM, Steve Harris wrote:

>>>>> Indeed, SQL has the MINUS table operation, and NOT EXISTS in the WHERE/FILTER operation as well.
>>>>
>>>> In SQL, MINUS goes outside SELECT, making it outside GROUP BY and separate from the join condition part of the SQL query.
>>>
>>> Yup, but so do the other table operations, UNION and friends.
>>
>> SPARQL UNION does not need the column compatibility rules.  We don't have INTERSECTION directly ... yet.
>
> Well, SQL UNION has rules that there must be the same number of columns, and of the same type - SPARQL's UNION is much laxer. This is a good thing IMHO, though I wasn't convinced of that during the previous WG :)
>
> SQL doesn't really have a notion of "compatibility" beyond that.

SQL MINUS has to match as well.

Really, SPARQL MINUS should be in a FILTER - as an operation, the result 
can only be the same as the LHS with possibly some rows removed, which 
is what FILTER does.

Minus(Ω1, Ω2) =
     { μ | μ in Ω1 such that for all μ' in Ω2,
     either μ and μ' are not compatible or dom(μ) and dom(μ') are disjoint }

Filter(expr, Ω) = { μ | μ in Ω and expr(μ) is an expression that has an
     effective boolean value of true }

Both are of the form:

    { μ | μ in LHS-Ω such that .... }

and cardinality determined solely by the LHS.

 Andy

Received on Tuesday, 6 April 2010 09:36:55 UTC