orlando florida ruleml 2007 thursday, october 25, 2007
DESCRIPTION
The OO jDREW Engine of Rule Responder: Naf Hornlog RuleML Query Answering Presentation Benjamin Craig. Orlando Florida RuleML 2007 Thursday, October 25, 2007. Outline. Overview Agents Personal Organizational External Rule Engines Prova OO jDREW Communication Middleware Mule ESB - PowerPoint PPT PresentationTRANSCRIPT
11
The OO jDREW Engine of Rule The OO jDREW Engine of Rule Responder: Naf Hornlog Responder: Naf Hornlog RuleML Query Answering RuleML Query Answering
Presentation Presentation Benjamin CraigBenjamin Craig Orlando FloridaOrlando Florida
RuleML 2007RuleML 2007
Thursday, October 25, 2007Thursday, October 25, 2007
22
OutlineOutline OverviewOverview AgentsAgents
PersonalPersonal OrganizationalOrganizational ExternalExternal
Rule EnginesRule Engines ProvaProva OO jDREWOO jDREW
Communication MiddlewareCommunication Middleware Mule ESBMule ESB Reaction RuleML messagesReaction RuleML messages
DemoDemo Use CasesUse Cases
33
Overview of Rule ResponderOverview of Rule Responder Rule Responder is an intelligent multi-agent Rule Responder is an intelligent multi-agent
system for collaborative teams and virtual system for collaborative teams and virtual communitiescommunities
Supports rule-based collaboration between the Supports rule-based collaboration between the different members of a virtual organizationdifferent members of a virtual organization
Members of a virtual registration are represented Members of a virtual registration are represented as semi-automated rule-based agents which use as semi-automated rule-based agents which use rules to describe the behavioral and decision logicrules to describe the behavioral and decision logic
Uses RuleML subset as its Rule Markup Language, Uses RuleML subset as its Rule Markup Language, based on logic and XML based on logic and XML The member of the RuleML family employed The member of the RuleML family employed
here is Naf Hornlog here is Naf Hornlog Implemented as a Web-based service architectureImplemented as a Web-based service architecture
44
Personal AgentsPersonal Agents
A personal agent acts on behalf of a A personal agent acts on behalf of a single person of an organization single person of an organization
The personal agent contains a FOAF* The personal agent contains a FOAF* profile with FOAF-extended rulesprofile with FOAF-extended rules
*The Friend of a Friend (FOAF) project: http://www.foaf-project.org
55
Organizational AgentsOrganizational Agents
Organizational agents are used to Organizational agents are used to represent goals and strategies sharedrepresent goals and strategies sharedby each person in the collaborative by each person in the collaborative team team
Organizational agents contain rule sets Organizational agents contain rule sets that describe their organizations’ that describe their organizations’ policies, regulations, opportunities, etc.policies, regulations, opportunities, etc.
66
External AgentsExternal Agents
External agents communicate with the External agents communicate with the virtual organization, exchanging messages virtual organization, exchanging messages that transport queries, answers, or that transport queries, answers, or complete rule sets via the public interface complete rule sets via the public interface of the organizational agentsof the organizational agents
HTTP interface to Rule ResponderHTTP interface to Rule Responder Support for multiple unique External Support for multiple unique External
Agents (end users) at a single timeAgents (end users) at a single time Users can use a web browser to Users can use a web browser to
communicate with Rule Responder communicate with Rule Responder (currently a test interface)(currently a test interface)
77
Rule EnginesRule Engines
Prova (Prolog + Java)Prova (Prolog + Java) Developed by Adrian Paschke (Germany) Developed by Adrian Paschke (Germany)
and and Alex KozlenkovAlex Kozlenkov (United Kingdom) (United Kingdom)
OO jDREW (Object Oriented Java OO jDREW (Object Oriented Java Deductive Reasoning Engine for the Deductive Reasoning Engine for the Web)Web) Developed by Bruce Spencer, Marcel Ball, Developed by Bruce Spencer, Marcel Ball,
Benjamin Craig (Canada)Benjamin Craig (Canada)
88
ProvaProva
Prova is used to implement the Prova is used to implement the organizational agents of Rule organizational agents of Rule ResponderResponder
Prova is also used for some personal Prova is also used for some personal agentsagents
99
OO jDREW OO jDREW
OO jDREW is used for personal agents inOO jDREW is used for personal agents inRule ResponderRule Responder
Two modes of Rule Execution:Two modes of Rule Execution: Bottom-up (forward reasoning)Bottom-up (forward reasoning) Top-down (backward reasoning) Top-down (backward reasoning)
Rule Responder primarily uses top-downRule Responder primarily uses top-down Supports rules in the following formats:Supports rules in the following formats:
POSL (Positional Slotted presentation POSL (Positional Slotted presentation syntax)syntax)
RuleML (XML syntax, can be generated RuleML (XML syntax, can be generated from POSL) from POSL)
1010
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(i.e. http, jms, soap)(i.e. http, jms, soap)
Rule Responder uses http and jms as Rule Responder uses http and jms as transport protocolstransport protocols
1111
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
1313
Use CaseUse Case
RuleML-2007 SymposiumRuleML-2007 Symposium One Organizational Agent that acts as One Organizational Agent that acts as
the single point of entry to the the single point of entry to the conference conference
Assists with planning, preparing, and Assists with planning, preparing, and running the Symposium running the Symposium
Personal Agents represent Chairs of the Personal Agents represent Chairs of the SymposiumSymposium
1414
Online DemoOnline Demo
http://responder.ruleml.org/http://responder.ruleml.org/
Use Case Demo Link:Use Case Demo Link: http://ibis.in.tum.de/projects/paw/rulehttp://ibis.in.tum.de/projects/paw/rule
ml-2007/ml-2007/
1515
Ex. Personal Agent’s knowledge Ex. Personal Agent’s knowledge basebase
% Sample rule POSL syntax% Sample rule POSL syntaxperson(?person,?role, ?title, ?email, ?person(?person,?role, ?title, ?email, ?
telephone):-telephone):- contact(?person,?email,?telephone),contact(?person,?email,?telephone), role(?person,?role),role(?person,?role), title(?person,?title).title(?person,?title).% Sample facts that match the previous rule% Sample facts that match the previous rulecontact(John, [email protected], 1-555-555-contact(John, [email protected], 1-555-555-
5555).5555).role(John,Panel Chair).role(John,Panel Chair).title(John, Doctor).title(John, Doctor).
1616
Example Message to the Organizational AgentExample Message to the 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"><Message mode="outbound" directive="query"> <oid><oid> <Ind>RuleML-2007</Ind><Ind>RuleML-2007</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>ruleml2007_Challenge</Ind><Ind>ruleml2007_Challenge</Ind> <Ind>update</Ind><Ind>update</Ind> <Var>Contact</Var><Var>Contact</Var> </Atom></Atom> </content></content> </Message></Message> </RuleML></RuleML>
1919
Example MessageExample Message 22 <content><content> <Atom><Atom> <Rel>sponsor</Rel><Rel>sponsor</Rel> <Expr><Expr> <Fun>contact</Fun><Fun>contact</Fun> <Ind>ben</Ind><Ind>ben</Ind> <Ind>nrc</Ind><Ind>nrc</Ind> </Expr></Expr> <Ind type="integer">500</Ind><Ind type="integer">500</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>
2121
Example MessageExample Message 33 <content><content> <Atom><Atom> <Rel>sponsor</Rel><Rel>sponsor</Rel> <Expr><Expr> <Fun>contact</Fun><Fun>contact</Fun> <Ind>ben</Ind><Ind>ben</Ind> <Ind>nrc</Ind><Ind>nrc</Ind> </Expr></Expr> <Ind type="integer">5000</Ind><Ind type="integer">5000</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>
2323
ConclusionConclusion
Rule Responder can be used to Rule Responder can be used to implement a wide range of use cases implement a wide range of use cases that require an intelligent, semi-that require an intelligent, semi-automated decision layerautomated decision layer
The middleware of Rule Responder The middleware of Rule Responder allows deployment of multiple allows deployment of multiple running use cases concurrentlyrunning use cases concurrently