Asset Oriented Modeling (AOM)

- Model -

Models can consist of

The global definitions:

Example:

The example defines a default namespace, an additional namespace with prefix "c", three scopes, and a default type system.

Name
The model name. Required.
 
Namespaces
Namespaces are globally unique identifiers. We use URIs to identify namespaces.
The default namespace
The default namespace identifies the model, therefore it is mandatory. The default namespace applies to all assets within the model that do not specify a namespace prefix.
Namespace prefixes
All other namespaces must be declared with a prefix. The syntax is prefix=namespace. All namespace prefixes used in assets must be declared here.
 
Scopes
defines a limited context for the model. Multiple scopes are allowed. A typical example for using scopes is versioning.
All assets are valid within the specified model scope(s), unless an asset specifies a particular scope. The definition of scopes is optional. If no scope is supplied, the model is valid in a global scope.
 
Type systems
The type systems used for simple types, e.g. Java, XML Schema, SQL. 
Type systems are identified with a globally unique URI.
First, we define a default type system that applies to all types within the model that do not specify a type system prefix.
Then we define all type system prefixes used in the model. The syntax is prefix=typeSystem.
The definition of type systems is optional but should be declared when types are used in assets.
Subject Ontologies
The ontologies used for definining Subject IDs.
Ontologies are identified with their namespace URI. A typical example would be urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-1.0.
First, we define a default subject ontology system that applies to all subject IDs within the model that do not specify a prefix.
Then we define all subject ontology prefixes used in the model. The syntax is prefix=subjectOntology.
The definition of subject ontologies is optional. Subject IDs are allowed to specify their namespace exlipicitly.
 
Constraint language
The language used for specifying constraints, e.g. OCL, XPath, or a user defined abstract constraint language. 
Constraint languages are identified with a globally unique URI.
First, we define a default language that applies to all constraints within the model that do not specify a constraints language prefix.
Then we define all constraint language prefixes used in the model. The syntax is prefix=constraintLanguage.
The definition of a constraint language is optional but should be declared when constraints are used in assets.
For abstract constraints a constraint vocabulary can be specified instead using the syntax prefix=constraintVocabulary. A special vocabulary named ##local can be used to specify abstract constraint names without restriction. In this case the constraint names belong to the asset namespace. Otherwise, constraint names belong to the namespace of the specified vocabulary.
 
Operation vocabulary
The user defined vocabulary used for specifying operations. 
Operation vocabularies are identified with a globally unique URI.
First, we define a default vocabulary that applies to all operations within the model that do not specify a vocabulary prefix.
Then we define vocabulary prefixes used in the model. The syntax is prefix=operationVocabulary. 
The definition of a vocabulary is optional but should be declared when operations are used in assets. A special operation vocabulary named ##local can be used to specify operation and mode names without restriction. In this case the operation and mode names belong to the asset namespace. Otherwise, operation and mode names belong to the namespace of the specified operation vocabulary.
 
Annotations
The definition of annotations is optional. 
 
Design Patterns
lists all Design Patterns applied to this model. Each Design Patterns is specified with its default namespace (which identifies the pattern) and the (optional) location of the pattern. The location does not identify the pattern but acts as a hint where the pattern can be found. The syntax is {namespace, location}
The patterns and the current model are combined according to the merging rules. 
 
Submodels
lists all included submodels. Each submodel is specified with its default namespace (which identifies the submodel) and the (optional) location of the pattern. The location does not identify the submodel but acts as a hint where the pattern can be found. In addition, a prefix is specified denoting the submodel's default namespace in the context of the current model. The syntax is prefix={namespace, location}
The submodels and the current model are combined according to the merging rules. 

 

Home Definition Step-by-Step Examples Downloads

Contact: support 'at' aoModeling.org