- From: <jos.deroo@agfa.com>
- Date: Wed, 6 Apr 2005 00:55:45 +0200
- To: $)Cjos.deroo@agfa.com
- Cc: $)CJeremy Wong |\{rUa <50263336@student.cityu.edu.hk>, Chris Purcell <cjp39@cam.ac.uk>, semantic-web@w3.org
$)Cdid 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 |\{rUa <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 Tuesday, 5 April 2005 22:56:06 UTC