- 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