Re: worries about useMentionOp and how queries relate to rules and proofs

>
>
>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