DIGITAL Software Product Description ___________________________________________________________________ PRODUCT NAME: RuleWorks[TM] Version 2.0 SPD 64.31.** DESCRIPTION RuleWorks[TM] is Digital's next generation rule-based, application de- velopment tool. It provides the convenience of cross-platform devel- opment combined with one of the industry's most powerful high level languages and fastest inference engines. RuleWorks[TM] is a language, compiler (with debugger), and Run-Time Library for constructing high performance, modular, object-oriented, forward-chaining, rule-based applications. It provides portability by producing ANSI C sources that can then be compiled with any of the lead- ing C or C++ compilers. There is a Run-Time Library for each supported platform and C compiler. Rule-based approaches have been successful in numerous applications in the manufacturing industries and wherever decision support or rapid prototyping is required. Other domains include configuration, selec- tion, data acquisition and process control. Health care firms and oth- ers who require interactive diagnostic programs have also used expert systems to great advantage. A rule (or production) is defined as an "if-then" or "when- do" state- ment consisting of a conditional part, called the Left Hand Side (LHS), and an action sequence, called the Right Hand Side (RHS). Rules op- erate on in-memory objects that represent concepts or entities in the real world. These objects, called Working Memory Objects, are composed of a set of attributes and their associated values. November, 1995 During each recognize-act cycle, RuleWorks[TM] examines the LHS of all active rules to determine which rules' LHS conditions are satisfied given the current state of Working Memory Objects. RuleWorks[TM] then applies conflict resolution criteria to determine which of these rules should have its action sequence executed. Actions in turn, can mod- ify the state of Working Memory Objects. This cycle is repeated un- til no more rules are satisfied or until a rule explicitly halts pro- cessing. A rule-based language differs from a conventional programming language in that rules are not processed in sequential order; rather, the or- der of execution is driven by the current state of working memory data. RuleWorks[TM] is an evolutionary step beyond its predecessor, DEC OPS5 V4.0. Most applications written in DEC OPS5 V4.0 are trivial to mi- grate to RuleWorks[TM]. Portability The RuleWorks[TM] compiler and the run-time systems are written in ANSI C and the compiler generates ANSI C output files. RuleWorks[TM] is cur- rently supported on the following platforms: ___________________________________________________________________ Processor:_________Operating_System________________________________ Intel 386/486 MS-DOS /Pentium: Intel 386/486 MS-Windows /Pentium: Intel 386/486 Windows NT /Pentium: Alpha AXP: Windows NT Alpha AXP: Digital UNIX Alpha AXP: OpenVMS VAX: OpenVMS MIPS:______________ULTRIX__________________________________________ 2 Modularity RuleWorks[TM] provides features that are designed to support the soft- ware engineering concepts of modularity and information hiding. For example the programmer can write multiple independent rule-based sub- systems that do not interfere with each other. It is also possible for multiple rule-based subsystems to share specific sets of information with each other, or to share all of the information to which each has access. Programmers can also control all of the functional and all of the matchable information subsystem interfaces. Rule-based subsystems can be called from other rule- based programs or from programs written in other languages. From a rule-based mod- ule, calls can be made to any other subprogram (including those which are rule- based), even recursively. Function arguments are passed via standard calling mechanisms with automatic data type coercions. Match Extensions The LHS is the "if" or "when" part of a rule. It specifies the con- ditions in working memory that must be true before the rule can ex- ecute. The LHS is composed of condition elements (CEs), each of which can match objects of a particular class, and its subclasses, if any. RuleWorks[TM] performs a logical AND operation on all the CEs on the LHS. A rule is eligible to execute when there are objects that match all of its positive CEs, but there are no objects that match any of its negative CEs. The RHS is the "then/do" part of a rule. It consists of one or more actions. The actions on the RHS of a rule are executed only when the LHS matches working memory and the resulting particu- lar instance is picked during conflict resolution. RuleWorks[TM] provides the following new matching features: o Variables are evaluated within value disjunctions, including vari- ables bound in other condition elements. o Relational predicates (>, <, >=, =) can compare integers to floats, and symbols with symbols using localizable lexicographic ordering. 3 o New similarity predicate, ~=, that for numbers tests for equality within a 1% margin, and that for symbols uses the SOUNDEX algorithm to compare phonetic (in English) similarity. o New dissimilarity predicate, -~=, that matches when the similar- ity test fails. o Comparisons of compound attributes against function return values. o The containment and non-containment predicates can be applied to scalar attributes, as long as the argument to the predicate is a compound value (e.g. ^name [+] ). o The containment predicate can also be applied in conjunction with a scalar predicate to search the compound attribute for a value that satisfies the scalar predicate. Applications RuleWorks[TM] is the preferred tool for developing high- performance, commercial quality rule-based systems. Systems developed with Rule- Works[TM] are well suited to solve problems in: o Configuration o Selection o Diagnosis o Process monitoring and control o Scheduling o Planning o Decision support o Rapid prototyping Applications involving these problems are found in such industries as discrete manufacturing, petrochemicals, banking, insurance, transporta- tion, aerospace, education, health care, and government. 4 Features o Support for an object-oriented data model with a single inheritance class hierarchy, with matching at arbitrary levels in the hierar- chy, and unique immutable instance identifiers o Support for multi-valued, or compound, attributes. Provides match primitives for comparing entire compound values, for comparing a specific element within a compound value, and for searching an en- tire compound value for some specific value. o Optional attribute data types allow the user to restrict the do- main of an attribute to a specific type of value (or values in the case of a compound attribute). o Built-in support for SQL access to RdB for OpenVMS databases. This includes a simple one- to-one mapping between tuples in the database and the corresponding matchable objects, as well as support for ar- bitrarily complex mappings o API allows the direct creation, modification, and deletion of ob- jects in working memory Application Development Process Developing applications for any supported platform is straightforward: o Applications (including client server, object oriented programs) are composed in ASCII text using any suitable editor and the Rule- Works[TM] language. o The RuleWorks[TM] compiler is called, either independently from the system prompt or from within another development environment such as Visual C++, and utilizes the ASCII source as its input. o The RuleWorks[TM] compiler produces ANSI C source code portable to the platform in which the application will ultimately be run. 5 o The RuleWorks[TM] produced C code is compiled and linked with the RuleWorks[TM] run-time library utilizing the target platform C com- piler. Note that this compiler could be the very same as was in use in the environment from which RuleWorks[TM] was called. For exam- ple the RuleWorks[TM] produced C can be compiled simultaneously with the Visual C++ sources. o The resulting object code will execute on the platform correspond- ing to the C compiler utilized. o Programs produced with RuleWorks[TM] can be created in modules which can be individually tested, debugged and used with new applications as required. Compiler RuleWorks[TM] achieves high performance through a compiled language implementation, and utilizes a variant of the Rete match algorithm to represent the interdependencies of rules and data in a highly effi- cient way. The Rete network greatly speeds up the pattern-matching (inference) operation by eliminating the need for exhaustive redundant tests at execution time. SQL Interface RuleWorks[TM] provides a built-in interface to SQL (Structured Query Language) that allows users to easily read data from an OpenVMS Rdb into RuleWorks[TM] working memory, and values from working memory into an OpenVMS Rdb. The SQL interface consists of a set of RHS actions that allow fetch, insert, and update operations with either a simple, one- to-one mapping between object class names and database table names, and a corresponding one-to-one mapping between objects and tuples, or a more flexible form which supports arbitrary mappings. 6 Run-Time System The RuleWorks[TM] run-time system includes a command interpreter that lets the user control the running of RuleWorks[TM] programs and is- sue debugging commands. The RuleWorks[TM] debugging commands can be used to find errors in the program and to interact with it while it is running. The DEBUG action and the DEBUG qualifier together allow the user to control the invo- cation of the RuleWorks[TM] command interpreter with no changes to the source code. If your program calls routines written in another lan- guage, you use that language's debugger to find errors in those rou- tines. The RuleWorks[TM] run-time system also provides an application pro- gramming interface for use from other languages. HARDWARE REQUIREMENTS Processors Supported Alpha AXP: All models supported by OpenVMS and DEC C VAX: All models supported by OpenVMS and DEC C Intel: 386, 486, and Pentium MIPS: DECstation 2100 Processors Not Supported MicroVAX I, VAXstation I, VAX-11/725, VAX-11/782, VAXstation 8000. Processor Restrictions A TK50 Tape Drive is required for standalone MicroVAX 2000 and VAXs- tation 2000 systems. 7 Disk Space Requirements (Block Cluster Size = 1) These counts refer to the disk space required on the system disk. The sizes are approximate; actual sizes may vary depending on the user's system environment, configuration, and software options. For Alpha AXP Systems Disk space required for installation: 13,779 blocks (7,055 Kbytes) Disk space required for use (permanent): 8,991 blocks (4,603 Kbytes) For OpenVMS VAX Systems Disk space required for installation: 8,611 blocks (4,408 Kbytes) Disk space required for use (permanent): 5,317 blocks (2,722 Kbytes) For Intel 386/486 MS-DOS, MS-Windows Systems Disk space required for installation: 13,779 blocks (7,055 Kbytes) Disk space required for use (permanent): 8,991 blocks (4,603 Kbytes) For AXP DIGITAL UNIX and RISC ULTRIX Systems Disk space required for installation: 13,779 blocks (7,055 Kbytes) Disk space required for use (permanent): 8,991 blocks (4,603 Kbytes) For Intel Windows NT or AXP Windows NT Systems These counts refer to the disk space required on the system disk. The sizes are approximate; actual sizes may vary depending on the user's system environment, configuration, and software options. Disk space required for installation: 13,779 blocks (7,055 Kbytes) Disk space required for use (permanent): 8,991 blocks (4,603 Kbytes) 8 SOFTWARE REQUIREMENTS For OpenVMS AXP Systems o OpenVMS AXP Operating System o DEC C V4.0 or higher For OpenVMS VAX Systems o OpenVMS VAX Operating System V5.2-2 or higher o DEC C V4.0 or higher For Intel 386/486/Pentium Systems o MS-DOS Operating System V5.0 or higher o WATCOM C32 for DOS 5.0 or higher o WATCOM C/C++32 9.5 or higher o Borland C++ V3.0 or higher o Microsoft C++ V1.5 or higher For OpenVMS AXP Systems For AXP Digital UNIX or RISC ULTRIX Systems o MIPS Ultrix Operating System V4.3 or higher o or AXP DIGITAL UNIX V1.2 or higher o DEC C V1.3 or higher 9 For Intel Windows NT or AXP Windows NT Systems o Windows NT Operating System V3.1 or higher o Microsoft Win32 SDK for Windows NT o or Microsoft Visual C++ 32-bit for Windows NT o or Microsoft CL AXP compiler 8.00 or higher For OpenVMS Tailoring The following OpenVMS classes are required for full functionality of this layered product: o OpenVMS Required Saveset o Programming Support o Utilities GROWTH CONSIDERATIONS The minimum hardware/software requirements for any future version of this product may be different from the requirements for the current version. DISTRIBUTION MEDIA TK50 Streaming Tape, CD-ROM ORDERING INFORMATION RuleWorks[TM]: A RuleWorks[TM]™ Development Kit contains; a specific (CPU + operat- ing system) compiler (language translator), a collection of all cur- rently available (7) Run-time libraries, a single license for the com- piler, a single license for use with one of the members of the run- time library collection and the User Guide/Language Reference. 10 DEVELOPER KITS: ___________________________________________________________________ Part_No.______Media_______Description______________________________ QB-4W6AA- CD-ROM RuleWorks[TM] Development kit for Intel SA 386/486/Pentium, MS-DOS, Windows 3.x, Win '95, WinNT QB-4W6AB- CD-ROM RuleWorks[TM] Development kit for Digi- SA tal UNIX, AlphaAXP™ QB-4W6AC- CD-ROM RuleWorks[TM] Development kit for Open- SA VMS™, AlphaAXP™ QB-4W6AD- TK50 RuleWorks[TM] Development kit for VAX™ SA tape OpenVMS™ QB-4W6AE- TK50 RuleWorks[TM] Development kit for Digi- SA tape tal, RISC ULTRIX QB-4W6AF- CD-ROM RuleWorks[TM] Development kit for Al- SA________________________phaAXP™,_Windows_NT™_____________________ Evaluation Copies Customers who make special requests to evaluate RuleWorks[TM] will be accommodated. Use part numbers as above except change the last two let- ters to LD.e.g QB- 4W6Ax-LD where x indicates the required system kit. Resale of Applications using Run-time Library Licenses for multiple resale of applications each of which use a Rule- Works[TM] Run-time library are available in cost effective packs as indicated. 11 RUN-TIME_LICENSES:_________________________________________________ Part No. of Number________Seats_______Description______________________________ QM-4W7AA- 1 1 seat, run-time licenses. AA QM-4W7AB- 10 10 seat, run-time licenses. AA QM-4W7AC- 100 100 seat, run-time licenses. AA QM-4W7AD- 1,000 1,000 seat, run-time licenses. AA QM-4W7AE- 10,000 10,000 seat, run-time licenses. AA_________________________________________________________________ Documentation Only Optionally, RuleWorks[TM] Documentation may be purchased separately. The Part number for printed documentation is QA-4W6AA-GZ. SOFTWARE PRODUCT SERVICES A variety of service options are available from Digital. For more in- formation, contact your local Digital office. SOFTWARE WARRANTY Warranty for this software product is provided by Digital with the pur- chase of a license for the product as defined in the Software Warranty Addendum to this SPD. 12 TRADEMARK INFORMATION © 1995 Digital Equipment Corporation. All rights reserved. [R] Microsoft is a registered trademark of Microsoft Corpora- tion. [R] Intel is a registered trademark of Intel Corporation. [R] UNIX is a registered trademark in the United States and other countries licensed exclusively through X/Open Company Ltd. [TM] Windows NT is a trademark of Microsoft Corporation. [TM] Open Software Foundation and OSF are trademarks of the Open Software Foundation, Inc. [TM] X/Open is a trademark of the X/Open Company, Ltd. [TM] The DIGITAL Logo, Alpha, DEC, OpenVMS, DECnet, Digital, and PATHWORKS are trademarks of Digital Equipment Corporation. All other trademarks and registered trademarks are the property of their respective owners. 13