    All Packages  Class Hierarchy  This Package  Previous  Next  Index

# Interface jtelos.OmegaAttributeClass

public interface OmegaAttributeClass
extends Attribute, OmegaClass

This interface is used to represent Omega attribute classes in Telos. In particular, the following built-in Omega attribute classes are represented:

- `Attribute`, which has all Telos attributes as instances. Moreover, `Attribute` is itself an attribute. Hence, `Attribute` is an instance of itself. It has both source and destination (`to` and `from`) the Omega class `Proposition`. Its label is `attribute`.
- `AttributeClass`, which has all Telos attribute classes as instances. Like `Attribute`, `AttributeClass` is itself an attribute. Hence, since it it also a class (indeed, it is an Omega class), `AttributeClass` is an instance of itself. It has both source and destination (`to` and `from`) the Omega class `Class`. Just like the Omega attribute `Attribute`, `AttributeClass`'s label is also `attribute`.

It is these two Omega attribute classes that make the attribute mechanism in Telos possible. Indeed, since all Telos propositions are instances of the Omega class `Proposition`, all Telos propositions can declare an attribute with category `attribute` and target any other Telos proposition; such attributes will be instances of the Omega attribute class `Attribute`. Also, since all Telos classes are instances of the Omega class `Class`, all Telos classes can declare an attribute with category `attribute` and target any other Telos class; such attributes will be instances of the Omega attribute class `AttributeClass`.

Note that both `Attribute` and `AttributeClass` are instances of the Omega individual classes `Proposition`, `Class` and `OmegaClass` (see OmegaClass and OmegaIndividualClass for more details). Finally since both `Attribute` and `AttributeClass` are attributes and classes, they are each instances of each other.

There are two further special Omega attribute class defined in Telos. These are the attributes `Single` and `Necessary`. These attributes are also represented by this interface. Some implementations may choose not to support these two attributes. Both of these Omega attributes `Single`have both source and destination (`to` and `from`) the Omega class `Class`. The attribute `Single`'s label is `single` while the attribute `Necessary`'s label is `necessary`.``

See Also:
  Proposition, Individual, OmegaClass, OmegaIndividualClass

    All Packages  Class Hierarchy  This Package  Previous  Next  Index