This book is a technical deep dive into the implementation of the OPS5 Rule Based Production language, based on the RETE algorithm invented by Charles Forgy at Carnegie Mellon University, using C#.
The name OPS5 stands for Official Production System, version 5.
The source code accompanying the book, to build a fully functioning version of OPS5 in C#, is available for free download from the Author’s web site.
During the 1970's and early 1980's much research was undertaken in the area of Artificial Intelligence (AI) to discover the best way to represent knowledge and how to use this knowledge in computer software.
The results of this research can be divided into four groups of languages:
1.Object Oriented programming, such as Smalltalk, and eventually C++ and C#;
2.Logic programming, such as Prolog;
3.Production System programming, such as OPS5.
Production System languages differ from the other flavours by their use of data-sensitive unordered rules rather than sequential instructions. This means that Production Systems are ideally suited to solving complex problems that can be expressed as many independent rules that share common data.
The key difference, in that there is no pre-ordained sequential flow to a program is fundamental, and can require some experienced programmers difficulty in getting to grips with the different paradigm. But the beauty of them is that, for the right application, the programmer can concentrate on expressing the business problem to be solved rather than having to think in terms of programming a sequential computer program.
The name OPS5 stands for Official Production System, version 5.
The source code accompanying the book, to build a fully functioning version of OPS5 in C#, is available for free download from the Author’s web site.
During the 1970's and early 1980's much research was undertaken in the area of Artificial Intelligence (AI) to discover the best way to represent knowledge and how to use this knowledge in computer software.
The results of this research can be divided into four groups of languages:
1.Object Oriented programming, such as Smalltalk, and eventually C++ and C#;
2.Logic programming, such as Prolog;
3.Production System programming, such as OPS5.
Production System languages differ from the other flavours by their use of data-sensitive unordered rules rather than sequential instructions. This means that Production Systems are ideally suited to solving complex problems that can be expressed as many independent rules that share common data.
The key difference, in that there is no pre-ordained sequential flow to a program is fundamental, and can require some experienced programmers difficulty in getting to grips with the different paradigm. But the beauty of them is that, for the right application, the programmer can concentrate on expressing the business problem to be solved rather than having to think in terms of programming a sequential computer program.