An algebra allows to derive new models from one or several existing models by using several basic operations.

When a model contains
* general* constraints
the operations listed below may not be computational: it will not
always be possible to construct a model by formal
means.

However, if we restrict the model's constraints
to *regular expressions *or * hedge regular expressions*,
it is
possible to construct a new model
using the operations listed below. For example, if we use XPath as a
constraint language,
we must avoid XPath functions that manipulate the content of nodes or
nodesets such as substring(), concat(), sum(), avg(), etc.

The basic operations of an AOM algebra are:

**Set operations**

*Union*,*Intersection*,*Difference*of two models. As far its structure is concerned, a model can be described by a*Hedge Regular Grammars (HRG)*. The set of HRG languages is closed under the set operations mentioned above. Similarly, the set of AOM models is closed under these operations, too. The union operation is similar to merging two models.**Projection**

This operation constructs a new model from an existing model by keeping only specified assets, arcs, properties and subproperties. The new model must be consistent (for example, we may not remove key properties of an asset without removing arcs leading to that asset, or we may not remove properties without removing all constraints that refer to that properties). AOM has a build-in projection mechanism on asset level:*scopes*.**Cartesian product**

This operation combines two models by using the usual Cartesian product. If the two operands contain assets with the same identification (name, scope, namespace), both assets are combined by applying the Cartesian product to them. Similarly, if both assets contain identically named properties, both properties are combined by applying the Cartesian product to them.**Selection**

This operation narrows the set of possible model instances by introducing additional constraints.**Rename**

This operation can be used to change names of model items (asset name, display name, property names, role names, level2 names).**Inheritance**

This operation resolves is_a arcs and replicates the features of the arc target into the arc origin. For details see here.**Explosion**

This operation transforms complex properties (i.e. properties that have subproperties) into assets, except properties that are used in a primary key. The new assets are connected to the origin asset via arcs, each arc leading from the origin asset to the respective new asset.**Implosion**

This is the inverse operation to Explosion.

Home |
Definition |
Step-by-Step |
Examples |
Downloads |

Contact: support 'at' aoModeling.org