- From: <jos.deroo@agfa.com>
- Date: Thu, 7 Apr 2005 11:51:26 +0200
- To: 50263336@student.cityu.edu.hk
- Cc: Chris Purcell <cjp39@cam.ac.uk>, semantic-web@w3.org
> The rules look cool. Is it called.. backward-chaining? An inference engine can chain the rules either forward or backward. I tested those rules with both Cwm which is a forward chainer and Euler which is a backward chainer > The drawback I can see is that it generates some more facts which > can be as many as n*(n-1)/2. Sticking back to the original 5 facts.. > then they should entail 3 owl:oneOf restrictions.. > > <#A> rdf:type <#X> , <#Y> , <#Z> . > <#B> rdf:type <#Y> . > <#C> rdf:type <#Z> . > > # entail > > <#X> owl:oneOf ( <#A> ) . > <#Y> owl:oneOf ( <#A> <#B> ) . > <#Z> owl:oneOf ( <#A> <#C> ) . is the other way around.. <X> owl:oneOf ( <A> ) . <Y> owl:oneOf ( <A> <B> ) . <Z> owl:oneOf ( <A> <C> ) . ### entails <A> rdf:type <X> , <Y> , <Z> . <B> rdf:type <Y> . <C> rdf:type <Z> . > Here comes the problem of collection generation and attaching the > owl:oneOf vocabulary to the head of the list. Can rules generate a > collection? (Thinking...) depends on what you mean with "generate".. there are comprehension conditions for lists http://www.w3.org/TR/owl-semantics/rdfs.html#comprehension_principles > By the way, what is the "filter" for? --filter is a command line argument of cwm (and also euler) see for instance http://www.w3.org/2000/10/swap/doc/CwmHelp (the filter rules produce the query results) Jos > > Jeremy > > ----- Original Message ----- > From: <jos.deroo@agfa.com> > To: <jos.deroo@agfa.com> > Cc: "Jeremy Wong ···" <50263336@student.cityu.edu.hk>; "Chris Purcell" <cjp39@cam.ac.uk>; <semantic-web@w3.org> > Sent: Wednesday, April 06, 2005 6:55 AM > Subject: Re: Rule-based approach to conclude owl:intersectionOf > >> did some slight changes and also tested with cwm >> >> ### given >> >> @prefix owl: <http://www.w3.org/2002/07/owl#>. >> @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>. >> @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>. >> @prefix : <http://example.org/eg#>. >> >> :X owl:oneOf ( :A ). >> :Y owl:oneOf ( :A :B ). >> :Z owl:oneOf ( :A :C ). >> >> >> {?B has owl:oneOf ?Y. >> ?A has owl:oneOf ?X. >> ?Y :includes ?X} >> => >> {?A rdfs:subClassOf ?B}. >> >> >> {?X a rdf:List} >> => >> {?X :includes rdf:nil}. >> >> {?S rdf:first ?A; >> a rdf:List. >> ?X :item ?A. >> ?S rdf:rest ?B; >> a rdf:List. >> ?X :includes ?B} >> => >> {?X :includes ?S}. >> >> >> {?L rdf:first ?I; >> a rdf:List} >> => >> {?L :item ?I}. >> >> {?L rdf:rest ?R; >> a rdf:List. >> ?R :item ?I} >> => >> {?L :item ?I}. >> >> >> {?S owl:oneOf ?X} >> => >> {?X a rdf:List}. >> >> {?L rdf:rest ?X; >> a rdf:List} >> => >> {?X a rdf:List}. >> >> >> ### filter >> >> @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>. >> @prefix : <http://example.org/eg#>. >> >> {:X rdfs:subClassOf :Y, :Z} => {:X rdfs:subClassOf :Y, :Z}. >> >> >> ### gives >> >> @prefix : <http://example.org/eg#> . >> @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . >> >> :X rdfs:subClassOf :Y, >> :Z . >> >> >> -- >> Jos De Roo, AGFA http://www.agfa.com/w3c/jdroo/ >> >> >> >> >> Jos De_Roo >> 05/04/2005 22:06 >> >> >> To: Jeremy Wong ··· <50263336@student.cityu.edu.hk>@AGFASMTP >> cc: Chris Purcell <cjp39@cam.ac.uk>, semantic-web@w3.org >> Subject: Re: Rule-based approach to conclude owl:intersectionOf >> >>> Oh my God.. i'd not make mistake again if it's in set.. >> >> :) >> >>> CEXT(S(#X)) = {<#A>} >>> CEXT(S(#Y)) = {<#A>,<#B>} >>> CEXT(S(#Z)) = {<#A>,<#C>} >>> i.e. >>> <#A> rdf:type <#X> , <#Y> , <#Z> . >>> <#B> rdf:type <#Y> . >>> <#C> rdf:type <#Z> . >>> => >>> <#X> rdfs:subClassOf <#Y> , <#Z> . >>> => >>> <#X> owl:intersectionOf (<#Y>,<#Z>) . >>> >>> I admit that this kind of inference requires a condition that the >> collection >>> of facts is complete. Otherwise the inference results may be ruined if a >> >>> fact like <#B> rdf:type <#X> is asserted. However, it is not a too bad >>> interpretation because the OWL interpretation still satisifies the RDF >> graph >>> above. >> >> One could say >> :X owl:oneOf ( :A ). >> :Y owl:oneOf ( :A :B ).. >> :Z owl:oneOf ( :A :C ). >> >> and then >> :X rdfs:subClassOf :Y, :Z. >> >> easily follows, using such rules as >> >> { ?B has owl:oneOf ?Y. >> ?A has owl:oneOf ?X. >> ?Y :includes ?X } >> => >> { ?A rdfs:subClassOf ?B }. >> >> >> { } >> => >> { ?X :includes rdf:nil }. >> >> { ?S rdf:first ?A. >> ?X :item ?E. >> ?E has owl:equivalentClass ?A. >> ?S rdf:rest ?B. >> ?X :includes ?B } >> => >> { ?X :includes ?S }. >> >> >> { ?S rdf:first ?X } >> => >> { ?S :item ?X }. >> >> { ?S rdf:rest ?B. >> ?B :item ?X } >> => >> { ?S :item ?X }. >> >> >> At this moment, I can't find proof for >> :X owl:intersectionOf ( :Y :Z ). >> >> i.e. probably have to add some more owl-rules.. >> >> >>> In addition, my main concern is the use of the universal quantification >> and >>> the existential quantification. It is because N3 Rules cannot express >> the >>> inference described in the above example. My work of rules shows that N3 >> >>> Rules is very weak to model OWL restrictions, anyway. I hope to discuss >> or >>> to find out the use of the quantification facilities so that the >> rule-based >>> approach becomes more powerful as expected. >> >> You can have look at >> http://www.w3.org/2000/10/swap/doc/Rules >> and convince yourself that it can be easily done :) >> >>> :) >>> Jeremy >> >> -- >> Jos De Roo, AGFA http://www.agfa.com/w3c/jdroo/ >> >> >> >> > -- Jos De Roo, AGFA http://www.agfa.com/w3c/jdroo/
Received on Thursday, 7 April 2005 09:51:46 UTC