MANDARAX + ORYX An Open-Source Rule Platform



Similar documents
A collaborative platform for knowledge management

CERTIFIED MULESOFT DEVELOPER EXAM. Preparation Guide

Oracle WebLogic Foundation of Oracle Fusion Middleware. Lawrence Manickam Toyork Systems Inc

Oracle Identity Analytics Architecture. An Oracle White Paper July 2010

Portals, Portlets & Liferay Platform

Version Overview. Business value

The Mandarax 3.0 Manual. The Mandarax Manual

Internet Engineering: Web Application Architecture. Ali Kamandi Sharif University of Technology Fall 2007

Oracle WebLogic Server 11g Administration

Software Architecture Document

WHITE PAPER. Domo Advanced Architecture

Communiqué 4. Standardized Global Content Management. Designed for World s Leading Enterprises. Industry Leading Products & Platform

JAVA/J2EE DEVELOPER RESUME

AppBoard TM 2.6. System Requirements. Technical Documentation. Version July 2015

WebSphere Server Administration Course

Using the DataDirect Connect for JDBC Drivers with WebLogic 8.1

CHAPTER 1 - JAVA EE OVERVIEW FOR ADMINISTRATORS

Business Process Management

Web Application Hosting Cloud Architecture

Using Object Database db4o as Storage Provider in Voldemort

ActiveVOS Server Architecture. March 2009

Organisaties groot en klein, beginnen zich meer en meer te realiseren dat inzicht in (real-time) data helpt

Customer Bank Account Management System Technical Specification Document

IBM WebSphere Server Administration

Tomcat 5 New Features

1. Introduction What is Slice? Background Why Slice? Purpose of this Document Intended Audience...

DataDirect XQuery Technical Overview

Tool-Assisted Knowledge to HL7 v3 Message Translation (TAMMP) Installation Guide December 23, 2009

TG Web. Technical FAQ

Course Description. Course Audience. Course Outline. Course Page - Page 1 of 5

K-SITE RULES: Integrating Business Rules in the mainstream software engineering practice

Inside the Digital Commerce Engine. The architecture and deployment of the Elastic Path Digital Commerce Engine

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

The IntelliMagic White Paper: SMI-S for Data Collection of Storage Performance Metrics. December 2010

USING JE THE BE NNIFE FITS Integrated Performance Monitoring Service Availability Fast Problem Troubleshooting Improved Customer Satisfaction

Semantic Stored Procedures Programming Environment and performance analysis

BUSINESS RULES MANAGEMENT AND BPM

JBS-102: Jboss Application Server Administration. Course Length: 4 days

How To Write A Rulebook In Anib Websphere Jrules

Create a single 360 view of data Red Hat JBoss Data Virtualization consolidates master and transactional data

A Generic Database Web Service

Business Alliance B.A.A.E.R. Managed services

BusinessObjects XI R2 Product Documentation Roadmap

IBM Rational Asset Manager

Building Web Applications, Servlets, JSP and JDBC

Online Fuzzy-C-Means clustering

1. Introduction 2. Getting Started 3. Scenario 1 - Non-Replicated Cluster 4. Scenario 2 - Replicated Cluster 5. Conclusion

CA IDMS Server r17. Product Overview. Business Value. Delivery Approach

ITG Software Engineering

Unlocking the Power of SOA with Business Process Modeling

Monitoring Remedy with BMC Solutions

Integrated Performance Monitoring

Winning the J2EE Performance Game Presented to: JAVA User Group-Minnesota

Solutions for detect, diagnose and resolve performance problems in J2EE applications

Quick start. A project with SpagoBI 3.x

2012 LABVANTAGE Solutions, Inc. All Rights Reserved.

Using EMC Documentum with Adobe LiveCycle ES

Design and Implementation of a Semantic Web Solution for Real-time Reservoir Management

Learn Oracle WebLogic Server 12c Administration For Middleware Administrators

