Clipsify was written in C on a DEC Alpha workstation. It is designed to translate the SiFAKA save files into a system of agents implemented in CLIPS, as described in the MQP report entitled "Design and Implementation of a Single Function Agent Generator" by Mark Santesson. The project code is DCB9502.
This document explains how to use the program. It is assumed that the reader has been exposed to such concepts as agents, agent systems, projects, and clipsifying.
Other User's Guides are available:
Figure B.1: Data Flow through SiFASyB
The Clipsifier is the heart of SiFASyB. As seen in Figure B.1, the Clipsifier is responsible for translating the Intermediate Language code, as entered into SiFAKA, into CLIPS code which can be interpreted by CLIPS. The Clipsifier is non-interactive so all information must be provided through command line arguments. There are three ways that the Clipsifier can be invoked.
To Clipsify an entire project, issue the command
clipsify projectnamewhere "projectname" is the name of the file that SiFAKA has saved the project to.
To clipsify a single agent, issue the command
clipsify -agentname projectnamewhere "agentname" is the name of the file that the agent has been saved to. It best to generate the entire system at one time. The process of clipsifying an agent depends on the existence of certain files that are produced when constructing the entire system. These might not be available when Clipsifying just one agent.
The Clipsifier will begin to generate the appropriate files, informing you of what it is working on. If it encounters any errors, you will be informed of what went wrong. All rule related errors should include a reference to what rule set the errors were found in, the exact line it occurred on, and what part of the line caused a problem.
Figure B.2 shows some example rules which will cause error messages.
Figure B.2: Rules Which Cause Errors
Figure B.3 shows the error messages generated by the rules listed in Figure B.2.
CLIPSIFIER> Processing "Error Prone" with target "BASE" CLIPSIFIER> (id 10186, 0 rules, 1 selects, 5 conflict detection methods) CLIPSIFIER> CLIPSIFIER> GenerateTree Error: '<'s left operator isn't a numeric value CLIPSIFIER> in "('a < 'b )". CLIPSIFIER> GenerateTree Error: '<'s right operator isn't a numeric value CLIPSIFIER> in "('a < 'b )". CLIPSIFIER> Error Parsing "'a < 'b", line 1 of Error Prone CLIPSIFIER> IdentifyType Error: Must identify "" as Target, but I don't believ CLIPSIFIER> e it. CLIPSIFIER> Try starting Target names with capital letters. CLIPSIFIER> IdentifyOperator Error: Could not identify "1.0". CLIPSIFIER> IdentifyType Error: Must identify "<" as Target, but I don't belie CLIPSIFIER> ve it. CLIPSIFIER> Try starting Target names with capital letters. CLIPSIFIER> Error Parsing ") 1.0 < 2.0 (", line 2 of Error Prone (".0 ( )" was CLIPSIFIER> left over) CLIPSIFIER> Error Parsing "1.0 < 2.0 )", line 3 of Error Prone (")" was left o CLIPSIFIER> ver) CLIPSIFIER> IdentifyOperator Error: Could not identify "^". CLIPSIFIER> Error: '=' left operand does not describe a value. CLIPSIFIER> On line 4 of Error Prone: "( 2.0 ^ 3 ) = 8.0" CLIPSIFIER> CLIPSIFIER>Figure B.3: Errors Generated During Clipsifying
For more information on the Clipsifier, consult the MQP report referenced at the beginning of this document.
User's Guides are available for the other two components of SiFASyB:
<<<< To SiFA Home Page
Written by: firstname.lastname@example.org
email@example.com / Aug 6, 1996