next up previous contents
Next: Quantities Up: General Semantics Previous: General Semantics

Relations, functions, classes and individuals

CML is based on declarative knowledge representation, using a standard logical treatment of objects, relations, and denotation (e.g. as described in [6]). Objects in the universe of discourse are denoted by symbols or terms composed of lists whose first element is a function constant followed by symbols or terms. Sentences are composed of lists whose first element is a relation constant followed by terms, or compositions of sentences using logical operators. Using a set-theoretic model of relations, we define relations, functions, and classes as follows. Relations are sets of tuples; each tuple is a sequence of constants for which the relation holds. A single relation may include tuples of various lengths, corresponding to predicates of various arities. Functions are relations for which the last element in each tuple is unique given the previous elements in that tuple.

We define classes as unary relations. The instances of a class are those elements for which the relation holds. That is, an individual x is an instance of class C exactly when holds.

This treatment of relations admits a range of possible implementations. It does not, for instance, require that class names be disjoint from names of relations of higher arity. Functions may be polymorphic: their behavior can depend on the types of their arguments.

Since functions are a special case of relations, a symbol denoting a function may be used in the relational position as a predicate. For example, the sentences and are two ways of stating the same fact.

Individuals may be physical objects, descriptions of physical phenomena, or any other entity in the universe of discourse. We do not require that relations are included in the universe of discourse, but do not preclude this.gif



Tom Mostek
Wed Jan 21 13:00:43 CST 1998