Production rule - Weekdays
Reference | Data 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:
| |
(2) | Use this branch when:
Otherwise use the alternate branch. | |
(3) | If TS.startTime has a value then use this path. Otherwise, if TS.startEvent has a value, then use the alternate path. | |
(4) | start time | Format the data contained in TS.startTime according to NOTAM syntax for this item: hhmm. |
(5) | start event | Decode this value as follows: 'SR' → "SR", 'SS' → "SS" |
(6) | rel. start | If TS.startTimeRelativeEvent has a value, then decode by replacing '-' by 'minus' and '+' by 'plus', followed by the number of minutes in mm format. |
(7) | If TS.endTime has a value then use this path. Otherwise, if TS.endEvent has a value, then use the alternate path. | |
(8) | end time | Format the data contained in TS.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 (the convention for end of day was applied in the coding). |
(9)(10) | 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):
then, use the return branch (9) and process only the time/event values of the next Timesheet, Otherwise, return through branch (10) and process the next Timesheet in full. | |
(11) | The algorithm proposed above could still result into consecutive week days in item D that have the same time periods. That's because the ordering/grouping of the Timesheet is done only by similar day/dayTil. For example, this could result into the following: "D) MON 0700-0900 1300-1400 TUE 0700-0900 1300-1400 WED 0700-0900 1300-1400 THU 0600-1500". Based on the current NOTAM practice, the first three week day/time groups should be collapsed into a single week-day range, because they have the same times: "D) MON-WED 0700-0900 1300-1400 THU 0600-1500". 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. | |
(12) | If there are any timesheets containing TS.excluded elements with the value 'YES', denoting a schedule with exceptions, select all of them and use this path, otherwise go through the bypass path. | |
(13) | excluded date | Use all the Timesheet that have TS.excluded='YES' at once and apply the following algorithm:
|
(14) | schedule note | Annotations 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. |