Adding rule-based techniques to procedural languages

  • Authors:
  • Keith R. Milliken;Allan J. Finkel;David A. Klein;Norman B. Waite

  • Affiliations:
  • IBM, Yorktown Heights, NY;IBM, Yorktown Heights, NY;IBM, Yorktown Heights, NY;IBM, Yorktown Heights, NY

  • Venue:
  • IEA/AIE '88 Proceedings of the 1st international conference on Industrial and engineering applications of artificial intelligence and expert systems - Volume 1
  • Year:
  • 1988

Quantified Score

Hi-index 0.00

Visualization

Abstract

The world of software for applications in industry is dominated by compiled, algebraic (Algol derivative) programming languages such as C, Pascal, and PL/I. One approach to popularizing expert systems techniques in the industrial environment is to integrate software techniques appropriate for expert systems development into algebraic programming languages. While programmers in industry seek more powerful software tools, generally they do not want to give up existing capabilities in order to gain access to new techniques. Thus the question becomes how to integrate expert system techniques into a procedural language so that important characteristics of the procedural language are preserved.YES/LI (Yorktown Expert System / Language One) is an experimental tool for developing expert systems that is an integration of PL/I with data-driven rules. This paper reviews a number of technical issues encountered in the development of YES/LI. The achieved resolution of these issues establishes that rule-based techniques intended for use in large, industrial expert systems can be integrated into the standard features of an existing, algebraic programming language without reducing the functionality of the underlying, procedural language. Features of YES/LI include: condition-action rules with support for both highly expressive conditions and complex actions, PL/I as a subset, block structuring including recursively invoked blocks of rules, support for large blocks of rules written in several source code files, the same access to data bases and routines written in other languages as found in PL/I, excellent performance, portability across several operating systems and computer architectures, the ability for YES/LI routines to be linked, loaded, started, and called just as PL/I routines.