- From: Wolfram Conen <conen@wi-inf.uni-essen.de>
- Date: Wed, 13 Dec 2000 17:29:56 +0100
- To: David Allsopp <dallsopp@signal.dera.gov.uk>
- CC: www-rdf-interest@w3.org
David Allsopp wrote: > > Hi all, > > I've been following the various proposals for querying RDF (RDFDB, > Squish, RQL, RDFQuery etc) and was wondering if anyone has given any > thought to querying reified statements. > ... > But if I wanted a query along the lines of "What do people say John > Smith's age is?" I would need something like: > select ?a where (?x rdf:type Statement)(?x rdf:subject JohnSmith)(?x > rdf:predicate age)(?x rdf:object ?a) >... Dear David, Hm, this is quite a good case for an additional layer of abstraction. It is straightforward to interpret reification as relations, as has been done in [1], that is (triples are in s): reifies(R,S,P,O) :- res(S), uri(P), s(R,rdf:type,rdf:'Statement'), s(R,rdf:subject,S), s(R,rdf:predicate,P), s(R,rdf:object,O). reifies_fact(R,S,P,O) :- reifies(R,S,P,O), s(S,P,O). Now, taking your example, you would query: ?- reifies(R,'JohnSmith',age,O). You can try out this and similar queries easily with the RDF Schema Explorer [2]. Dan has asked to develop a SQL-like interface, but I haven't found the time to do it yet (but I promise to do it, since it's a neat idea) - otherwise, your query could be stated as: SELECT $1,$4 FROM reifies WHERE $2 = "JohnSmith" AND $3 = "age", which would also be nice (only a little bit more phony ;) I hope that you might find this useful? Regards, Wolfram + Reinhold [1] "A locigal interpretation of RDF", http://nestroy.wi-inf.uni-essen.de/rdf/logical_interpretation [2] RDF Schema Explorer, http://wonkituck.wi-inf.uni-essen.de/rdfs.html
Received on Wednesday, 13 December 2000 11:16:56 UTC