- From: <jos.deroo@agfa.com>
- Date: Wed, 7 Sep 2005 13:48:28 +0200
- To: franconi@inf.unibz.it
- Cc: RDF Data Access Working Group <public-rdf-dawg@w3.org>
> On 6 Sep 2005, at 20:43, jos.deroo@agfa.com wrote: >> I am trying to understand the issue.. >> starting from your given data >> >> ############################################## >> @prefix owl: <http://www.w3.org/2002/07/owl#>. >> @prefix : <enricoP#>. >> >> :Paul a :WORKER. >> :Andrea a :WORKER. >> :Simon a :EMPLOYEE. >> :Caroline a :MANAGER. >> :Paul :has-friend :Andrea. >> :Paul :has-friend :Simon. >> :Simon :has-friend :Andrea. >> :Andrea :has-friend :Caroline. >> >> :WORKER owl:unionOf (:EMPLOYEE :MANAGER). >> ############################################## >> >> I really can't see how query (*) >> >> ############################################## >> PREFIX owl: <http://www.w3.org/2002/07/owl#> >> PREFIX : <enricoP#> >> >> SELECT ?X >> >> WHERE { >> ?X a :WORKER; >> :has-friend ?Y. >> ?Y a :EMPLOYEE; >> :has-friend ?Z. >> ?Z a :MANAGER. >> } >> ############################################## >> >> can give an answer.. > > [snip] > >> Did you really intend query (*) ?? > > Yes I did :-) > > The crucial bit is reasoning about Andrea. We don't know whether she > is an employee or a worker (if she were either employee or manager, > then the answer to the query would be clearly Paul - do you agree?); > but we know that since she is a worker then necessarily she has to be > either employee or manager. So, Paul is in the answer for any > possible case of on Andrea. > > Is it clearer now? yes it is clearer now :) thanks am indeed getting prover9 proof 22 - triple(x,qname("rdf:type"),qname(":WORKER")) | - triple(x,qname(":has-friend"),y) | - triple(y,qname("rdf:type"),qname(":EMPLOYEE")) | - triple(y,qname(":has-friend"),z) | - triple(z,qname("rdf:type"),qname(":MANAGER")) | triple(qname("e:quod"),qname("e:erat"),qname("e:demonstrandum")). [input] 32 triple(qname(":Paul"),qname("rdf:type"),qname(":WORKER")). [input] 33 triple(qname(":Andrea"),qname("rdf:type"),qname(":WORKER")). [input] 34 triple(qname(":Simon"),qname("rdf:type"),qname(":EMPLOYEE")). [input] 35 triple(qname(":Caroline"),qname("rdf:type"),qname(":MANAGER")). [input] 36 triple(qname(":Paul"),qname(":has-friend"),qname(":Andrea")). [input] 37 triple(qname(":Paul"),qname(":has-friend"),qname(":Simon")). [input] 38 triple(qname(":Simon"),qname(":has-friend"),qname(":Andrea")). [input] 39 triple(qname(":Andrea"),qname(":has-friend"),qname(":Caroline")). [input] 45 - triple(x,qname("rdf:type"),qname(":WORKER")) | triple(x,qname("rdf:type"),qname(":EMPLOYEE")) | triple(x,qname("rdf:type"),qname(":MANAGER")). [input] 46 - triple(x,qname("rdf:type"),qname(":WORKER")) | - triple(x,qname(":has-friend"),y) | - triple(y,qname("rdf:type"),qname(":EMPLOYEE")) | - triple(y,qname(":has-friend"),z) | - triple(z,qname("rdf:type"),qname(":MANAGER")) | triple(qname("e:quod"),qname("e:erat"),qname("e:demonstrandum")). [copy 22] 48 - triple(qname("e:quod"),qname("e:erat"),qname("e:demonstrandum")). [input] 50 - triple(x,qname("rdf:type"),qname(":WORKER")) | - triple(x,qname(":has-friend"),y) | - triple(y,qname("rdf:type"),qname(":EMPLOYEE")) | - triple(y,qname(":has-friend"),z) | - triple(z,qname("rdf:type"),qname(":MANAGER")). [back_unit_del 46 unit_del (f 48)] 51 triple(qname(":Andrea"),qname("rdf:type"),qname(":EMPLOYEE")) | triple(qname(":Andrea"),qname("rdf:type"),qname(":MANAGER")). [resolve (45 a 33 a)] 62 - triple(qname(":Andrea"),qname("rdf:type"),qname(":EMPLOYEE")). [ur (50 a 32 a b 36 a d 39 a e 35 a)] 64 - triple(qname(":Andrea"),qname("rdf:type"),qname(":MANAGER")). [ur (50 a 32 a b 37 a c 34 a d 38 a)] 66 $F. [back_unit_del 51 unit_del (a 62) unit_del (b 64)] -- Jos De Roo, AGFA http://www.agfa.com/w3c/jdroo/
Received on Wednesday, 7 September 2005 11:49:05 UTC