|
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.
|
