Clarify Snapshot Encoding for Feature Property with Schedule
Copyright © 2011 Open Geospatial Consortium,
Inc. All Rights Reserved.
69
2. Encode just the applicable value that the PropertyWithSchedule has for the
requested point in time, without providing any schedule information.
The following three listings show the difference between these options. Given the following Airspace feature:
Listing 7 – Airspace with activation based on schedule
aixm:Airspace ... gml:id
= tmp
gml:identifier codeSpace
= http:www.example.org
i32823jk2823983298 gml:identifier
aixm:timeSlice aixm:AirspaceTimeSlice
gml:id =
Airspace1_TS_1 gml:validTime
gml:TimePeriod gml:id
= Airspace1_TS_1_TP
gml:beginPosition 2011-01-
01T00:00:00.000Z gml:beginPosition
gml:endPosition indeterminatePosition
= unknown
gml:TimePeriod gml:validTime
aixm:interpretation BASELINE
aixm:interpretation aixm:sequenceNumber
1 aixm:sequenceNumber
aixm:correctionNumber aixm:correctionNumber
-- other feature properties omitted for brevity
-- aixm:activation
aixm:AirspaceActivation gml:id
= Airspace1_AACT
aixm:timeInterval aixm:Timesheet
gml:id =
Airspace1_AACT_TIMESHEET aixm:timeReference
UTC+2 aixm:timeReference
aixm:startDate 01-01
aixm:startDate aixm:endDate
31-12 aixm:endDate
aixm:day ANY
aixm:day aixm:startTime
00:00 aixm:startTime
aixm:endTime 23:59
aixm:endTime aixm:Timesheet
aixm:timeInterval aixm:activity
MILOPS aixm:activity
aixm:status AVBL_FOR_ACTIVATION
aixm:status --
other AirspaceActivation properties omitted for brevity --
aixm:AirspaceActivation aixm:activation
aixm:AirspaceTimeSlice aixm:timeSlice
aixm:timeSlice aixm:AirspaceTimeSlice
gml:id =
Airspace1_TD1 gml:validTime
gml:TimePeriod gml:id
= Airspace1_TD1_TP
gml:beginPosition 2011-06-
01T00:00:00.000Z gml:beginPosition
gml:endPosition 2011-06-05T00:00:00.000Z
gml:endPosition gml:TimePeriod
gml:validTime aixm:interpretation
TEMPDELTA aixm:interpretation
70 Copyright © 2011 Open Geospatial Consortium,
Inc. All Rights Reserved.
aixm:sequenceNumber 1
aixm:sequenceNumber aixm:activation
aixm:AirspaceActivation gml:id
= Airspace1_TD1_AACT
-- no schedule info, thus aixm:status = ACTIVE applies to
the whole validTime of the Tempdelta --
aixm:activity MILOPS
aixm:activity aixm:status
ACTIVE aixm:status
-- other AirspaceActivation properties omitted for brevity
-- aixm:AirspaceActivation
aixm:activation aixm:AirspaceTimeSlice
aixm:timeSlice aixm:timeSlice
aixm:AirspaceTimeSlice gml:id
= Airspace1_TD2
gml:validTime gml:TimePeriod
gml:id =
Airspace1_TD2_TP gml:beginPosition
2011-07- 01T00:00:00.000Z
gml:beginPosition gml:endPosition
2011-07-15T23:59:59Z gml:endPosition
gml:TimePeriod gml:validTime
aixm:interpretation TEMPDELTA
aixm:interpretation aixm:sequenceNumber
2 aixm:sequenceNumber
aixm:activation aixm:AirspaceActivation
gml:id =
Airspace1_TD2_AACT1 aixm:timeInterval
aixm:Timesheet gml:id
= Airspace1_TD2_TS1
aixm:timeReference UTC+2
aixm:timeReference aixm:day
ANY aixm:day
aixm:startTime 00:00
aixm:startTime aixm:endTime
05:59 aixm:endTime
aixm:Timesheet aixm:timeInterval
aixm:activity MILOPS
aixm:activity aixm:status
INACTIVE aixm:status
-- other AirspaceActivation properties omitted for brevity
-- aixm:AirspaceActivation
aixm:activation aixm:activation
aixm:AirspaceActivation gml:id
= Airspace1_TD2_AACT2
aixm:timeInterval aixm:Timesheet
gml:id =
Airspace1_TD2_TS2 aixm:timeReference
UTC+2 aixm:timeReference
aixm:day ANY
aixm:day aixm:startTime
06:00 aixm:startTime
aixm:endTime 17:59
aixm:endTime aixm:Timesheet
aixm:timeInterval aixm:activity
MILOPS aixm:activity
aixm:status ACTIVE
aixm:status --
other AirspaceActivation properties omitted for brevity --
aixm:AirspaceActivation aixm:activation
aixm:activation
Copyright © 2011 Open Geospatial Consortium,
Inc. All Rights Reserved.
71 aixm:AirspaceActivation
gml:id =
Airspace1_TD2_AACT3 aixm:timeInterval
aixm:Timesheet gml:id
= Airspace1_TD2_TS3
aixm:timeReference UTC+2
aixm:timeReference aixm:day
ANY aixm:day
aixm:startTime 18:00
aixm:startTime aixm:endTime
23:59 aixm:endTime
aixm:Timesheet aixm:timeInterval
aixm:activity MILOPS
aixm:activity aixm:status
INACTIVE aixm:status
-- other AirspaceActivation properties omitted for brevity
-- aixm:AirspaceActivation
aixm:activation aixm:AirspaceTimeSlice
aixm:timeSlice aixm:Airspace
then the first option for a Snapshot at time 2011-07-02T03:15:00+02:00 would look like this:
Listing 8 – Airspace Snapshot with full schedule
aixm:Airspace ... gml:id
= tmp
gml:identifier codeSpace
= http:www.example.org
i32823jk2823983298 gml:identifier
aixm:timeSlice aixm:AirspaceTimeSlice
gml:id =
Airspace1_TS gml:validTime
gml:TimeInstant gml:id
= Airspace1_TS_TI
gml:timePosition 2011-07-
02T03:15:00+02:00 gml:timePosition
gml:TimeInstant gml:validTime
aixm:interpretation SNAPSHOT
aixm:interpretation --
other feature properties omitted for brevity --
aixm:activation aixm:AirspaceActivation
gml:id =
Airspace1_TD2_AACT1 aixm:timeInterval
aixm:Timesheet gml:id
= Airspace1_TD2_TS1
aixm:timeReference UTC+2
aixm:timeReference aixm:day
ANY aixm:day
aixm:startTime 00:00
aixm:startTime aixm:endTime
05:59 aixm:endTime
aixm:Timesheet aixm:timeInterval
aixm:activity MILOPS
aixm:activity aixm:status
INACTIVE aixm:status
-- other AirspaceActivation properties omitted for brevity
-- aixm:AirspaceActivation
aixm:activation aixm:activation
aixm:AirspaceActivation gml:id
= Airspace1_TD2_AACT2
72 Copyright © 2011 Open Geospatial Consortium,
Inc. All Rights Reserved.
aixm:timeInterval aixm:Timesheet
gml:id =
Airspace1_TD2_TS2 aixm:timeReference
UTC+2 aixm:timeReference
aixm:day ANY
aixm:day aixm:startTime
06:00 aixm:startTime
aixm:endTime 17:59
aixm:endTime aixm:Timesheet
aixm:timeInterval aixm:activity
MILOPS aixm:activity
aixm:status ACTIVE
aixm:status --
other AirspaceActivation properties omitted for brevity --
aixm:AirspaceActivation aixm:activation
aixm:activation aixm:AirspaceActivation
gml:id =
Airspace1_TD2_AACT3 aixm:timeInterval
aixm:Timesheet gml:id
= Airspace1_TD2_TS3
aixm:timeReference UTC+2
aixm:timeReference aixm:day
ANY aixm:day
aixm:startTime 18:00
aixm:startTime aixm:endTime
23:59 aixm:endTime
aixm:Timesheet aixm:timeInterval
aixm:activity MILOPS
aixm:activity aixm:status
INACTIVE aixm:status
-- other AirspaceActivation properties omitted for brevity
-- aixm:AirspaceActivation
aixm:activation aixm:AirspaceTimeSlice
aixm:timeSlice aixm:Airspace
while the second option for a Snapshot at time 2011-07-02T03:15:00+02:00 would look like this:
Listing 9 – Airspace Snapshot with single value without schedule
aixm:Airspace ... gml:id
= tmp
gml:identifier codeSpace
= http:www.example.org
i32823jk2823983298 gml:identifier
aixm:timeSlice aixm:AirspaceTimeSlice
gml:id =
Airspace1_TS gml:validTime
gml:TimeInstant gml:id
= Airspace1_TS_TI
gml:timePosition 2011-07-
02T03:15:00+02:00 gml:timePosition
gml:TimeInstant gml:validTime
aixm:interpretation SNAPSHOT
aixm:interpretation --
other feature properties omitted for brevity --
aixm:activation aixm:AirspaceActivation
gml:id =
Airspace1_SN_AACT aixm:activity
MILOPS aixm:activity
Copyright © 2011 Open Geospatial Consortium,
Inc. All Rights Reserved.
73 aixm:status
INACTIVE aixm:status
-- other AirspaceActivation properties omitted for brevity
-- aixm:AirspaceActivation
aixm:activation aixm:AirspaceTimeSlice
aixm:timeSlice aixm:Airspace
Clarification of encoding PropertiesWithSchedule in Snapshots has already been requested on the AIXM Forum
5
. The request has been accepted and will be incorporated in the next version of the Temporality Model. At the same time, users were invited to
suggest further improvements. A summary of the OWS-8 discussions regarding this clarification is therefore provided in this document.
Both options have their advantages and disadvantages - depending on the given use case. The first option is useful for encoding an Extract as a list of Snapshots see section
10.1.3.4.3. However, simple clients need to evaluate schedules themselves just to find out what the value of a PropertyWithSchedule really is at a given point in time. With the
second option, the service that generates the Snapshot is responsible for computing this information and the client can easily read it from the Snapshot. For the encoding of an
Extract as a list of Snapshots, the second option causes a significant increase of the size of the resulting representation.
According to the result of the discussion on the AIXM Forum, the second option is preferred and is going to be the default way of encoding a PropertyWithSchedule in a
Snapshot. This supports the intent of introducing the Snapshot: supporting simple clients by moving the complex evaluation of timeslices and timesheets to the service.
Supporting the first option - to include full schedule information in Snapshots - can nevertheless be considered as optional service functionality. With option 2. being the
default for generating Snapshots, option 1. could be supported via an explicit request.
An additional aspect of encoding a PropertyWithSchedule in a Snapshot is that the value of that property may be undefined at the requested point in time. According to section 2.7
of the Temporality Model, this is possible but not recommended. If a Snapshot is requested for such a time, then the property shall completely be omitted in the result.
10.1.3 Extract - Extending the Snapshot Concept 10.1.3.1 Introduction
The Temporality Model recognizes the need to communicate the status of an AIXM feature at a given moment in time. In such a situation, it is efficient - and convenient for
5
See the AIXM Forum thread with subject “AIXM Temporality Concept document version 1.0” from October 2010.
74 Copyright © 2011 Open Geospatial Consortium,
Inc. All Rights Reserved.
the recipient - to encode the information as a feature with a single Snapshot timeslice. The Snapshot contains information on the value of all feature properties for the given
time. This information is aggregated from all applicable timeslices see section 2.5 of the Temporality Model as well as section 10.1.1 and section 10.1.2 in this document for
further details.
During OWS-8, the need to get information on the state of an AIXM feature not only for a given point in time but during a given time interval was discussed. This new concept
was called Extract to better differentiate it from the concept of a Snapshot. The following sections describe the use case for Extracts, how an Extract is computed and how it can be
encoded.