Entities

Entities are objects that have an identifier. You define entity types in your business model to represent the objects of core interest in your solution. Agents are bound to entities through their identifier and can update them when a situation is detected.

Entities are characterized by a set of attributes and relationships to other entities. In general, if the object that you want to model is not going to be bound to an agent, you should make it a concept rather than an entity.

You define an entity type by using the following syntax:

<an entity> is a business entity identified by <an id>.

The following example shows a flight entity type that has a flight number as the identifier:
a flight is a business entity identified by a flight number.

You do not need to specify the value type of the entity identifier because the type is String by default.

An entity type can be based on another entity type to inherit attributes and relationships from it. As a consequence, an entity that is an instance of the inheriting entity type is also an instance of the type from which this type inherits characteristics. The entity type identifier is also inherited from the base entity type. You can define an entity type based on an existing entity type by using the following syntax:

<an entity> is <an entity>.

In the following example, a person is an entity type that is already defined:

a customer is a person.