- From: conor dowling <conor@the325project.org>
- Date: Thu, 5 May 2005 21:18:43 -0700
- To: public-rdf-dawg-comments@w3.org
I understand the basic SPARQL grammar and form [Background: I want to
migrate a factlog (http://www.the325project.org/factlog/325Factlog.xul)
to remote, granular queries and away from monolithic RDF XML files]. As
I migrate from my old XUL template queries to SPARQL, some questions
popped up. I think they are of general interest. I hope so anyway.
1) predicates as variables and dumping/discovery:
Let's say running the following
SELECT *
WHERE {?person foaf:name ?name ; foaf:mbox ?mbox}
gets results like
[:p1 "joe" <mailto:joe@example.com>]
[:p2 "fred" <mailto:fred@example.com>]
etc
Consider:
SELECT ?subject ?predicate WHERE { ?subject ?predicate ?object }
Do I get a dump of all of the predicates supported by each and every
resource in a graph?
i.e. something like
[:p1 foaf:name]
[:p1 foaf:mbox]
[:p2 foaf:name]
[:p2 foaf:mbox]
etc?
If so, does the following retrieve all the values of all the
predicates, in other words dump the graph?
SELECT *
WHERE { ?subject ?predicate ?object }
i.e. something like
[:p1 foaf:name "joe"]
[:p1 foaf:mbox <mailto:joe@example.com>]
etc
A variation of this, where you set the subject to :p1 would dump all of
the values of its predicates ... true?
2) rdf:about value and value of "?subject"
# can I get the "rdf:about" from every resource
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT ?about
WHERE { ?subject rdf:about ?about }
is this equivalent to (presuming all resources have abouts and aren't
blank)?
SELECT ?subject
The subject variable is bound to an about uri value OR if blank, a
unique id, scoped to the result. Is that right?
3) Types - just like any other predicate?
SELECT *
WHERE { ?subject rdf:type ?type }
will give me all of the types of all of the resources - right?
[:p1 foaf:Person]
[:p1 t3p:Gamekeeper] ... it's just an example!
i.e. all the values of type for resources.
4) objects become subjects: arcs in as well as arcs out are supported
Let's say "Event" resources reference "Person" resources using a
predicate "t3p:involved". So will ...
SELECT ?person ?name ?eventName
WHERE
{ ?person foaf:name ?name .
?event t3p:involved ?person . <----- subject "person" becomes object
?event foaf:name ?eventName }
give me people names with the names of all of their events?
[:people/p1 "joe" "Joe goes to Cairo"]
[:people/p1 "joe" "Joe does Jordan"]
etc
Thx in advance for any misconceptions cleared up ...
Received on Friday, 6 May 2005 04:18:49 UTC