Slicing knowledge-based systems: techniques and applications
Slicing is a process for automatically obtaining subparts of a program responsible for specific computations. It has been employed within conventional procedural programming to solve a number of software development issues. We have adapted and extended slicing techniques originally proposed for procedural languages, to knowledge-based systems. Our techniques comprise a representation proposal for the successful and failed inferences performed by the system, a means to detect and represent the dependences among parts of the system, a formal definition of relevance among these parts and an algorithm proven correct to obtain executable slices of a system. We illustrate the usefulness of the slicing process with practical applications.
slicing techniques automated support development and reuse of systems