;;; -*- Mode:Lisp; Syntax: Common-Lisp; Package:ONTOLINGUA-USER; Base:10 -*- ;;; Quantity Space ;;; (c) 1993 Greg Olsen and Thomas Gruber (in-package "ONTOLINGUA-USER") (define-theory quantity-spaces (physical-quantities) "A quantity-space is a set that has the property that a distance function is defined for any two elements in the set. In addition, the range of the distance function is a subclass of the class of scalar quantities. This theory defines the class of quantity-space, and the associated relations POINT-IN, DISTANCE. It is agnostic about the semantics of the points -- they needn't be spatial things or of any particular dimensionality." :issues ("Copyright (c) 1994 Greg R. Olsen and Thomas R. Gruber" (:see-also "The EngMath paper on line"))) (in-theory 'quantity-spaces) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Quantity Space ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (define-class QUANTITY-SPACE (?s) "A quantity-space is a set that has the property that a distance function is defined for any two elements in the set. In addition, the range of the distance function is a subclass of the class of scalar quantities." :iff-def (and (set ?s) (forall (?x1 ?x2) (=> (and (member ?x1 ?s) (member ?x2 ?s)) (exists (?d) (and (= ?d (distance ?x1 ?x2)) (scalar-quantity ?d))))))) (define-relation POINT-IN (?pt ?sp) "A point in a quantity-space is simply an element in the set that is the quantity-space." :iff-def (and (quantity-space ?sp) (member ?pt ?sp))) (define-function DISTANCE (?x1 ?x2) :-> ?d "The DISTANCE function is intended to be polymorphically defined for each quantity space. Its always maps two points in the space to a scalar-quantity. It must be commutative." :def (and (exists (?sp) (and (quantity-space ?sp) (point-in ?x1 ?sp) (point-in ?x2 ?sp))) (scalar-quantity ?d)) :axiom-def (and (zero-quantity (distance ?a ?a)) ;; commutivity (= (distance ?b ?c) (distance ?c ?b))))