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

ST59. <verb part> ::=
  {<participle>|<adjective>|} <preposition>
ST60. <object> ::=
  {<determiner> <term> {<qualifying clause>|}|<literal>|<predicate>}
ST61. <qualifying clause> ::=
  {{that|who} <verb phrase 1> {<object 1>|}|
<
verb part> <object 2>
other than <determiner> {<term>|}|
<
preposition 2> {which|whom} <conditional clause 1>|
{
that|who} <verb phrase 2> {that|if|whether}<conditional clause 2>|
<and-qualifying clause>|
<or-qualifying clause>|
<both-and-qualifying clause>|
<either-or-qualifying clause>}
ST62. <and-qualifying clause> ::=
  {{that|who} <verb phrase 1> {<object 1>|}|<and-qualifying clause>}
and {<verb phrase 2>|<verb part>|} {<object 2>|}
ST63. <both-and-qualifying clause> ::=
  {that|who}
{
both <verb phrase 1> {<object 1>|} and <verb phrase 2> {<object 2>|}|
{<
verb phrase 3> both {<object 3>|} and {<object 4>|}|
{
is|are} both {<verb part 1> {<object 5>|} and {<verb part 2> {<object 6>|}}
ST64. <or-qualifying clause> ::=
  {{that|who} <verb phrase 1> {<object 1>|}|<or-qualifying clause>}
or {<verb phrase 2>|<verb part>|} {<object 2>|}
ST65. <either-or-qualifying clause> ::=
  {that|who}
{
either <verb phrase 1> {<object 1>|} or <verb phrase 2> {<object 2>|}|
{<
verb phrase 3> either {<object 3>|} or {<object 4>|}|
{
is|are} either {<verb part 1> {<object 5>|} or {<verb part 2> {<object 6>|}}