Welcome to the Dictionary of Programming Languages, a compendium
of computer coding methods assembled to provide information and
aid your appreciation for computer science history.
Browse the dictionary by clicking on a section:
A
B
C
D
E
F
G
H
I
JK
L
M
N
O
P
QR
S
T
UV
WXYZ+
Get a full dump of the dictionary:
List of Names
Short Form
Full Form
- OPS5
- Language type:
L - Rule-based or logical
- Description:
OPS5 is a production rule programming
language for AI research
and building expert systems. The
OPS family of rule-based systems
culminated with OPS5, which has been
widely used for AI instruction and
application development.
An OPS5 program consists of a set of
production rules. Each rule has a
precedent, or set of conditions which
govern application of the rule, and an
antecedent which define actions to take
upon triggering the rule.
OPS5 supports both forward-chaining
and backward-chaining control models.
Data in the OPS5 model is handled as a set
of global state variables and records which
can be modified by the rules.
Production rules reside in "production memory",
while data values reside in
"working memory".
Primitive data types are numbers and
symbols (symbols also serve as strings).
OPS5 is weakly typed, like Lisp:
variables are not declared to have a
particular type, but can hold any type of
data placed in them.
Working memory contains objects that
bear attributes: these attributes can hold
primitive data values, vectors, or
references to other objects.
OPS5 has been largely superseded by newer
expert-system shells (such as CLIPS)
and rule-based languages (such as OPS83).
The first version of OPS5 was coded in Lisp.
Later versions were written in C for speed.
Both commercial and free academic
editions of OPS5 existed during the 1980s.
Free implementations
of OPS5 (C and Lisp) are supposedly
available.
Documentation on the language is not
easily available on the net.
- Origin:
Charles Forgy et al, 1977.
- See Also:
- Remarks:
The syntax and semantics
of OPS5 are highly specialized
for the task of writing rule-based systems
that model real-world situations.
The division of the programming model
into "production" and "working" memory
was based on cognitive psychology frameworks
of human thought processes: long-term
memory is equated to domain knowledge and
corresponds to production rules, and
short-term memory is equated to facts
about the situation at hand and corresponds
to objects in working memory.
In any OPS5 program, the toughest part is
ensuring that the right domain-specific
rule is applied to the working memory at
the right moment. OPS5 supports various
grouping and priority schemes to allow the
programmer to guide the execution of rules;
applying these facilities can be tricky.
- Date:
- Sample code:
; An OPS5 program that implements a model of
; rock climbers, from exercise solutions of
; "Expert Systems Programming in OPS5"
(literalize rock-climber
age ; young or old
style ; timid or bold
)
(p old-not-bold
(rock-climber ^age old ^style <> bold)
--->
(write (crlf) that is plausible))
(p bold-not-old
(rock-climber ^age <> old ^style bold)
--->
(write (crlf) that is quite possible))
(p error::old-and-bold
(rock-climber ^age old ^style bold)
--->
(write (crlf) There are no old, bold rock climbers))
(make rock-climber ^age young ^style bold)
Descriptions in this dictionary are ©1997-99 Neal Ziring. Some
examples copyright of their respective authors. Some
technologies and languages are trademarked. Permission to
copy descriptions is granted as long as authorship credit is preserved.
Comments on this dictionary, corrections and suggestions, are all welcome.
Please use email, the address is ziring@home.com
[Ziring MicroWeb Home]
[Dictionary Start]
[Sign Guestbook]
Dictionary and script maintained by Neal Ziring, last major modifications 3/18/98. Most recent
additions to dictionary and master list, 1/00.