RuleML Query Answering with Personal OO jDREW Agents in Rule Responder Benjamin Craig Harold Boley...

30
RuleML Query Answering RuleML Query Answering with Personal OO jDREW with Personal OO jDREW Agents in Rule Responder Agents in Rule Responder Benjamin Craig Benjamin Craig Harold Boley Harold Boley Fredericton, NB Fredericton, NB National Research Council National Research Council - IIT - IIT May 15, 2008 May 15, 2008

description

2 Overview of Rule Responder (I) Rule Responder is an experimental multi-agent system for collaborative teams and virtual communities on the Web Rule Responder is an experimental multi-agent system for collaborative teams and virtual communities on the Web Supports rule-based collaboration between the distributed members of such a virtual organization Supports rule-based collaboration between the distributed members of such a virtual organization Members of the virtual organization are assisted by semi-automated rule-based agents, which use rules to describe the behavioral and decision logic Members of the virtual organization are assisted by semi-automated rule-based agents, which use rules to describe the behavioral and decision logic

Transcript of RuleML Query Answering with Personal OO jDREW Agents in Rule Responder Benjamin Craig Harold Boley...

Page 1: RuleML Query Answering with Personal OO jDREW Agents in Rule Responder Benjamin Craig Harold Boley Fredericton, NB National Research Council - IIT May.

RuleML Query Answering with RuleML Query Answering with Personal OO jDREW Agents in Personal OO jDREW Agents in

Rule Responder Rule Responder Benjamin CraigBenjamin CraigHarold BoleyHarold Boley

Fredericton, NBFredericton, NBNational Research Council - IITNational Research Council - IIT

May 15, 2008May 15, 2008

Page 2: RuleML Query Answering with Personal OO jDREW Agents in Rule Responder Benjamin Craig Harold Boley Fredericton, NB National Research Council - IIT May.

22

OutlineOutline Rule Responder OverviewRule Responder Overview AgentsAgents

Personal / Organizational / ExternalPersonal / Organizational / External Rule Engines Rule Engines (for Realizing Agents)(for Realizing Agents)

ProvaProva OO jDREWOO jDREW

Communication Middleware Communication Middleware (for Connecting (for Connecting Agents)Agents) Mule ESBMule ESB Reaction RuleML MessagesReaction RuleML Messages

Symposium Planner Use CaseSymposium Planner Use Case Online DemoOnline Demo

ConclusionConclusion

Page 3: RuleML Query Answering with Personal OO jDREW Agents in Rule Responder Benjamin Craig Harold Boley Fredericton, NB National Research Council - IIT May.

33

Overview of Rule Responder Overview of Rule Responder (I)(I)

Rule Responder is an experimentalRule Responder is an experimentalmulti-agent system for collaborative multi-agent system for collaborative teams and virtual communities on the teams and virtual communities on the WebWeb

Supports rule-based collaboration Supports rule-based collaboration between the distributed members of between the distributed members of such a virtual organizationsuch a virtual organization

Members of the virtual organization are Members of the virtual organization are assisted by semi-automated rule-based assisted by semi-automated rule-based agents, which use rules to describe the agents, which use rules to describe the behavioral and decision logicbehavioral and decision logic

Page 4: RuleML Query Answering with Personal OO jDREW Agents in Rule Responder Benjamin Craig Harold Boley Fredericton, NB National Research Council - IIT May.

44

Overview of Rule Responder Overview of Rule Responder (II)(II)

Uses languages and engines of the Uses languages and engines of the RuleML family for rule serialization, RuleML family for rule serialization, based on logic and XML: based on logic and XML: Hornlog RuleML: ReasoningHornlog RuleML: Reasoning Reaction RuleML: Interaction Reaction RuleML: Interaction

Implemented on top of a Mule-basedImplemented on top of a Mule-basedService Oriented Architecture (SOA)Service Oriented Architecture (SOA)

Page 5: RuleML Query Answering with Personal OO jDREW Agents in Rule Responder Benjamin Craig Harold Boley Fredericton, NB National Research Council - IIT May.

55

Personal AgentsPersonal Agents A personal agent assists a single personA personal agent assists a single person

of an organization, (semi-autonomously) of an organization, (semi-autonomously) acting on his/her behalfacting on his/her behalf

It contains a FOAF*-like fact profile plus It contains a FOAF*-like fact profile plus FOAF-extending rules to encode some of FOAF-extending rules to encode some of the knowledge of its human ownerthe knowledge of its human owner

* The Friend of a Friend (FOAF) project: http://www.foaf-project.org

Page 6: RuleML Query Answering with Personal OO jDREW Agents in Rule Responder Benjamin Craig Harold Boley Fredericton, NB National Research Council - IIT May.

