The Expert System of IPCI - KnowledgeWright KnowledgeWright is an embeddable, extendable expert system and knowledge engineering environment. It can be embedded in everything from web servers to Visual Basic. The reasoning engine can be extended to accommodate a wide variety of knowledge structures and reasoning algorithms. And KnowledgeWright has a full graphical user interface for developing your own knowledge bases called the Workshop. KnowledgeWright Architecture KnowledgeWright is designed to be easily molded to any sort of domain expertise, type of reasoning, collection of supporting data, types of actions triggered, and deployment. This means KnowledgeWright can be configured to provide a near-perfect knowledge development, test, and deployment environment for a given domain of expertise. KnowledgeWright Architecture Knowledgebase A Knowledgebase is composed of a number of different types of knowledge objects. These objects contain the actual knowledge. Examples of knowledge objects include: question objects, for asking the user questions; rule set objects for expressing relationships; table objects similarly used; and text objects for dynamically composing documents. Different jigs might support different types of objects. Each object has properties that define that object. For example, a question has a "prompt" property which is the query to display to the user. A text object, not surprisingly, has a "text" property which is the document or a piece of a document. Workshop The Workshop is a graphical environment and contains both editing tools and testing/debugging tools. These allow for the creating and maintenance of a knowledgebase, and for the test execution of that knowledgebase. The editing tools are driven by a schema describing the particular knowledge objects used in a particular jig. The test and debug tools make use of the particular reasoning strategy used for a particular jig. They access that reasoning engine through a standard KnowledgeWright API (Application Program Interface) that provides a uniform dialog for runtime communication. Runtime Because the knowledgebase and reasoning engine communicate via the standard KnowledgeWright API, it is possible to have a variety of runtime deployment options. A Web CGI interface and standalone Java and Visual Basic interfaces are included with the package, as well as samples for how to embed KnowledgeWright in applications written with other development tools.