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.
In this sense, OPS5 is an execution engine for a Petri net extended with inhibitor arcs.
The OPS5 forward chaining process makes it extremely parallelizeable during the matching phase, and several automatic parallelizing compilers were created.
OPS4 was an early version, while OPS83 came later.
DEC OPS5 is an extended implementation of the OPS5 language definition, developed for use with the OpenVMS, 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
- Anoop Gupta, Miland Tambe, Dirk Kalp, Charles Forgy, and Allen Newell, Parallel Implementation of OPS5 on the Encore Multiprocessor: Results and Analysis
- Rob Lewis, OPS5 Revisited (Amazon 2016)