66

Organizational AgentsOrganizational Agents An organizational agent represents An organizational agent represents

goals and strategies shared by each goals and strategies shared by each member of the organizationmember of the organization

It contains rule sets that describe the It contains rule sets that describe the policies, regulations, opportunities, policies, regulations, opportunities, etc. of its organization etc. of its organization

Page 7: RuleML Query Answering with Personal OO jDREW Agents in Rule Responder Benjamin Craig Harold Boley Fredericton, NB National Research Council - IIT May.

77

External AgentsExternal Agents External agents communicate with the External agents communicate with the

public interface of organizational agents, public interface of organizational agents, exchanging messages that transport exchanging messages that transport queries, answers, or complete rule sets queries, answers, or complete rule sets

End users, as external agents, employ a End users, as external agents, employ a Web (HTTP) interface of Rule Responder Web (HTTP) interface of Rule Responder (currently an API-like browser interface)(currently an API-like browser interface)

Support for multiple external agents (end Support for multiple external agents (end users) at the same timeusers) at the same time

Page 8: RuleML Query Answering with Personal OO jDREW Agents in Rule Responder Benjamin Craig Harold Boley Fredericton, NB National Research Council - IIT May.

88

Architecture - OverviewArchitecture - Overview

Page 9: RuleML Query Answering with Personal OO jDREW Agents in Rule Responder Benjamin Craig Harold Boley Fredericton, NB National Research Council - IIT May.

99

Rule EnginesRule Engines Prova (Prolog + Java)Prova (Prolog + Java)

OO jDREW (Object Oriented Java OO jDREW (Object Oriented Java Deductive Reasoning Engine for the Deductive Reasoning Engine for the Web)Web)

Page 10: RuleML Query Answering with Personal OO jDREW Agents in Rule Responder Benjamin Craig Harold Boley Fredericton, NB National Research Council - IIT May.

1010

ProvaProva

Prova is mainly used to realize the Prova is mainly used to realize the organizational agents of Rule organizational agents of Rule ResponderResponder

It implements Reaction RuleML for It implements Reaction RuleML for agent interaction (event-condition-agent interaction (event-condition-action rules)action rules)

Page 11: RuleML Query Answering with Personal OO jDREW Agents in Rule Responder Benjamin Craig Harold Boley Fredericton, NB National Research Council - IIT May.

1111

OO jDREW OO jDREW OO jDREW is used to realize theOO jDREW is used to realize the

personal agents of Rule Responderpersonal agents of Rule Responder It implements Hornlog RuleML for It implements Hornlog RuleML for

agent reasoning (Horn logic rules)agent reasoning (Horn logic rules) Supports rules in two formats:Supports rules in two formats:

POSL: POSL: Positional Slotted presentation Positional Slotted presentation syntaxsyntax

RuleML: RuleML: XML interchange syntaxXML interchange syntax (can be generated from POSL) (can be generated from POSL)

Page 12: RuleML Query Answering with Personal OO jDREW Agents in Rule Responder Benjamin Craig Harold Boley Fredericton, NB National Research Council - IIT May.

1212

Communication MiddlewareCommunication Middleware MuleMule Enterprise Service Bus (ESB) Enterprise Service Bus (ESB)

Mule* is used to create communication Mule* is used to create communication end points at each personal and end points at each personal and organizational agent of Rule Responderorganizational agent of Rule Responder

Mule supports various transport Mule supports various transport protocolsprotocols(e.g. HTTP, JMS, SOAP)(e.g. HTTP, JMS, SOAP)

Rule Responder currently uses HTTP and Rule Responder currently uses HTTP and JMS as transport protocolsJMS as transport protocols

* Mule – The open source SOA infrastructure: http://mulesource.com

Page 13: RuleML Query Answering with Personal OO jDREW Agents in Rule Responder Benjamin Craig Harold Boley Fredericton, NB National Research Council - IIT May.

1313

Reaction RuleMLReaction RuleML Reaction RuleML is a branch of the Reaction RuleML is a branch of the

RuleML family that supports actions RuleML family that supports actions and events and events

When two agents need to When two agents need to communicate, each others’ Reaction communicate, each others’ Reaction RuleML messages are sent through RuleML messages are sent through the ESBthe ESB

Page 14: RuleML Query Answering with Personal OO jDREW Agents in Rule Responder Benjamin Craig Harold Boley Fredericton, NB National Research Council - IIT May.

1414

Use Case: Symposium Use Case: Symposium Planner Planner

RuleML-20xy SymposiumRuleML-20xy Symposium An organizational agent acts as the An organizational agent acts as the

single point of entry to the symposium single point of entry to the symposium Assists with planning, preparing, and Assists with planning, preparing, and

