Known Problems 

PAL Language

  1. Defining and using sets:
  2. Boolean values: You cannot test Boolean slot values directly in PAL statements. You need to coerce them to symbols first and then test them against "true" or "false. For example:

    (forall ?var
           (= "true" (coerce-to-symbol (boolean-slot ?var))))

  3. Slots of type class with template slot values:
    If you use a slot as a predicate or function, and the slot is of type class,  and the slot has a template slot value (i.e., the value of the slot is set as an unmodifiable value), then the function call to the slot always returns null. In this case, a constraint or query will not evaluate correctly, even if the template slot value is correct.

Pal Expression Editor

Range Editor

  1. defset and :SET options in right-click menus don't work.
  2. Selecting INTEGER, STRING, SYMBOL, or NUMBER from the right-click Range Menu inserts an extra variable name in the editor. For example, selecting INTEGER inserts the syntax: 
    defrange varName :INTEGER integerName slotName)
    where integerName is not required for a defrange statement. 
  3. If a class name is changed in the ontology, the range definition doesn't update correctly.

Statement Editor

  1. The Predicate dialog does not include the findall and find n predicates for creating query statements.
  2. The right-click menu is not context-sensitive. This means you can insert statement syntax anywhere, even if it is not appropriate.
  3. The double-click functionality is independent of the right-click menu functionality. Ideally, these two should be connected.
  4. Double-clicking will sometimes bring up inappropriate options, instead of limiting choices to the appropriate options. Some of the specific options that may give problems are:
  5. Deleting text directly, using the backspace or delete keys, or by overtyping, may confuse the editor. Instead, it is recommended that you highlight the text you wish to delete and click the Delete button at the upper right of the Statement Editor.

PAL Constraints 

Programmatic Bugs

  1. The predicates = and /= cannot be traced during constraint evaluation. This is due to the fact that, internally, they are implemented differently from the other predicates.

PAL Constraints Tab

  1. Highlighting does not work in the Choose Constraints and the Choose Queries panes. This means that, even if an item is selected, no visible highlight will appear.  
  2. The Function to Trace menu includes the functions = and /= even though they cannot be traced (see above).

PAL Table of Contents