160 likes | 278 Views
Business Rules and Web Services Research Group. A proposal for a joint UNB/NRC Research group Bruce Spencer Feb 28, 2002. Motivation. Flexibility and rapid configuration of web services requires a specification language Emerging standards, established technologies XML, RuleML
E N D
Business Rules and Web Services Research Group A proposal for a joint UNB/NRC Research group Bruce Spencer Feb 28, 2002
Motivation • Flexibility and rapid configuration of web services • requires a specification language • Emerging standards, established technologies • XML, RuleML • SOAP (Simple object access protocol) • A part of the Semantic Web effort of W3C • where computers have access to “meaning” • Visible research • helps graduates find work
Basic Rule types • Deduction rules • if A is true then (assert that) B is true • Reaction rules • if A is true then do B • Event/Condition/Action rules • if A occurs and B is true then C is true • if A occurs and B is true then do D
What can rules state? • A B means A B • If you find out that A is true then you can conclude B • In every possible situation (web page) either A is false or B is true. • for every customer, either she is not a premium customer or she gets a discount
Existing Rule Languages/Systems • BRML • CommonRules (IBM developerWorks) • Benjamin Grosof • RuleML • j-DREW, Mandarax • javax.rules (proposed API)
Upcoming Workshops • BASeWEB • at AI 2002 (Calgary May 2002) • Business agents and the semantic web • Rule Markup languages for Business Rules in the Semantic Web • at International Semantic Web Conference (Sardinia, June 2002)
Application areas • Privacy rules • P3P-Appel language • rules to control permissions on who gets access to my cookies • Personalized price quotes • based on customer profile
RuleML <_body> <and> <atom> <_opr><rel>premium</rel></_opr> <var>customer</var> </atom> <atom> <_opr><rel>regular</rel></_opr> <var>product</var> </atom> </and> </_body> </imp> </rulebase> <?xml version="1.0“> <rulebase> <imp> <_head> <atom> <_opr><rel>discount</rel> </_opr> <var>customer</var> <var>product</var> <ind>5.0 percent</ind> </atom> </_head> discount(Customer, Product, ‘5.0 percent’) premium(Customer), regular(Product).
Industrial Groups • NISUS • www.nisusinc.com • Said Tabet • verifying stock market sales • SpiritSoft • Steven Ross-Talbot • www.spiritsoft.net • java messaging tool
Strengths at UNB • Software engineering and web services • Automated Reasoning group • AI group • Brad Nickerson and Kirby Ward
Some suggested topics • Generic Top-Down ECA Rule Engine • j-DREW handles the conditions • parsing, lookup, unification of terms • Events and actions applied to Java event model • Web entity registers interest in an event • solution events occur asynchronously • multi-layered architecture with separate concerns among the different layers
Generic Bottom-up ECA Rule Engine • similar background tools (unification, parsing) • similar web interface to API • track emerging standards of rule engines
Specific details The fact that is added is spending(Peter Miller,min 5000 euro,previous year)<-. The action that the customer is interested in is any additions to the discount facts that match the general form: discount(Z, Peter Miller, X). One could imagine extending this example with a car dealership with a much larger inventory and in that case the forward chaining engine might calculate Peter's discount for all the cars. It may be that this is what Peter wants. However, if he is interested in the discount for a specific car, the facts that he is interested in are of the form: discount(Porsche, Peter Miller, X). In this case a goal-directed inference system might be more appropriate. The top-down inference engine would thus be better to use. The inference machinery should have the choice of asking for Peter's discount with either forward chaining or backward chaining. A third option is to use tabled deduction to create Peter's answer. We need a forward chaining engine for definite clauses to be integrated with java's event model. Asynchronously an event is initiated by a client, who contacts the server. The client registers interest in a specific action with the server, and then adds a new fact to the server. On the addition of this new fact, the forward chaining engine running on the server runs to saturation and possibly eventually fires a rule with an action. That action initiates a response by Java's event handler, notifying all interested parties. One of those parties, possibly, is the client that initiated the chain of events, and it then hears about the action taken by the inference engine. For a very simple example, the client is a shopping program and wants to hear about a price quote of a specific item. The fact that is added is a customer profile and the event that the customer is interested in is the price quote for that shopper. The rules are discount(V0,V1,5.0 percent)<-premium(V0),regular(V1). discount(V0,V1,7.5 percent)<-premium(V0),luxury(V1). premium(V0)<-spending(V0,min 5000 euro,previous year). luxury(Porsche)<-. regular(Honda)<-.
Emerging ideas • JMS meets JCACHE in Feb 2002 Java Developer’s Journal
Proposed procedure • Meet as a group on alternate Thursdays 10 AM • Meet with (co)supervisors other Thursdays • Discuss areas of interest, proposals, technology, • Development of prototypes a major thrust • Explore guest worker agreement at NRC (NRC management is on-side here)
Web sites • www.dfki.de/ruleml • www.nisusinc.com • www.spiritsoft.net • www.middlewarespectra.com/abstracts/2002_02_04.htm • www.sys-con.com/java/articlea.cfm?id=1301 • www.alphaworks.ibm.com/tech/commonrules • www.microsoft.com/net/use/nethess.asp • h