A model for Reflection in Rule-Based Languages
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 |
Sun 30 OctDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
10:30 - 12:10 | |||
10:30 30mTalk | A model for Reflection in Rule-Based Languages META Simon Van de Water VUB, Thierry Renaux Vrije Universiteit Brussel, Wolfgang De Meuter Vrije Universiteit Brussel, Belgium Media Attached File Attached | ||
11:00 30mTalk | Instance Migration in Dynamic Software Update META Pablo Tesone Inria Lille–Nord Europe, France Mines Douai, IA, Univ. Lille, France, Guillermo Polito Inria, Luc Fabresse Mines Douai, Noury Bouraqadi Mines Douai, Stéphane Ducasse INRIA Lille Media Attached File Attached | ||
11:30 30mTalk | AST Specialisation and Partial Evaluation for Easy High-Performance Metaprogramming META Chris Seaton Oracle Labs Pre-print Media Attached File Attached |