running the symposium running the symposium Personal agents support chairs of the Personal agents support chairs of the

symposiumsymposium Program Chair, Panel Chair, Publicity Chair, Program Chair, Panel Chair, Publicity Chair,

General Chair, etc.General Chair, etc.

Page 15: RuleML Query Answering with Personal OO jDREW Agents in Rule Responder Benjamin Craig Harold Boley Fredericton, NB National Research Council - IIT May.

1515

Online Use Case DemoOnline Use Case Demo Rule Responder:Rule Responder:

http://responder.ruleml.orghttp://responder.ruleml.org RuleML-2007/RuleML-2008 Symposia:RuleML-2007/RuleML-2008 Symposia:

http://ibis.in.tum.de/projects/paw/ruleml-2007http://ibis.in.tum.de/projects/paw/ruleml-2007http://ibis.in.tum.de/projects/paw/ruleml-2008http://ibis.in.tum.de/projects/paw/ruleml-2008

Personal agents:Personal agents:Supporting Panel and Publicity ChairsSupporting Panel and Publicity Chairs

Organizational agent:Organizational agent:Supporting Symposium as a wholeSupporting Symposium as a whole

Online

Page 16: RuleML Query Answering with Personal OO jDREW Agents in Rule Responder Benjamin Craig Harold Boley Fredericton, NB National Research Council - IIT May.

1616

Personal Panel Chair Agent Personal Panel Chair Agent Knowledge BaseKnowledge Base

% Sample FOAF-extending rule in POSL syntax:% Sample FOAF-extending rule in POSL syntax:person(?person, ?role, ?title, ?email, ?person(?person, ?role, ?title, ?email, ?

telephone)telephone) :-:- mailphone(?person, ?email, ?telephone),mailphone(?person, ?email, ?telephone), role(?person, ?role),role(?person, ?role), title(?person, ?title).title(?person, ?title).

% Sample FOAF-like facts used by the above rule:% Sample FOAF-like facts used by the above rule:mailphone(John, [email protected], 1-555-555-5555).mailphone(John, [email protected], 1-555-555-5555).role(John, Panel Chair).role(John, Panel Chair).title(John, PHD).title(John, PHD).

Page 17: RuleML Query Answering with Personal OO jDREW Agents in Rule Responder Benjamin Craig Harold Boley Fredericton, NB National Research Council - IIT May.

1717

Organizational Organizational Symposium Symposium Agent Agent Knowledge Base (Abridged)Knowledge Base (Abridged)

% Sample Prova-like rule in POSL syntax:% Sample Prova-like rule in POSL syntax:getContact(?conference_part, ?info, ?getContact(?conference_part, ?info, ?

contact) :-contact) :- person(person( ?contact, ?role, ?title, ?email, ??contact, ?role, ?title, ?email, ?

telephone).telephone).

Page 18: RuleML Query Answering with Personal OO jDREW Agents in Rule Responder Benjamin Craig Harold Boley Fredericton, NB National Research Council - IIT May.

1818

Sample Message to Organizational AgentSample Message to Organizational Agent <RuleML xmlns="http://www.ruleml.org/0.91/xsd"<RuleML xmlns="http://www.ruleml.org/0.91/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ruleml.org/0.91/xsdxsi:schemaLocation="http://www.ruleml.org/0.91/xsd http://ibis.in.tum.de/research/ReactionRuleML/0.2/rr.xsd"http://ibis.in.tum.de/research/ReactionRuleML/0.2/rr.xsd" xmlns:ruleml2007="http://ibis.in.tum.de/projects/paw#">xmlns:ruleml2007="http://ibis.in.tum.de/projects/paw#">

<Message mode="outbound" directive="query-sync"><Message mode="outbound" directive="query-sync"> <oid><Ind>RuleML-2007</Ind></oid><oid><Ind>RuleML-2007</Ind></oid> <protocol><Ind>esb</Ind></protocol><protocol><Ind>esb</Ind></protocol> <sender><Ind>user</Ind></sender><sender><Ind>user</Ind></sender> <content><content> <Atom><Atom> <Rel>getContact</Rel><Rel>getContact</Rel> <Ind>ruleml2007_Challenge</<Ind>ruleml2007_Challenge</

Ind>Ind> <Ind>update</Ind><Ind>update</Ind> <Var>Contact</Var><Var>Contact</Var> </Atom></Atom> </content></content> </Message></Message> </RuleML></RuleML>

Online

Page 19: RuleML Query Answering with Personal OO jDREW Agents in Rule Responder Benjamin Craig Harold Boley Fredericton, NB National Research Council - IIT May.

1919

Architecture - ExecutionArchitecture - Execution

