ID: | AIXM-405 |
target version: | AIXM 5.2 |
version: | 1.0 |
last updated: | 10 MAY 2019 |
status: | APPROVED |
Description
Changed multiplicity (0..*) on the OrganisationAuthority side in the association with AirportHeliport, to allow more than one occurence.
Rationale for change
See https://aixmccb.atlassian.net/browse/AIXM-314
The association AirportHeliport isUnderresponsibilityOf OrganisationAuthority has a multiplicity of 0..1 on the OrganisationAuthority side. This is in contradiction with the role attribute of the association class AirportHeliportResponsibilityOrganisation, which was intended to allow the coding of the responsibilities that different organisations may have with regard to the same airport (operate, supervise, etc.)
Impact assessment
[FWD_1:1] No data mapping is necessary and no data loss occurs when data is exchanged from a system (A) that uses AIXM 5.1.1 for output towards a system (B) that uses AIXM 5.2 for input.
[BWD_MAP_LOSS] Data mapping is possible, but some data would be lost (or converted into Notes) when data is exchanged from a system (B) that uses AIXM 5.2 for output towards a system (A) that uses AIXM 5.1.1 for input.
Change Proposal details
In the UML model:
- For the association AirportHeliport isUnderresponsibilityOf OrganisationAuthority, change the mutiplicity of the OrganisationAuthority side to 0..*
The modified multiplicity is highlighted in the following UML class diagram:
Mapping AIXM 5.1.1 to AIXM 5.2 (forward)
Not applicable.
Mapping AIXM 5.2 to AIXM 5.1.1 (backward)
[MAPC-05] From the three backward mapping options discussed above, the first two (discard the additional occurrences or use an extension) are straightforward and do not need any further details. The 3rd option (backward mapping of the additional occurrences into a Note) is detailed in order to provide a complete description of this case and its conversion option. The following mapping into Note algorithm is proposed:
- For each AirportHeliport that has more than one isUnderResponsibilityOf property:
- Preserve the association to OrganisationAuthority that has AirportHeliportResponsibilityOrganisation.role equal-to one of the values (in this order of priorities): OPERATE or OWN or SUPERVISE or OTHER
- For all other associations:
- Add an annotation.Note to the AirportHeliport with:
- purpose=“OTHER:BACKWARD_MAPPING”;
- translatedNote.LinguisticNote.note=”responsibleOrganisation(role[1]).OrganisationAuthority:<responsibleOrganisation.xlink:href>; responsibleOrganisation(role[1]).OrganisationAuthority:<responsibleOrganisation.xlink:href>;; etc.”
- “[1]”, “[2]” indicate that this needs to be repeated as many times as necessary to cover all occurrences that are not preserved;
- propertyName = ”responsibleOrganisation”
- Remove the responsibleOrganisation property
Mapping example
Mapping example to be added....
(Note: for mapping test data see: https://github.com/aixm/mapping_52_511/tree/master/AIXM-xxx)
AIXM 5.2 | AIXM 5.1(.1) |
---|---|
... | ... |