- From: <jos.deroo@agfa.com>
- Date: Mon, 30 Jan 2006 20:53:48 +0100
- To: phayes@ihmc.us
- Cc: "Seaborne, Andy" <andy.seaborne@hp.com>, RDF Data Access Working Group <public-rdf-dawg@w3.org>, public-rdf-dawg-request@w3.org
- Message-ID: <OFD1FC6342.E8BA706A-ONC1257106.006C7D4B-C1257106.006D401E@agfa.com>
>>At the moment, rq23 allows blank nodes in the predicate position >>both in the definition of a triple pattern and in the grammar. I >>changed the definition recently to make the syntax and the >>definitions consistent. There are approved syntax tests with bnodes >>in the predicate position but, being syntax tests, the tests do not >>given any clue as to what is supposed to happen. >> >>The text in 2.5.2 that describes how to do simple entailment >>matching would cover the case of blank nodes in the predicate >>position. Pat said in the telecon (26 jan 06) that a blank node in >>the predicate position would never match under entailment. >> >>Looking for experience, I tried cwm. cwm allows blank nodes in the >>predicate position in rule matching. >> >>I tried -- >> >>@prefix : <http://example/> . >>:x :p 1 . >>{ ?x _:p 1 } => { ?x :q 2 } . >> >>and got :x :q 2 . in the resulting graph. >> >>I have added this as a test case in tests/data/BasicGraphPatterns >>http://www.w3.org/2001/sw/DataAccess/tests/data/BasicGraphPatterns/ >> >>We need to be consistent: if they can match then we can allow them >>in both syntax and definition of a triple pattern. If they don't, >>then I see it as confusing to allow them in the syntax or definition >>of triple pattern. > >I agree. > >There is an issue that I didn't think of earlier, I confess. >Consider this trivial example: > >Dataset >:a :p :b . > >Query >SELECT ?x WHERE { :a _:bb ?x .} > >Should this succeed with x/:b ? Or should it fail? Right now it >fails, because the query pattern has no legal RDF instances. But if >we were to treat query bnodes as blank query variables, then it would >succeed, since then the answer mapping (x/:a, _:bb/:p) would make the >illegal pattern into legal RDF. > >Now, even though we havn't treated bnodes as blank variables, this is >a very string intuition, as comments have already pointed out. And >moreover it is a sound intuition all the way up through RDFS and >maybe even further. So, allowing bnodes in property position in query >patterns seems to require us to take a rather firm stance against a >strong and useful intuition. Which might not be good. > >So, I suggest that we either eliminate property-bnodes from the >syntax, or else (my preference) we treat query bnodes as being just >like blank variables, so that this query would succeed, conforming to >cwm usage. This makes semantic sense for RDF and RDFS. It would be I fully agree to treat query bnodes as bvars and have test evidence from 3 independent reasoners that they do so 1/ cwm gives { <http://example.org/eg#b> :bound "x" . } a :Result . 2/ ARQ gives [] rdf:type rs:ResultSet ; rs:resultVariable "x" ; rs:solution [ rs:binding [ rs:value :b ; rs:variable "x" ] ] . 3/ euler gives (:b) . >ruled out as ill-formed for OWL-DL in its current strictly >"first-order" incarnation, but an OWL version will need to impose >many syntactic constraints on query patterns anyway, so this will >just be one more to add to the list. -- Jos De Roo, AGFA http://www.agfa.com/w3c/jdroo/
Received on Monday, 30 January 2006 19:55:09 UTC