Online "Book Flights" facility for an airline
As we begin Part 18, we have:
RT15. | {{The|Each} <term 1> {(if any)|} that <verb phrase 1>|} each <term 2> {<qualifying clause>|} must <verb phrase 2> <cardinality> <term 3> {<preposition> {each|the} <term 4>|} {{if|unless} <conditional clause>|}. |
|
(from which rule statements RS8, RS9, RS12 to RS17, RS40 to RS47, RS53, RS54, and RS61 to RS63 can be generated) | ||
RT16. | Each <term 1> {<qualifying clause>|} must {({if|unless} <conditional clause>)|} specify whether {{or not|} {it|the <term 2>} <verb phrase 1> {<article> <term 3>|}| {it|the <term 4>} <verb phrase 2> <or-list>}. |
|
(from which rule statements RS26 to RS29 can be generated) | ||
RT17. | Each <term 1> {<qualifying clause>|} must <verb phrase> {a|an} <term 2>, {a|an} <term 3> or both {{if|unless} <conditional clause>|}. |
|
(from which rule statement RS30 can be generated) | ||
RT18. | Each <term 1> {<qualifying clause>|} must <verb phrase> {a|an} <term 2> or {a|an} <term 3> but not both {{if|unless} <conditional clause>|}. |
|
(from which rule statement RS31 can be generated) | ||
RT19. | Each <term 1> {<qualifying clause>|} must {({if|unless} <conditional clause>)|} <verb phrase> <cardinality> of the following: <or-list>. |
|
from which rule statements RS32, RS34, and RS35 can be generated) | ||
RT20. | {A|An} <term 1> {<qualifying clause>|} must not <verb phrase> {a|an} <term 2> {{if|unless} <conditional clause>|}. |
|
(from which rule statement RS11 can be generated) | ||
RT21. | The <term 1> {<qualifying clause>|} {(if any)|} that <verb phrase> each <term 2> {<qualifying clause>|} must be <predicate> {{if|unless} <conditional clause>|}. |
|
(from which rule statements RS19 to RS24, RS38, RS39, RS55, RS64 to RS66, RS70, RS126 and RS137 to RS146 can be generated) | ||
RT22. | The combination of <simple and-list> {<qualifying clause>|} {(if any)|} that <verb phrase> each <term 2> {<qualifying clause>|} must be <combination predicate> {{if|unless} <conditional clause>|}. |
|
from which rule statements RS56 and RS60 can be generated) | ||
RT27. | The <set function> of {the|} <term 1> <qualifying clause> must be {<non-time range predicate>|<equality predicate>} {{if|unless} <conditional clause>|}. |
|
(from which rule statements RS25, RS73, and RS74 can be generated) | ||
RT28. | The set of <term 1> <qualifying clause> must be the same as the set of <term 2> <qualifying clause> {{if|unless} <conditional clause>|}. |
|
(from which rule statement RS80 can be generated) | ||
RT25. | A <term 1> is by definition a {<term 2> <qualifying clause>|<or-list>}. |
|
(from which rule statements RS81 and RS82 can be generated) | ||
RT26. | The <term 1> {<qualifying clause>|} {(if any)|} that <verb phrase> each <term 2> {<qualifying clause>|} is by definition <predicate> {{if|unless} <conditional clause>|}. |
|
(from which rule statements RS83 and RS84 can be generated) | ||
RT29. | The set of <term 1> <qualifying clause> is by definition the same as the set of <term 2> <qualifying clause> {{if|unless} <conditional clause>|}. |
|
(from which rule statement RS85 can be generated) | ||
RT32. | A <term 1> {<qualifying clause 1>|} may <verb phrase 1> {<article>|} <term 2> {<qualifying clause 2>|} only after that <term 1> {<process>|<process list>}. |
|
(from which rule statements RS104 to RS107 can be generated) | ||
RT33. | A <term 1> {<qualifying clause 1>|} may <verb phrase 1> {<article>|} <term 2> {<qualifying clause 2>|} only if <conditional clause>. |
|
(from which rule statements RS108 to RS115 can be generated) | ||
RT34. | {<determiner>|} <term 1> <qualifying clause 1> must{ not|} <verb phrase> {<determiner> <term 2> {<qualifying clause 2>|}|} <time range predicate> {{if|unless} <conditional clause>|}. |
|
(from which rule statements RS96 to RS101 can be generated) | ||
RT35. | {<determiner>|} <term 1> <qualifying clause 1> may <verb phrase> {<determiner> <term 2> {<qualifying clause 2>|}|} only <time range predicate> {{if|unless} <conditional clause>|}. |
|
(from which rule statement RS102 can be generated) | ||
RT36. | Each <term 1> <verb phrase> by definition <cardinality> <term 2> {<preposition> each <term 3>|}. |
|
(from which rule statements RS117 and RS118 can be generated) | ||
RT37. | A valid <term 1> is by definition composed of <format definition>. |
|
(from which rule statements RS132 to RS136 can be generated) |
Primitives
ST1. | <cardinality> ::= | ||
{exactly|at {least|most}|at least <positive integer> and at most} <positive integer> | |||
ST7. | <set function> ::= | ||
{number|total|maximum|minimum| average|mean|median|mode} |
|||
ST11. | <article> ::= {a|an|the} | ||
ST50. | <determiner> ::= | ||
{<article>|<cardinality>|each|that|those| |
Predicates
ST57. | <predicate> ::= | ||
{<value set predicate>|<match predicate>|<range predicate>|<equality predicate>|<uniqueness predicate>|<format predicate>} | |||
ST32. | <value set predicate> ::= | ||
{one of the <term> {<qualifying clause>|}|<value-list>} | |||
(used in rule statements RS21, RS22, and RS64 to RS66) | |||
ST33. | <value-list> ::= | ||
{<literal 1> or <literal 2>|<literal 3>, <value-list>} | |||
ST4. | <match predicate> ::= | ||
{the same as|different to} the <term> {<qualifying clause>|} | |||
(used in rule statement RS23) | |||
ST16. | <range predicate> ::= | ||
{<time range predicate>|<non-time range predicate>} | |||
ST51. | <time range predicate> ::= | ||
{{no|} {later|earlier} than <literal>| {no|} {later|earlier} than {<literal> {after|before}|} the <term> {<qualifying clause>|}| during the <literal> {after|before} the <term> {<qualifying clause>|}} |
|||
(used in rule statements RS19 and RS20) | |||
ST45. | <non-time range predicate> ::= | ||
{{no|} {more|less} than} <literal>| {{no|} {more|less} than|at {least|most} <literal> more than} the {<set function> of|} <term> {<qualifying clause>|}} |
|||
(used in rule statement RS24) | |||
ST46. | <equality predicate> ::= | ||
{not|} equal to {<literal>| the {<set function> of|} <term> {<qualifying clause>|}} |
|||
(used in rule statement RS25) | |||
ST20. | <uniqueness predicate> ::= | ||
different to the <term 1> that <verb phrase> each other <term 2> {<qualifying clause>|} |
|||
(used in rule statement RS55) | |||
ST21. | <combination predicate> ::= | ||
{<combination value set predicate>| <combination uniqueness predicate>} |
|||
ST22. | <combination value set predicate> ::= | ||
one of the combinations of <simple and-list> {<qualifying clause>|} |
|||
(used in rule statement RS60) | |||
ST23. | <combination uniqueness predicate> ::= | ||
different to the combination of <simple and-list> that <verb phrase> each other <term> {<qualifying clause>|} |
|||
(used in rule statement RS56) | |||
ST24. | <format predicate> ::= | ||
{represented using|} a valid <term 1> |
Format definitions
ST57. | <format definition> ::= | ||
{{exactly|at least|up to} <positive integer>| from <positive integer> to <positive integer>} <term 1> {followed by <format definition>|} |
Processes
ST52. | <process> ::= | ||
<verb phrase> {{<determiner>|} <term> {<qualifying clause>|}|} |
Lists
ST15. | <or-list> ::= {<simple or-list>|<complex or-list>} | ||
ST12. | <simple or-list> ::= | ||
{<article> <term 1> or <article> <term 2>| <article> <term 3>, <simple or-list>} |
|||
ST14. | <complex or-list> ::= | ||
• <article> <term 1>|<simple and-list>}; or {• <article> <term 1>|<simple and-list>}|<complex or-list>} |
|||
ST13. | <simple and-list> ::= | ||
{<article> <term 1> and <article> <term 2>| <article> <term 3>, <simple and-list>} |
|||
ST53. | <process list> ::= | ||
{<or-process list>|<and-process list>} | |||
ST54. | <or-process list> ::= | ||
{<process 1> or < process 2>|<process 3>, <or-process list>} | |||
ST55. | <and-process list> ::= | ||
{<process 1> and < process 2>|<process 3>, <and-process list>} |
Conditional clauses
ST24. | <conditional clause> ::= | ||
{<simple conditional clause>|<and-conditional clause>| <or-conditional clause>} |
|||
ST25. | <simple conditional clause> ::= | ||
<condition subject> <condition> | |||
ST26. | <and-conditional clause> ::= | ||
<simple conditional clause> and {<simple conditional clause>|<and-conditional clause>} |
|||
ST27. | <or-conditional clause> ::= | ||
<simple conditional clause> or {<simple conditional clause>|<or-conditional clause>} |
|||
ST49. | <condition subject> ::= | ||
<determiner> <term> {<qualifying clause>|} | |||
ST45. | <simple condition> ::= | ||
<verb phrase> <determiner> <term> | |||
ST56. | <final condition> ::= | ||
{{<simple condition>|<verb phrase>|is <predicate>} {<preposition> <condition subject>|}| other than the {first|last}} |
|||
ST36. | <chained condition> ::= | ||
{<simple condition>|<chained condition>} {that|who} <final condition> |
|||
ST37. | <condition> ::= {<final condition>|<chained condition>} |
Qualifying clauses
ST47. | <simple qualifying clause> ::= | ||
{{that|who} <final condition>| <preposition> {which|whom} <determiner> <term> <verb phrase>} |
|||
ST48. | <chained qualifying clause> ::= | ||
{{that|who} <simple condition> {<simple qualifying clause>|<chained qualifying clause>}| <preposition> {which|whom} {<article>|each|that} <term> <chained condition>} |
|||
ST40. | <or-qualifying clause> ::= | ||
{<simple qualifying clause>|<or-qualifying clause>} or <final condition> |
|||
ST41. | <and-qualifying clause> ::= | ||
{<simple qualifying clause>|<and-qualifying clause>} and <final condition> |
|||
ST42. | <either-or-qualifying clause> ::= | ||
{{that|who} either <condition> or <condition> {or|but not} both| {that|who} <simple condition> <either-or-qualifying clause> |
|||
ST43. | <both-and-qualifying clause> ::= | ||
{that|who} both <condition> and <condition>| {that|who} <simple condition> <both-and-qualifying clause> |
|||
ST44. | <qualifying clause> ::= | ||
{<simple qualifying clause>|<chained qualifying clause>| <or-qualifying clause>|<and-qualifying clause>| <either-or-qualifying clause>|<both-and-qualifying clause>} |
Rule type | Template | Metarules |
Mandatory data item rule | RT15 | <cardinality> ::= {exactly <positive integer>| at least <positive integer> {and at most <positive integer>|}} |
Mandatory option selection rule | RT16 | |
Mandatory group rule | RT17 | if either or both of 2 items in the group |
RT18 | if only 1 of 2 items in the group | |
RT19 | if more than 2 items in the group | |
Prohibited data rule | RT20 | |
Singular data rule | RT15 | <cardinality> ::= {exactly|at most} one |
Dependent cardinality rule | RT27 | <set function> ::= number |
Structural cardinality rule | RT36 | |
Value set rule | RT21 | <predicate> ::= <value predicate> if only 1 data item |
RT22 | <combination predicate> ::= <combination value set predicate> if combination of data items |
|
Match rule (operative) | RT21 | <predicate> ::= <match predicate> |
Match rule (structural) | RT26 | <predicate> ::= <match predicate> |
Range rule | RT21 | <predicate> ::= <range predicate> |
Uniqueness constraint | RT21 | <predicate> ::= <uniqueness predicate> if only 1 data item |
RT22 | <combination predicate> ::= |
|
Set constraint (operative) | RT28 | |
Set constraint (structural) | RT29 | |
Definitional rule | RT25 | |
Inter-process interval rule | RT34 | if rule statement expresses obligation (must) |
RT35 | if rule statement expresses restricted permission (may … only) |
|
Prerequisite process rule | RT32 | |
Other process pre-condition | RT33 |
FT1. | flight booking request specifies departure date | |
FT2. | flight booking request is for journey | |
FT3. | return journey is a category of journey | |
FT4. | flight booking request specifies return date | |
FT5. | one-way journey is a category of journey | |
FT6. | flight booking request is for return journey | |
(derived from fact types FT2 and FT3) | ||
FT7. | flight booking request is for one-way journey | |
(derived from fact types FT2 and FT5) | ||
FT8. | flight booking request specifies origin city | |
FT9. | flight booking request specifies destination city | |
FT10. | flight booking request specifies number of passengers | |
FT11. | flight booking request specifies frequent flier membership | |
FT12. | flight booking confirmation specifies passenger name | |
FT13. | flight booking confirmation specifies payment arrangement | |
FT14. | airline serves city | |
FT15. | flight booking request gives rise to flight booking confirmation | |
FT16. | passenger must travel on the specified dates | |
FT17. | paying party wishes to include a CO2 offset payment | |
FT20. | flight booking request is for multi-stop journey | |
FT21. | payment is for flight booking request | |
FT22. | credit card payment is a category of payment | |
FT23. | electronic transfer payment is a category of payment
|
|
FT24. | flight booking confirmation specifies mobile phone number
|
|
FT25. | flight booking confirmation specifies e-mail address | |
FT26. | flight booking confirmation specifies credit card | |
FT27. | flight booking confirmation specifies electronic transfer payment receipt | |
FT28. | flight booking confirmation specifies postal address | |
FT29. | flight booking confirmation specifies fax number | |
FT30. | flight booking confirmation specifies origin city daytime phone number | |
FT31. | flight booking confirmation specifies origin city evening phone number | |
FT32. | flight booking confirmation specifies destination city daytime phone number | |
FT33. | flight booking confirmation specifies destination city evening phone number | |
FT34. | bag weighs weight | |
FT35. | bag is labelled with label | |
FT36. | 'heavy bag' label is a category of label | |
FT37. | flight has departure time | |
FT38. | flight booking confirmation specifies flight | |
FT39. | outgoing flight is a category of flight | |
FT40. | return flight is a category of flight | |
FT41. | flight has arrival time | |
FT42. | flight booking confirmation is made online | |
FT43. | flight booking confirmation has booking confirmation time | |
FT44. | postal address includes address line | |
FT45. | postal address includes placename | |
FT46. | postal address includes postal code | |
FT47. | postal address includes country name | |
FT48. | passenger name includes first name | |
FT49. | passenger name includes last name | |
FT50. | flight booking confirmation is for return journey | |
(derived from fact types FT6 and FT15) | ||
FT51. | flight booking confirmation is for one-way journey | |
(derived from fact types FT7 and FT15) | ||
FT54. | flight booking confirmation specifies travel class for flight | |
FT55. | flight booking confirmation specifies fare class for flight | |
FT56. | record locator is allocated to confirmed flight booking | |
FT57. | departure date is specified in seat allocation | |
FT58. | flight number is specified in seat allocation | |
FT59. | departure city is specified in seat allocation | |
FT60. | seat number is specified in seat allocation | |
FT61. | postal authority allocates place name | |
FT62. | postal authority allocates postal code | |
FT63. | postal authority is of country | |
FT64. | postal address specifies country | |
(derived from fact type FT47) | ||
FT65. | airline can access postal code information from postal authority | |
FT66. | flight booking confirmation specifies set of passport details for passenger | |
FT67. | flight is international | |
FT68. | flight booking confirmation specifies date of birth for passenger | |
FT69. | flight booking confirmation specifies insurance option | |
FT70. | flight booking confirmation specifies escorting party at destination city | |
FT71. | flight booking confirmation specifies passenger | |
(derived from fact type FT12) | ||
FT72. | passenger is of age |
FT73. | travel class is offered by airline | |
FT74. | fare class is available on flight | |
FT75. | flight is operated by airline | |
FT76. | flight is operated by partner of airline | |
FT77. | seat is of fare class | |
FT78. | seat is available on flight | |
FT79. | flight has origin city | |
FT80. | flight has destination city | |
FT81. | passenger is booked on flight | |
FT82. | flight connects with flight at port | |
FT83. | passenger boards flight | |
FT84. | passenger checks in for flight | |
FT85. | online check-in is for flight | |
FT86. | port has minimum domestic transit time | |
FT87. | port has minimum international transit time | |
FT88. | flight is domestic | |
FT89. | passenger undergoes departure control | |
FT90. | passenger undergoes security screening | |
FT91. | passenger undergoes check-in | |
FT92. | passenger enters landside | |
FT93. | passenger presents boarding pass | |
FT94. | boarding pass specifies flight | |
FT95. | boarding pass specifies departure date | |
FT96. | international flight is a category of flight | |
FT97. | passenger boards international flight | |
(derived from fact types FT83 and FT94) | ||
FT98. | passenger presents passport | |
FT99. | passport specifies name of passenger |
FT100. | passport bears likeness of passenger | |
FT101. | passport specifies expiry date | |
FT102. | passenger passes through departure control | |
FT103. | date is of departure control | |
FT104. | boarding card specifies name of passenger | |
FT105. | passenger passes through security screening | |
FT106. | security screening is for international flight | |
FT107. | date is of security screening | |
FT108. | online check-in is a category of check-in | |
FT109. | domestic flight is a category of flight | |
FT110. | flight has destination port | |
FT111. | flight has origin port | |
FT112. | multi-stop journey is a category of journey |
Note
The font and colour conventions used in these rule statements, fact types, and templates reflect those in the SBVR, namely: underlined teal for terms, italic blue for verb phrases, orange for keywords, and double-underlined green for names and other literals.