Hi All,
 
I am starting the design and construction of a tool to reverse-engineer rule-based systems, i.e., JESS/JRules/OPSJ/JEOPS. This tool will examine the rule sets for a system and construct a map of rules vs data so that designers may better understand how the rule-based system meets the expectations of the user community and provide traceability for future reference. While the same result may be accomplished manually, it doesn't seem to be a trivial task.
 
To me, "knowledge engineering" is the definition of a collection of conditional tests (LHS) which may (or may not) invoke behaviour (RHS) in a potentially interdependent (chaining) manner  AND the ability to accurately forecast the possible behaviour of the system from a non-deterministic perspective. Therefore, each collection of conditional tests (and potential behaviour) may represent some aspect of a desired system (or business) process with potential interdependencies with other (system/business) processes. I would think that being able to map a non-deterministic system is absolutely essential to truly accomplish "knowledge engineering".
 
So, using my simplistic definition of "knowledge engineering" as a start, it would seem that the reverse-engineering of rule-based systems (via a tool) would help to show how the "business knowledge models" were ultimately incorporated into a rule-based system and help to validate the "knowledge engineering" that had been done.

Reply via email to