Samur,

On 24 Jul 2008, at 16:21, [EMAIL PROTECTED] wrote:

Thank you Richard. But imagine that I have a query like that:

select ?????? where {
<http://www.semanticnavigation.org/2008/faceto> ?p
<http://www.semanticnavigation.org/2008/faceto#x> .
<http://www.semanticnavigation.org/2008/faceto> ?p
<http://www.semanticnavigation.org/2008/faceto#y> .

<http://www.semanticnavigation.org/2008/zeto> ?p
<http://www.semanticnavigation.org/2008/faceto#x> .
<http://www.semanticnavigation.org/2008/zeto> ?p
<http://www.semanticnavigation.org/2008/faceto#y> .

<http://www.semanticnavigation.org/2008/nozeto> ?p
<http://www.semanticnavigation.org/2008/faceto#x> .
<http://www.semanticnavigation.org/2008/nozeto> ?p
<http://www.semanticnavigation.org/2008/faceto#y> .

}

Not entirely sure what you are trying to achieve. If you write it like this, then every occurrence of ?p has to be bound to the *same* value or the query won't match at all.

I don't understand what the query is supposed to achieve, so I can't answer your question.

Suppose that, in this query, I want to verify which resource(subject) has
some the values <http://www.semanticnavigation.org/2008/faceto#x> and
<http://www.semanticnavigation.org/2008/faceto#y>  in the object. Note
that my focus is in the SUBJECT not in the PROPERTY(?p), that is the
variable in the query.
Using your strategy (FILTER), this will became a very huge query for
several different subjects.

If you want to do funky things, then you sometimes need a huge query. Also, using FILTERs the query doesn't become much bigger than it already is.

Note that you can use boolean predicates in FILTERs:

  FILTER (?s == <...faceto> || ?s == <...zeto> || ?s == <...nozeto>) .

This can reduce the query size a *lot*.

Thinking in this scenario, It would be easier whether were possible to do
something like that:

select ?S where {
<http://www.semanticnavigation.org/2008/faceto> ?p
<http://www.semanticnavigation.org/2008/faceto#x> .
<http://www.semanticnavigation.org/2008/faceto> ?p
<http://www.semanticnavigation.org/2008/faceto#y> .

<http://www.semanticnavigation.org/2008/zeto> ?p
<http://www.semanticnavigation.org/2008/faceto#x> .
<http://www.semanticnavigation.org/2008/zeto> ?p
<http://www.semanticnavigation.org/2008/faceto#y> .

<http://www.semanticnavigation.org/2008/nozeto> ?p
<http://www.semanticnavigation.org/2008/faceto#x> .
<http://www.semanticnavigation.org/2008/nozeto> ?p
<http://www.semanticnavigation.org/2008/faceto#y> .

}


Where, ?S represents all the subjects that were matched.

Do you know whether It is possible to something like that with SPARQL?

It's not possible. If you want to return something in the SELECT clause, then you need to write it as a variable in the query.

Richard





Cheers,
Samur


On 23 Jul 2008, at 19:09, [EMAIL PROTECTED] wrote:
Hi people, I would like to get the SUBJECT of the following query:

select ?o where {<http://www.semanticnavigation.org/2008/faceto> ? p ?
o}

I'm sure I don't have to mention that this is a rather pointless
query ;-)

But I'm sure you have your (weird) reason.

I guess you are looking for something like this:

SELECT ?s
WHERE {
   ?s ?p ?o .
   FILTER (?s == <http://www.semanticnavigation.org/2008/faceto>)
}

Hope that helps,
Richard





How could I do it with sparql SELECT?  Instead I get the object ?o I
would
like to get the SUBJECT, is it possible using only SELECT?

Regards
Samur






Reply via email to