Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Image Added

Image Added

Code Block
languagetext
titleEBNF source
collapsetrue
dates = "(1)" ("(2)" "TS.startDate(3)" | "TS.startDate(3)" "-" "TS.endDate(4)") ("(5)" "TS.startTime(6)" | "TS.startEvent(7)" "TS.startTimeRelativeEvent(8)") "-" ("(9)" "TS.endTime(10)" | "TS.endEvent(7)" "TS.endTimeRelativeEvent(8)") {"11" " " ("(5)" "TS.startTime(6)" | "TS.startEvent(7)" "TS.startTimeRelativeEvent(8)") "-" ("(9)" "TS.endTime(10)" | "TS.endEvent(7)" "TS.endTimeRelativeEvent(8)")} {"(12)" " " ("(2)" "TS.startDate(3)" | "TS.startDate(3)" "-" "TS.endDate(4)") ("(5)" "TS.startTime(6)" | "TS.startEvent(7)" "TS.startTimeRelativeEvent(8)") "-" ("(9)" "TS.endTime(10)" | "TS.endEvent(7)" "TS.endTimeRelativeEvent(8)") {"11" " " ("(5)" "TS.startTime(6)" | "TS.startEvent(7)" "TS.startTimeRelativeEvent(8)") "-" ("(9)" "TS.endTime(10)" | "TS.endEvent(7)" "TS.endTimeRelativeEvent(8)")}} "(13)".
 
remarks = ["ParentElement.annotation.Note (14)" "."].


ReferenceData item (from coding template)Rule
(1)

If there are multiple Timesheet (i.e. multiple time periods included in the schedule), then the following algorithm is proposed:

  • first, order by TS.startDate
  • then, for each group of consecutive Timesheet that have the same startDate and endDate, order by startTime. Note: see the recommendations provided in rule (7) of the Production rule - Daily with regard to ordering Timesheets by startTime and startEvent)
  • then, for each Timesheet apply the rules described in the following lines of this table.
(2)

Use this branch when:

  • TS.endDate is equal to TS.startDate, or
  • TS.endDate is has the value of the next calendar day after TS.startDate and TS.endTime has the value '00:00' (the convention for end of day was applied in the coding)

Otherwise use the alternate branch.

(3)start dateConvert TS.startDate into the NOTAM format (MMM DD)
(4)end date

If TS.endTime has the value '00:00' (the convention for end of day was applied in the coding), then use the previous calendar (before the coded TS.endDate). Otherwise, use the  TS.endDate.

Convert the appropriate value in the NOTAM format (MMM DD)

(5)

If TS.startTime has a value then use this

Production rule Dates

Image Removed

Image Removed

ReferenceRule(1)

If TS.startDate differs from TS.endDate, go through the alternate path, otherwise go through the direct path.

(2)

Format the data to show the month abbreviation followed by two digits (MMM DD), eg. AUG 23, according to item D NOTAM syntax. If the month value stored in TS.startDate is identical to the one stored in TS.startDate pertaining to a previous iteration, insert only the day of the month value stored in TS.startDate.

(3)

If the month value stored in TS.endDate is identical to the one stored in TS.startDate, insert only the day of the month value stored in TS.endDate.

(4)

If consecutive dates are stores in TS.startDate elements or if consecutive date periods are stored in TS.startDate and TS.endDate elements, add a dash between the start date and the end date.

(5)If TS.startTime is used to indicate when the period included in the schedule starts, go through the direct

path. Otherwise, if TS.startEvent

is used, go through

has a value, then use the alternate path.

(6)start time

Format the data contained in TS.startTime

and TS.endTime

according to NOTAM syntax for this item: hhmm.

If the time value of TS.endTime is 24:00 or 24:00:00, then the value “2359” shall be used as hhmm group.

(7)start event

Decode this value as follows: 'SR' → "SR", 'SS' → "SS"

(8)rel. startIf TS.startTimeRelativeEvent has a value, then decode
(7)If TS.startTimeRelative and TS.endTimeRelativeEvent are used, format the data contained in these elements according to NOTAM syntax for this item
by replacing '-' by '
MINUS
minus' and '+' by '
PLUS'. 
plus', followed by the number of minutes in mm format.
(9
(8
)

If TS.endTime

is used to indicate when the period included in the schedule ends, go through the direct

has a value then use this path. Otherwise, if TS.endEvent

is used, go through

has a value, then use the alternate path.

(
9
10)
Sort the dates or date periods by month and then by day using the dates
end time

Format the data contained in TS.

startDate. Then sort the time periods associated to each date or date period by the value contained in TS.startTime or in TS.startEvent, whichever is used. For sorting purpose, consider SR = 0600 LT and SS = 2000 LT.

endTime according to NOTAM syntax for this item: hhmm.

If TS.endTime is '00:00', then the value “2359” shall be used as hhmm group in the NOTAM.

(11) (12)

If there are multiple Timesheet to process, if the following conditions are met for the next Timesheet (following the ordering specified in rule (1) above):

  • it has identical values for startDate and endDate with the current Timesheet
  • it has the same startDate, but endDate is one day later than the endDate of the current Timesheet and endTime has the value '00:00' (the convention for end of day was applied in the coding)

then, use the return branch (11) and process only the time/event values of the next Timesheet, Otherwise, return through branch (12) and process the next Timesheet in full.

(13)

The algorithm proposed above could still result into date/time groups in item D that have the same date range. That's because the ordering/grouping of the Timesheet is done only by similar starDate/endDate. For example, this could result into the following: "D) SEP 01-05 0700-0900 1300-1400 SEP 08-13 0700-0900 1300-1400 SEP 15 0700 1100". Based on the current NOTAM practice, the first two date/time groups ("SEP 01-05" and "SEP 08-13" should be collapsed into a single dates group, because they have the same times: "D) SEP 01-05 08-13 0700-0900 1300-1400 SEP 15 0700 1100". 

This streamlining of the resulting schedule text could be done at the end of the text generation process or directly in the production rule, with a more sophisticated algorithm. The resolution of this issue is left for the implementers.

(14)schedule noteAnnotations of parent object that have  propertyName='timeInterval' and purpose='REMARK'. shall be translated into free text according to the decoding rules for annotations. The resulting text shall be appended at the end of item E
(10)

A comma shall be used to separate groups of dates or date periods to which the same time periods apply.

(11)

If there are any timesheets containing TS.excluded elements with the value 'YES', denoting a schedule with exceptions, select all of them and go through the direct path, otherwise go through the bypass path.

(12)Sort the exceptions by day
.