ruleml query answering with personal oo jdrew agents in ... · 1 outline n rule responder overview...

30
RuleML Query Answering with RuleML Query Answering with Personal Personal OO jDREW OO jDREW Agents in Agents in Rule Responder 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

Upload: others

Post on 20-Jun-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: RuleML Query Answering with Personal OO jDREW Agents in ... · 1 Outline n Rule Responder Overview n Agents n Personal / Organizational / External n Rule Engines (for Realizing Agents)

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

Rule Responder Rule Responder

Benjamin CraigBenjamin Craig

Harold BoleyHarold Boley

Fredericton, NBFredericton, NB

National Research Council National Research Council -- IITIIT

May 15, 2008May 15, 2008

Page 2: RuleML Query Answering with Personal OO jDREW Agents in ... · 1 Outline n Rule Responder Overview n Agents n Personal / Organizational / External n Rule Engines (for Realizing Agents)

11

OutlineOutlinenn Rule Responder OverviewRule Responder Overviewnn AgentsAgentsnn Personal / Organizational / ExternalPersonal / Organizational / External

nn Rule Engines Rule Engines (for Realizing Agents)(for Realizing Agents)

nn ProvaProvann OO jDREWOO jDREW

nn Communication Middleware Communication Middleware (for Connecting Agents)(for Connecting Agents)

nn Mule ESBMule ESBnn Reaction RuleML MessagesReaction RuleML Messages

nn Symposium Planner Use CaseSymposium Planner Use Casenn Online DemoOnline Demo

nn ConclusionConclusion

Page 3: RuleML Query Answering with Personal OO jDREW Agents in ... · 1 Outline n Rule Responder Overview n Agents n Personal / Organizational / External n Rule Engines (for Realizing Agents)

22

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

nn Rule Responder is an experimentalRule Responder is an experimentalmultimulti--agent system for collaborative teams agent system for collaborative teams and virtual communities on the Weband virtual communities on the Web

nn Supports ruleSupports rule--based collaboration between based collaboration between the distributed members of such a virtual the distributed members of such a virtual organizationorganization

nn Members of the virtual organization are Members of the virtual organization are assisted by semiassisted by semi--automated ruleautomated rule--based 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 ... · 1 Outline n Rule Responder Overview n Agents n Personal / Organizational / External n Rule Engines (for Realizing Agents)

33

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

nn 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:

nnHornlogHornlog RuleML: ReasoningRuleML: Reasoning

nn Reaction RuleML: Interaction Reaction RuleML: Interaction

nn Implemented on top of a MuleImplemented on top of a Mule--basedbasedService Oriented Architecture (SOA)Service Oriented Architecture (SOA)

Page 5: RuleML Query Answering with Personal OO jDREW Agents in ... · 1 Outline n Rule Responder Overview n Agents n Personal / Organizational / External n Rule Engines (for Realizing Agents)

44

Personal AgentsPersonal Agents

nn A personal agent assists a single personA personal agent assists a single person

of an organization, (semiof an organization, (semi--autonomously) autonomously)

acting on his/her behalfacting on his/her behalf

nn It contains a FOAF*It contains a FOAF*--like fact profile plus like fact profile plus

FOAFFOAF--extending rules to encode some of 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 ... · 1 Outline n Rule Responder Overview n Agents n Personal / Organizational / External n Rule Engines (for Realizing Agents)

55

Organizational AgentsOrganizational Agents

nn An organizational agent represents goals An organizational agent represents goals

and strategies shared by each member of and strategies shared by each member of

the organizationthe organization

nn It contains rule sets that describe the It contains rule sets that describe the

policies, regulations, opportunities, etc. of policies, regulations, opportunities, etc. of

its organization its organization

Page 7: RuleML Query Answering with Personal OO jDREW Agents in ... · 1 Outline n Rule Responder Overview n Agents n Personal / Organizational / External n Rule Engines (for Realizing Agents)

66

External AgentsExternal Agents

nn 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

nn 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(currently an API--like browser interface)like browser interface)

nn 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 ... · 1 Outline n Rule Responder Overview n Agents n Personal / Organizational / External n Rule Engines (for Realizing Agents)

77

Architecture Architecture -- OverviewOverview

