- From: Pat Hayes <phayes@ihmc.us>
- Date: Fri, 4 Feb 2005 13:28:12 -0600
- To: Eric Prud'hommeaux <eric@w3.org>
- Cc: Dan Connolly <connolly@w3.org>, www-archive@w3.org, Jos De Roo <jos.deroo@agfa.com>
> > >Let's add some data to query (I think just querying the schema info >slightly obscures the problem): > > _:somebody foaf:homePage <dansHomePage#topic>. >> > <dansHomePage#topic> owl:sameAs _:somebody . > >and ask a question: > CONSTRUCT * > WHERE { (?who foaf:homePage <dansHomePage#topic>) } > >A complete OWL reasoner must know that > <dansHomePage#topic> foaf:homePage <dansHomePage#topic>. >Just for giggles, it could add > _:x foaf:homePage <dansHomePage#topic>. > _:y foaf:homePage <dansHomePage#topic>. > _:y foaf:homePage <dansHomePage#topic>. > _:z foaf:homePage <dansHomePage#topic>. Well, it could, yes. So could an RDF reasoner, for that matter, since an inference to change a blanknodeID is valid in any version of RDF. But this particular example is artificial, since according to the SPARQL scoping rules these answers are all the same answer, so this engine is just repeating itself. >Does anything but a query like > CONSTRUCT * > WHERE { (?who foaf:homePage <dansHomePage#topic>) } > AND isURI(?who) > >keep the reasoner from reporting an endless series of equivlient bNode >solutions? I think the SPARQL rules already stop that, if you say that you don't want repeated answers. But look, whats to stop the answering engine from inventing a string of URIs like mine:uri1 mine:uri2... and adding mine:uri1 owl:sameAs <dansHomePage#topic> . mine:uri2 owl:sameAs mine:uri1 . etc. to the graph? There is no way to be totally secure against getting silly stuff back from a truly brain-damaged, or maybe malicious, answering engine. >Is it logically equivilent to substitute a bNodes for any >URI in the graph? It seems that OWL would not worry about this >limitless enumeration. Yes, and indeed it should not, and almost any real OWL or RDF answering engine would not do this (though it might accidentally repeat itself when using a large graph, if the graph contains redundancies.) > > >and by definition >> > isURI(<dansHomePage#topic>) >> >but not >> > isURI(_:somebody) > >If isURI is a constraint on a set of bindings of nodes/literals to >variables, and each node/literal is only one of URI, bNode, Literal, >then it seems like we're fine. If owl:sameAs makes some node both a >URI and a bNode, then I don't understand owl:sameAs (a definite >possibility). Well, not sure what you mean by 'makes some node both'. One can assert a sameAs between a bnode and a URI, as you did above. This isnt a problem, surely. >Also, I'm not sure why this is a use/mention problem rather than a >potential over-simplification of the RDF model. The 'predicate' in isURI(x) refers to the syntax of the expression substituted for the variable, not to whatever that expression denotes. To this extent it is semantically different from an RDF pattern with a variable in it. Its meta-RDF rather than RDF. Pat -- --------------------------------------------------------------------- IHMC (850)434 8903 or (650)494 3973 home 40 South Alcaniz St. (850)202 4416 office Pensacola (850)202 4440 fax FL 32502 (850)291 0667 cell phayes@ihmc.us http://www.ihmc.us/users/phayes
Received on Friday, 4 February 2005 19:27:52 UTC