Re: incomplete translations

"Cheng Hian GOH" <chgoh@MIT.EDU>
Message-id: <9405202035.AA10824@e51-007-3.MIT.EDU>
Subject: Re: incomplete translations 
In-reply-to: Your message of Fri, 20 May 94 10:19:15 -0800.
Cc: ontolingua@HPP.Stanford.EDU
Date: Fri, 20 May 94 16:35:54 EDT
From: "Cheng Hian GOH" <chgoh@MIT.EDU>


> existing system.  If you can send me a small KB together with
> a few examples of inferences you want to extract from it, we will
> take a look and let you know whether or not we see a way to make
> things work.  Phrasing in Loom is easiest, but we do know how
> to read an Ontolingua spec.

Thanks for the offer; I can certainly use some help! I have started this
investigation by trying to get Standard-Units-and-Measures (from Gruber et al)
to work. When I realize that it cannot be done, I have began writing a similar
(not identical) version in LOOM. Below is a fragment of it (you have to forgive
the amatuerish code, I've not spent as much time on it as I would like to).

(defconcept Unit-Of-Measure
  "A quantity which is a standard of measurement such as meters, seconds..."

(defconcept Physical-Dimension
  "A Physical-Dimension is a property we associate with Physical-Quantities forpurpose of classification or differentiation"

(defconcept Physical-Quantity
  "A measure of a quantity of some physical dimension"

(defrelation Dimension
  "This relation maps units-of-measure to their physical dimensions."
  :is-primitive (:and (:domain Unit-Of-Measure)
                      (:range Physical-Dimension))
  :characteristics (:single-valued))

(defrelation Unit
  "This relation maps physical quantities to their unit of measures"
  :is-primitive (:and (:domain Physical-Quantity)
                      (:range Unit-Of-Measure))
  :characteristics (:single-valued))

(defrelation Compatible-Quantities
  "Two physical quantities are compatible if their Unit-of-Measure are also comp
  :is (:and (:domain Physical-Quantity)
            (:range Physical-Quantity)
            (:satisfies (?X ?Y) (Compatible-Units (Unit ?X) (Unit ?Y)))))

(defrelation Compatible-Units
  "Two units are compatible if they belong to the same Physical Dimension"
  :is (:and (:domain Unit-Of-Measure)
            (:range Unit-Of-Measure)
            (:satisfies (?X ?Y) (= (Dimension ?X) (Dimension ?Y)))))

(tellm (Unit-of-Measure Hour) (Dimension Hour Time-Dimension))
(tellm (Unit-of-Measure Minute) (Dimension Minute Time-Dimension))
(tellm (Unit-of-Measure Second) (Dimension Second Time-Dimension))

This small kb allows me to determine things like Minutes and Seconds are
"Compatible-Units" which is great. However, I will like to do things like define
certain axioms between things. In the Ontolingua ontologies, we could say

(= Second (* Minute 60))
(= Minute (* Hour 60))     

or something to that effect (depending on how you parse it), then infer that

(= Second (* Hour 3600))

I'm sure there is a way to do this in LOOM. I probably could hack around it if I
had know LOOM better, but a more elegant way might be to provide a set of
bootstrap ontologies just as Ontolingua had, defining certain abstract algebra
operations which can be used over and over again. (Or maybe there is a real easy
way to do it which I do not know of, then I'm really making a fool of myself
here. )