    All Packages  Class Hierarchy  This Package  Previous  Next  Index

# Interface jtelos.Individual

public interface Individual
extends Proposition

This interface represents individuals in Telos. These include omegaclasses and non-omegaclasses. It includes the three primtive types but not primitive literals. It also does not include any attribute or attribute class. Primitive types include Telos `String`, `Integer` and `Real` types. Non-primitve individuals include tokens, simple classes, metaclasses, metametaclasses, etc. and omegaclasses.

The three primitive types for each KB are available through the following methods in the interface `KB`:

- `STRING_TYPE()` (returning `String` in Telos)
- `INTEGER_TYPE()` (returning `Integer` in Telos)
- `REAL_TYPE()` (returning `Real` in Telos)

Individuals also include five builtins for each level of Telos instantiation:

- `M3CLASS()` (returning `M3Class` in Telos)
- `M2CLASS()` (returning `M2Class` in Telos)
- `METACLASS()` (returning `M1Class` in Telos)
- `SIMPLE_CLASS()` (returning `SimpleClass` in Telos)
- `TOKEN()` (returning `Token` in Telos)

In this API omegaclasses are also individuals. They are available through methods in `KB` as well. See the `Omegaclass` interface for their descriptions.

Below is a generic Telos individual represented with relationships to other individuals and attributes. These are relationships are described in the unimplemented Java interface `Relations`. Below this diagram are specific diagrams showing the semantics of various Telos individuals.

## Tokens

Tokens represent the bottom level of instatntion hierarchy in Telos. Invoking the `level()` method on them returns the constant `TOKEN_LEVEL` in the `Levels` interface. Tokens are (Telos) instances of simple classes. They declare attributes that take any Telos individual (at any level of instantiation) or primtive literal as a target . They also have no inheritance characteristics. This means no token extends (subclasses) another token. So they cannot inherit attributes. In this API we refer to "`TOKEN`" as the unique simple class builtin for each KB of which all tokens are direct Telos instances (by default). It is available by invoking the `TOKEN()` method in the interface `KB`.

## Simple Classes

Simple classes are (Telos) instances of metaclasses. Invoking the `level()` method on them returns the constant `SIMPLE_CLASS_LEVEL` in the `Levels` interface. They also have Telos instances which are tokens. They declare attributes taking any Telos individual (at any level of Telos instantiation) or primitive literal as a target. They can inherit them from other simple classes. `TOKEN` is the builtin simple class, of which all other simple classes are Telos subclasses and all tokens are Telos instances. `SIMPLE_CLASS` is the unique builtin metaclass for each KB, of which all simple classes are direct Telos instances (by default). The latter is accessed by the method `SIMPLE_CLASS()` in the interface `KB`.

## Metaclasses

Metaclasses are instantiated by simple classes. Invoking the `level()` method on them returns the constant `METACLASS_LEVEL` in the `Levels` interface. They declare attributes taking any Telos individual (at any level of Telos instantiation) or primitive literal as a target. They are also instances of Metameatclasses which are represented by `Individuals`'s with `level()` equal to `M2CLASS_LEVEL`. `SIMPLE_CLASS` is the supreme builtin metaclass, from which all other metaclasses inherit (Telos inheritance) and of which all simple classes are Telos instances. `METACLASS` is the supreme builtin M2class, of which all metaclasses are direct Telos instances (by default).

See Also:
  Proposition, Attribute, Levels

    All Packages  Class Hierarchy  This Package  Previous  Next  Index