Re: Inference in daml

----- Original Message -----
From: "Sean B. Palmer" <sean@mysterylights.com>
To: "Geoff Chappell" <geoff@sover.net>; <www-rdf-logic@w3.org>
Sent: Sunday, June 17, 2001 12:11 PM
Subject: Re: Inference in daml


> This is kinda of odd - unionOf is a property not a class, and Class is
> a Class, not a property. What you have gives something like this in
> N3:-

Sorry, I haven't bothered much the with xml serialization of rdf and so
always seem to get it wrong when I do use it -- guess I should stick to
triples (BTW,  I moreorless copied sections from the reference page at
daml.org - so if mine was wrong someone may want to take a look at that and
see if it needs fixing.)

>
> Hmm... so you're trying to define a new class which is a union of all
> things which are animals, and all things which are not dogs. Why not
> just say that there is a class of things which are animals and not
> dogs?
>
>       [ :unionOf (:Animal [ :complementOf :Dog ]) ] .
>

Ultimately I'm trying to express the rule that if something is a dog then it
is an animal. So if you assert that:
    type(X,animal) or not(type(X,dog)) is always a true statement
then:
     if x is not a dog, not(type(X,dog)) will be true, so the disjunction
will always be true, so you can't know (from this rule) if x is an animal.
    if x is a dog, then not(type(X,dog)) will be false so you know that x
must be an animal (because we started by saying the disjunction was always
true).

I guess I should have picked some other property (color, size, etc.)  for my
example so as not to confuse things. I imagine that your re-write is correct
also (since class animal is class of things with the restriction
type=animal). I'm looking for general transformations so that I can rewrite
a rule in one language into a daml equivalent (of which there may be many)
and convert that daml rule back into the other language.

--geoff

Received on Sunday, 17 June 2001 12:53:45 UTC