Asset Oriented Modeling (AOM)

- Context -

Several asset definitions (constraint, operation, annotation) can have an additional context definition. For example, it is possible to relate a constraint to a property or a sub-property by specifying an appropriate context definition.

When no context is specified, all expressions relate directly to the structure they are defined in. When a context is specified, this context selects specific items within the hierarchy of the structure it is defined in.

We separate the context expression from the following constraint, operation, or annotation with a double colon as in the following annotation:

sponsor/name::<appearance>Print this name always in golden letters</appearance>

XPath notation

In AOM we adopt a subset of XPath for expressing contexts. In the example above we relate to the sub-property name in property sponsor

In cases where a property or sub-property appears in multiple occurrences within an expression we can pinpoint an occurrence by specifying an index (starting at 1):

chapter/section[2]

would identify section+ in the expression chapter(section, header, section+). If no index was specified the context expression would apply to both occurrences of section.

We can also relate to arcs by specifying their respective role name or the name of their target asset. The preferred method is to equip arcs with a role name and to relate to that role name.

Selecting assets

When specifying a context expression within an annotation of a Level 2 Structure or on model level it can be desirable to refer to certain assets that reside within the hierarchy of that structure. This can be done by starting the context expression with a path separator followed by the name of the asset.

/c:project/sponsor/name

Here, we relate to asset project, property sponsor, and its sub-property name. If an asset does not belong to the model's default namespace its namespace prefix must be specified with the asset name. Since asset names are unique within a model, index expressions are not necessary and not allowed with asset names.

Wild cards

Wild cards are allowed for asset names, namespace prefixes and property names:

/*:project

refers to all assets with the name project independent of the namespace.

/c:project/*/email

Refers to all sub-properties named email that are grand-children of asset c:project.

Descendants operator

The descendants operator // allows to specify descendants of a node (instead of direct children).

/c:project//email

Refers to all sub-properties named email that are descendants of asset c:project.

//email

refers to all email properties and sub-properties on any level. It is equivalent with /*:*//email.

 

Home Definition Step-by-Step Examples Downloads

Contact: support 'at' aoModeling.org