ID: | AIXM-399 |
target version: | AIXM 5.2 |
version: | 1.0 |
last updated: | 10 MAY 2019 |
status: | APPROVED |
Description
Properties for designator, name and geographical location are added or modified in the VerticalStructure and/or VerticalStructurePart.
Rationale for change
See https://aixmccb.atlassian.net/browse/AIXM-239 and https://aixmccb.atlassian.net/browse/AIXM-281
The current approach of coding VerticalStructure and VerticalStructurePart is not covering the different needs of data providers. The AIXM5.1(.1) properties are not sufficient to describe the details that many countries provide in terms of designator, name and location of the obstacle itself or of it’s parts. The available properties run the risk of being misused.
In order to enable Data Providers to code the VerticalStructure(Part) data as necessary, some properties shall be added, other already available properties shall be extended in length.
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, in the class VerticalStructure:
- Modify the data type of the name property into TextNameLongType;
- Add designator property with definition “A coded identifier associated with the structure, taken from a national or local obstacle registry” and data type TextDesignatorLongType;
- Add geographicalLocation property with definition “A description of the geographical location where the vertical structure is situated” and data type TextGeoLocationType:
In the UML Model, in the class VerticalStructurePart
- Modify the data type of the designator property to use TextDesignatorLongType;
- Add name property with definition “The official name of a vertical structure part” and data type TextNameLongType:
- Add geographicalLocation property with definition “A description of the geographical location where the vertical structure part is situated.” and data type TextGeoLocationType:
In the UML Model, add the following new data types:
- TextNameLongBaseType
- Definition = “A relatively long textual name”
- minLength=1
- maxLength=100
- stereotype = <<datatype>>
- Inheritance - This is a specialisation of the Character3 data type.
- TextNameLongType
- Definition = “A complex data type that enables the provision of a NIL reason for any attribute using this type.”
- stereotype = <<datatype>>
- Inheritance - This is a specialisation of the TextNameLongBaseType data type.
- Attribute
- nilReason, type NilReasonEnumeration
- TextDesignatorLongBaseType
- Definition = “A relatively long textual designator.”
- minLength=1
- maxLength=60
- stereotype = <<datatype>>
- Inheritance - This is a specialisation of the Character3 data type.
- TextDesignatorLongType
- Definition = “A complex data type that enables the provision of a NIL reason for any attribute using this type.”
- stereotype = <<datatype>>
- Inheritance - This is a specialisation of the TextDesignatorLongBaseType data type.
- Attribute
- nilReason, type NilReasonEnumeration
- TextGeoLocationBaseType
- Definition = “A free text description of a geographical place, such as a region/town/etc..”
- minLength=1
- maxLength=500
- stereotype = <<datatype>>
- Inheritance - This is a specialisation of the Character3 data type.
- TextGeoLocationType
- Definition = “A complex data type that enables the provision of a NIL reason for any attribute using this type.”
- stereotype = <<datatype>>
- Inheritance - This is a specialisation of the TextGeoLocationBaseType data type.
- Attribute
- nilReason, type NilReasonEnumeration
The UML class diagram at the right highlights the new/modified properties.
Mapping AIXM 5.1.1 to AIXM 5.2 (forward)
Not applicable.
Mapping AIXM 5.2 to AIXM 5.1.1 (backward)
[MAPC-06] Applicable to the VerticalStructure.name and VerticalStructurePart.designator.
From the three backward mapping options discussed above, the first two (discard the value or use an extension) are straightforward and do not need any further details. The 3rd option (backward mapping 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 VerticalStructure that has a specified name value
- If the value of the name element is still valid against the previous schema version, do nothing.
- Otherwise:
- Remove the value of the name element and insert the following XML attributes
- xsi:nil="true"
- nilReason="other:invalidValueCopiedAsNote"
- Add an annotation.Note associated with the owner class having
- purpose=“OTHER:BACKWARD_MAPPING”;
- translatedNote.LinguisticNote.note=”<name_value>” (the full content of the longer element string value)
- propertyName=”name”
For each VerticalStructurePart that has a specified designator value
- If the value of the designator element is still valid against the previous schema version, do nothing.
- Otherwise:
- Remove the value of the designator element and insert the following XML attributes
- xsi:nil="true"
- nilReason="other:invalidValueCopiedAsNote"
- Add an annotation.Note associated with the owner class having
- purpose=“OTHER:BACKWARD_MAPPING”;
- translatedNote.LinguisticNote.note=”<designator_value>” (the full content of the longer element string value)
- propertyName=”designator”
[MAPC-02] Applicable to the VerticalStructure.designator, VerticalStructure.geographicalLocation, VerticalStructurePart.name and VerticalStructurePart.geographicalLocation.
From the three backward mapping options applicable in this case, the first two (discard the value or use an extension) are straightforward and do not need any further details. The 3rd option (backward mapping 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 VerticalStructure that has a specified designator value:
- Remove the designator element
- Add an annotation.Note associated with the VerticalStructure class having:
- purpose=“OTHER:BACKWARD_MAPPING”
- translatedNote.LinguisticNote.note=”designator: <designator>”.
For each VerticalStructure that has a specified geographicalLocation value:
- Remove the geographicalLocation element
- Add an annotation.Note associated with the VerticalStructure class having:
- purpose=“OTHER:BACKWARD_MAPPING”
- translatedNote.LinguisticNote.note=”geographicalLocation: <geographicalLocation>”.
For each VerticalStructurePart that has a specified name value:
- Remove the designator element
- Add an annotation.Note associated with the VerticalStructure class having:
- purpose=“OTHER:BACKWARD_MAPPING”
- translatedNote.LinguisticNote.note=”name: <name>”.
For each VerticalStructurePart that has a specified geographicalLocation value:
- Remove the geographicalLocation element
- Add an annotation.Note associated with the VerticalStructure class having:
- purpose=“OTHER:BACKWARD_MAPPING”
- translatedNote.LinguisticNote.note=”geographicalLocation: <geographicalLocation>”;
Mapping example
(Note: for mapping test data see: https://github.com/aixm/mapping_52_511/tree/master/AIXM-399)
AIXM 5.2 | AIXM 5.1(.1) |
---|---|
message:AIXMBasicMessage message:hasMember VerticalStructure gml:identifier = 359c8b02-8be7-4e2c-aa6d-d990dbb6b057 timeSlice VerticalStructureTimeSlice gml:validTime gml:TimePeriod gml:beginPosition = 2019-12-05T00:00:00Z gml:endPosition = interpretation = BASELINE sequenceNumber = 1 correctionNumber = 0 featureLifetime gml:TimePeriod gml:beginPosition = 2019-12-05T00:00:00Z gml:endPosition = name = BEL TOWER WITH ASSOCIATED ANTENNA FOR RADIO TELE COMMUNICATION PURPOSES type = BUILDING designator = BELT-OBS-2020-1 geographicalLocation = BEL CITY part VerticalStructurePart type = BUILDING designator = OBS-007 name = main building part VerticalStructurePart type = ANTENNA designator = OBS-008 name = antenna at the top of the building ... | message:AIXMBasicMessage message:hasMember VerticalStructure gml:identifier = 359c8b02-8be7-4e2c-aa6d-d990dbb6b057 timeSlice VerticalStructureTimeSlice gml:validTime gml:TimePeriod gml:beginPosition = 2019-12-05T00:00:00Z gml:endPosition = interpretation = BASELINE sequenceNumber = 1 correctionNumber = 0 featureLifetime gml:TimePeriod gml:beginPosition = 2019-12-05T00:00:00Z gml:endPosition = name (nilReason="other:invalidValueCopiedAsNote") type = BUILDING part VerticalStructurePart annotation Note purpose = OTHER:BACKWARD_MAPPING translatedNote LinguisticNote note = name: main building type = BUILDING designator = OBS-007 part VerticalStructurePart annotation Note purpose = OTHER:BACKWARD_MAPPING translatedNote LinguisticNote note = name: antenna at the top of the building type = ANTENNA designator = OBS-008 annotation Note propertyName = name purpose = OTHER:BACKWARD_MAPPING translatedNote LinguisticNote note = BEL TOWER WITH ASSOCIATED ANTENNA FOR RADIO TELE COMMUNICATION PURPOSES annotation Note purpose = OTHER:BACKWARD_MAPPING translatedNote LinguisticNote note = geographicalLocation:BEL CITY annotation Note purpose = OTHER:BACKWARD_MAPPING translatedNote LinguisticNote note = designator:BELT-OBS-2020-1 ... |