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 <[email protected]>
> 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
>
twoExamples.owl
Description: Binary data
