OPS5
OPS5 is a
rule-based or
production system computer language, notable as the first such language to be used in a successful
expert system, the
R1/XCON system used to configure
VAX computers.
The OPS (said to be short for "Official Production System") family was developed in the late
1970s by
Charles Forgy while at
Carnegie Mellon University.
Allen Newell's research group in
artificial intelligence had been working on production systems for some time, but Forgy's implementation, based on his
Rete algorithm, was especially efficient, sufficiently so that it was possible to scale up to larger problems involving hundreds or thousands of rules.
OPS5 uses a
forward chaining inference engine; programs execute by scanning "working memory elements" (which are vaguely object-like, with classes and attributes) looking for matches with the rules in "production memory". Rules have actions that may modify or remove the matched element, create new ones, perform side effects such as output, and so forth. Execution continues until no more matches can be found.
OPS4 was an early version, while
OPS83 came later.
The first implementation of OPS5 was written in
Lisp, and later rewritten in
BLISS for speed.
DEC OPS5 is an extended implementation of the OPS5 language definition, developed for use with the
VMS, RISC ULTRIX, and DEC OSF/1 operating systems.
*
Charles Forgy,
OPS5 User's Manual, Technical Report CMU-CS-81-135 (Carnegie Mellon University, 1981)
*
Lee Brownston,
Robert Farrell,
Elaine Kant,
Nancy Martin,
Programming Expert Systems in OPS5 (
Addison-Wesley, 1985) ISBN 0-201-10647-7
*
Free OPS5 compiler*
OPS5 overview*
OPS5 Reference manual*
RuleWorks Knowledge Based Systems - Expert System Programming based on OPS5