Online "Book Flights" facility for an airline

As we begin Part 8, we have:

Rule Taxonomy

1. Cardinality rules:  data must be present or absent, and/or is restricted in terms of the number of instances.

1. Mandatory data rules:  one or more data items are required in a particular context.
1. Mandatory data item rules:  a particular single data item must be present.
2. Mandatory option selection rules:  one of a set of pre-defined options must be specified.
3. Mandatory group rules:  at least one of a group of data items must be present.

2. Prohibited data rules:  a particular data item is not allowed in a particular context.

3. Singular data rules:  only one instance of a particular data item is allowed in a particular context.

4. Dependent cardinality rules:  the number of instances of a data item depends on some other data, as in rule statement RS25.

2. Data content rules:  data is constrained to certain values.

1. Value set rules:  a data item (or combination of data items) must have a value from a discrete set.

2. Match rules:  a data item must be the same as or different to some other data item.

3. Range rules:  a data item must have a value from within a continuous range.

4. Uniqueness constraints:  a data item (or combination of data items) must be different from other instances of the same data item.

Rule Statement Templates

 RT15. {{The|Each} {(if any)|} that |}    each {|}must { {each|the} |}{{if|unless} |}. (from which rule statements RS8, RS9, RS12 to RS17, RS40 to RS47, RS53, RS54, and RS61 to RS63 can be generated) RT16. Each {|} must {({if|unless} )|} specify whether {{or not|}    {it|the } {
|}|    {it|the } }. (from which rule statements RS26 to RS29 can be generated) RT17. Each {|}must {a|an} , {a|an} or both{{if|unless} |}. (from which rule statement RS30 can be generated) RT18. Each {|}must {a|an} or {a|an} but not both{{if|unless} |}. (from which rule statement RS31 can be generated) RT19. Each {|} must {({if|unless} )|} of the following: . (from which rule statements RS32, RS34, and RS35 can be generated) RT20. {A|An} {|} must not {a|an} {{if|unless} |}. (from which rule statement RS11 can be generated) RT21. The {|} {(if any)|}    that each {|}must be{{if|unless} |}. (from which rule statements RS19, RS21 to RS24, RS38, RS39, and RS55 can be generated) RT22. The combination of     {|} {(if any)|}    that each {|}must be{{if|unless} |}. (from which rule statements RS56 and RS60 can be generated) RT23. The of {the|}     that each must be{{if|unless} |}. (from which rule statement RS25 can be generated)

Rule Statement Sub-templates

 ST1. ::= {exactly|at {least|most}|at least and at most} ST19. ::= {|||         |} ST3. ::= one of the {|} (used in rule statements RS21 and RS22) ST4. ::= {the same as|different to} the {|} (used in rule statement RS23) ST16. ::= {

Metarules

 Rule type Template Metarules Mandatory data item rule RT15 ::=    {exactly |    at least     {and at most |}} 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 ::= {exactly|at most} one Dependent cardinality rule RT23 ::= number Value set rule RT21 ::= if only 1 data item RT22 ::= if combination of data items Match rule RT21 ::= Range rule RT21 ::= Uniqueness constraint RT21 ::= if only 1 data item RT22 ::= if combination of data items

Rule Statements