Re: SUO: Units of measure - representation of multipliers
Adam,
There is Interval Arithmetic, which is a fairly well established branch of
mathematics. See <http://www.cs.utep.edu/interval-comp/main.html> for
introductory materials and links to some current implementations.
Like so many seemingly simple notions, it's non-trivial to implement fully
and well, but there are many extant implementations is several languages. I
could find no Java implementations, but there are C++ implementations which
could be provided to Java code via JNI. It should be straightforward to
integrate interval types and math into the Common Lisp numeric type
lattice. (In fact, I see that the on-line Common Lisp HyperSpec dated 1996
includes some discussion of intervals, while the 1990 printed CLtL 2nd ed.
has no such material. And now I see, via Amazon, that CLtL is out of
print!). The CMU AI repository has a Prolog package on file.
Randall Schulz
Mountain View, CA USA
At 08:56 2001-08-17, Adam Pease wrote:
>Tim,
> Excellent point. Thanks for explaining further. We should indeed make
> precision explicit in the ontology as making things explicit is a key
> advantage of an ontology. Maybe one option for us would be to create a
> term NumberWithTolerance subclassed from Number
> <http://ontology.teknowledge.com:8080/rsigma/SKB.jsp?req=SC&name=Number&caseSensitive=on&skb=Merge>
>
>
>and a sketch of a definition would be as follows:
>
>(subclass NumberWithTolerance Number)
>
>(=>
> (instance ?NUMBER NumberWithTolerance)
> (exists (?PART1 ?PART2)
> (and
> (equal ?PART1 (NumberValueFn ?NUMBER))
> (equal ?PART2 (PrecisionFn ?NUMBER)))))
>
>We'd then need other axioms which state things like the fact that adding
>or subtracting from a number with a precision value that is larger than
>the number being added or subtracted results in no change in the first
>number. So, for example, if for the purpose of this email I show a number
>with a precision in the form (<number> <precision>p)
>
>(10 1p) + 0.5 = (10 1p)
>
>and
>
>(10 0.1p) + 0.5 = (10.5 0.1p)
>
>Maybe in fact there is a mathematics of numbers with precision. Has this
>been worked out for the mechanical engineering world where tolerances are
>critical?
>
>Do you have additional thoughts on this?
>
>Adam
>
>
>At 09:10 AM 8/17/2001 +0100, Tim King wrote:
>
>>Dear Adam,
>>
>>There is no distinction in the current representation between an exact
>>and an inexact multiplier. This has various other facets such as the
>>difference between a defined multiplier and a derived
>>multiplier. Perhaps I am coming at this ontology work from totally the
>>wrong direction but I am used to working with data models where making
>>things explicit is an important part of being able to share knowledge
>>effectively. The main difference I think I have understood is that in an
>>ontology the framework will allow greater derivation of knowledge that is
>>not directly stated. However, the representations within this framework
>>can still be used in a way that hides foundational knowledge. In the
>>case of the specific example in hand, I see no reference to the concept
>>of integer in representing the multiplier.
>>
>>I do not believe that, at the expense of accurate and robust modelling of
>>our world, the ontology should avoid "unwieldy", except in so far as we
>>attempt to mirror how human beings make some concepts simple for daily
>>use but have underlying richer models for more critical applications. I
>>am keen to know that we our vision includes both the house-wife's view of
>>a kilogramme of apples and the rocket engineer's view of a kilogramme of
>>fuel. However, both must be derivable from the same underlying framework
>>that corresponds to the ISO standard for SI units of measure and the use
>>(or otherwise) of the standard within the industrial contexts that lead
>>to both the experiences above.
>>
>>Cheers,
>>Tim.