OPS5 is a
rule-based or
production system computer language
A computer language is a formal language used to communicate with a computer. Types of computer languages include:
* Software construction#Construction languages, Construction language – all forms of communication by which a human can Comput ...
, notable as the first such language to be used in a successful
expert system
In artificial intelligence (AI), an expert system is a computer system emulating the decision-making ability of a human expert.
Expert systems are designed to solve complex problems by reasoning through bodies of knowledge, represented mainly as ...
, the
R1/XCON system used to configure
VAX
VAX (an acronym for virtual address extension) is a series of computers featuring a 32-bit instruction set architecture (ISA) and virtual memory that was developed and sold by Digital Equipment Corporation (DEC) in the late 20th century. The V ...
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
Carnegie Mellon University (CMU) is a private research university in Pittsburgh, Pennsylvania, United States. The institution was established in 1900 by Andrew Carnegie as the Carnegie Technical Schools. In 1912, it became the Carnegie Institu ...
.
Allen Newell
Allen Newell (March 19, 1927 – July 19, 1992) was an American researcher in computer science and cognitive psychology at the RAND Corporation and at Carnegie Mellon University's School of Computer Science, Tepper School of Business, and D ...
's research group in
artificial intelligence
Artificial intelligence (AI) is the capability of computer, computational systems to perform tasks typically associated with human intelligence, such as learning, reasoning, problem-solving, perception, and decision-making. It is a field of re ...
had been working on production systems for some time, but Forgy's implementation, based on his
Rete algorithm
The Rete algorithm ( , , rarely , ) is a pattern matching algorithm for implementing rule-based systems. The algorithm was developed to efficiently apply many rules or patterns to many objects, or facts, in a knowledge base. It is used to dete ...
, 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
Forward chaining (or forward reasoning) is one of the two main methods of reasoning when using an inference engine and can be described logically as repeated application of ''modus ponens''. Forward chaining is a popular implementation strategy f ...
inference engine
In the field of artificial intelligence, an inference engine is a software component of an intelligent system that applies logical rules to the knowledge base to deduce new information. The first inference engines were components of expert systems ...
; 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
A Petri net, also known as a place/transition net (PT net), is one of several mathematical modeling languages for the description of distributed systems. It is a class of discrete event dynamic system. A Petri net is a directed bipartite graph t ...
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. The development of OPS4 was sponsored by
ARPA Order No. 3597, and monitored by the
Air Force Avionics Laboratory under Contract F33615-78-C-1151.
The first implementation of OPS5 was written in
Lisp
Lisp (historically LISP, an abbreviation of "list processing") is a family of programming languages with a long history and a distinctive, fully parenthesized Polish notation#Explanation, prefix notation.
Originally specified in the late 1950s, ...
, and later rewritten in
BLISS
BLISS is a system programming language developed at Carnegie Mellon University (CMU) by W. A. Wulf, D. B. Russell, and A. N. Habermann around 1970. It was perhaps the best known system language until C debuted a few years later. Since then, C ...
for speed.
DEC OPS5 is an extended implementation of the OPS5 language definition, developed for use with the
OpenVMS
OpenVMS, often referred to as just VMS, is a multi-user, multiprocessing and virtual memory-based operating system. It is designed to support time-sharing, batch processing, transaction processing and workstation applications. Customers using Op ...
, RISC ULTRIX, and DEC OSF/1 operating systems.
References
*
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
Addison–Wesley is an American publisher of textbooks and computer literature. It is an imprint of Pearson plc, a global publishing and education company. In addition to publishing books, Addison–Wesley also distributes its technical titles ...
, 1985)
* 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)
External links
- Open-sourced language based on OPS5, with added modularity constructs.
- CMU Artificial Intelligence Repository
source code- OPS5 source code on GitHub
Free OPS5 implementation in .Net Core
{{Authority control
Functional languages
Common Lisp (programming language) software