...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
Introduction
The Semantics of Business Vocabulary and Business Rules (SBVR) standard is used for the writing of the AIXM business rules in relation with the AIXM UML logical data model. This means that the AIXM classes and their properties (attributes and associations), together with their definitions and data types, provide the the "business vocabulary" that is used as the basis for the definition of the AIXM business rules.
This section defines an 'SBVR profile', which is tailored to the AIXM needs and which is documented as a number of concepts and conventions applied in the writing of the AIXM business rules. Two previous projects have provided input material for this document:
...
- the first pages in Chapter 10 of the OMG SBVR specification version 1.1;
- this presentation available on the Web (in particular slides 5 and 6).
...
...
SBVR Profile for AIXM
...
SBVR concepts
The following table introduces the concepts used as part of the SBVR Profile for AIXM, including their graphical notation. Note that the use of some graphical notations is simplified as compared to the SBVR standard, such as double underline which is replaced with simple underline. This facilitates the use of standard office tools (such as Microsoft Excel) for the provision of the AIXM set of Business Rules.
| SBVR Definition:
|
| SBVR Definition:
|
| SBVR Definition:
|
| SBVR Definition:
|
| SBVR Definition
|
...
...
NounConcept - special situations
When writing AIXM business rules in SBVR, apart from the simple cases where a class/role/attribute name is used, there are also some special cases, when several classes/associations are involved, as detailed in the following table.
...
Special case | NounConcept construction rules |
Concatenation - when necessary to identify an UML model element that is remote from the current class. For example, a rule defined for the AirportHeliport class that needs to refer to the name attribute of the associated City class. | The "." symbol is used as separator between the concatenated noun concepts. The relative path needs to include all the intermediate association role names and class names, as in the following example: servedCity.City.name. |
Association classes - Some associations are qualified by a number of properties depicted inside an 'association class'. For example, the association between Airspace and another AirspaceVolume includes the AirspaceGeometryComponent association class. | When the NounConcept is inside the association class, the path includes first the name of the association role, concatenated with the association class name and with the property name concerned. For example: geometryComponent.AirspaceGeometryComponent.operation. |
Specialisation - Inheritance is frequently used in the AIXM UML model. The class that is specialised is always stereotyped <<abstract>> and does not appear as such in the AIXM XML Schema. Only its non-abstract specialisations appear in the Schema. Inheritance could occur with more than one level of specialisation (for example, the Service class) | In general, the class that is specialised is used as NounConcept, followed by the "specialisation" fact-type and by the name of the derived class (also a NounConcept). For example: "... NavaidEquipment specialisation TACAN…". |
confusion, the properties of the abstract (generalised) class are used as if they were directly properties of the specialised class. For example: "...TACAN.location...", although location is a property of the <<abstract>> NavaidEquipment, which is inherited by the TACAN class. | |||
Data type attributes - For example, most "Val…" data types come with a "uom" attribute. | The uom attribute appears directly in the path after the attribute name, prefixed with a '.'. For example, the rules that require the mandatory presence of a uom value for an elevation attribute use the following noun concept path: elevation.uom. | ||
TimeSlice - Not present in the UML model, but appearing directly in AIXM XML Schema, based on the AIXM Temporality Concept (see in particular section 2.8 in that document). For example, rules that check the correctness of the validTime with regard to the type of TimeSlice. | The following properties introduced for each and every AIXM <<feature >> class may appear as noun concepts:
| ||
GML elements - Present only partially in the UML model, through the GM_… classes. However, the details of these classes are missing in AIXM 5.1. For example, positions are encoded with the gml:pos element, while surfaces use much deeper structures, such as gml:Surface.gml:... | Specific GML 3.2.1 schema elements appear as NounConcepts, such as:
| ||
Different instances - When a rule concerns two different instances of the same NounConcept and it is necessary to distinguish between the two. For example, a rule for the uniqueness of 5-letter designators needs to refer to different instances of the DesignatedPoint class. | A number in square brackets is used in order to distinguish the two, such as in the following example: DesignatedPoint
. |
...
...
Additional Fact-types
The following table introduces additional fact-types used in SBVR AIXM Profile. They are 'additional' in the sense that they do not appear explicitly as associative facts in the model.
Note: the fact-types marked with an * sign are not used for the moment. They are kept for completeness sake, some might become necessary later.
is-property-of | associative fact type that is defined with respect to a first given concept and a second given concept such that each instance of the fact type is an actuality that an instance of the first concept constitutes an essential quality of an instance of the second concept |
has | describes the same associative fact as "is-property-of", but in the opposite direction: an instance of the second concept constitutes an essential quality of an instance of the first concept
|
is-descendant-of |
describes a deeper associative fact than "is-property-of"; an instance of the first concept constitutes a property of a property (and so on…) of an instance of the second concept | |
has descendant |
describes the same associative fact as "is-descendant-of", but in the opposite direction | |
specialisation | categorisation fact type (used to target a specific non-abstract class, that is a specialisation of a parent class; for example NavaidEquipment specialisation VOR) |
categorization* | a particular instance of the concept is also an instance of the category |
is-of-type* | is used for expressing units of measurements (UOM) |
...
...
...
Logical Operations
The following table introduces the logical operations (e.g. "and", "not", "or", etc.) used in the SBVR Profile for AIXM. The exact representation of the operations is in the third column (using keywords convention).
Note: the keywords marked with an * sign are not used for the moment. They are kept for completeness sake, some might become necessary later.
...
Logical Operation | SBVR Profile for ATM Representation | Meaning |
conjunction | p and q | True when all operands are true |
disjunction | p or q | True when at least one operand is true |
equivalence* | p if and only if q | True when operands are either all true or all false |
exclusive disjunction* | p or q but not both | One operand is true and the other is false |
implication | if p then q | binary logical operation that operates on an antecedent and a consequent and that formulates that the meaning of the consequent is true if the meaning of the antecedent is true |
logical negation | not p | True when the operand is false |
nand* | not both p and q | true when at least one operand is false |
nor* | neither p nor q | true when all operands are false |
whether or not* | p whether or not q | binary logical operation that has a consequent and an inconsequent and that formulates that the meaning the consequent is true regardless of the meaning the inconsequent. |
...
Quantification
The following table introduces the quantifications (e.g. "at least one") used as part of the SBVR Profile for AIXM. The second column contains the representation (using keywords convention).
...
quantifier | SBVR Profile for ATM Representation | logic | description |
universal | each x | ∀ | For each and every x, taken one at a time |
existential | at least one x | ∃ | At least one x |
exactly-one | exactly one x | ∃1 | There is exactly one (at least one and at most one) x |
at-most-one | at most one x | ∃0..1 | There is at most one x |
at-most-n | at most n x | ∃0..n | There is at most n x Note: n is always instantiated by a number ≥ 1. So this is really a set of quantifiers (n = 1, etc.) |
at-least-n | at least n x | ∃n.. | There is at least n x Note: n is always instantiated by a number ≥ 1. So this is really a set of quantifiers (n = 1, etc.) |
at-least-2 | more than one x | ∃n.. | There is at least 2 x. |
exactly-n | exactly n x | ∃n | There is at exactly (at least and at most) n x Note: n is always instantiated by a number ≥ 1. So this is really a set of quantifiers (n = 1, etc.) |
numeric range | at least n and at most m x | ∃n..m | There is at least n and at most m x |
...
...
Modality
The following table introduces the modalities (e.g. "It is obligatory") used in the SBVR Profile for AIXM. The fourth column details the representation in the profile.
Note: the keywords marked with an * sign are not used for the moment. They are kept for completeness sake, some might become necessary later.
Modality | SBVR Profile for ATM | Reading (Verbalised as) after applying transformation using negations: |
obligation | It is obligatory that p | It is not permitted that not p |
prohibition | It is prohibited that p | It is obligatory that not p |
Note: Please be aware of the distinction between the use of the phrases "It is obligatory that"/"It is prohibited that" and the pattern "Each...shall/should". The latter implies that the target entity or attribute has to exist, whereas this is not always the case. Therefore, the negative formulation is preferred in most cases, as it will check the value only when the entity or the attribute is actually present.
Example:
Each Runway with assigned lengthStrip value shall have assigned lengthStrip.uom value equal-to ('FT','M')
versus
It is prohibited that a Runway with assigned lengthStrip value has lengthStrip.uom value not equal-to ('FT','M')
...
Additional SBVR keywords
The following table introduces additional keywords that are used in this Profile.
...
*Keyword*maybe to add a new keyword íntersect', to mean that geometry or time can intersect – see digital NOTAM rules.Awaiting the results of the OWS-11 work on the subject
Keyword | Explanation | Way of use in SBVR AIXM Profile |
---|
a, an
universal or existential quantification
depending on context based on English rules
assigned value
existential quantification (that the referent thing is not null)
assigned noun-concept valueThis needs a special discussion, in particular when an association name is used. If that association refers to a feature, it is probably simpler - in XML the xlink:href value should exist. However, it can get a bit more complex when the role name refers to an Object. An empty object could be seen as not complying with the rule, but it could also be filled with a non-meaningful attribute, which does not make sense. Probably we should avoid this situation and refer always to a property of the object, that should have an assigned value. Also, nilReason is not interpreted as an assigned value for an attribute.
a, an | universal or existential quantification | depending on context based on English rules |
assigned value | existential quantification (that the referent thing is not null) | for readability reasons (and to comply with the English language syntax), it is usually written as follows: |
with | has fact type plus a condition on the property or descendant | used as a simplified form of: |
that | existential quantification for a part of a condition starting with a verb concept | typically used in front of the verb concept, between two noun concepts with associated conditions |
equal-to | existential quantification plus a condition that the referent thing is the same thing as the referent of the term that comes next | typically used in front of a Name or a list of Names, when the item also has to exist |
higher-than | existential quantification plus a condition that the referent thing is a numerical value that is larger than the referent of the term that comes next | typically used after a noun-concept in the form of a class attribute that takes numerical values |
higher-or-equal-to | existential quantification plus a condition that the referent thing is a numerical value that is larger than or equal to the referent of the term that comes next | typically used after a noun-concept in the form of a class attribute that takes numerical values |
lower-than | existential quantification plus a condition that the referent thing is a numerical value that is smaller than the referent of the term that comes next | typically used after a noun-concept in the form of a class attribute that takes numerical values |
lower-or-equal-to | existential quantification plus a condition that the referent thing is a numerical value that is smaller than or equal to the referent of the term that comes next | typically used after a noun-concept in the form of a class attribute that takes numerical values |
resolved-into | existential quantification plus a condition that the value of the noun-concept that precedes the keyword corresponds to an instance of the verb and noun-concept that come next | used to indicate the action of evaluating the value of an association role name instance and identifying the target feature instance, taking into consideration the associations implementation method used (according to the AIXM Feature Identification and reference document) |
other-than | at-most-one quantification plus condition that the referent thing is not the same thing as the referent of the term that comes next | typically used in front of a Name or a list of Names, when the item may also be null |
...
Methodology
This section is primarily intended for those involved in the writing of the SBVR text of the AIXM Business Rules. However, it might also provide interesting hints for the readers of the document, as it shows how a rule is being developed starting from a fact established by the model, a reference document (such as an ICAO Annex containing Standards and Recommended Practices) and applying the SBVR methodology.
The starting point for writing the SBVR text of a rule is the AIXM UML model, which describes "fact types" such as:
...
It could be argued that the rule can be written more clear in the opposite direction: "Each AirportHeliport with type equal-to 'HP' shall not have associated Runway with type equal-to 'FATO'". However, the fact-type established by the model is that 'Runway is situated at Airport'. All associations in the model have directionality. Therefore, it is better to take this into consideration when writing the rule. In XML, the Runway will point to the AirportHeliport, therefore the rule can be checked directly from the Runway towards the AirportHeliport.