- From: <jos.deroo@agfa.com>
- Date: Wed, 25 Jan 2006 23:31:59 +0100
- To: tessaris@inf.unibz.it
- Cc: RDF Data Access Working Group <public-rdf-dawg@w3.org>
- Message-ID: <OFC75F1722.A38A3B93-ONC1257101.00792E6D-C1257101.007BBBA2@agfa.com>
Hi, Sergio First of all, thanks for your previous test cases! [...] > Q1) Build a graph which is graph-equivalent to the Dataset (identity): > > CONSTRUCT { ?s ?p ?o } WHERE { ?s ?p ?o } > > Q2) Build a reification of the Dataset > > CONSTRUCT { _:s rdf:subject ?s . > _:s rdf:predicate ?p . > _:s rdf:object ?o } WHERE { ?s ?p ?o } > > Assume the following Dataset: > > _:a foaf:name "Alice" . > _:a foaf:mbox <mailto:alice@example.org> . Those gave me trouble with a 7 year old bug.. but now, after fixing, I am getting: A1) _:a_0_ foaf:name "Alice". _:a_0_ foaf:mbox <mailto:alice@example.org>. A2) _:e0_ rdf:subject _:a_0_. _:e1_ rdf:subject _:a_0_. _:e0_ rdf:predicate foaf:name. _:e1_ rdf:predicate foaf:mbox. _:e0_ rdf:object "Alice". _:e1_ rdf:object <mailto:alice@example.org>. The trouble was with the latter as a backward chainer is not easily happy with existentials in the consequent. It is done with following filter rule: {?s ?p ?o. ?f e:tuple (?s ?p ?o)} => {?f rdf:subject ?s. ?f rdf:predicate ?p. ?f rdf:object ?o}. where e:tuple is a builtin skolem function generator. -- Jos De Roo, AGFA http://www.agfa.com/w3c/jdroo/
Received on Wednesday, 25 January 2006 22:32:13 UTC