Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

46
Rule Responder Agents for Rule Responder Agents for Distributed Query Distributed Query Answering Answering Harold Boley Harold Boley Benjamin Craig Benjamin Craig Taylor Osmun Taylor Osmun Institute for Information Technology Institute for Information Technology National Research Council, Canada National Research Council, Canada Fredericton, NB, Canada Fredericton, NB, Canada Database Seminar Database Seminar School of Computer Science at Carleton School of Computer Science at Carleton University University Ottawa, ON, Canada Ottawa, ON, Canada November 19, 2009 November 19, 2009 (Updated: December 8, 2009) (Updated: December 8, 2009)

description

Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun. Institute for Information Technology National Research Council, Canada Fredericton, NB, Canada - PowerPoint PPT Presentation

Transcript of Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

Page 1: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

Rule Responder Agents for Rule Responder Agents for Distributed Query AnsweringDistributed Query Answering

Harold BoleyHarold BoleyBenjamin CraigBenjamin CraigTaylor OsmunTaylor Osmun

Institute for Information TechnologyInstitute for Information TechnologyNational Research Council, Canada National Research Council, Canada

Fredericton, NB, CanadaFredericton, NB, Canada

Database SeminarDatabase SeminarSchool of Computer Science at Carleton UniversitySchool of Computer Science at Carleton University

Ottawa, ON, CanadaOttawa, ON, Canada

November 19, 2009November 19, 2009(Updated: December 8, 2009)(Updated: December 8, 2009)

Page 2: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

22

OutlineOutline Rule Responder OverviewRule Responder Overview AgentsAgents

Personal / Organizational / ExternalPersonal / Organizational / External InfrastructureInfrastructure

Reaction RuleML MessagesReaction RuleML Messages Message PerformativesMessage Performatives Agent Communication ProtocolsAgent Communication Protocols Mule ESB (Communication Middleware)Mule ESB (Communication Middleware)

Rule Engines (for Realizing Agents)Rule Engines (for Realizing Agents) ProvaProva OO jDREWOO jDREW

Symposium Planner Use CaseSymposium Planner Use Case Query Delegation/AnsweringQuery Delegation/Answering Shared Knowledge between PasShared Knowledge between Pas Ontology DescriptionOntology Description

Future Work and ConclusionFuture Work and Conclusion

Page 3: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

33

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

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

Supports rule-based collaboration Supports rule-based collaboration between the distributed members of suchbetween the distributed members of suchvirtual organizationsvirtual organizations

Members of each virtual organization are Members of each virtual organization are assisted by assisted by semi-automated rule-semi-automated rule-based agentsbased agents, which use rules to , which use rules to describe the describe the decisiondecision and and behavioralbehavioral logiclogic

Page 4: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

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: Reasoning (Hornlog RuleML: Reasoning (decisiondecision)) Reaction RuleML: Interaction Reaction RuleML: Interaction

((behaviorbehavior) ) Implemented on top of a Mule-basedImplemented on top of a Mule-based

Service Oriented Architecture (SOA)Service Oriented Architecture (SOA)as an Enterprise Service Bus (ESB)as an Enterprise Service Bus (ESB)

Page 5: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

55

Personal AgentsPersonal Agents

A personal agent assists a A personal agent assists a personperson

sometimes several sometimes several of an of an

organization, (semi-autonomously) organization, (semi-autonomously)

acting on their behalfacting on their behalf It contains a FOAF*-like It contains a FOAF*-like factfact profile plus profile plus

FOAF-extending FOAF-extending rulesrules to encode to encode

‘routine’ knowledge of its human owner‘routine’ knowledge of its human owner* The Friend of a Friend (FOAF) project: http://www.foaf-project.org

Page 6: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

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 member of the organizationthe organization

It contains rule* sets that describeIt contains rule* sets that describethe policies, regulations, the policies, regulations, opportunities, etc. of its organizationopportunities, etc. of its organization

