wang@ai.toronto.edu (Huaiqing Wang) (03/31/90)
Hi, I would like some information about an expert system shell called 'S1' or 'COPERNICUS'. Specifically, I want to know what kind of control language is available using the shell. For example, can the programmer specify how a task would be broken into sub-tasks and for each sub-task, can the programmer specify a particular inference routine (specifically, forward-chaining, backward-chaining, depth-first search, breadth-first search, best-first-search, or any other inference routines)? Any information would be welcome. Thank you in advance. wang@ai.utoronto.ca
joshua@athertn.Atherton.COM (Flame Bait) (04/10/90)
Warning: biases ahead! In the past I've worked for Teknowledge (now Cimflex-Teknowledge). I was responsible for the maintenance of S.1 and help to develop COPERNICUS. I left Teknowledge about 2 years ago, so my information is that old. wang@ai.toronto.edu (Huaiqing Wang) writes: > I would like some information about an expert system shell called > 'S1' or 'COPERNICUS'. They are two different shells, COPERNICUS is a newer version of S.1. Internally we called COPERNICUS "S.2" or "S.3". > Specifically, I want to know what kind of control language is > available using the shell. It is sort of like PASCAL, except that it has statements which trigger reasoning activity in the rule based part of the system. In COPERNICUS the control language picked up some ideas from C. > For example, > can the programmer specify how a task would be broken into > sub-tasks and for each sub-task, can the programmer specify > a particular inference routine (specifically, forward-chaining, > backward-chaining, depth-first search, breadth-first search, > best-first-search, or any other inference routines)? I think the answer is "yes" to all your questions, but here are some things I know you can do: In COPERNICUS (but not S.1) you can specify a rule as being forward chaining or backward chaining or both. In either product, you can specify a procedure to be used in determining at attribute's value. This feature is usually used to control the order in which sub-attributes are determined, and generally, the order in which things are done. In theory I believe that you can use this feature to implement whatever kind of searching you want, but I suspect it will require a lot of programming on your part. You can also group rules into rule sets, and then have the system attempt to determine an attribute's value using one rule set, then another rule set, etc. I can not tell you which searching stratigy is used by default, but I thought it was in the documentation. Joshua Levy (joshua@atherton.com)
cscott@teknowledge.com (Carli Scott) (04/10/90)
The expert system shell COPERNICUS(tm), developed by Teknowledge, Inc., was first released in 1988; the shell is now available from Cimflex Teknowledge Corporation. (Last year Teknowledge merged with American Cimflex.) S.1 was an earlier expert system shell, also developed by Teknowledge. S.1 was similar in many respects to COPERNICUS, but the latter a supports richer representation and a more flexible inference engine. The main difference between the two shells, however, is that S.1 was designed primarily for building stand-alone expert systems, while COPERNICUS is designed for integrated systems. As a result, it is easy to embed COPERNICUS in other programs (written in C) as well as to call programs from COPERNICUS. The standard COPERNICUS user interface can be removed for a non-interactive expert system, or can be replaced by an interface that is customized for a particular application. Another difference between the two shels is that COPERNICUS is modular, so that you can create a delivery system with just the modules that the particular application needs. (For example, you could omit the modules that are used for developing and debugging knowledge bases.) The COPERNICUS control language is a fairly complete structured programming language that includes all the standard control structures (e.g., conditionals, iteration, recursion). Using this language, it is very easy to specify how to break a task into subtasks. COPERNICUS provides serveral built-in control mechanisms for its inference engine; the most important are goal-directed backward chaining, data-directed forward chaining, and attached procedures that act as demons. Both backward chaining and forward chaining are coupled with breadth-first search. If depth-first search or best-first search is desirable, the knowledge engineer would have to program the search strategy explicitly (but the COPERNICUS language makes it easy to do so). The COPERNICUS language includes statements that initiate the built-in backward chaining process. No such statements are available to start forward chaining--forward chaining is always triggered by the addition of information to working memory. It would be easy, however, to program the explicit initiation of forward chaining. By the way, the COPERNICUS documentation provides guidelines and examples to help knowledge engineers to make effective use of the tool's various features. A "sample knowledge systems" notebook gives detailed descriptions of three small expert systems (each with a knowledge base of 100 to 200 entries). This notebook includes a listing of all three knowledge bases, plus the external C code that they use. If you have additional technical questions, send a message to cscott@teknowledge.com. For pricing and other sales-related information, send a message jbrownfi@teknowledge.com, or telephone (415) 424-0500 and ask for Jay Brownfield in Product Support.