Online "Book Flights" facility for an airline
As we begin Part 11, 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, and RS70 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>|}. | |
RT25. | A <term 1> is by definition a {<term 2> <qualifying clause>|<or-list>}. | |
RT26. | The <term 1> {<qualifying clause>|} {(if any)|} that <verb phrase> each <term 2> {<qualifying clause>|} is by definition <predicate> {{if|unless} <conditional clause>|}. | |
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>|}. |
ST1. | <cardinality> ::= | ||
{exactly|at {least|most}|at least <positive integer> and at most} <positive integer> | |||
ST19. | <predicate> ::= | ||
{<value set predicate>|<match predicate>|<range predicate>| <equality predicate>|<uniqueness predicate>} | |||
ST32. | <value set predicate> ::= | ||
{one of the <term> {<qualifying clause>|}|<value-list>} | |||
(used in rule statements RS21, RS22, and RS64–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>} | |||
ST17. | <time range predicate> ::= | ||
{no|} {later|earlier} than {<literal>| {<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) | |||
ST7. | <set function> ::= | ||
{number|total|maximum|minimum| average|mean|median|mode} | |||
ST11. | <article> ::= {a|an|the} | ||
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>} | |||
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. | <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>} | |||
ST28. | <condition subject> ::= | ||
{the|that|any|every} <term> {<qualifying clause>|>} | |||
ST34. | <simple condition> ::= <verb phrase> {<article>|each|that} <term> | ||
ST35. | <final condition> ::= | ||
{<simple condition>|<verb phrase>|is <predicate>} | |||
ST36. | <chained condition> ::= | ||
{<simple condition>|<chained condition>} {that|who} <final condition> | |||
ST37. | <condition> ::= {<final condition>|<chained condition>} | ||
ST38. | <simple qualifying clause> ::= {that|who} <final condition> | ||
ST39. | <chained qualifying clause> ::= | ||
{that|who} <simple condition> {<simple qualifying clause>|<chained qualifying clause>} | |||
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 |
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 |
RS8. | Each flight booking request must specify exactly one departure date. |
RS9. | Each flight booking request for a return journey must specify exactly one return date. |
RS11. | A flight booking request for a one-way journey must not specify a return date. |
RS12. | Each flight booking request must specify exactly one origin city. |
RS13. | Each flight booking request must specify exactly one destination city. |
RS14. | Each flight booking request must specify exactly one number of passengers. |
RS15. | Each flight booking request must specify at most one frequent flier membership. |
RS16. | Each flight booking confirmation must specify at least one passenger name. |
RS17. | Each flight booking confirmation must specify exactly one payment arrangement. |
RS19. | The departure date specified in each flight booking request must be no earlier than today. |
RS20. | The return date (if any) specified in each flight booking request must be no earlier than the departure date specified in that flight booking request. |
RS21. | The origin city specified in each flight booking request must be one of the cities served by the airline. |
RS22. | The destination city specified in each flight booking request must be one of the cities served by the airline. |
RS23. | The destination city specified in each flight booking request must be different to the origin city specified in that flight booking request. |
RS24. | The number of passengers specified in each flight booking request must be no less than one. |
RS25. | The number of passenger names specified in each flight booking confirmation must be equal to the number of passengers specified in the flight booking request that gives rise to that flight booking confirmation. |
| |
RS26. | Each flight booking request must specify whether or not the passengers must travel on the specified dates. |
RS27. | Each flight booking confirmation must specify whether or not the paying party wishes to include a CO2 offset payment. |
RS28. | Each flight booking request must specify whether it is for a return journey, a one-way journey or a multi-stop journey. |
RS29. | Each flight booking confirmation must specify whether the payment is a credit card payment or an electronic transfer payment. |
RS30. | Each flight booking confirmation must specify a mobile phone number, an e-mail address or both. |
RS31. | Each flight booking confirmation must specify a credit card or an electronic transfer payment receipt but not both. |
RS32. | Each flight booking confirmation must specify exactly one of the following: a postal address, an e-mail address or a fax number. |
RS34. | Each flight booking confirmation must specify exactly one of the following: • a mobile phone number; or • an origin city daytime phone number and an origin city evening phone number. |
RS35. | Each flight booking confirmation must specify exactly one of the following: • a mobile phone number; or • an origin city daytime phone number and an origin city evening phone number and a destination city daytime phone number and a destination city evening phone number. |
RS37. | Each bag that weighs more than 20kg must be labelled with a 'heavy bag' label. |
RS38. | The departure time of the return flight (if any) specified in each flight booking confirmation must be no earlier than 1 hour after the arrival time of the outgoing flight specified in that flight booking confirmation. |
RS39. | The departure time of the outgoing flight specified in each flight booking confirmation that is made online must be no earlier than 3 hours after the booking confirmation time of that flight booking confirmation. |
RS40. | The postal address (if any) specified in each flight booking confirmation must include at least one address line. |
RS41. | The postal address (if any) specified in each flight booking confirmation must include exactly one placename. |
RS42. | The postal address (if any) specified in each flight booking confirmation must include exactly one postal code. |
RS43. | The postal address (if any) specified in each flight booking confirmation must include exactly one country name. |
RS44. | Each passenger name specified in each flight booking confirmation must include exactly one first name. |
RS45. | Each passenger name specified in each flight booking confirmation must include exactly one last name. |
RS46. | Each flight booking confirmation for a one-way journey must specify exactly one flight. |
RS47. | Each flight booking confirmation for a return journey must specify exactly two flights. |
RS53. | Each flight booking confirmation must specify exactly one travel class for each flight. |
RS54. | Each flight booking confirmation must specify exactly one fare class for each flight. |
RS55. | The record locator allocated to each confirmed flight booking must be different to the record locator allocated to each other confirmed flight booking. |
RS56. | The combination of departure date, flight number, departure city and seat number specified in each seat allocation must be different to the combination of departure date, flight number, departure city and seat number specified in each other seat allocation. |
RS60. | The combination of placename and postal code included in the postal address (if any) specified in each flight booking confirmation must be one of the combinations of placename and postal code allocated by the postal authority of the country specified in that postal address if the airline can access the postal code information from that postal authority. |
RS61. | Each flight booking confirmation must specify exactly one set of passport details for each passenger if any flight specified in that flight booking confirmation is international. |
RS62. | Each flight booking confirmation must specify exactly one date of birth for each passenger if that flight booking confirmation specifies an insurance option. |
RS63. | Each flight booking confirmation must specify exactly one escorting party at the destination city if every passenger specified in that flight booking confirmation is less than 12 years of age. |
RS64. | Each travel class specified in each flight booking request must be one of the travel classes offered by the airline. |
RS65. | Each fare class specified in each flight booking confirmation must be one of the fare classes available on that flight. |
RS66. | The travel class specified in each flight booking request must be first class, business class, premium economy class or economy class. |
RS70. | Each flight specified in each flight booking confirmation must be one of the flights that is operated by either the airline or a partner of the airline. |
RS73. | The number of seats that are both of the fare class specified in the flight booking confirmation and available on the outgoing flight specified in the flight booking confirmation must be more than the number of passengers specified in the flight booking request that gives rise to that flight booking confirmation. |
RS74. | The number of seats that are both of the fare class specified in the flight booking confirmation and available on the return flight specified in the flight booking confirmation must be more than the number of passengers specified in the flight booking request that gives rise to that flight booking confirmation if that flight booking request specifies a return journey. |
RS75. | The number of infant passengers specified in a flight booking confirmation must be no more than the number of adult passengers specified in that flight booking confirmation. |
RS76. | The origin city of the outgoing flight specified in a flight booking confirmation must be the same as the origin city specified in the flight booking request that gives rise to that flight booking confirmation. |
RS77. | The destination city of the outgoing flight specified in a flight booking confirmation must be the same as the destination city specified in the flight booking request that gives rise to that flight booking confirmation. |
RS78. | The origin city of the return flight (if any) specified in a flight booking confirmation must be the same as the destination city of the outgoing flight specified in that flight booking confirmation. |
RS79. | The destination city of the return flight (if any) specified in a flight booking confirmation must be the same as the origin city of the outgoing flight specified in that flight booking confirmation. |
RS80. | The set of passengers booked on the return flight (if any) specified in a flight booking confirmation must be the same as the set of passengers booked on the outgoing flight specified in that flight booking confirmation. |
RS81. | An infant passenger is by definition a passenger who is less than 2 years of age at the time of travel. |
RS82. | An adult passenger is by definition a passenger who is at least 12 years of age at the time of travel. |
RS83. | The origin city of the return flight of a return journey is by definition the same as the destination city of the outgoing flight of that return journey. |
RS84. | The destination city of the return flight of a return journey is by definition the same as the origin city of the outgoing flight of that return journey. |
RS85. | The set of passengers booked on each flight specified in a flight booking confirmation is by definition the same as the set of passengers booked on each other flight specified in that flight booking confirmation. |
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 | |
FT18. | flight booking request is for return journey | |
FT19. | flight booking request is for one-way journey | |
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. | fllight 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 |
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.