W3C home > Mailing lists > Public > semantic-web@w3.org > April 2005

Re: Rule-based approach to conclude owl:intersectionOf

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
Message-ID: <OF306463CE.91C5F61A-ONC1256FDC.0035E56B-C1256FDC.003625BE@agfa.com>

> 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

This archive was generated by hypermail 2.3.1 : Tuesday, 1 March 2016 07:41:45 UTC