Copyright © 2015 Open Geospatial Consortium 27
This essentially constitutes a selection of AircraftStand objects. The expression “isOperationalBy exactly one ApronAreaAvailability” contains a quantification that
targets the same property as the assignment used in the selection: availability because “isOperationalBy” is the name of the association where availability is the role that
represents a property of AircraftStand.
An existential quantification checks that a certain number of elements of a given set
4
exist. For an element to exist, it must not be null. A quantification of a variable X therefore implies an assignment check for that variable.
In summary, the rule can be simplified to: it is obligatory that each AircraftStand isOperationalBy at most one ApronAreaAvailability
If the rule was intended to ensure that exactly one availability exists for each AircraftStand, it could be written as follows:
It is obligatory that each AircraftStand isOperationalBy exactly one ApronAreaAvailability or
Each AircraftStand shall have exactly one availability.
8.1.2 Handling of Choices
Example AIXM-5.1_RULE-1A853D: It is obligatory that each ChangeOverPoint with assigned
airportReferencePoint value isLocatedAt exactly one AirportHeliport Analysis
The conceptual model of a ChangeOverPoint has an optional “location” property of type “SignificantPoint” see Figure 2.
4
In the example that is the set of all availability property values of a given AircraftStand.
28 Copyright © 2015 Open Geospatial Consortium
Figure 2 – ChangeOverPoint and choice SignificantPoint with its options
The location.SignificantPoint has not been included in the SBVR rule because SignificantPoint is a “choice” class and at first it was decided to consider them
“transparent”.
Using the association name as verb that identifies the choice and then the name of the class that represents the desired choice works if all choices have different types.
However, this is not true in general. Consider the following figure.
«feature»
En-route::ChangeOv erPoint
+ distance: ValDistanceType
«choice»
Points:: SignificantPoint
«feature»
AirportHeliport:: AirportHeliport
«feature»
Helicopter Surfaces:: TouchDow nLiftOff
«feature» Runw ay::
Runw ayCentrelinePoint
GM_Point «object»
Geometry::Point
«feature»
Nav aids::Nav aid
«feature»
Points:: DesignatedPoint
0..
+aimingPoint 0..1
0.. +position
0..1 0..
isLocatedAt +location
0..1 0..
+airportReferencePoint 0..1
0..
+runwayPoint 0..1
0.. +navaidSystem
0..1 0..
+fixDesignatedPoint 0..1