Reference: Murray, W. R. A User Guide to Language Frameworks. Knowledge Systems Laboratory, July, 1993.
Abstract: This user guide explains what language frameworks are and how new language frameworks can be defined. Language frameworks are tools that allow new problem-solving shells to be defined for BB1. They define English-like higher-level languages for describing problem-solving actions, events, and states that are important to solving broad, domain-independent classes of problems. For example, the ACCORD language framework defines a set of operators for solving configuration problems using an incremental assembly approach. Language frameworks can be applied in different domains, as ACCORD was applied in PROTEAN (a molecular biology domain) and SIGHTPLAN (a civil engineering domain). Language framework sentences can also concisely express problem-solving heuristics, allowing problem-solving approaches for different domains to be expressed as BB1 control plans. This user guide describes how to define new language frameworks using ACCORD as an example. The different parts of a language framework, such as the operators and modifiers, are discussed along with tools to define them. Details of the parsing, evaluation, and partial matching of language framework sentences are also presented with ACCORD examples. The new CLOS-based implementation presented in this paper is more formal than the original implementation. A context-free grammar clarifies the expected grammar for different uses of language framework sentences in trigger conditions, preconditions, focus prescriptions, etc. A case-grammar parser provides more flexibility than the original template- based parser and clarifies the rationale behind partial matching. Other differences between the two implementations are discussed, along with alternatives to the use of language frameworks, such as macros and generic functions.
Full paper available as hqx, ps.