Blogs >>
SPLASH 2016
Sun 30 October - Fri 4 November 2016 Amsterdam, Netherlands
Sun 30 Oct 2016 10:30 - 11:00 at Matterhorn 3 - Run-time Reflection Chair(s): Stefan Marr

Production systems are used to detect patterns in large sets of facts. These patterns are described by rules.

Rules frequently need to be modified to adapt to changing requirements, for instance to update the security policies encoded in the rules. The production system however needs to remain operational throughout these updates. Current systems provide no reflective language constructs to inspect rules and/or change them. Instead, updates are achieved by unloading the current ruleset and loading an updated set. This is not only a costly operation which renders the system unresponsive while the new ruleset is being loaded, it also necessitates implementing the update-logic elsewhere.

In this position-paper we introduce a meta-level to RETE; a well established pattern-matching algorithm which is used in many production systems. This meta-level embodies a reification of all the rules in the ruleset, enabling us to provide language support for reflective rules. The envisioned language constructs make it possible to write rules that (a) leverage introspection to reason about the state of business rules, and (b) adapt to changing requirements by changing business rules at runtime.

Paper (meta16-final14.pdf)313KiB