- From: Jos De_Roo <jos.deroo.jd@belgium.agfa.com>
- Date: Mon, 6 May 2002 00:33:16 +0200
- To: pfps@research.bell-labs.com
- Cc: "jjc" <jjc@hplb.hpl.hp.com>, "www-webont-wg" <www-webont-wg@w3.org>
> > I believe we have three live proposals:
> >
> > - comprehensive entailments: Jeremy
>
> Unfortunately, this proposal is fatally flawed.
>
> In the empty KB, we can apply the kitchen sink comprehension rule
>
> (forall (?v)
> (=> (and (Type ?p Property)
> (Type ?card NonNegativeInteger)
> (Type ?min NonNegativeInteger)
> (Type ?max NonNegativeInteger)
> (Type ?c1 rdfs:Class)
> (Type ?c2 rdfs:Class))
> (exists (?r) (and (Type ?r Restriction)
> (PropertyValue onProperty ?r ?p)
> (PropertyValue minCardinality ?r ?min)
> (PropertyValue maxCardinality ?r ?max)
> (PropertyValue cardinality ?r ?card)
> (PropertyValue hasClass ?r ?c1)
> (PropertyValue toClass ?r ?c2) ) ) ) )
>
> with ?p as rdf:type
> ?card as 0
> ?min as 0
> ?max as 0
> ?c1 as rdfs:Class
> ?c2 as rdfs:Resource
> ?v as rdf:type (?v is not used in the rule)
>
> to obtain the following restriction (written in n-triples notation)
>
> _:r rdf:type owl:Restriction .
> _:r owl:onProperty rdf:type .
> _:r owl:minCardinality 0 .
> _:r owl:maxCardinality 0 .
> _:r owl:cardinality 0 .
> _:r owl:hasClass rdfs:Class .
> _:r owl:toClass rdfs:Resource .
>
> Now consider whether rdfs:Class is a member of this restriction.
>
> Because _:r has both owl:onProperty and owl:toClass, an object belongs to
it
> exactly when all its rdf:type fillers belong to rdfs:Resource. But this
is
> true of all objects in all interpretations. Therefore rdfs:Class belongs
> to _:r.
>
> Because _:r has both owl:onProperty and owl:maxCardinality, an object
> belongs to it exactly when it has at most 0 rdf:type fillers. But this
is
> not true of rdfs:Class, because rdfs:Class has rdfs:Class as an rdf:type.
> Therefore rdfs:Class does not belong to _:r.
>
> Therefore an empty knowledge base implies that some object both belongs
and
> does not belong to some class.
OK
with the following pair of ``entailment'' rules
{ :rule9r1 .
?s a ?C }
log:implies
{ ?s a [ a owl:Restriction;
owl:onProperty rdf:type;
owl:toClass ?C ] } .
{ :rule9r2 .
?s a ?C }
log:implies
{ ?s a [ owl:complementOf [ a owl:Restriction;
owl:onProperty rdf:type;
owl:maxCardinality "0";
owl:hasClass ?C ] ] } .
we were able to entail
rdfs:Class a [ a owl:Restriction;
owl:onProperty rdf:type;
owl:toClass rdfs:Resource ] .
rdfs:Class a [ owl:complementOf [ a owl:Restriction;
owl:onProperty rdf:type;
owl:maxCardinality "0";
owl:hasClass rdfs:Class ] ] .
and we have kept some statements in appropriate N3 contexts
--
Jos
Received on Sunday, 5 May 2002 18:33:57 UTC