Dr. Andrew Broad
Computer Science
MPhil Project
Source Code

The Java source code for the constraint-understanding system is included here for reference. It is intended for browsing only - it cannot be compiled and run, because it uses ExJava (package express), a MINT Group internal EXPRESS parser.

Also included here is the source code for the underlying frame system upon which the constraint-understanding system is built. This serves as a `buffer' between ExJava and the constraint-understanding system proper, and provides a data-driven environment in which objects are represented as frames.


The Frame System

These classes form the underlying frame system upon which the constraint-understanding system is built. They provide a data-driven, object-centric environment which is independent of the constraint-understanding application (it could, in fact, be used as a substratum for other systems).

Basic objects in the frame system
  • Frame
  • FrameClass
  • Slot
  • DefinedTypeInstance
  • DefinedType
  • EnumSymbol
  • UnorderedVector
  • OrderedVector
  • Variable
  • Null

    Classes for converting ExJava objects to frames
  • Values
  • AggInitElemFrame (subclass of Frame)
  • AggInitFrame (subclass of Frame)
  • AggTypeFrame (subclass of Frame)
  • AndFrame (subclass of Frame)
  • AndorFrame (subclass of Frame)
  • BinaryOpFrame (subclass of Frame)
  • BuiltInFnCallFrame (subclass of Frame)
  • BuiltInFrame (subclass of Frame)
  • DefinedTypeFrame (subclass of Frame)
  • DerivedAttrFrame (subclass of Frame)
  • DomainRuleFrame (subclass of Frame)
  • EntityFrame (subclass of Frame)
  • ExplicitAttrFrame (subclass of Frame)
  • InverseAttrFrame (subclass of Frame)
  • LiteralFrame (subclass of Frame)
  • OneofFrame (subclass of Frame)
  • QualifierFrame (subclass of Frame)
  • QueryFrame (subclass of Frame)
  • UnaryOpFrame (subclass of Frame)
  • UniqueRuleFrame (subclass of Frame)
  • UserFnCallFrame (subclass of Frame)

    Exceptions
  • DefinedTypeDoesNotExist
  • FrameAlreadyExists
  • FrameClassDoesNotExist
  • InvalidAttribute
  • InvalidFrameClass
  • InvalidSlot


    The Constraint-Understanding System

    The following classes constitute the constraint-understanding system proper. The system has two entry points: Constraints (for running the constraint-understanding system on a given model with a given case library) and FIL (for adding new cases to the case library).

  • Constraints
  • FIL (JavaCC)
  • CaseLibrary
  • Case
  • HashtableStack

    FIL is a parser for my frame instance language (FIL), written in JavaCC. It really belongs to the frame system, but is included here because it has a feature that is specific to the constraint-understanding task - it keeps a lookout for case frames to insert in the case library.


    Email me