Concurrent Events (temporality rule exception)

It is possible that two or more distinct events affect the same AIXM feature at the same time or that their validity times intersect. This typically occurs for features that have a complex set of properties. These can be affected by situations that are totally unrelated, thus not associated with the same Event. For example, an AircraftGroundService that uses temporarily a different phone number and which may also be unavailable for some time (which is unrelated to the modified radio frequency).

This requires the coding of two separate feature TimeSlice, each associated with a different Event, as shown in the example below. The diagram to the left shows the two slightly overlapping events and the corresponding feature TEMPDELTA TimeSlilces. The XML example to the right shows the equivalent AIXM coding.

Concurrent Events
<?xml version='1.0' encoding='UTF-8'?>
<message:AIXMBasicMessage xmlns:message="http://www.aixm.aero/schema/5.1.1/message"
  xmlns:gts="http://www.isotc211.org/2005/gts" xmlns:gco="http://www.isotc211.org/2005/gco"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:gml="http://www.opengis.net/gml/3.2"
  xmlns:gss="http://www.isotc211.org/2005/gss" xmlns:aixm="http://www.aixm.aero/schema/5.1.1"
  xmlns:gsr="http://www.isotc211.org/2005/gsr" xmlns:gmd="http://www.isotc211.org/2005/gmd"
  xmlns:event="http://www.aixm.aero/schema/5.1/event" xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.aixm.aero/schema/5.1.1/message http://www.aixm.aero/schema/5.1.1/message/AIXM_BasicMessage.xsd 
  http://www.aixm.aero/schema/5.1/event http://www.aixm.aero/schema/5.1.1/event/version_5.1-e/Event_Features.xsd"
  gml:id="M00001">
  <message:hasMember>
    <aixm:AircraftGroundService gml:id="uuid.364655d3-7eb6-4c5c-b4e9-6aaf9013fd12">
      <gml:identifier codeSpace="urn:uuid:">364655d3-7eb6-4c5c-b4e9-6aaf9013fd12</gml:identifier>
      <aixm:timeSlice>
        <aixm:AircraftGroundServiceTimeSlice gml:id="ID_701">
          <gml:validTime>
            <gml:TimePeriod gml:id="ID_711">
              <gml:beginPosition>2018-06-20T06:00:00Z</gml:beginPosition>
              <gml:endPosition>2018-07-20T15:30:00Z</gml:endPosition>
            </gml:TimePeriod>
          </gml:validTime>
          <aixm:interpretation>TEMPDELTA</aixm:interpretation>
          <aixm:sequenceNumber>1</aixm:sequenceNumber>
          <aixm:groundCommunication>
            <aixm:ContactInformation gml:id="CI_001">
              <aixm:phoneFax>
                <aixm:TelephoneContact gml:id="PH_01">
                  <aixm:voice>+3227299011</aixm:voice>
                </aixm:TelephoneContact>
              </aixm:phoneFax>
            </aixm:ContactInformation>
          </aixm:groundCommunication>
          <aixm:extension>
            <event:AircraftGroundServiceExtension gml:id="ID_80">
              <event:theEvent xlink:href="urn:uuid:a2ccb1c9-0218-4742-9e58-12ea802a32b3"/>
            </event:AircraftGroundServiceExtension>
          </aixm:extension>
        </aixm:AircraftGroundServiceTimeSlice>
      </aixm:timeSlice>
      <aixm:timeSlice>
        <aixm:AircraftGroundServiceTimeSlice gml:id="ID_702">
          <gml:validTime>
            <gml:TimePeriod gml:id="ID_712">
              <gml:beginPosition>2018-07-15T07:00:00Z</gml:beginPosition>
              <gml:endPosition>2018-07-30T18:00:00Z</gml:endPosition>
            </gml:TimePeriod>
          </gml:validTime>
          <aixm:interpretation>TEMPDELTA</aixm:interpretation>
          <aixm:sequenceNumber>2</aixm:sequenceNumber>
          <aixm:availability>
            <aixm:ServiceOperationalStatus gml:id="AVB_01">
              <aixm:operationalStatus>UNSERVICEABLE</aixm:operationalStatus>
            </aixm:ServiceOperationalStatus>
          </aixm:availability>
          <aixm:extension>
            <event:AircraftGroundServiceExtension gml:id="ID_802">
              <event:theEvent xlink:href="urn:uuid:42fa065a-5ac9-4c69-b54e-9cb3dc830786"/>
            </event:AircraftGroundServiceExtension>
          </aixm:extension>
        </aixm:AircraftGroundServiceTimeSlice>
      </aixm:timeSlice>
    </aixm:AircraftGroundService>
  </message:hasMember>
  <message:hasMember>
    <event:Event gml:id="uuid.a2ccb1c9-0218-4742-9e58-12ea802a32b3">
      <gml:identifier codeSpace="urn:uuid:">a2ccb1c9-0218-4742-9e58-12ea802a32b3</gml:identifier>
      <event:timeSlice>
        <event:EventTimeSlice gml:id="ID_56">
          <gml:validTime>
            <gml:TimePeriod gml:id="ID_57">
              <gml:beginPosition>2018-06-20T06:00:00Z</gml:beginPosition>
              <gml:endPosition>2018-07-20T15:30:00Z</gml:endPosition>
            </gml:TimePeriod>
          </gml:validTime>
          <aixm:interpretation>BASELINE</aixm:interpretation>
          <aixm:sequenceNumber>1</aixm:sequenceNumber>
          <aixm:featureLifetime>
            <gml:TimePeriod gml:id="ID_58">
              <gml:beginPosition>2018-06-20T06:00:00Z</gml:beginPosition>
              <gml:endPosition>2018-07-20T15:30:00Z</gml:endPosition>
            </gml:TimePeriod>
          </aixm:featureLifetime>
          <event:summary>Temporarily change phone number</event:summary>
        </event:EventTimeSlice>
      </event:timeSlice>
    </event:Event>
  </message:hasMember>
  <message:hasMember>
    <event:Event gml:id="uuid.42fa065a-5ac9-4c69-b54e-9cb3dc830786">
      <gml:identifier codeSpace="urn:uuid:">42fa065a-5ac9-4c69-b54e-9cb3dc830786</gml:identifier>
      <event:timeSlice>
        <event:EventTimeSlice gml:id="ID_562">
          <gml:validTime>
            <gml:TimePeriod gml:id="ID_572">
              <gml:beginPosition>2018-07-15T07:00:00Z</gml:beginPosition>
              <gml:endPosition>2018-07-30T18:00:00Z</gml:endPosition>
            </gml:TimePeriod>
          </gml:validTime>
          <aixm:interpretation>BASELINE</aixm:interpretation>
          <aixm:sequenceNumber>1</aixm:sequenceNumber>
          <aixm:featureLifetime>
            <gml:TimePeriod gml:id="ID_582">
              <gml:beginPosition>2018-07-15T07:00:00Z</gml:beginPosition>
              <gml:endPosition>2018-07-30T18:00:00Z</gml:endPosition>
            </gml:TimePeriod>
          </aixm:featureLifetime>
          <event:summary>Service is unavailable</event:summary>
        </event:EventTimeSlice>
      </event:timeSlice>
    </event:Event>
  </message:hasMember>