* To be brief, the term ‘rule’ encompasses ‘fact’ (which is a rule without premise)* To be brief, the term ‘rule’ encompasses ‘fact’ (which is a rule without premise)

Page 7: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

77

External AgentsExternal Agents External agents exchange messages withExternal agents exchange messages with

(the public interface of) organizational (the public interface of) organizational agents, sending queries (requests), agents, sending queries (requests), receiving answers (results), or receiving answers (results), or interchanging complete rule sets interchanging complete rule sets

End users, as external agents, employ aEnd users, as external agents, employ aWeb (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 simultaneous external agents:Support for simultaneous external agents:- Currently, end users (B2C)- Currently, end users (B2C)- Ultimately, other organizations (B2B)- Ultimately, other organizations (B2B)

Page 8: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

88

Rule Responder as a Rule Responder as a Multi-Agent InfrastructureMulti-Agent Infrastructure

Realizes Virtual Organizations in which a Realizes Virtual Organizations in which a central OA mediates between EAs and PAscentral OA mediates between EAs and PAs Built on top of the Mule ESBBuilt on top of the Mule ESB

Each OA is realized with an instance of aEach OA is realized with an instance of aRule EngineRule Engine

Each PA is realized with a Servlet using aEach PA is realized with a Servlet using aRule Engine Rule Engine sometimes several sometimes several

Combines ideas of Combines ideas of multi-agent systemsmulti-agent systems, , distributed rule management systemsdistributed rule management systems,,as well as as well as service-oriented service-oriented andandevent-drivenevent-driven architectures architectures

Page 9: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

99

Two Simple Rule Responder Two Simple Rule Responder Virtual Organizations on ESB Virtual Organizations on ESB

Infrastructure Infrastructure

Page 10: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

1010

Translation Between PAs' Native Languages and OA's Interchange

Language Each Each rule enginerule engine can use can use

its its ownown rule languagerule language Agents require an Agents require an interchange languageinterchange language

so they can communicate with each otherso they can communicate with each other Rule Responder uses RuleML as its interchange Rule Responder uses RuleML as its interchange

languagelanguage Translations between the interchange language Translations between the interchange language

and the PA languagesand the PA languagesare done by the PAsare done by the PAs

Page 11: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

1111

Reaction RuleMLReaction RuleML

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

When two agents want to communicate, When two agents want to communicate, each others’ Reaction RuleML each others’ Reaction RuleML messagesmessages are sent through the ESB are sent through the ESB

The ESB carries RuleML queries The ESB carries RuleML queries (requests), answers (results), and rule (requests), answers (results), and rule bases to/from agentsbases to/from agents

Page 12: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

1212

Example Reaction RuleML MessageExample Reaction RuleML Message <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<Message mode="outbound"="outbound" directive directive="query-="query-

sync">sync"> <oid> <oid> <Ind>RuleML-2009</Ind> <Ind>RuleML-2009</Ind> </oid></oid> <protocol><protocol> <Ind>esb</Ind> <Ind>esb</Ind> </protocol></protocol> <sender><sender> <Ind>User</Ind> <Ind>User</Ind> </sender></sender> <content><content> <Atom><Atom> <Rel>getContact</Rel><Rel>getContact</Rel>

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

Page 13: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

1313

Message PerformativesMessage Performatives

The attribute The attribute directive="..."directive="..."specifies the pragmatic performativespecifies the pragmatic performative Message exchange/interaction protocolsMessage exchange/interaction protocols

Rule Responder PerformativesRule Responder Performatives In tradition of KQML and FIPA-ACLIn tradition of KQML and FIPA-ACL Currently implemented: Query and Currently implemented: Query and

AnswerAnswer Retract and Update requests plannedRetract and Update requests planned

in collaboration with RIF-PRDin collaboration with RIF-PRD

Page 14: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

1414

Agent Communication Agent Communication ProtocolsProtocols

WSDL-like communication protocolsWSDL-like communication protocols In-OnlyIn-Only

Message is sent from agentMessage is sent from agent11 to agent to agent22;;then agentthen agent22 executes performative executes performative

Request-ResponseRequest-Response Performs above In-Only;Performs above In-Only;

then agentthen agent22 sends response to agent sends response to agent11

Request-Response-AcknowledgeRequest-Response-Acknowledge Performs Request-Response;Performs Request-Response;

then agentthen agent11 sends an acknowledgement to agent sends an acknowledgement to agent22

WorkflowsWorkflows Generalizes the above protocols to allow other Generalizes the above protocols to allow other

compositions of message interchange between compositions of message interchange between agentsagents

Page 15: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

1515

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

Mule* is used to create communicationMule* is used to create communicationend 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 16: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

1616

Rule EnginesRule Engines

Prova: Prolog + JavaProva: Prolog + Java

OO jDREW: Object OrientedOO jDREW: Object Orientedjava Deductive Reasoning Engine for java Deductive Reasoning Engine for the Webthe Web

Page 17: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

1717

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 18: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

1818

OO jDREW OO jDREW

OO jDREW is used to realize theOO jDREW is used to realize thepersonal 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: http://www.jdrew.org/oojdrew/demo/translator))

Page 19: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

1919

Use Case: Symposium Use Case: Symposium Planner Planner

RuleML-20xy SymposiaRuleML-20xy Symposia An organizational agent acts as the single An organizational agent acts as the single

point of entry to point of entry to assistassist with the symposium: with the symposium: Currently, query answering about the symposium Currently, query answering about the symposium Ultimately, preparing and running the symposium Ultimately, preparing and running the symposium

Personal agents have supported symposium Personal agents have supported symposium chairs since 2007 (deployed as chairs since 2007 (deployed as Q&A since since 2008)2008)

General Chair, Program Chair, Panel Chair,General Chair, Program Chair, Panel Chair,Publicity Chair, etc.Publicity Chair, etc.

Page 20: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

2020

EA: External Agent

OA

General ChairPA

Program ChairExpert

Challenge ChairExpert

Star-Like Star-Like Rule Rule Responder Responder Architecture Architecture

Spoke PA: Personal Agent

Hub OA: Organizational Agent

VirtualOrganization

Publicity ChairPA

LiaisonChair

PA

Program ChairPA

Challenge ChairPA

Liaison ChairExpert

Publicity ChairExpert

General ChairExpert

Page 21: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

2121

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

http://responder.ruleml.org

RuleML-2007/2008/2009 Symposia:RuleML-2007/2008/2009 Symposia:http://ibis.in.tum.de/projects/paw/ruleml-2007http://ibis.in.tum.de/projects/paw/ruleml-2008http://ruleml.org/RuleML-2009/RuleResponder http://ruleml.org/RuleML-2009/RuleResponder

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

Personal agents:Personal agents:Supporting all ChairsSupporting all Chairs

Online

Page 22: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

2222

Query DelegationQuery Delegation

Query delegation to personal agents is Query delegation to personal agents is done by the organizational agentdone by the organizational agent

Tasks for the symposium organization are Tasks for the symposium organization are managed via a role assignment matrixmanaged via a role assignment matrix

Is defined here by an OWL Lite OntologyIs defined here by an OWL Lite Ontology(alternatives: RDFS, RuleML, ...)(alternatives: RDFS, RuleML, ...)

Assigns (meta)topics to agents within the Assigns (meta)topics to agents within the virtual organization: virtual organization: ... see next slide ...... see next slide ...

Page 23: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

2323

Role Assignment OntologyRole Assignment Ontology

Publicity Chair

Topics

Agents Sponsoring

Publicity Chair

.

..

Liaison Chair

General Chair

..

.

.

.

.

Challenge Chair

Challenge

Demos

Media Partners

Sponsors

Responsible

Accountable

Press Release

Challenge Chair

Liaison Chair

General Chair

Metatopics ...

.

..

.

..Registration

Visa Letter

.

..

Program Chair

.

..

.

..

Program Chair

Submissions

Presentations

.

..Properties:

Page 24: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

2424

Multiple Query Answers by Multiple Query Answers by PAsPAs

Some queries have more than one answerSome queries have more than one answer

The PA will send the answersThe PA will send the answersone at a time to the OAone at a time to the OA interleaving backtracking and transmissioninterleaving backtracking and transmission

When the PA finds no more answers,When the PA finds no more answers,it sends an end-of-transmission messageit sends an end-of-transmission message

Page 25: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

2525

Knowledge Shared Between Personal Agents

Rules can be shared amongRules can be shared amongpersonal agentspersonal agents

Rules that apply to all PAs can be Rules that apply to all PAs can be lifted to the OA levellifted to the OA level

... see next slide ...... see next slide ...

Page 26: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

2626

Organizational SymposiumOrganizational Symposium Agent Knowledge Base Agent Knowledge Base

% Sample Prova rule stored in the OA:% Sample Prova rule stored in the OA:

getContact(XID,getContact(XID,TopicTopic,Request,Contact) :-,Request,Contact) :- % Retrieve the responsible PA (% Retrieve the responsible PA (AgentAgent) for the ) for the TopicTopic

assigned(XID,assigned(XID,AgentAgent,,TopicTopic,ruleml2009_responsibl,ruleml2009_responsible),e),

% Send the query to the PA % Send the query to the PA

sendMsg(XID,esb,sendMsg(XID,esb,AgentAgent,"query", ,"query", person(Role,Name,Title,Email,Telephone)person(Role,Name,Title,Email,Telephone) ), ), % Receive the answer(s) % Receive the answer(s)

rcvMult(XID,esb,rcvMult(XID,esb,AgentAgent,"answer",Contact).,"answer",Contact).

Page 27: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

Personal General Chair Agent Personal General Chair Agent Knowledge Base: FactKnowledge Base: Fact

% Sample FOAF-like fact used by the OA rule:% Sample FOAF-like fact used by the OA rule:% Example fact stored in the General Chair’s PA% Example fact stored in the General Chair’s PA

person(person( symposiumChair[ ruleML_2009, general ], symposiumChair[ ruleML_2009, general ], foafname[ firstName[ Adrian ], lastName[ Paschke ]], foafname[ firstName[ Adrian ], lastName[ Paschke ]], foaftitle[ title[ Dr ]], foaftitle[ title[ Dr ]], foafmbox[ foafmbox[ email[ adrianDOTpaschkeATbiotecDOTtuDASHdresdenDOT email[ adrianDOTpaschkeATbiotecDOTtuDASHdresdenDOTde ]],de ]], exphones[ telephoneNumbers[ office[ 4935146340074 ]]]). exphones[ telephoneNumbers[ office[ 4935146340074 ]]]).

% Sample query in RuleML syntax:% Sample query in RuleML syntax:... see next slide ...... see next slide ...

2727

Page 28: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

2828

Sample Message to Organizational Sample Message to Organizational AgentAgent

<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><oid>

<Ind>RuleML-2009</Ind><Ind>RuleML-2009</Ind></oid></oid><protocol><protocol>

<Ind>esb</Ind><Ind>esb</Ind></protocol></protocol><sender><sender>

<Ind>User</Ind><Ind>User</Ind></sender></sender><content><content>

<Atom><Atom><Rel>getContact</Rel><Rel>getContact</Rel><Ind>ruleml2009_GeneralChair</<Ind>ruleml2009_GeneralChair</

Ind>Ind><Ind>update</Ind><Ind>update</Ind><Var>Contact</Var><Var>Contact</Var>

</Atom></Atom></content></content>

</Message></Message></RuleML></RuleML>

Online

http://ruleml.org/RuleML-2009/RuleResponder/http://ruleml.org/RuleML-2009/RuleResponder/

Query Selection: General Chair Contact

Page 29: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

2929

Architecture - ExecutionArchitecture - Execution

Page 30: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

3030

Architecture - ExecutionArchitecture - Execution

Page 31: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

3131

Architecture - ExecutionArchitecture - Execution

Page 32: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

3232

Architecture - ExecutionArchitecture - Execution

Page 33: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

3333

Architecture - ExecutionArchitecture - Execution

Page 34: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

3434

Page 35: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

3535

Page 36: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

3636

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

http://www.ruleml.org/RuleML-2009/RuleResponder

Query Selection: Publicity Chair Sponsoring

English Description:

Mark from JBoss would like to sponsor RuleML-2009 with $500. What level, benefits, and deadline results will this provide, and what kind of action should be taken?

Page 37: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun
Page 38: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

3838

Personal Publicity Chair Agent Personal Publicity Chair Agent Knowledge Base: RuleKnowledge Base: Rule

% Rule stored in the Publicity Chair’s PA% Rule stored in the Publicity Chair’s PAsponsor(contact[?Name,?Organization],sponsor(contact[?Name,?Organization],

?Amount:integer, ?Amount:integer, results[?Level,?Benefits,?DeadlineResults] , results[?Level,?Benefits,?DeadlineResults] , performative[?Action]) performative[?Action]) :-:-

requestSponsoringLevel(?Amount:integer,?Level),requestSponsoringLevel(?Amount:integer,?Level),

requestBenefits(?Level,?Benefits), requestBenefits(?Level,?Benefits),

checkDeadline(?DeadlineResults), checkDeadline(?DeadlineResults),

checkAction(?Action,?Level,?Amount:integer).checkAction(?Action,?Level,?Amount:integer).

Orange:Query other rules

Page 39: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

Personal Publicity Chair Agent Personal Publicity Chair Agent Knowledge Base:Knowledge Base: 1 1stst & 2 & 2ndnd Rule Rule

PremisePremiserequestSponsoringLevel(?Amount:integer,?Level),requestSponsoringLevel(?Amount:integer,?Level),

% Satisfied by rule:% Satisfied by rule:requestSponsoringLevel(?Amount:integer,?Level) :-requestSponsoringLevel(?Amount:integer,?Level) :- sponsoringLevel(rank0,sponsoringLevel(rank0, ?Level,?Level, under[us$[?under[us$[?

UnderBronzeAmount:integer]]),UnderBronzeAmount:integer]]), lessThan(?Amount:integer,?lessThan(?Amount:integer,?

UnderBronzeAmount:integer).UnderBronzeAmount:integer).

requestBenefits(?Level,?Benefits), requestBenefits(?Level,?Benefits),

% Satisfied by rule:% Satisfied by rule:requestBenefits(?Level,?Benefits) :- requestBenefits(?Level,?Benefits) :-

benefits(?Level,?Benefits).benefits(?Level,?Benefits).

3939

Light Red: Query facts

Page 40: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

Personal Publicity Chair Agent Personal Publicity Chair Agent Knowledge Base:Knowledge Base: 3 3rdrd & 4 & 4thth Rule Rule

PremisePremisecheckDeadline(?DeadlineResults), checkDeadline(?DeadlineResults), % Satisfied by rule:% Satisfied by rule:checkDeadline(passed[deadline]):- checkDeadline(passed[deadline]):-

date(?X:integer), date(?X:integer), deadline(sponsoring,?D:integer), deadline(sponsoring,?D:integer), greaterThan(?X:integer,?D:integer).greaterThan(?X:integer,?D:integer).

checkAction(?Action,?Level,?Amount:integer).checkAction(?Action,?Level,?Amount:integer).% Satisfied by rule:% Satisfied by rule:checkAction(?Action,?Level,?Amount:integer) :- checkAction(?Action,?Level,?Amount:integer) :-

actionPerformed(?Action,?Level,?Amount:integer).actionPerformed(?Action,?Level,?Amount:integer).

What happens if we now provide a What happens if we now provide a $5000 sponsorship?sponsorship?... see next slide ...... see next slide ...

4040

Yellow: Query

further rule

Page 41: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

4141

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>Mary</Ind><Ind>Mary</Ind> <Ind>Super</Ind><Ind>Super</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

http://www.ruleml.org/RuleML-2009/RuleResponder

Query Selection: Publicity Chair Sponsoring (edit)

English Description:

Mark from JBoss would like to sponsor RuleML-2009 with $5000. What level, benefits, and deadline results will this provide, and what kind of action should be taken?

Page 42: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

4242

Page 43: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

4343

Conclusion (I)Conclusion (I) Rule Responder was implemented & Rule Responder was implemented &

tested for various use cases tested for various use cases ((http://responder.ruleml.orghttp://responder.ruleml.org) and deployed for ) and deployed for RuleML-2008/2009 Q&ARuleML-2008/2009 Q&A

Its organizational agents delegate Its organizational agents delegate external queries to topic-assigned external queries to topic-assigned personal agentspersonal agents

It couples rule engines OO jDREW & Prova It couples rule engines OO jDREW & Prova (& Euler) via Mule middleware and(& Euler) via Mule middleware andRuleML 0.91 XML interchange formatRuleML 0.91 XML interchange format

Page 44: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

4444

Conclusion (II)Conclusion (II) Without a Reaction Rule Dialect, RIF could Without a Reaction Rule Dialect, RIF could

not be used for behavioral Responder logicnot be used for behavioral Responder logic Current system is reusable on all levels:Current system is reusable on all levels:

Symposium Planner, Rule Responder, POSL, Symposium Planner, Rule Responder, POSL, RuleML, OO jDREW, Prova, MuleRuleML, OO jDREW, Prova, Mule

RuleML Techn. Group with Adrian Paschke, RuleML Techn. Group with Adrian Paschke, Alexander Kozlenkov and Nick BassiliadesAlexander Kozlenkov and Nick Bassiliades

Integrated another ‘partner engine’, Euler, Integrated another ‘partner engine’, Euler, for recent use cases, e.g. in WellnessRulesfor recent use cases, e.g. in WellnessRules

Page 45: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

4545

Future Work (I)Future Work (I) Communication betweenCommunication between

Personal Agent and Expert OwnerPersonal Agent and Expert Owner The PA may need to interact with its expert The PA may need to interact with its expert

ownerowner The intended formal interaction between PAs The intended formal interaction between PAs

and their owners could use email (SMTP)and their owners could use email (SMTP) The initial interaction language for these emails The initial interaction language for these emails

could be Reaction RuleMLcould be Reaction RuleML Query DecompositionQuery Decomposition

Each subquery of a rule can be decomposed forEach subquery of a rule can be decomposed fordifferent PAs, followed by answer integrationdifferent PAs, followed by answer integration

Page 46: Rule Responder Agents for Distributed Query Answering Harold Boley Benjamin Craig Taylor Osmun

4646

Future Work (II)Future Work (II) Centralized, Distributed-Hierarchical (here), and Centralized, Distributed-Hierarchical (here), and

Distributed-Networked (future) Query AnsweringDistributed-Networked (future) Query Answering Centralized: Avoids Communication OverheadCentralized: Avoids Communication Overhead Distributed: Fault ToleranceDistributed: Fault Tolerance

Alternative agents when an agent becomes Alternative agents when an agent becomes defunctdefunct

Hierarchical: OA still a bottleneckHierarchical: OA still a bottleneck From Centralized to DistributedFrom Centralized to Distributed

Knowledge MaintenanceKnowledge Maintenance Easier to keep Distributed Rules up-to-dateEasier to keep Distributed Rules up-to-date

Technical Report:Technical Report: http://ruleml.org/papers/EvalArchiRule.pdfhttp://ruleml.org/papers/EvalArchiRule.pdf