Online "Book Flights" facility for an airline

Rule Statement Sub-templates

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|the {{first|last} or only|second or any subsequent|previous|next}}

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)
ST58. <format predicate> ::=
  {represented using|} a valid <term>

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>
}