Dr. Andrew Broad
Computer Science
MPhil Project
The Case Library

All the cases in the constraint-understanding system's case library are included here. Cases are matched to the input EXPRESS model; matching cases suggest HLCs to extract from the model (higher-level knowledge about the constraints on the model).

Each case associates a fragment of EXPRESS code (the `problem' part) with a HLC (the `solution' part). The `problem' part of a case can also contain HLCs (i.e. there are cases for extracting further HLCs from HLCs already extracted).

The cases are written in FIL, my frame instance language.

  • Case for extracting the conjunction HLC

    Cases for extracting the bound HLC
  • Lower inclusive discrete bound from ?variable >= ?limit
  • Lower inclusive discrete bound from ?limit <= ?variable
  • Lower exclusive discrete bound from ?variable > ?limit
  • Lower exclusive discrete bound from ?limit < ?variable
  • Upper inclusive discrete bound from ?variable <= ?limit
  • Upper inclusive discrete bound from ?limit >= ?variable
  • Upper exclusive discrete bound from ?variable < ?limit
  • Upper exclusive discrete bound from ?limit > ?variable
  • Lower inclusive continuous bound from ?variable >= ?limit
  • Lower inclusive continuous bound from ?limit <= ?variable
  • Lower exclusive continuous bound from ?variable > ?limit
  • Lower exclusive continuous bound from ?limit < ?variable
  • Upper inclusive continuous bound from ?variable <= ?limit
  • Upper inclusive continuous bound from ?limit >= ?variable
  • Upper exclusive continuous bound from ?variable < ?limit
  • Upper exclusive continuous bound from ?limit > ?variable

  • Case for extracting the range HLC

    Cases for extracting the exactly_one HLC
  • exactly_one from an enumeration type attribute
  • exactly_one from a select type attribute
  • exactly_one from a ONEOF supertype expression

    Cases for extracting the at_most_one HLC
  • at_most_one from an enumeration type attribute
  • at_most_one from a select type attribute
  • at_most_one from a ONEOF supertype expression

    Cases for extracting the non_null HLC
  • non_null from a mandatory attribute
  • non_null from the EXISTS predicate

    Cases for extracting the zero_or_more HLC
  • zero_or_more from ?aggregate[0:?]
  • zero_or_more from OPTIONAL ?aggregate[1:?]

    Cases for extracting the equation HLC
  • equation from a domain rule
  • equation from a derived attribute

    Cases for extracting the adder HLC
  • adder from z = x + y
  • adder from x = z - y

    Cases for extracting the multiplier HLC
  • multiplier from z = x * y
  • multiplier from x = z / y


    Email me