[oslc-core] missing oslc query functionality

Joe Ross joeross at us.ibm.com
Tue Jul 17 14:11:56 EDT 2012


we might need parentheses... :-)

================================================
Joe Ross/Austin/IBM, joeross at us.ibm.com
Tivoli Autonomic Computing & Component Technologies
512-286-8311, T/L 363-8311



From:   Arthur Ryman/Toronto/IBM at IBMCA
To:     Joe Ross/Austin/IBM at IBMUS, 
Cc:     oslc-core at open-services.net
Date:   07/17/2012 01:05 PM
Subject:        Re: [oslc-core] missing oslc query functionality


Joe,

Unary "not" has a well-known meaning, so people might expect "not :topping 
= :bacon" to  be equivalent to ":topping != :bacon". On the other hand, 
"never" implies quantification over a set of values. 

How about using "never" as unary: "never :topping = :bacon"?

Regards, 
___________________________________________________________________________ 

Arthur Ryman 

DE, Chief Architect, Reporting &
Portfolio Strategy and Management
IBM Software, Rational 

Toronto Lab | +1-905-413-3077 (office) | +1-416-939-5063 (mobile) 






From:
Joe Ross/Austin/IBM at IBMUS
To:
Arthur Ryman/Toronto/IBM at IBMCA
Cc:
oslc-core at open-services.net
Date:
07/17/2012 01:34 PM
Subject:
Re: [oslc-core] missing oslc query functionality


Well a unary "not" operator has more general applicability than a binary 
"never" operator. For example, someone could say

oslc.where=not :topping in [:bacon,:cheese]

or 

oslc.where=not :num < 5 
note that this is not the same as oslc.where=:num >= 5   if num is 
multivalued

If we are extending the syntax, seems that adding "not" will be more 
useful.


================================================
Joe Ross/Austin/IBM, joeross at us.ibm.com
Tivoli Autonomic Computing & Component Technologies
512-286-8311, T/L 363-8311




From:   Arthur Ryman/Toronto/IBM at IBMCA
To:     Joe Ross/Austin/IBM at IBMUS, 
Cc:     oslc-core at open-services.net
Date:   07/17/2012 12:20 PM
Subject:        Re: [oslc-core] missing oslc query functionality


Joe,

How about using "never" instead of "not", like so?

oslc.where=:topping never :bacon 

Using "never" suggests we are looking at all the property values.

Regards, 
___________________________________________________________________________ 

Arthur Ryman 

DE, Chief Architect, Reporting &
Portfolio Strategy and Management
IBM Software, Rational 

Toronto Lab | +1-905-413-3077 (office) | +1-416-939-5063 (mobile) 






From:
Joe Ross/Austin/IBM at IBMUS
To:
Arthur Ryman/Toronto/IBM at IBMCA
Cc:
oslc-core at open-services.net
Date:
07/17/2012 11:02 AM
Subject:
Re: [oslc-core] missing oslc query functionality


Yes, that is the answer I would want. However, != operator would not give 
me that, since all three pizzas have a topping that is not bacon. 

So, I think we would need the following:

oslc.where=not :topping=:bacon 
this would return all resources except those that have bacon (pizza-1 and 
pizza-2, but not pizza-3).

Joe

================================================
Joe Ross/Austin/IBM, joeross at us.ibm.com
Tivoli Autonomic Computing & Component Technologies
512-286-8311, T/L 363-8311




From:   Arthur Ryman/Toronto/IBM at IBMCA
To:     Joe Ross/Austin/IBM at IBMUS, 
Cc:     oslc-core at open-services.net
Date:   07/17/2012 09:30 AM
Subject:        Re: [oslc-core] missing oslc query functionality


Joe,

Just so I understand, for #1 you only want to return resources in which 
the specified property value never appears? 

Suppose we have the following member resources:

:pizza-1 :topping :pepperoni , :olives, :mushrooms .
:pizza-2 :topping :cheese, :olives, :onion .
:pizza-3 :topping :bacon, :cheese, :mushrooms.

Then the query oslc.where=:topping!=:bacon would return :pizza-1, 
:pizza-2.

Regards, 
___________________________________________________________________________ 

Arthur Ryman 

DE, Chief Architect, Reporting &
Portfolio Strategy and Management
IBM Software, Rational 

Toronto Lab | +1-905-413-3077 (office) | +1-416-939-5063 (mobile) 






From:
Joe Ross/Austin/IBM at IBMUS
To:
Arthur Ryman <ryman at ca.ibm.com>
Cc:
oslc-core at open-services.net
Date:
07/13/2012 10:30 AM
Subject:
Re: [oslc-core] missing oslc query functionality



