Concepts
Concepts are types of objects that can exist separately or belong to one or more entities and events. You define concepts in your business model to represent different types of real-world objects of your business logic, usually to reuse them in more complex object types.
You define a concept by using the following syntax:
<a concept> is a concept [with <attribute>].
Concepts can have attributes. For example, an address is a concept that has a street, a town, a postal code, and a country:
an address is a concept with a street, a town, a postal code and a country.
You can then use this concept in the definitions of entity and event types. For example:
a customer is a business entity identified by an id.
a customer has an address, a name and a favorite shop.
an employee is a business entity identified by an id.
an employee has an address, a name and a job role.
A concept can be based on another concept to inherit attributes from it. As a consequence, an object that is an instance of the inheriting concept is also an instance of the type from which this concept inherits attributes. You can define a concept based on an existing concept by using the following syntax:
<a concept> is <a concept>.
The following example defines a customer and an employee that inherit from a person concept:
a person is a concept with an address and a name.
a customer is a person with a favorite shop.
an employee is a person with a job role.