Page 20: RuleML Query Answering with Personal OO jDREW Agents in Rule Responder Benjamin Craig Harold Boley Fredericton, NB National Research Council - IIT May.

2020

Architecture - ExecutionArchitecture - Execution

Page 21: RuleML Query Answering with Personal OO jDREW Agents in Rule Responder Benjamin Craig Harold Boley Fredericton, NB National Research Council - IIT May.

2121

Architecture - ExecutionArchitecture - Execution

Page 22: RuleML Query Answering with Personal OO jDREW Agents in Rule Responder Benjamin Craig Harold Boley Fredericton, NB National Research Council - IIT May.

2222

Architecture - ExecutionArchitecture - Execution

Page 23: RuleML Query Answering with Personal OO jDREW Agents in Rule Responder Benjamin Craig Harold Boley Fredericton, NB National Research Council - IIT May.

2323

Architecture - ExecutionArchitecture - Execution

Page 24: RuleML Query Answering with Personal OO jDREW Agents in Rule Responder Benjamin Craig Harold Boley Fredericton, NB National Research Council - IIT May.

2424

Page 25: RuleML Query Answering with Personal OO jDREW Agents in Rule Responder Benjamin Craig Harold Boley Fredericton, NB National Research Council - IIT May.

2525

Page 26: RuleML Query Answering with Personal OO jDREW Agents in Rule Responder Benjamin Craig Harold Boley Fredericton, NB National Research Council - IIT May.

2626

Sample Message to Publicity Chair Agent (I)Sample Message to Publicity Chair Agent (I) <content><content> <Atom><Atom> <Rel>sponsor</Rel><Rel>sponsor</Rel> <Expr><Expr> <Fun>contact</Fun><Fun>contact</Fun> <Ind>Mark</Ind><Ind>Mark</Ind> <Ind>JBoss</Ind><Ind>JBoss</Ind> </Expr></Expr> <Ind type="integer"><Ind type="integer">500500</Ind></Ind> <Expr><Expr> <Fun>results</Fun><Fun>results</Fun> <Var>Level</Var><Var>Level</Var> <Var>Benefits</Var><Var>Benefits</Var> <Var>DeadlineResults</Var><Var>DeadlineResults</Var> </Expr></Expr> <Expr><Expr> <Fun>performative</Fun><Fun>performative</Fun> <Var>Action</Var><Var>Action</Var> </Expr></Expr> </Atom></Atom> </content></content>

Online

Page 27: RuleML Query Answering with Personal OO jDREW Agents in Rule Responder Benjamin Craig Harold Boley Fredericton, NB National Research Council - IIT May.

2727

Page 28: RuleML Query Answering with Personal OO jDREW Agents in Rule Responder Benjamin Craig Harold Boley Fredericton, NB National Research Council - IIT May.

2828

Sample Message to Publicity Chair Agent (II)Sample Message to Publicity Chair Agent (II) <content><content> <Atom><Atom> <Rel>sponsor</Rel><Rel>sponsor</Rel> <Expr><Expr> <Fun>contact</Fun><Fun>contact</Fun> <Ind>Mark</Ind><Ind>Mark</Ind> <Ind>JBoss</Ind><Ind>JBoss</Ind> </Expr></Expr> <Ind type="integer"><Ind type="integer">50005000</Ind></Ind> <Expr><Expr> <Fun>results</Fun><Fun>results</Fun> <Var>Level</Var><Var>Level</Var> <Var>Benefits</Var><Var>Benefits</Var> <Var>DeadlineResults</Var><Var>DeadlineResults</Var> </Expr></Expr> <Expr><Expr> <Fun>performative</Fun><Fun>performative</Fun> <Var>Action</Var><Var>Action</Var> </Expr></Expr> </Atom></Atom> </content></content>

Online

Page 29: RuleML Query Answering with Personal OO jDREW Agents in Rule Responder Benjamin Craig Harold Boley Fredericton, NB National Research Council - IIT May.

2929

Page 30: RuleML Query Answering with Personal OO jDREW Agents in Rule Responder Benjamin Craig Harold Boley Fredericton, NB National Research Council - IIT May.

3030

ConclusionConclusion Rule Responder can be used to implement Rule Responder can be used to implement

a wide range of use cases that require a a wide range of use cases that require a semi-automated decision layersemi-automated decision layer

The Mule middleware of Rule Responder The Mule middleware of Rule Responder allows platform-independent deployment allows platform-independent deployment of multiple running use cases of multiple running use cases simultaneouslysimultaneously

The system is reusable on all levels:The system is reusable on all levels:Symposium Planner, Rule Responder, Symposium Planner, Rule Responder, POSL, RuleML, OO jDREW, Prova, MulePOSL, RuleML, OO jDREW, Prova, Mule