W3C home > Mailing lists > Public > public-sparql-dev@w3.org > April to June 2009

Re: Sparql query help

From: Axel Polleres <axel.polleres@deri.org>
Date: Fri, 12 Jun 2009 17:13:56 +0200
Message-ID: <4A3270B4.1030304@deri.org>
To: Stephane Corlosquet <scorlosquet@gmail.com>
CC: Samuel Pedro <samuelcpspam@gmail.com>, Lee Feigenbaum <lee@thefigtrees.net>, public-sparql-dev@w3.org
Stephane Corlosquet wrote:
> Hi Samuel,
> 
> You cannot use  ?meatClass owl:Class "Pig" in your WHERE clause because 
> it is not a valid pattern. You should follow the {subject property 
> object} pattern in your WHERE clause. owl:Class is a class and not a 
> property.
> 
> Stephane.

This is, strictly speaking, not entirely correct. Syntactically

      ?meatClass owl:Class "Pig" .

is totally fine. But, as Lee already mentioned and Steph probably tried 
to make clearer, we'd need to know your data/schema, i.e. what property 
carry the "Pig" label in order to help you.

Can you post some example graph on which you want to pose that query?

Axel

> On Fri, Jun 12, 2009 at 3:52 PM, Samuel Pedro <samuelcpspam@gmail.com 
> <mailto:samuelcpspam@gmail.com>> wrote:
> 
>     This is my owl file, i had to add labels to the classes, and do this:
> 
> 
>     SELECT ?equivalentClass ?meatClass
>     WHERE {
>      ?equivalentClass owl:equivalentClass ?meatClass .
>      ?meatClass rdfs:label "Pig" . (in owl file i have Pig and Pig2)
>     }
> 
>     and why this query doesnt work, why it only works for labels? (I'm
>     trying to understand sparql but...)
> 
> 
>     SELECT ?equivalentClass ?meatClass
>     WHERE {
>      ?equivalentClass owl:equivalentClass ?meatClass .
>      ?meatClass owl:Class "Pig" .
>     }
> 
> 
> 
>     2009/6/12 Lee Feigenbaum <lee@thefigtrees.net
>     <mailto:lee@thefigtrees.net>>
> 
>         Samuel Pedro wrote:
> 
>             Im trying to do this query...
> 
>             SELECT ?subject ?object
>             WHERE { ?subject owl:equivalenteClass ?object FILTER(
>             ?object = "Meat") }
> 
>             im trying to find the equivalente Class of meat, but it
>             doesn't return what i want, what am i doing wrong?
> 
>             if i do this...
> 
>             SELECT ?subject ?object
>             WHERE { ?subject owl:equivalenteClass ?object FILTER(
>             ?object != "Meat") }
> 
>             i get all the equivalent class that there is in the owl. why?
> 
> 
>         Without seeing your data, it's hard to say for sure, but I think
>         it's pretty likely that your classes are resources (URIs) and
>         "Meat" is just a label for the class. If this is right, you
>         probably want a query similar to:
> 
>         SELECT ?equivalentClass ?meatClass
>         WHERE {
>          ?equivalentClass owl:equivalentClass ?meatClass .
>          ?meatClass rdfs:label "Meat" .
>         }
> 
> 
>         The details will vary depending on what predicate is used to
>         give a label to your classes (in my example I assume that it's
>         rdfs:label). Also, note that the label needs to be exactly
>         "Meat" for this to work.
> 
>         hope this helps,
>         Lee
> 
> 
> 
> 


-- 
Dr. Axel Polleres
Digital Enterprise Research Institute, National University of Ireland, 
Galway
email: axel.polleres@deri.org  url: http://www.polleres.net/
Received on Friday, 12 June 2009 15:14:35 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Friday, 12 June 2009 15:14:35 GMT