Quintus Prolog Homepage WELCOME TO
Quintus Prolog
The Industry Standard
  Quintus Home > Quintus Flex - KSL Evaluation License | Search 

Flex - KSL

Knowledge is expressed as if-then rules. The if part contains preconditions for execution, and the then part contains an action or conclusion. Flex's inference engine supports forward chaining. Backward chaining is provided by the underlying Prolog system. In forward chaining (or data-driven reasoning), when a rule updates the database, the inference engine searches for other rules whose preconditions are satisfied by the revised database. Thus, one rule triggers other rules by modifying a shared database. In backward chaining (or goal-driven reasoning), the process starts with a specific goal and solves that goal by solving all of its subgoals. Prolog's backtracking and pattern matching make it appropriate for knowledge-based applications.

In Flex's forward chaining cycle, a rule whose preconditions are met is selected from the agenda. That rule is fired, and the agenda is reordered for the next iteration. Flex provides a variety of options for changing the agenda, giving programmers flexible control over rule firing. Large rule bases can be grouped into rule sets for improved modularity and performance. Rule sets can be dynamically loaded or removed from the agenda.

Flex allows explanations to be attached to rules and questions, so the end user can ask why a particular question was asked, or why a particular rule was fired.

Flex is an open system that allows developers to augment its standard behavior with user-defined routines, written in Prolog or Flex. Unlike many expert system shells, which constrain a developer, Flex is a flexible toolkit that can be extended and customized in a high-level declarative language.