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

Re: Rule-based approach to conclude owl:intersectionOf

From: Jeremy Wong <50263336@student.cityu.edu.hk>
Date: Wed, 06 Apr 2005 10:24:35 +0800
To: jos.deroo@agfa.com
Cc: Chris Purcell <cjp39@cam.ac.uk>, semantic-web@w3.org
Message-id: <002101c53a4f$c6e8cc60$6502a8c0@miko947ymju833>
The rules look cool. Is it called.. backward-chaining? 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> ) .

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

By the way, what is the "filter" for?


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/
> 
> 
> 
>
Received on Wednesday, 6 April 2005 02:31:40 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 19:47:01 UTC