Page 9: RuleML Query Answering with Personal OO jDREW Agents in ... · 1 Outline n Rule Responder Overview n Agents n Personal / Organizational / External n Rule Engines (for Realizing Agents)

88

Rule EnginesRule Engines

nn Prova (Prolog + Java)Prova (Prolog + Java)

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

Page 10: RuleML Query Answering with Personal OO jDREW Agents in ... · 1 Outline n Rule Responder Overview n Agents n Personal / Organizational / External n Rule Engines (for Realizing Agents)

99

ProvaProva

nn Prova is mainly used to realize the Prova is mainly used to realize the organizational agents of Rule Responderorganizational agents of Rule Responder

nn It implements Reaction It implements Reaction RuleMLRuleML for agent for agent interaction (eventinteraction (event--conditioncondition--action rules)action rules)

Page 11: RuleML Query Answering with Personal OO jDREW Agents in ... · 1 Outline n Rule Responder Overview n Agents n Personal / Organizational / External n Rule Engines (for Realizing Agents)

1010

OO jDREW OO jDREW

nn OO jDREW is used to realize theOO jDREW is used to realize thepersonal agents of Rule Responderpersonal agents of Rule Responder

nn It implements It implements HornlogHornlog RuleMLRuleML for agent for agent reasoning (Horn logic rules)reasoning (Horn logic rules)

nn Supports rules in two formats:Supports rules in two formats:

nn POSL: POSL: Positional Slotted presentation syntaxPositional Slotted presentation syntax

nn RuleMLRuleML: : 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 ... · 1 Outline n Rule Responder Overview n Agents n Personal / Organizational / External n Rule Engines (for Realizing Agents)

1111

Communication MiddlewareCommunication Middleware

nn MuleMule Enterprise Service Bus (ESB)Enterprise Service Bus (ESB)nn Mule* is used to create communication end Mule* is used to create communication end

points at each personal and organizational points at each personal and organizational agent of Rule Responderagent of Rule Responder

nn Mule supports various transport protocolsMule supports various transport protocols(e.g. HTTP, JMS, SOAP)(e.g. HTTP, JMS, SOAP)

nn Rule Responder currently uses HTTP and JMS Rule Responder currently uses HTTP and JMS as transport protocolsas transport protocols

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

Page 13: RuleML Query Answering with Personal OO jDREW Agents in ... · 1 Outline n Rule Responder Overview n Agents n Personal / Organizational / External n Rule Engines (for Realizing Agents)

1212

Reaction RuleMLReaction RuleML

nn Reaction RuleML is a branch of the RuleML Reaction RuleML is a branch of the RuleML family that supports actions and events family that supports actions and events

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

Page 14: RuleML Query Answering with Personal OO jDREW Agents in ... · 1 Outline n Rule Responder Overview n Agents n Personal / Organizational / External n Rule Engines (for Realizing Agents)

1313

Use Case: Symposium Planner Use Case: Symposium Planner

nn RuleMLRuleML--20xy Symposium20xy Symposium

nn An organizational agent acts as the single An organizational agent acts as the single point of entry to the symposium point of entry to the symposium

nn Assists with planning, preparing, and running the Assists with planning, preparing, and running the symposium symposium

nn Personal agents support chairs of the Personal agents support chairs of the symposiumsymposium

nn 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 ... · 1 Outline n Rule Responder Overview n Agents n Personal / Organizational / External n Rule Engines (for Realizing Agents)

1414

Online Use Case DemoOnline Use Case Demo

nn Rule Responder:Rule Responder:http://responder.ruleml.orghttp://responder.ruleml.org

nn RuleMLRuleML--2007/RuleML2007/RuleML--2008 Symposia:2008 Symposia:http://ibis.in.tum.de/projects/paw/rulemlhttp://ibis.in.tum.de/projects/paw/ruleml--20072007http://ibis.in.tum.de/projects/paw/rulemlhttp://ibis.in.tum.de/projects/paw/ruleml--20082008

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

nn 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 ... · 1 Outline n Rule Responder Overview n Agents n Personal / Organizational / External n Rule Engines (for Realizing Agents)

1515

Personal Panel Chair Agent Personal Panel Chair Agent Knowledge BaseKnowledge Base

