Business model definitions syntax

You use the business definitions to model entity and event types.

You define the entities, concepts, and events of your business model by adding constructs in the Definitions editor of the business model file. You use specific constructs to define the nature of the concept, the relationships to other concepts, and the attributes that compose the entity, concept, or event.

Table 1. Constructs
Construct Definition Example

<a concept> is a concept

Defines a simple concept that is neither an entity nor an event.

a person is a concept.

<an entity> is a business entity identified by <identifier>

Defines an entity and the attribute that is used as the entity identifier. The entity ID is of type string.

an airport is a business entity identified by an airport code.

<an event> is a business event time-stamped by <a time>

Defines an event that has a time stamp. If no time stamp is specified, a time stamp is applied by default. The event time stamp is of type date & time.

a flight event is a business event time-stamped by a datetime.

<a concept> is <a concept>

Defines a concept that inherits from another concept.

a car is a vehicle.

<an entity> is <an entity>

Defines an entity that inherits from another entity.

a dog is an animal.

<an event> is <an event>

Defines an event that inherits from another event.

a flight depature event is a flight event.

<a concept> can be one of: <value>, <value>, <value>

Defines an enumerated domain with a list of values.

a ticket state can be one of: Booked, CheckedIn, Boarded. 

<a concept> has <an attribute>.

Defines an attribute of the concept, entity, or event.

You cannot use this construct to specify a relationship to an entity.

a person has a first name.

with <an attribute>, <an attribute> and <an attribute>

Introduces a list of attributes.

an address is a concept with a street, a town and a country.

<a concept> is related to <an entity>

Defines a relationship to an entity.

a flight is related to an airport.

some

Defines a multiple (n-ary) relationship.

a flight is related to some boarded passengers.

several different

Defines a multiple (n-ary) relationship where each item is unique.

a flight is related to several different crew members.

<a concept> can be <attribute>

Indicates an attribute that is defined by a Boolean expression.

a trip can be completed.

<a type>, named the <attribute>

Specifies an attribute name for a type.

This construct is equivalent to <an attribute> (<type>).

a person has a number, named the age.
This expression is equivalent to the following expression:
a person has an age (numeric).

<an attribute> that is <a type>

Specifies the type of an attribute.

This construct is equivalent to <an attribute> (<type>).

a person has a phone number that is a number. 
This expression is equivalent to the following expression:
a person has a phone number (a number). 

used as the default <facet>

Defines a facet so that the concept can be interpreted as another type in the rules.

a flight has a position used as the default location.

<a concept> is <a type> whose values are prefixed by a <prefix>

Adds a prefix to the values of a concept.

The type must represent a lexical value such as number, date & time, string.

a dollar is a number whose values are prefixed by a "$". 

<a concept> is <a type> whose values are suffixed by a <suffix>

Adds a suffix to the values of a concept.

The type must represent a lexical value such as number, date & time, string.

a reference is a string whose values are suffixed by a "#". 

<a data provider> is a data provider, accepts <input>, returns <output>.

Defines a data provider that returns values based on input values. The input and output are attributes that you define in the business model.

a weather provider is a data provider,
accepts a longitude (numeric) and a latitude (numeric),
returns a temperature (numeric), a wind speed (numeric) and a precipitation level.

The default type for attributes is a string, but you can specify a different type.

Table 2. Attribute types
Construct Definition Example

(numeric)

The type of the attribute is a number (double).

a purchase has an amount (numeric).

(integer)

The type of the attribute is an integer.

an aircraft has a capacity first class (integer).

(text)

The type of the attribute is a string. This type is the default type.

an airport has a baggage handling system (text).

(date & time)

The type of the attribute is a date and a time.

a flight has an original departure (date & time).

(time)

The type of the attribute is a time.

a flight has a regular time of departure (time).

(duration)

The type of the attribute is a duration.

a flight has a flight duration (duration).

(<a concept>)

The attribute inherits the type of the specified existing concept.

a person has a home (an address).

(<a type>)

The attribute has a type, for example a geometry.

a flight has a location (a point).

<attribute> [mandatory]

The attribute is mandatory.

a flight has a state (a flight state) [ mandatory ]. 

<attribute> [<technical_attribute>: <value>]

The attribute has a technical attribute.

a customer is a business entity [ 'xsd.targetNamespace' : "http://www.example.com/bmd/syntax" ] identified by a name.

(<type>, <default value> by default )

The attribute has a type with a default value.

a flight has an original flight time hours (numeric, 12 by default).