I am sure you meant

FILTER (?label = "forestry" || ?label = "drilling" || ?label =  
"oceans") .

However filtering is typically very slow.

But there is yet another approach: put the enumeration into the RDF  
graph itself and then iterate over all expected strings. In your  
example, add something like

my:Group my:member "forestry"  .
my:Group my:member "drilling"  .
my:Group my:member "oceans"  .

as triples to your model, and then query all values using

SELECT ...
WHERE {
     ...
     my:Group my:member ?label .
     ?ApplicationUri rdfs:label ?label .
     ...
}

This has the advantage that the performance will be good, and also the  
relevant knowledge is encoded in the model as opposed to the query.  
For example, multiple queries can this way reuse the same group of  
values.

Holger



On Jun 8, 2009, at 5:08 PM, Irene Polikoff wrote:

>
> I think you could also do FILTER, something like
>
> SELECT * WHERE{?ApplicationUri a owl:Class.
> ?ApplicationUri rdfs:label ?label.
> FILTER (?label = "forestry"|| "drilling"|| "oceans") .
> ?subClass rdfs:subClassOf* ?ApplicationUri.}
>
>
>
> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf Of Scott
> Henninger
> Sent: Monday, June 08, 2009 7:49 PM
> To: TopBraid Composer Users
> Subject: [tbc-users] Re: Logical Operators
>
>
> Steve;  Although it's not a strict "OR" operator, UNION will work in
> this case:
>
> SELECT *
> WHERE {
>  {  ?ApplicationUri rdfs:label "forestry"
>  }
>  UNION
>  {  ?ApplicationUri rdfs:label "drilling"
>  }
>  UNION
>  {  ?ApplicationUri rdfs:label "oceans"
>  }
> }
>
> This gets the union of the three graph patterns, binding ?
> ApplicationUri to the subject of the resulting graph.
>
> -- Scott
>
> On Jun 8, 5:52 pm, dalguy72 <[email protected]> wrote:
>> I want to be able to be able to specify two (or possibly a list of
>> possibilities) as criteria in my sparql query.   If I sql, I would  
>> use
>> the "OR" operator or I would use an "IN" statement.  Is there an
>> equivalent with sparql.
>>
>> The simplest example that I come up with is that I want to get the
>> URI's for the items with the following labels: "forestry",  
>> "drilling",
>> and "oceans".
>>
>> To get one of them, I would do something like:
>>
>> SELECT * WHERE{
>>    ?ApplicationUri rdfs:label "forestry"
>>
>> }
>>
>> To get all of them in one return set is the goal I am after, and then
>> I can place it within a more complex query, such as, in just a
>> slightly more complex call, return all the subclassess that use the
>> same application uri
>>
>> SELECT * WHERE{
>>    ?ApplicationUri rdfs:label "forestry" .
>>  ?subClass rdfs:subClassOf* ?ApplicationUri
>>
>> }
>>
>> Steve
>
>
> >


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"TopBraid Composer Users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/topbraid-composer-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to