</message:AIXMBasicMessage>

The coding of such concurrent Events require a deviation from one of the AIXM Temporality (version 1.1) rules (TS_011, copied below).

TS_011

Valid 'TEMPDELTA' cannot overlap on same property

Valid 'TEMPDELTA' TimeSlices of the same feature shall not have overlapping or intersecting validTime periods and modify the same property.

Justification: the current NOTAM practice forbids two NOTAM to refer to the same subject/condition. Also, it becomes complicated to identify the actual value of the property.

Note: This rule was introduced in version 1.1 of the Temporality Concept in order to facilitate the calculation of SNAPSHOT TimeSlices (feature status at a moment in time). The previous version allowed overlapping TEMPDELTA TimeSlides. Therefore, a very limited number of existing Digital NOTAM implementations might not comply with this rule.

The issue in this case is that both 'TEMPDELTA' TimeSlice "modify' the same theEvent property, which is in conflict with the rule TS_011. Theoretically, the second 'TEMPDELTA' TimeSlice should be split into a two separate TimeSlices:

  • first, a correction 'TEMPDELTA' for the period of time that in which both Events are valid, and be associated with both Events. However, this is not possible with the current model because each AIXM feature TimeSlice may be associated with a single Event;
  • then, a separate 'TEMPDELTA' should be created for the period of time that follows the overlap.

However, this theoretical solution would be complicated to apply in practice and could result in ever further complications when applied to Digital NOTAM, as two different NOTAM messages would have to be generated from three different 'TEMPDELTA' feature TimeSlices.

Therefore, an exception from rule TS_011 is required for the theEvent property.

Rule

Valid 'TEMPDELTA' TimeSlices of the same feature may have overlapping or intersecting validTime periods on condition that they are associated with different Event instances and that they modify different AIXM feature properties. 

Note: This is a partial exception from the Temporality rule TS_011 of the AIXM Temporality Concept, version 1.1. 

This exception is justified by the fact that the association with the Event is not really a feature property. It is a property of the TimeSlice. In the current AIXM 5.1(.1) versions it is not possible to code this association in other way than using an extension element. Therefore, the element theEvent looks like a feature property, although it is not.

Future AIXM version

The issue has been raised in the AIXM CCB and the Event concept could become part of the core AIXM model in a future version, as a property of the TimeSlice (similar to the validTime, sequenceNumber, etc.). This would resolve this issue.