Thanks, Arthur. So, it sounds like these were intentional simplifications, 
and we could implement our own extensions or SPARQL if we want. 

> 1. Correct. What semantics do you want for multi-value properties? Are 
you 
> looking for the existence of one value that does not equal the given 
> value? 
In this particular case we are looking for resources that don't have a 
particular value for a multi-valued property. If we were simply looking 
for the existence of a value that doesn't equal the give value, I think != 
would handle that. 

> 2. Correct. However, you could approximate this effect by comparing the 
> property to a value that you are sure does not exist. e.g. if 
ex:estimate 
> is always non-negative, then ex:estimate > -1 would return resource that 

> had any value for ex:estimate. 

That is actually how we are doing it now . Using != with a value we know 
won't ever exist. 

Joe 

================================================
Joe Ross/Austin/IBM, joeross at us.ibm.com
Tivoli Autonomic Computing & Component Technologies
512-286-8311, T/L 363-8311 

Arthur Ryman <ryman at ca.ibm.com> wrote on 07/13/2012 09:11:06 AM:

> From: Arthur Ryman <ryman at ca.ibm.com> 
> To: Joe Ross/Austin/IBM at IBMUS, 
> Cc: oslc-core at open-services.net, oslc-core-bounces at open-services.net 
> Date: 07/13/2012 09:11 AM 
> Subject: Re: [oslc-core] missing oslc query functionality 
> 
> Joe,
> 
> The query language was scoped to be simple to implement. It is not 
> intended to be a fully general query language. For more complex 
> requirements, services can implement a standard query language. SPARQL 
is 
> recommended.
> 
> 1. Correct. What semantics do you want for multi-value properties? Are 
you 
> looking for the existence of one value that does not equal the given 
> value?
> 
> 2. Correct. However, you could approximate this effect by comparing the 
> property to a value that you are sure does not exist. e.g. if 
ex:estimate 
> is always non-negative, then ex:estimate > -1 would return resource that 

> had any value for ex:estimate.
> 
> Regards, 
> 
___________________________________________________________________________ 

> 
> Arthur Ryman 
> 
> DE, Chief Architect, Reporting &
> Portfolio Strategy and Management
> IBM Software, Rational 
> 
> Toronto Lab | +1-905-413-3077 (office) | +1-416-939-5063 (mobile) 
> 
> 
> 
> 
> 
> From:
> Joe Ross <joeross at us.ibm.com>
> To:
> oslc-core at open-services.net
> Date:
> 07/12/2012 06:39 PM
> Subject:
> [oslc-core] missing oslc query functionality
> Sent by:
> oslc-core-bounces at open-services.net
> 
> 
> 
> We've had a couple of scenarios that don't seem to be addressable using 
> the OSLC core 2.0 query syntax: 
> 
> 1. Finding all resources that don't have a particular value for a 
> property. 
> The != operator won't work for this, because in the case of multi-valued 

> properties, records will be returned as long as there is a value that is 

> not equal, even if there is also a value that is equal. This would 
require 
> a unary "not" logical operator. 
> 
> 2. Finding all resources that have any value for a particular property 
> (matching on predicate, regardless of value). 
> This is probably would probably be best handled by a unary "exists" 
> operator, or support for wildcard as the value in oslc.where clauses. 
> Currently the grammar seems to only allow for wildcard for the 
predicate. 
> 
> So, am I correct in this assessment? If so, was this omission 
intentional 
> (and if so what was the reason), or an oversight? 
> 
> ================================================
> Joe Ross/Austin/IBM, joeross at us.ibm.com
> Tivoli Autonomic Computing & Component Technologies
> 512-286-8311, T/L 
363-8311_______________________________________________
> Oslc-Core mailing list
> Oslc-Core at open-services.net
> http://open-services.net/mailman/listinfo/oslc-core_open-services.net
> 
> 
> 



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://open-services.net/pipermail/oslc-core_open-services.net/attachments/20120717/db1c2e9d/attachment-0003.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/gif
Size: 360 bytes
Desc: not available
URL: <http://open-services.net/pipermail/oslc-core_open-services.net/attachments/20120717/db1c2e9d/attachment.gif>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/gif
Size: 360 bytes
Desc: not available
URL: <http://open-services.net/pipermail/oslc-core_open-services.net/attachments/20120717/db1c2e9d/attachment-0001.gif>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/gif
Size: 360 bytes
Desc: not available
URL: <http://open-services.net/pipermail/oslc-core_open-services.net/attachments/20120717/db1c2e9d/attachment-0002.gif>


More information about the Oslc-Core mailing list