W3C home > Mailing lists > Public > www-rdf-logic@w3.org > June 2001

Re: Inference in daml

From: Sean B. Palmer <sean@mysterylights.com>
Date: Sun, 17 Jun 2001 19:29:19 +0100
Message-ID: <009301c0f75b$beaa72a0$c6ed93c3@z5n9x1>
To: "Geoff Chappell" <geoff@sover.net>, <www-rdf-logic@w3.org>
> 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 -- [...]

Me too, which is why I write things in Notation3 [1], and then convert
them over with CWM [2]. It also saves time.

> >       [ :unionOf (:Animal [ :complementOf :Dog ]) ] .
> [...]
> Ultimately I'm trying to express the rule that if something is a dog
> then it is an animal.

Oh, easy:-

   :Dog rdfs:subClassOf :Animal .

Remembering that:-

   type(x, z) :- type(x, y), subClassOf(y, z).

And a full list of rules in English: if x is a dog, it must be an
animal, if x is an animal, then it may or may not be a dog. If x is
not an animal, then it is not a dog, and if x is not a dog it may or
may not be an animal.

I prefer to write out stuff like that in Notation3, because it has
contexts, and then use TimBL's FOL namespace

   this log:forAll :x , :Dog , Animal .

   { :Dog rdfs:subClassOf :Animal . :x a :Dog }
   { :x a :Animal } .

   { :Dog rdfs:subClassOf :Animal .
      :x a [ daml:complimentOf :Animal ] }
   { { :x a :Dog } a log:Falsehood } .

There are some other similar axioms written out in Notation3 (and some
in Prolog) at [3] that you might find interesting.

[1] http://www.w3.org/2000/10/swap/Primer
[2] http://www.w3.org/2000/10/swap/cwm.py
[3] http://infomesh.net/2001/05/rdflint/

Kindest Regards,
Sean B. Palmer
@prefix : <http://webns.net/roughterms/> .
:Sean :hasHomepage <http://purl.org/net/sbp/> .
Received on Sunday, 17 June 2001 14:30:15 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 22:45:38 UTC