How to Build a Business Rules Engine: Extending Application Functionality through Metadata Engineering (The Morgan Kaufmann Series in Data Management Systems)