% Sample FOAF% Sample FOAF--extending rule in POSL syntax:extending rule in POSL syntax:

person(?personperson(?person, ?role, ?title, ?email, ?telephone), ?role, ?title, ?email, ?telephone) ::--

mailphone(?personmailphone(?person, ?email, ?telephone),, ?email, ?telephone),

role(?personrole(?person, ?role),, ?role),

title(?persontitle(?person, ?title)., ?title).

% Sample FOAF% Sample FOAF--like facts used by the above rule:like facts used by the above rule:

mailphone(Johnmailphone(John, , [email protected]@email.com, 1, 1--555555--555555--5555).5555).

role(Johnrole(John, Panel Chair)., Panel Chair).

title(Johntitle(John, PHD)., PHD).

Page 17: RuleML Query Answering with Personal OO jDREW Agents in ... · 1 Outline n Rule Responder Overview n Agents n Personal / Organizational / External n Rule Engines (for Realizing Agents)

1616

Organizational Organizational Symposium Symposium Agent Agent

Knowledge Base (Abridged)Knowledge Base (Abridged)

% Sample Prova% Sample Prova--like rule in POSL syntax:like rule in POSL syntax:

getContact(?conference_partgetContact(?conference_part, ?info, ?contact) :, ?info, ?contact) :--

person(person(

?contact, ?role, ?title, ?email, ?telephone).?contact, ?role, ?title, ?email, ?telephone).

Page 18: RuleML Query Answering with Personal OO jDREW Agents in ... · 1 Outline n Rule Responder Overview n Agents n Personal / Organizational / External n Rule Engines (for Realizing Agents)

1717

Sample Message to Organizational AgentSample Message to Organizational Agent

nn <RuleML <RuleML xmlnsxmlns="http://www.ruleml.org/0.91/xsd"="http://www.ruleml.org/0.91/xsd"nn xmlns:xsixmlns:xsi="http://www.w3.org/2001/XMLSchema="http://www.w3.org/2001/XMLSchema--instance"instance"nn xsi:schemaLocationxsi:schemaLocation="http://www.ruleml.org/0.91/xsd="http://www.ruleml.org/0.91/xsdnn http://ibis.in.tum.de/research/ReactionRuleML/0.2/rr.xsd"http://ibis.in.tum.de/research/ReactionRuleML/0.2/rr.xsd"nn xmlns:ruleml2007="http://xmlns:ruleml2007="http://ibis.in.tum.deibis.in.tum.de/projects/paw#">/projects/paw#">

nn <Message mode="outbound" directive="query<Message mode="outbound" directive="query--sync">sync">nn <<oidoid><><IndInd>RuleML>RuleML--2007</2007</IndInd></></oidoid>>nn <protocol><<protocol><IndInd>>esbesb</</IndInd></protocol>></protocol>nn <sender><<sender><IndInd>user</>user</IndInd></sender>></sender>

nn <content><content>nn <Atom><Atom>nn <<RelRel>>getContactgetContact</</RelRel>>nn <<IndInd>ruleml2007_Challenge</>ruleml2007_Challenge</IndInd>>nn <<IndInd>update</>update</IndInd>>nn <<VarVar>Contact</>Contact</VarVar>>nn </Atom></Atom>nn </content></content>nn </Message></Message>nn </</RuleMLRuleML>>

Online

Page 19: RuleML Query Answering with Personal OO jDREW Agents in ... · 1 Outline n Rule Responder Overview n Agents n Personal / Organizational / External n Rule Engines (for Realizing Agents)

1818

Architecture Architecture -- ExecutionExecution

Page 20: RuleML Query Answering with Personal OO jDREW Agents in ... · 1 Outline n Rule Responder Overview n Agents n Personal / Organizational / External n Rule Engines (for Realizing Agents)

1919

Architecture Architecture -- ExecutionExecution

Page 21: RuleML Query Answering with Personal OO jDREW Agents in ... · 1 Outline n Rule Responder Overview n Agents n Personal / Organizational / External n Rule Engines (for Realizing Agents)

2020

Architecture Architecture -- ExecutionExecution

Page 22: RuleML Query Answering with Personal OO jDREW Agents in ... · 1 Outline n Rule Responder Overview n Agents n Personal / Organizational / External n Rule Engines (for Realizing Agents)

