Thread Links Date Links
Thread Prev Thread Next Thread Index Date Prev Date Next Date Index

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.