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:

  1. Modify the data type of the name property  into TextNameLongType;
  2. Add designator property with definition “A coded identifier associated with the structure, taken from a national or local obstacle registry” and data type TextDesignatorLongType;
  3. 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

  1. Modify the data type  of  the designator property to use TextDesignatorLongType;
  2. Add name property with definition “The official name of a vertical structure part” and data type TextNameLongType:

  3. 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:

  1. TextNameLongBaseType 
    • Definition = “A relatively long textual name”
    • minLength=1
    • maxLength=100
    • stereotype = <<datatype>>
    • Inheritance - This is a specialisation of the Character3 data type.
  2. 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
      1. nilReason, type NilReasonEnumeration
  3. TextDesignatorLongBaseType 
    • Definition = “A relatively long textual designator.”
    • minLength=1
    • maxLength=60
    • stereotype = <<datatype>>
    • Inheritance - This is a specialisation of the Character3 data type.
  4. 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
      1. nilReason, type NilReasonEnumeration
  5. 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.
  6. 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
      1. 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.2AIXM 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

...



  • No labels