2121

Architecture Architecture -- ExecutionExecution

Page 23: RuleML Query Answering with Personal OO jDREW Agents in ... · 1 Outline n Rule Responder Overview n Agents n Personal / Organizational / External n Rule Engines (for Realizing Agents)

2222

Architecture Architecture -- ExecutionExecution

Page 24: RuleML Query Answering with Personal OO jDREW Agents in ... · 1 Outline n Rule Responder Overview n Agents n Personal / Organizational / External n Rule Engines (for Realizing Agents)

2323

Page 25: RuleML Query Answering with Personal OO jDREW Agents in ... · 1 Outline n Rule Responder Overview n Agents n Personal / Organizational / External n Rule Engines (for Realizing Agents)

2424

Page 26: RuleML Query Answering with Personal OO jDREW Agents in ... · 1 Outline n Rule Responder Overview n Agents n Personal / Organizational / External n Rule Engines (for Realizing Agents)

2525

Sample Message to Publicity Chair Agent (I)Sample Message to Publicity Chair Agent (I)nn <content><content>nn <Atom><Atom>nn <<RelRel>sponsor</>sponsor</RelRel>>nn <<ExprExpr>>nn <Fun>contact</Fun><Fun>contact</Fun>nn <<IndInd>Mark</>Mark</IndInd>>nn <<IndInd>>JBossJBoss</</IndInd>>nn </</ExprExpr>>nn <<IndInd type="integer">type="integer">500500</</IndInd>>nn <<ExprExpr>>nn <Fun>results</Fun><Fun>results</Fun>nn <<VarVar>Level</>Level</VarVar>>nn <<VarVar>Benefits</>Benefits</VarVar>>nn <<VarVar>>DeadlineResultsDeadlineResults</</VarVar>>nn </</ExprExpr>>nn <<ExprExpr>>nn <Fun>performative</Fun><Fun>performative</Fun>nn <<VarVar>Action</>Action</VarVar>>nn </</ExprExpr>>nn </Atom></Atom>nn </content></content>

Online

Page 27: RuleML Query Answering with Personal OO jDREW Agents in ... · 1 Outline n Rule Responder Overview n Agents n Personal / Organizational / External n Rule Engines (for Realizing Agents)

2626

Page 28: RuleML Query Answering with Personal OO jDREW Agents in ... · 1 Outline n Rule Responder Overview n Agents n Personal / Organizational / External n Rule Engines (for Realizing Agents)

2727

Sample Message to Publicity Chair Agent (II)Sample Message to Publicity Chair Agent (II)nn <content><content>nn <Atom><Atom>nn <<RelRel>sponsor</>sponsor</RelRel>>nn <<ExprExpr>>nn <Fun>contact</Fun><Fun>contact</Fun>nn <<IndInd>Mark</>Mark</IndInd>>nn <<IndInd>>JBossJBoss</</IndInd>>nn </</ExprExpr>>nn <<IndInd type="integer">type="integer">50005000</</IndInd>>nn <<ExprExpr>>nn <Fun>results</Fun><Fun>results</Fun>nn <<VarVar>Level</>Level</VarVar>>nn <<VarVar>Benefits</>Benefits</VarVar>>nn <<VarVar>>DeadlineResultsDeadlineResults</</VarVar>>nn </</ExprExpr>>nn <<ExprExpr>>nn <Fun>performative</Fun><Fun>performative</Fun>nn <<VarVar>Action</>Action</VarVar>>nn </</ExprExpr>>nn </Atom></Atom>nn </content></content>

Online

Page 29: RuleML Query Answering with Personal OO jDREW Agents in ... · 1 Outline n Rule Responder Overview n Agents n Personal / Organizational / External n Rule Engines (for Realizing Agents)

2828

Page 30: RuleML Query Answering with Personal OO jDREW Agents in ... · 1 Outline n Rule Responder Overview n Agents n Personal / Organizational / External n Rule Engines (for Realizing Agents)

2929

ConclusionConclusion

nn 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 semisemi--automated decision layerautomated decision layer

nn The Mule middleware of Rule Responder The Mule middleware of Rule Responder allows platformallows platform--independent deployment of independent deployment of multiple running use cases simultaneouslymultiple running use cases simultaneously

nn 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