PAL Constraints

Protégé-2000 supports the definition of a knowledge base as a set of interrelated frames: classes and instances, slots that can be attached to classes, and facets that further define slot attachments. While these built-in relationships cover the overall definition of a knowledge base, they sometimes are insufficient to capture all constraints that hold among the frames of the knowledge base. Typically, Protégé-2000 does not offer a way of relating the values of different slots attached to a given class, nor does it help in relating the slot values of different instances of a class. For example, in the newspaper sample project, one might want to state that the section in which an article is published is determined by the section on which the author of this article works (i.e., on the Article class, the slot containing_section is constrained by the slot article_author). As another example, one might want to state that editors should have a higher salary than the employees for whom they are responsible (i.e., a constraint that involves the Editor and Employee classes and the salary and responsible_for slots.).

The primary purpose of the Protégé Axiom Language (PAL) is to support the definition of such arbitrary logical constraints on the frames of a knowledge base. PAL constraints are modeled with special-purpose frames and thus can be saved as part of the knowledge base.  The PAL constraint-checking engine can be run against the knowledge base to detect frames that violate those constraints.

Note that the underlying philosophy of PAL is model-checking rather than theorem-proving. In other words, PAL makes strong "closed world" assumptions and is used for writing restrictions on existing knowledge, not for asserting new knowledge. (In that respect, PAL could be called "Protégé Constraint Language.") The primary goals of PAL are thus to detect incomplete entry of information and to check entered information for inconsistencies beyond the local scope of facets. Other plug-ins in the Protégé Plug-In library provide services for performing more complex inference on knowledge and assertion of new knowledge. Follow the Inference and Reasoning Link in the Protégé Plug-In library for information on these plug-ins. 


Introduction/PAL Constraints

Next: PAL Queries

PAL Table of Contents