orlando florida ruleml 2007 thursday, october 25, 2007

23
1 The OO jDREW Engine of The OO jDREW Engine of Rule Responder: Naf Rule Responder: Naf Hornlog RuleML Query Hornlog RuleML Query Answering Presentation Answering Presentation Benjamin Craig Benjamin Craig Orlando Florida Orlando Florida RuleML 2007 RuleML 2007 Thursday, October 25, Thursday, October 25, 2007 2007

Upload: aiko-woodard

Post on 01-Jan-2016

38 views

Category:

Documents


2 download

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 Presentation

TRANSCRIPT

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

1212

Architecture - OverviewArchitecture - Overview

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>

1717

1818

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>

2020

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>

2222

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