How To Develop A Web Service In A Microsoft J2Ee (Java) 2.5 (Oracle) 2-Year Old (Orcient) 2Dj (Oracles) 2E (Orca) 2Gj (J

White Paper Converting Lotus Notes Applications to the Cloud Using the CIMtrek converter Product

Integrating Content Management Within Enterprise Applications: The Open Standards Option. Copyright Xythos Software, Inc All Rights Reserved

SpagoBI exo Tomcat Installation Manual

IBM SOA Foundation products overview

Troux Configuration Management Software

Business Rules make Business more flexible

CA SiteMinder. Implementation Guide. r12.0 SP2

IBM WebSphere Operational Decision Management Improve business outcomes with real-time, intelligent decision automation

CatDV Pro Workgroup Serve r

Community Systems Management Open Source COSMOS Creation Review

Service Oriented Architectures

NetIQ Identity Manager Setup Guide

Using Oracle Real Application Clusters (RAC)

Legal Notices Introduction... 3

Cocoon 2 Programming: Web Publishing with XML and Java"

HP OO 10.X - SiteScope Monitoring Templates

Net-WMS FP Net-WMS SPECIFIC TARGETED RESEARCH OR INNOVATION PROJECT. Networked Businesses. D.8.1 Networked architecture J2EE compliant

Clustering with Tomcat. Introduction. O'Reilly Network: Clustering with Tomcat. by Shyam Kumar Doddavula 07/17/2002

Web. Services. Web Technologies. Today. Web. Technologies. Internet WWW. Protocols TCP/IP HTTP. Apache. Next Time. Lecture # Apache.

SIEMENS. Teamcenter Windows Server Installation PLM

Architectural Overview

The Ontological Approach for SIEM Data Repository

Performance Optimization For Operational Risk Management Application On Azure Platform

DTWMS Required Software Engineers. 1. Senior Java Programmer (3 Positions) Responsibilities:

Spectrum Technology Platform Version Tutorial: Load Balancing Spectrum Spatial Services. Contents:

Java Application Developer Certificate Program Competencies

Framework Adoption for Java Enterprise Application Development

Big Data Analytics - Accelerated. stream-horizon.com

OpenScape Voice V8 Application Developers Manual. Programming Guide A31003-H8080-R

JBoss Data Services. Enabling Data as a Service with. Gnanaguru Sattanathan Twitter:@gnanagurus Website: bushorn.com

Oracle9i Application Server: Options for Running Active Server Pages. An Oracle White Paper July 2001

Cognos8 Deployment Best Practices for Performance/Scalability. Barnaby Cole Practice Lead, Technical Services

S y s t e m A r c h i t e c t u r e

Why IBM WebSphere Application Server V8.0?

Transcription:

MANDARAX + ORYX An Open-Source Rule Platform Presentation by Jens Dietrich, Massey University, New Zealand Gerd Wagner, Eindhoven University of Technology, The Netherlands

Content 1. Introduction 2. Pros and Cons 3. Project History and Organisation 4. Design Objectives 5. Persistency 6. On Standards 7. Deployment and Rule Lifecycle 8. Mandarax related projects: oryx, chameleon, agents for the Semantic Web, commercial applications 9. Usage Scenarios 10. Next steps 11. EU Rent Example

Introduction: Mandarax SMandarax is an open source Java rule platform based on the logic programming concepts of derivation rules with negation-as-failure top-down rule evaluation (backward reasoning) and generating answers by logical term unification (matching of complex terms) SMandarax is extensible: it comes with reference implementations (including a rule engine) S but you can plug in your own components

Introduction: Derivation Rules versus Production Rules S Derivation rules: IF Condition THEN Conclusion S Production Rules: IF Condition THEN Action SDerivation rules have a logical semantics and can be processed top-down (like Prolog rules), or bottom-up (like in deductive databases) S A derivation rule engine can process facts from secondary storage and remote information sources

Introduction: Derivation Rules versus Production Rules SProduction rules have some kind of operational semantics, but no clear logical semantics SProduction rules can implement derivation rules by using the special action ASSERT SProduction rule engines cannot (easily) process facts from secondary storage and remote information sources

Introduction: Oryx SOryx is an open source rule management tool based on Mandarax SOryx includes a repository for managing the vocabulary a formal-natural-language-based rule editor a user interface libary based on Windows and Web interface components SThe repository of Oryx can be generated with the help of ORM/UML models

Rule-Based Query Answering in 3-Tier C/S Architectures Presentation layer (client) http request/response queries Presentation layer (web server) method calls Logic Layer (appl. server) mandarax service results Rules SQL queries Persistency Layer (db server)

Design Objectives: Avoiding Data Redundancy Facts are integrated on demand using iterator-based interfaces (clause sets). By default, facts are not replicated (besides there are cache options to do so). Assumptions: large number of facts (Millions) Mandarax Knowledge Base rules facts Clause set Clause set Clause set Clause set Iterator based APIs JDBC Result Sets RDBMS Jena RDF Pull Parser XML SOAP over Http, Others

Example: Clause Set in a Portfolio Risk Example show clauses action Facts containing information about special risks associated with certain investments are maintained in a database and integrated in real-time (when the query is issued). This database can be remote (e.g., a service provided by Standard and Poor s or Moody s).

Design Objectives: Using the Java Object Model Logic Concepts (Mandarax) Rule if the turnover of a customer is greater then 500$ then the customer qualifies for a discount of 5%. Prerequisite (s) the turnover of a customer is greater than 500$. Conclusion the customer qualifies for a discount of 5% Complex Term Predicate Constant Variable Predicate Constant getturnover(customer) < anamount(500$) customer qualifiesfor adiscount(5%) Method getturnover() Java Object, instance Object, inst. of Object, inst. Object, instance in class Customer Operator of Amount VariableTerm of Predicate of Discount OO Concepts (Java)

Design Objectives: Avoiding Code Redundancy Objects are treated as constant terms in the sense of predicate logic. Java operators and methods can be used as predicates (like ==, <, equals(), ). Java methods can be used as functions (like tostring, getturnover(),..). No code redundancy: existing functionality is reused, mandarax focuses on high level rules. Interface to other semantic models possible, including SQLPredicates and SQLFunctions.

Example: Using SQL Statements as Functions if the maximum of the country rating of a share and the sector rating of a share is between 0 and 4 and the price/earnings ratio of a share is less than or equals 12.5 and there is no special risk for a share then a share is a LOWEST risk investment The country rating of a share function is defined using the SQL query SELECT COUNTRY_RATINGS.RATING FROM COUNTRY_RATINGS,SHARES WHERE COUNTRY_RATINGS.COUNTRY=SHARES.COUNTRY AND SHARES.SYMBOL=? If the variable is bound (e.g., the country is the Netherlands), the query is performed and the result record is used to evaluate the prerequisite. Database services like Joins and Aggregation can be used.

Design Objective: Iterator Based Query Interface Mandarax queries are issued to a rule base using an inference engine. The inference engine returns an iterator (result set cursor). This facilitates a computation on demand design. The knowledge (rules, facts) supporting the result are revealed as part of the API. The API is very similar to the JDBC query API. Therefore, existing JDBC knowledge within the organisation can be used. A native JDBC interface is available as well: the mandarax JDBC driver. With an iterator based interface, query results can be integrated as clause sets: knowledge bases can be clustered.

MetaLogic - Facilities Plug-in support for algorithms used (loop checking, unification). Comparators: priorities (for conflict resolution) can be assigned automatically. E.g., policies like prefer rules with more prerequisites or prefer facts over rules can be set. Result set filters: results sets can be filtered, filters are themselves result sets (process is transparent for application, similar to database views). Examples for filters include: identify results with same substitutions but different derivations, prefer results based on a shorter derivation. Using result set filters is an alternative approach to handle conflicting rules / knowledge.

On Persistency RuleML is an XML-based language for rules. Mandarax was the first application supporting RuleML. ZKB is based on RuleML. Objects are represented by IDs. Object references are resolved by a naming service (interface resembles JNDI) called Object Persistency Service (OPS).

On Standards: JSR-94 JSR-94 Java Rule Engine API is a Java Specification Request. Participating team members are BEA, Fujitsu, IBM, ILOG and Oracle. The API is very abstract, and does not contain a detailed specification of the data structures used. Therefore, migration between two JSR94-compatible rule engines is expected to be relatively expensive (compared with standards such as JDBC). Mandarax JSR94 layer currently implemented by contributors from Top Logic.

Deployment of Rules Mandarax comes with two JDBC driver implementations: a local and a type 4 network driver. The network driver has an open architecture to configure transport protocol and encoding. By default, the encoding is XML serialisation, and the transport used is http (based on the Apache Http client). Therefore, a knowledge base can be deployed as knowledge server on a standard web or application server, and applications can query the knowledge base in a proxy-friendly fashion. The Oryx web interface application can be used to maintain the knowledge server using a standard web browser.

Example: Web-Deployment of the Portfolio Risk Example Deployment of knowledge base as web application (using a Tomcat-compatible Webserver) Rules are maintained using a standard web browser.

Example: Client Connecting to the Knowledge Server // 1. load mandarax jdbc driver Class.forName("org.mandarax.jdbc.DriverImpl"); // 2. initialize connection String url = jdbc:mandarax:net:zkb:/risk.zkb@ + http://localhost:8080/mandarax-server ; Connection con = DriverManager.getConnection(url); // 3. Issue query String sql = select * from has_risk where share='ipha ; ResultSet result = con.createstatement().executequery(sql); Object risk = result.getobject( risk ); // 4. clean up result.close(); Standard JDBC code (like querying Oracle), URL references web server.

Rule Lifecycle Editing rules resembles an iteration in the software development lifecycle. Expected outcomes can be captured as / translated into (JUnit) test cases by the rule author. Updated rules are verified against these test cases and deployed. Specification: test cases requirements Tool support: cvs,.. Editing Rules Using Rules QA (verify test cases) deployment tool support (e.g., ANT)

Mandarax Projects Chameleon Classical Web-based Expert System to support farmers in combating bush encroachment. Can be used in other problem domains as well, open source (MySQL, Apache Tomcat, project itself hosted as sourceforge) WAFER (Long Term Care Regulatory Web Accessible Facility EnRollment (WAFER)) Commercial Application by Government of Texas. Nominated by Government of Texas for NASCIO* award. https://www.nascio.org/awards/2003awards/diggovt_gtob.cfm, G2B category. More commercial applications: Kleinwort Benson, Bauer & Partner, Digital Sesame, Erry, China Telecom Guangzhou R & D Center.

The Pros and Cons of Mandarax/Oryx Pros: 1. Improved feedback user sees not only the result of applying the rules, but the rules supporting the result can also be visualized ( the application computed this result based on the following rules: ). 2. Standard software interfaces (e.g., JDBC) and tools can be used, uses existing skills (no new PL!) and existing implemented functionality (methods, stored procedures etc). 3. Rule engine can compute different alternative solutions. Cons: 1. No full vendor support is available. 2. Performance may be insufficient for large-scale applications.

Usage Scenarios Project with other open source tools (Tomcat, JBoss). Projects with query based reasoning, with focus on semantic web technologies or with large fact bases in databases. Knowledge bases which must be queried with standard clients through proxies. Prototyping, with the option to migrate to commercial product later. Standards (RuleML, JSR-94) facilitate this approach.

Project History First Mandarax like prototype 1998 (Smalltalk, commercial application for Mercedes Benz) Java Open source project started in 2000. Project supported by Swiss/German Bauer&Partner group. Oryx (graphical user interface) extension started in 2001. Various commercial and academic applications. Users include Kleinwort Benson, Government of Texas, City University London, German Institute of Artificial Intelligence (DFKI).

Project Organisation Hosted on Source Forge: http://mandarax.sourceforge.net Uses agile software engineering approach: ANT as project backbone, and test driven development using JUnit (currently 800+ test cases). 10 people have contributed to Mandarax, 4 active committers (people who can commit code into the CVS) from Massey University, Bauer/Partner TopLogic, SUN Microsystems, TU Munich.

Code Organisation Original idea: provide an abstract API layer with adhoc implementation to be replaced later. The abstraction layer contains interfaces, abstract classes and exceptions. The reference layer contains implementation classes. Instantiation is done using factories. Services (e.g., persistency) reference abstraction layer and are therefore available for alternative implementations.

Future Plans Support for future versions RuleML. Integration with leading Ontology tool Protégé, improved support for RDF. Add support for unit tests to the mandarax core (to facilitate rule validation). Generating repositories and rules from UML and ORM models. RDBMS based persistency. Compile mandarax knowledge bases into Java bytecode.