Date post: | 04-Jan-2016 |
Category: |
Documents |
Upload: | katrina-golden |
View: | 215 times |
Download: | 2 times |
Distributed Rule Responder Distributed Rule Responder Querying on the Semantic Querying on the Semantic
WebWeb
Harold BoleyHarold BoleyInstitute for Information TechnologyInstitute for Information TechnologyNational Research Council, Canada National Research Council, Canada
Fredericton, NB, CanadaFredericton, NB, Canada
ICDIM 20106 July 20106 July 2010
ISO 15926 and Semantic Technology Conference 2010
10 September 201010 September 2010
22
OutlineOutline Rule Responder OverviewRule Responder Overview Agent TypesAgent Types
Personal, Organizational, and ExternalPersonal, Organizational, and External Infrastructure for Realizing AgentsInfrastructure for Realizing Agents
Reaction RuleML Messages: PerformativesReaction RuleML Messages: Performatives Mule ESB: Communication MiddlewareMule ESB: Communication Middleware Rule Engines: Prova, OO jDREW, and DR-DeviceRule Engines: Prova, OO jDREW, and DR-Device
Symposium Planner Use CaseSymposium Planner Use Case Query Delegation and AnsweringQuery Delegation and Answering Knowledge in Organizational and Personal AgentsKnowledge in Organizational and Personal Agents Role Assignment Ontology: Topic Role Assignment Ontology: Topic Personal Agent Personal Agent Assisting the General, Publicity, and Program ChairsAssisting the General, Publicity, and Program Chairs
Conclusion and Future WorkConclusion and Future Work
33
Overview of Rule Responder Overview of Rule Responder (I)(I)
Rule Responder is a multi-agent systemRule Responder is a multi-agent systemfor for collaborative teamcollaborative team and and communitycommunity support on the (Social Semantic) Websupport on the (Social Semantic) Web
Enables rule-based collaboration betweenEnables rule-based collaboration betweenthe distributed human members the distributed human members personspersons of such a of such a virtual organizationvirtual organization
Persons of an organization are assisted by Persons of an organization are assisted by semi-automated rule-based agentssemi-automated rule-based agents, , which use rules (and various ontologies) to which use rules (and various ontologies) to describe the describe the decisiondecision and and behavioralbehavioral logiclogic
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
Enterprise Service Bus (ESB) as aEnterprise Service Bus (ESB) as aService Oriented Architecture (SOA)Service Oriented Architecture (SOA)
55
Personal AgentsPersonal Agents
A personal agent assists a A personal agent assists a personperson
or a tight subteam or a tight subteam of an organization, of an organization,
semi-autonomously acting on their behalfsemi-autonomously acting on their behalf It works on a profile of FOAF*-like It works on a profile of FOAF*-like factsfacts
plus FOAF-extending plus FOAF-extending rulesrules that encode that encode
‘routine’ knowledge of its human owner(s)‘routine’ knowledge of its human owner(s)
* The Friend of a Friend (FOAF) project: http://www.foaf-project.org
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 member of the organizationorganization
It contains rule* sets that describeIt contains rule* sets that describethe policies, regulations, the policies, regulations, opportunities, and expertise of its opportunities, and expertise of its organizationorganization
* For brevity the term ‘rule’ encompasses ‘fact’ (which is a rule without premises)* For brevity the term ‘rule’ encompasses ‘fact’ (which is a rule without premises)
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, via external agents, employ theEnd users, via external agents, employ theWeb (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)
88
Rule Responder as a Rule Responder as a Multi-Agent InfrastructureMulti-Agent Infrastructure
Rule Responder realizes virtual Rule Responder realizes virtual organizations in which an OA links organizations in which an OA links between an EA and PAsbetween an EA and PAs Built on top of the Mule ESBBuilt on top of the Mule ESB
The OA is realized with an instance of aThe 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 methods of Combines methods of multi-agent multi-agent systemssystems, , distributed rule distributed rule management systemsmanagement systems,,as well as as well as service-oriented service-oriented andandevent-drivenevent-driven architectures architectures
99
Two Simple Rule Responder Two Simple Rule Responder Virtual Organizations on ESB Virtual Organizations on ESB
Infrastructure Infrastructure
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 Rule Responder uses RuleML as its
interchange languageinterchange language Translations between the interchange Translations between the interchange
language and the PA languageslanguage and the PA languagesare done by the PAsare done by the PAs
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
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:ruleml2010="http://ibis.in.tum.de/projects/paw#">xmlns:ruleml2010="http://ibis.in.tum.de/projects/paw#"> <Message mode=<Message mode="outbound""outbound" directive= directive="query-"query-
sync" sync" >> <oid> <oid> <Ind>RuleML-2010</Ind> <Ind>RuleML-2010</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>ruleml2010_PanelChair</Ind><Ind>ruleml2010_PanelChair</Ind> <Ind>update</Ind><Ind>update</Ind> <Var>Contact</Var><Var>Contact</Var> </Atom></Atom> </content></content> </Message></Message> </RuleML></RuleML>
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 In the the tradition of KQML and FIPA-ACLtradition of KQML and FIPA-ACL Currently implemented: Query and AnswerCurrently implemented: Query and Answer Retract and Update requests planned in Retract and Update requests planned in
collaboration with W3C RIF-PRD / OMG PRRcollaboration with W3C RIF-PRD / OMG PRR
1414
Agent Communication Agent Communication ProtocolsProtocols
WSDL-like communication protocols:WSDL-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
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 around 50 transport Mule supports around 50 transport protocolsprotocols(including(including HTTP, JMS, JDBC,HTTP, JMS, JDBC, and SOAP)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
1616
Rule EnginesRule Engines
Prova: Prova: ProProlog + Jalog + Javava
OO jDREW: OO jDREW: OObject bject OOrientedrientedjjava ava DDeductive eductive RReasoning easoning EEngine for ngine for the the WWebeb
DR-Device: DR-Device: DDefeasible Logic efeasible Logic RReasoner easoner for the Semantic Webfor the Semantic Web
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)
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.ruleml.org/posl/converter.jnlp))
2020
Use Case: Symposium Use Case: Symposium Planner Planner
RuleML-20xy SymposiaRuleML-20xy Symposia An external agent linked to an An external agent linked to an
organizational agent acts as the single point organizational agent acts as the single point of entry to of entry to supportsupport the symposium the symposium organization: organization:
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 Personal agents have assistedassisted symposium symposium chairs since 2007 (deployed as chairs since 2007 (deployed as Q&A since 2008)
General Chair, Publicity Chair, Program Chair,General Chair, Publicity Chair, Program Chair,Panel Chair, etc.Panel Chair, etc.
2121
EA: External Agent
OA
General ChairPA
Program ChairProfile User
Challenge ChairProfile User
Rule Rule Responder Responder Architecture Architecture
PA: Personal Agent
OA: Organizational Agent
VirtualOrganization
Publicity ChairPA
LiaisonChair
PA
Program ChairPA
Challenge ChairPA
Liaison ChairProfile User
Publicity ChairProfile User
General ChairProfile User
Enquiry User
2222
Online Use Case DemosOnline Use Case Demos Rule Responder:Rule Responder:
http://responder.ruleml.org
Virtual organizations for RuleML-2007/.../2010 Virtual organizations for RuleML-2007/.../2010 Symposia:Symposia:
External agents:External agents:Each an HTTP browser interface using Reaction Each an HTTP browser interface using Reaction RuleML:RuleML:http://ibis.in.tum.de/projects/paw/ruleml-2007http://ruleml.org/RuleML-2008/RuleResponderhttp://ruleml.org/RuleML-2008/RuleResponderhttp://ruleml.org/RuleML-2009/RuleResponderhttp://ruleml.org/RuleML-2010/RuleResponder/http://ruleml.org/RuleML-2010/RuleResponder/RuleResponder.htmRuleResponder.htm
Organizational agents:Organizational agents:Each supporting one symposium as a wholeEach supporting one symposium as a whole
Personal agents:Personal agents:Supporting all Chair subteams of a symposiumSupporting all Chair subteams of a symposium
Online
2323
Query DelegationQuery Delegation
The organizational agent delegates The organizational agent delegates queries to appropriate personal agentsqueries to appropriate personal agents
Tasks for the symposium organization Tasks for the symposium organization are managed via a are managed via a role assignment role assignment matrixmatrix
Defined here by an OWL Lite ontologyDefined here by an OWL Lite ontology(alternatives: RDFS, RuleML, ...)(alternatives: RDFS, RuleML, ...)
Assigns (meta)topics to PAs within the Assigns (meta)topics to PAs within the virtual organization: virtual organization: ... see next slide ...... see next slide ...
2424
Role Assignment OntologyRole Assignment Ontology
Publicity Chair
Topics
Personal 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:
2525
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
2626
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 ...
2727
Symposium OA Knowledge BaseSymposium OA Knowledge Base
% Sample Prova rule stored in the OA:% Sample Prova rule stored in the OA:
getContact(XID,getContact(XID,TopicTopic,Request,,Request,
person(Role,Name,Title,EMail,Telephone)) :-person(Role,Name,Title,EMail,Telephone)) :-
% Retrieve the responsible PA (% Retrieve the responsible PA (AgentAgent) for the ) for the TopicTopic
assigned(XID,assigned(XID,AgentAgent,,TopicTopic,ruleml2009_responsible),,ruleml2009_responsible),
% Query contact information from that PA% Query contact information from that 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", ,"answer",
substitutions(Role,Name,Title,EMail,Telephone)).substitutions(Role,Name,Title,EMail,Telephone)).
General Chair PAGeneral Chair PAKnowledge Base: FactsKnowledge Base: Facts
% OA rule delegates queries to PAs which use FOAF-like% OA rule delegates queries to PAs which use FOAF-like factsfacts% such as to the General Chair PA which uses this fact:% such as to the General Chair PA which uses this fact:
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[ adrianDOTpaschkeATbiotecDOTtuDASHdresdenDOTde ]], email[ adrianDOTpaschkeATbiotecDOTtuDASHdresdenDOTde ]], exphones[ telephoneNumbers[ office[ 4935146340074 ]]]). exphones[ telephoneNumbers[ office[ 4935146340074 ]]]).
% Sample query in RuleML syntax:% Sample query in RuleML syntax:... see next slide ...... see next slide ...
2828
2929
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/
Query Selection: General Chair Contact
3030
Architecture - ExecutionArchitecture - Execution
3131
Architecture - ExecutionArchitecture - Execution
3232
Architecture - ExecutionArchitecture - Execution
3333
Architecture - ExecutionArchitecture - Execution
3434
Architecture - ExecutionArchitecture - Execution
3535
3636
3737
Sample Message to Publicity Chair PA (I)Sample Message to Publicity Chair PA (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?
3838
3939
Publicity Chair PAPublicity Chair PAKnowledge Base: RulesKnowledge Base: Rules
% Rule stored in the Publicity Chair’s PA:% Rule stored in the Publicity Chair’s PA:
sponsor(contact[?Name,?Organization],sponsor(contact[?Name,?Organization], ?Amount:integer, ?Amount:integer, results[?Level,?Benefits,? results[?Level,?Benefits,?DeadlineResults],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).
Yellow:Query other rules
Publicity Chair PAPublicity Chair PAKnowledge Base:Knowledge Base: 11stst & 2 & 2ndnd Rule Rule
PremisePremiserequestSponsoringLevel(?Amount:integer,?Level),requestSponsoringLevel(?Amount:integer,?Level),
% Satisfied by presponsor, bronze, ..., emerald rule:% Satisfied by presponsor, bronze, ..., emerald rule: . . .. . .
requestSponsoringLevel(?Amount:integer,?Level) :-requestSponsoringLevel(?Amount:integer,?Level) :-
sponsoringLevel(rank5,?Level,us$[?sponsoringLevel(rank5,?Level,us$[?EmeraldAmount:integer]),EmeraldAmount:integer]),greaterThanOrEqual(?Amount:integer,greaterThanOrEqual(?Amount:integer,
?EmeraldAmount:integer).?EmeraldAmount: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). 4040
Pink:Query facts
Publicity Chair PAPublicity Chair PAKnowledge Base:Knowledge Base: 33rdrd & 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 $50005000 sponsorship? sponsorship?... see next slide ...... see next slide ...
4141
4242
Sample Message to Publicity Chair PA (II)Sample Message to Publicity Chair PA (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 (edited)
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?
43434343
Program Chair PA (RuleML-Program Chair PA (RuleML-2010)2010)
Contains knowledge aboutContains knowledge abouttracks of RuleML-2010tracks of RuleML-2010 Track title, Track topics, Track chairsTrack title, Track topics, Track chairs
Answers queries for finding a relevant Answers queries for finding a relevant track for a papertrack for a paper Uses a paper’s keywords within (the Uses a paper’s keywords within (the
strings of) the track titles and topicsstrings of) the track titles and topics Rule-based heuristic scoring functionsRule-based heuristic scoring functions
4545
Program Chair PA:Program Chair PA:Find Relevant TracksFind Relevant Tracks
<Message <Message ……>>
……
<content><content>
<Atom><Atom>
<Rel><Rel>findTracksfindTracks</Rel></Rel>
<Ind type="<Ind type="stringstring">">
defeasibility; rule exceptionsdefeasibility; rule exceptions
</Ind></Ind>
<Var><Var>ScoredTrackScoredTrack</Var></Var>
</Atom></Atom>
</content></content>
</Message></Message>
4646
<Expr><Expr>
<Fun>track</Fun><Fun>track</Fun>
<Ind type="<Ind type="stringstring">">
Rules and NormsRules and Norms
</Ind></Ind>
<Expr><Expr>
<Fun>relevance</Fun><Fun>relevance</Fun>
<Ind <Ind type="real">type="real">1001710017</Ind></Ind>
</Expr></Expr>
</Expr></Expr>
Query
Answer
CfP
5050
Conclusion (I)Conclusion (I) Rule Responder was implemented & tested Rule Responder was implemented & tested
for various use cases (for various use cases (http://responder.ruleml.org) ) and deployed for RuleML-2008/and deployed for RuleML-2008/....../2010 /2010 Q&A
Its organizational agents delegate external Its organizational agents delegate external queries to topic-assigned personal agentsqueries to topic-assigned personal agents
It couples rule engines It couples rule engines Prova & OO jDREW & & OO jDREW & DR-Device (& Euler) via Mule middlewareDR-Device (& Euler) via Mule middlewareand RuleML 0.91 XML interchange formatand RuleML 0.91 XML interchange format Without a Reaction Rule Dialect, W3C RIF could Without a Reaction Rule Dialect, W3C RIF could
not be used for behavioral Responder logicnot be used for behavioral Responder logic
5151
Conclusion (II)Conclusion (II) Current system is reusable on all levels:Current system is reusable on all levels:
Symposium Planner, Rule Responder, (D-)POSL, Symposium Planner, Rule Responder, (D-)POSL, RuleML, OO jDREW, DR-Device, Prova, and MuleRuleML, OO jDREW, DR-Device, Prova, and Mule
RuleML Responder Technical Group jointly with RuleML Responder Technical Group jointly with Adrian Paschke, Alexander Kozlenkov, Ben Adrian Paschke, Alexander Kozlenkov, Ben Craig, Taylor Osmun, Derek Smith, Irfan ul Haq, Craig, Taylor Osmun, Derek Smith, Irfan ul Haq, Omair Shafiq, Mahsa Kiani, Nick Bassiliades, Omair Shafiq, Mahsa Kiani, Nick Bassiliades, Stratos Kontopoulos, and Kalliopi KravariStratos Kontopoulos, and Kalliopi Kravari
Integrated another ‘partner engine’, Euler, for Integrated another ‘partner engine’, Euler, for recent use cases, e.g. in WellnessRules2 and recent use cases, e.g. in WellnessRules2 and PatientSupporter (generating RuleML/XML PatientSupporter (generating RuleML/XML queries from menus for POSL and N3). More queries from menus for POSL and N3). More upcomingupcoming
5252
Future Work (I)Future Work (I) Communication betweenCommunication between
Personal Agent and Human OwnerPersonal Agent and Human Owner The PA may need to interact with its Human The PA may need to interact with its Human
OwnerOwner Formal interaction between PAs and their owners Formal interaction between PAs and their owners
can employ Reaction RuleML emails (SMTP)can employ Reaction RuleML emails (SMTP) Semi-formal interaction could use Controlled Semi-formal interaction could use Controlled
EnglishEnglish Query DecompositionQuery Decomposition
Queries decomposed into subqueries, delegated Queries decomposed into subqueries, delegated to multiple PAs, and partial answers re-integratedto multiple PAs, and partial answers re-integrated
Applications in information (data and knowledge) Applications in information (data and knowledge) integrationintegration
5353
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 all communication overheadCentralized: Avoids all communication overhead Distributed: More fault-tolerant and typically fasterDistributed: More fault-tolerant and typically faster
Alternative agents when an agent becomes defunctAlternative agents when an agent becomes defunct Hierarchical:Hierarchical: OAOA maymay sometimesometime becomebecome aa bottleneckbottleneck Networked: Peer-to-peer exchange between PAsNetworked: Peer-to-peer exchange between PAs
FromFrom centralizedcentralized toto distributeddistributed knowledgeknowledge maintenancemaintenance Easier to keep distributed rules up-to-dateEasier to keep distributed rules up-to-date
Discussed in Technical Report by Ben Craig andDiscussed in Technical Report by Ben Craig andexplored in PhD project by Mahsa Kianiexplored in PhD project by Mahsa Kiani