SlideShare a Scribd company logo
 
Applying JBoss Drools in Assistive Technology
Who is Tihomir? ,[object Object]
Contributor and committer on Seam
[object Object],[object Object]
Applying Drools in AT
Event Processing
Drools Fusion examples
Vision for the future
Q&A
[object Object],[object Object]
Categories of disabilities: ,[object Object],[object Object]
AT products help peoples with disabilities to achieve greater independence, enhance their quality of life and compete in the real world ( inclusive society ).
[object Object],[object Object]
Modern AT industry sustainable and profitable.
The key problems:  ,[object Object]
[object Object],[object Object]
Main focus: respond to the needs and wants of users.
Close relationships to main-stream researches, such as  robotics, cognition, AI, IT, sensor technology, real time control etc.
Attractive common research focuses on:  ,[object Object]
AT essential distinctive problem ,[object Object]
Keys to increase acceptance and use ,[object Object]
Scalability and adaptivity
Improve performance over time
Acquisition/preservation of user experience and knowledge
Improve maintainability and robustness in spite of user and  environmental disturbances
[object Object],[object Object]
Mouse cursor control for handicapped individuals (MCC) – main operations:  pointing  and  clicking .
Ca. 250 commercial MCC products available at the market worldwide.
Multitude of MCC concepts: switch-related systems (sip/puff switches), head pointing systems, eye tracking systems, BCI etc.
None of them provide a standardized general system for subjects with severe disabilities.
[object Object]
[object Object],[object Object]
Use of innovative technologies, such as AI approaches, methods and tools (e.g. automated reasoning, first-order logic, fuzzy logic, neural-networks etc.).
Development of standardized HW and SW modules that can be configured for a  specific user.
[object Object],[object Object]
Indirect pointing of target items (scanning) based on Morse codes sequences of  dots (sip) and dashes (puff).
Traditional line scanning.
Quite inefficient and tedious, especially for users with limited breathing or learning capabilities.

More Related Content

Similar to Applying Drools in Assistive Technology

Embedded Basics
Embedded Basics Embedded Basics
Embedded Basics
Electro 8
 
Develop Future Proof IoT: Composable Semantics, Security, FuSa, and QoS
Develop Future Proof IoT: Composable Semantics, Security, FuSa, and QoSDevelop Future Proof IoT: Composable Semantics, Security, FuSa, and QoS
Develop Future Proof IoT: Composable Semantics, Security, FuSa, and QoS
Intel® Software
 
automation
automationautomation
automation
Mphasis
 
Dynamic Semantics for the Internet of Things
Dynamic Semantics for the Internet of Things Dynamic Semantics for the Internet of Things
Dynamic Semantics for the Internet of Things
PayamBarnaghi
 
Report on Enviorment Panel Monitoring
Report on Enviorment Panel MonitoringReport on Enviorment Panel Monitoring
Report on Enviorment Panel Monitoring
Mohammed Irshad S K
 
Robotic Vehicle Movement with Webcam Operated by Cell Phone
Robotic Vehicle Movement with Webcam Operated by Cell PhoneRobotic Vehicle Movement with Webcam Operated by Cell Phone
Robotic Vehicle Movement with Webcam Operated by Cell Phone
IRJET Journal
 
Intelligent Traffic Light control using Embedded Systems
Intelligent Traffic Light control using Embedded SystemsIntelligent Traffic Light control using Embedded Systems
Intelligent Traffic Light control using Embedded Systems
Srijan Singh
 
CHARACTERIZING BEHAVIOUR
CHARACTERIZING BEHAVIOURCHARACTERIZING BEHAVIOUR
CHARACTERIZING BEHAVIOUR
csk selva
 
Introduction to Big Data Analytics: Batch, Real-Time, and the Best of Both Wo...
Introduction to Big Data Analytics: Batch, Real-Time, and the Best of Both Wo...Introduction to Big Data Analytics: Batch, Real-Time, and the Best of Both Wo...
Introduction to Big Data Analytics: Batch, Real-Time, and the Best of Both Wo...
WSO2
 
Real-time data integration to the cloud
Real-time data integration to the cloudReal-time data integration to the cloud
Real-time data integration to the cloud
Sankar Nagarajan
 
Training report on Embedded Systems and MATLAB
Training report on Embedded Systems and MATLABTraining report on Embedded Systems and MATLAB
Training report on Embedded Systems and MATLAB
Aswin Sreeraj
 
Next Century Project Overview
Next Century Project OverviewNext Century Project Overview
Next Century Project Overview
jennhunter
 
Embedded Intro India05
Embedded Intro India05Embedded Intro India05
Embedded Intro India05
Rajesh Gupta
 
DDS Best Practices
DDS Best PracticesDDS Best Practices
DDS Best Practices
Gerardo Pardo-Castellote
 
Avanced process control enteprise management system
Avanced process control enteprise management systemAvanced process control enteprise management system
Avanced process control enteprise management system
Gyan Prakash
 
A SESERV methodology for tussle analysis in Future Internet technologies - In...
A SESERV methodology for tussle analysis in Future Internet technologies - In...A SESERV methodology for tussle analysis in Future Internet technologies - In...
A SESERV methodology for tussle analysis in Future Internet technologies - In...
ictseserv
 
Innoslate 4.5 and Sopatra
Innoslate 4.5 and SopatraInnoslate 4.5 and Sopatra
Innoslate 4.5 and Sopatra
Elizabeth Steiner
 
Controlling Computer using Hand Gestures
Controlling Computer using Hand GesturesControlling Computer using Hand Gestures
Controlling Computer using Hand Gestures
IRJET Journal
 
Embeddedsystems 091130091010-phpapp02
Embeddedsystems 091130091010-phpapp02Embeddedsystems 091130091010-phpapp02
Embeddedsystems 091130091010-phpapp02
KIET Group of Institutions, Ghaziabad
 
Chapter - One.ppt
Chapter - One.pptChapter - One.ppt
Chapter - One.ppt
RemadanMohammed
 

Similar to Applying Drools in Assistive Technology (20)

Embedded Basics
Embedded Basics Embedded Basics
Embedded Basics
 
Develop Future Proof IoT: Composable Semantics, Security, FuSa, and QoS
Develop Future Proof IoT: Composable Semantics, Security, FuSa, and QoSDevelop Future Proof IoT: Composable Semantics, Security, FuSa, and QoS
Develop Future Proof IoT: Composable Semantics, Security, FuSa, and QoS
 
automation
automationautomation
automation
 
Dynamic Semantics for the Internet of Things
Dynamic Semantics for the Internet of Things Dynamic Semantics for the Internet of Things
Dynamic Semantics for the Internet of Things
 
Report on Enviorment Panel Monitoring
Report on Enviorment Panel MonitoringReport on Enviorment Panel Monitoring
Report on Enviorment Panel Monitoring
 
Robotic Vehicle Movement with Webcam Operated by Cell Phone
Robotic Vehicle Movement with Webcam Operated by Cell PhoneRobotic Vehicle Movement with Webcam Operated by Cell Phone
Robotic Vehicle Movement with Webcam Operated by Cell Phone
 
Intelligent Traffic Light control using Embedded Systems
Intelligent Traffic Light control using Embedded SystemsIntelligent Traffic Light control using Embedded Systems
Intelligent Traffic Light control using Embedded Systems
 
CHARACTERIZING BEHAVIOUR
CHARACTERIZING BEHAVIOURCHARACTERIZING BEHAVIOUR
CHARACTERIZING BEHAVIOUR
 
Introduction to Big Data Analytics: Batch, Real-Time, and the Best of Both Wo...
Introduction to Big Data Analytics: Batch, Real-Time, and the Best of Both Wo...Introduction to Big Data Analytics: Batch, Real-Time, and the Best of Both Wo...
Introduction to Big Data Analytics: Batch, Real-Time, and the Best of Both Wo...
 
Real-time data integration to the cloud
Real-time data integration to the cloudReal-time data integration to the cloud
Real-time data integration to the cloud
 
Training report on Embedded Systems and MATLAB
Training report on Embedded Systems and MATLABTraining report on Embedded Systems and MATLAB
Training report on Embedded Systems and MATLAB
 
Next Century Project Overview
Next Century Project OverviewNext Century Project Overview
Next Century Project Overview
 
Embedded Intro India05
Embedded Intro India05Embedded Intro India05
Embedded Intro India05
 
DDS Best Practices
DDS Best PracticesDDS Best Practices
DDS Best Practices
 
Avanced process control enteprise management system
Avanced process control enteprise management systemAvanced process control enteprise management system
Avanced process control enteprise management system
 
A SESERV methodology for tussle analysis in Future Internet technologies - In...
A SESERV methodology for tussle analysis in Future Internet technologies - In...A SESERV methodology for tussle analysis in Future Internet technologies - In...
A SESERV methodology for tussle analysis in Future Internet technologies - In...
 
Innoslate 4.5 and Sopatra
Innoslate 4.5 and SopatraInnoslate 4.5 and Sopatra
Innoslate 4.5 and Sopatra
 
Controlling Computer using Hand Gestures
Controlling Computer using Hand GesturesControlling Computer using Hand Gestures
Controlling Computer using Hand Gestures
 
Embeddedsystems 091130091010-phpapp02
Embeddedsystems 091130091010-phpapp02Embeddedsystems 091130091010-phpapp02
Embeddedsystems 091130091010-phpapp02
 
Chapter - One.ppt
Chapter - One.pptChapter - One.ppt
Chapter - One.ppt
 

Recently uploaded

Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Jeffrey Haguewood
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
Intelisync
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
Alex Pruden
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 
Public CyberSecurity Awareness Presentation 2024.pptx
Public CyberSecurity Awareness Presentation 2024.pptxPublic CyberSecurity Awareness Presentation 2024.pptx
Public CyberSecurity Awareness Presentation 2024.pptx
marufrahmanstratejm
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
Hiike
 
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframeDigital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Precisely
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3
FREE A4 Cyber Security Awareness  Posters-Social Engineering part 3FREE A4 Cyber Security Awareness  Posters-Social Engineering part 3
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3
Data Hops
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
dbms calicut university B. sc Cs 4th sem.pdf
dbms  calicut university B. sc Cs 4th sem.pdfdbms  calicut university B. sc Cs 4th sem.pdf
dbms calicut university B. sc Cs 4th sem.pdf
Shinana2
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
HarisZaheer8
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 

Recently uploaded (20)

Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 
Public CyberSecurity Awareness Presentation 2024.pptx
Public CyberSecurity Awareness Presentation 2024.pptxPublic CyberSecurity Awareness Presentation 2024.pptx
Public CyberSecurity Awareness Presentation 2024.pptx
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
 
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframeDigital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3
FREE A4 Cyber Security Awareness  Posters-Social Engineering part 3FREE A4 Cyber Security Awareness  Posters-Social Engineering part 3
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
dbms calicut university B. sc Cs 4th sem.pdf
dbms  calicut university B. sc Cs 4th sem.pdfdbms  calicut university B. sc Cs 4th sem.pdf
dbms calicut university B. sc Cs 4th sem.pdf
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 

Applying Drools in Assistive Technology

  • 1.  
  • 2. Applying JBoss Drools in Assistive Technology
  • 3.
  • 5.
  • 9. Vision for the future
  • 10. Q&A
  • 11.
  • 12.
  • 13. AT products help peoples with disabilities to achieve greater independence, enhance their quality of life and compete in the real world ( inclusive society ).
  • 14.
  • 15. Modern AT industry sustainable and profitable.
  • 16.
  • 17.
  • 18. Main focus: respond to the needs and wants of users.
  • 19. Close relationships to main-stream researches, such as robotics, cognition, AI, IT, sensor technology, real time control etc.
  • 20.
  • 21.
  • 22.
  • 25. Acquisition/preservation of user experience and knowledge
  • 26. Improve maintainability and robustness in spite of user and environmental disturbances
  • 27.
  • 28. Mouse cursor control for handicapped individuals (MCC) – main operations: pointing and clicking .
  • 29. Ca. 250 commercial MCC products available at the market worldwide.
  • 30. Multitude of MCC concepts: switch-related systems (sip/puff switches), head pointing systems, eye tracking systems, BCI etc.
  • 31. None of them provide a standardized general system for subjects with severe disabilities.
  • 32.
  • 33.
  • 34. Use of innovative technologies, such as AI approaches, methods and tools (e.g. automated reasoning, first-order logic, fuzzy logic, neural-networks etc.).
  • 35. Development of standardized HW and SW modules that can be configured for a specific user.
  • 36.
  • 37. Indirect pointing of target items (scanning) based on Morse codes sequences of dots (sip) and dashes (puff).
  • 39. Quite inefficient and tedious, especially for users with limited breathing or learning capabilities.
  • 40.
  • 41.
  • 42. New input air flow defines velocity of cursor moving.
  • 43. Fuzzy scanning algorithms: circular scan, selection area scan, object selection, etc
  • 44.
  • 45. Feasible and promising solution for development of sophisticated and adaptive MMC (HCI) systems.
  • 46. Constraints: relatively good breathing control is needed. Sensitivity to disturbances.
  • 47. Multi-channel inputs and action outputs (MIMO) can further improve performance and robustness, however fuzzy logic and control applications become extremely complex.
  • 48. Processing large number of input events becomes problematic.
  • 49.
  • 50. ability to combine classical predicate logic with fuzzy logic to represent the system as combination of discrete as well as continuous events.
  • 51. ability to process large number of complex events through multiple input channels.
  • 54.
  • 55. Drools (1) “ A common platform to model and govern the business logic of the enterprise.”
  • 56. Drools (2) “ A common platform to model and govern the business logic of the enterprise.”
  • 57.
  • 58. Extensions of the RETE networks using set of pluggable modules.
  • 59. Drools-Chance (still in development) makes Drools capable of dealing with imperfect information natively. Also adds possibility to configure behavior of the engine to reason with different type of imperfection without changing the production rules.
  • 61. Ability to test/monitor all parts of AT system.
  • 62. Ability to run/embed into OSGi environments and future AT devices.
  • 63.
  • 64. Changing rules does not require a complete deployment of AT systems.
  • 65. Provides background to build modular and scalable AT systems, such as integrate additional sensors for a specific user and develop rules, without influencing specific application (e.g. computer or assistive device control).
  • 66. Rules can be modified by different group of users (technicians, physicians, end-users).
  • 67. Rule language is simple to learn.
  • 68. End-users can be involved to resolve conflicts and perform specific actions (improved robustness).
  • 69. Efficient for frequent change of rules dependent on user experience, health state, specific needs etc.
  • 70.
  • 71.
  • 72. Comp. Systems: entity/object that represents this occurrence
  • 73. 1 RW Event -> ∞ CS Events
  • 74.
  • 75.
  • 76. Distribution Channels: provides means of distributing events (typically one-to-many distribution, async)
  • 77. Consumers: receive and act upon events (Applications, Systems, Data Stores, Business Processes, etc)
  • 78. Intermediary Processing: rout / filter (raw events), produce (derived events). Consists of a number of building blocks (Agents) Intermediary Processing Event Producers Event Consumers
  • 79. Event Processing Agents Building Blocks for: Translation, Composition, Aggregation, Enrichment, Splitting, Projection, Pattern Detection, etc. Even Filtering Event Matching Event Derivation time time time
  • 80.
  • 81. Can be described as process flows such as Drools-Flow
  • 82.
  • 83. Testing, debugging, monitoring (and self-monitoring/adapting)
  • 84. Customizable and easily replaceable network parts
  • 85. Integration with Human tasks public class ErrorEventListener implements ProcessEventListener { public void afterNodeLeft(ProcessNodeLeftEvent event) { ksession .getWorkingMemoryEntryPoint( entryPointName ).insert(event); ... } declare ProcessNodeLeftEvent @role( event ) end rule "Number of Cursor Rotations is above threshold" when Number( nbProcesses : intValue > 5 ) from accumulate ( e: ProcessNodeLeftEvent( nodeInstance.nodeName == "CursorRotationNode" ) over window:size(10s), count(e) ) then drools.getWorkingMemory().getProcessInstance(ATDepartmentNotificationProcess).signalEvent( "notify" , "cursor rotation threshold exceeded" ); end
  • 86.
  • 87.
  • 88. Spacial: takes account geospatial event info
  • 89. State-oriented: depends on state of some external entity
  • 90. Segmentation-oriented: partitions events by their attribute values (for example age >= 35)
  • 92.
  • 93. Creating Derived Events: declare Direction @role( event ) @timestamp( timestamp ) @expires( 1m ) end declare Strength @role( event ) @expires( 1m ) end declare DoubleClick @role( event ) direction : Direction strength : Strength delay : int end rule detectDoubleClick when $direction : Direction( ) from entry-point "Raw-Direction-Stream" ... $strength : Strength( ) from entry-point "Raw-Strength-Stream" ... then DoubleClick dc = new DoubleClick($direction, $strength, 0); entryPoints[ "Cursor-Control-Endpoint-Stream" ). insert (dc); end
  • 94.
  • 95. Negative patterns, waiting for events to happen: declare Click @role( event ) @expires( 1m ) delay : int end declare Drag @role( event ) @expires( 1m ) direction : Direction strength : Strength delay : int end rule invalidDragMotion when $dragEvent : Drag( ) from entry-point "Cursor-Control-Endpoint-Stream" not ( Click( this before $dragEvent ) from entry-point "Cursor-Control-Endpoint-Stream" ) // click starts drag event then # notify user+system of invalid command ... end rule lenientDragMotion when $dragEvent : Drag( ) from entry-point "Cursor-Control-Endpoint-Stream" not ( Click( this before $dragEvent ) from entry-point "Cursor-Control-Endpoint-Stream" ) Click( this after[0s,5s] $dragEvent ) from entry-point "Cursor-Control-Endpoint-Stream" then # allow drag motion... ... end
  • 96.
  • 97. Engine manages all scoping and synchronizations behind the scenes.
  • 98. Event processing from specific streams in rules: StatefulKnowledgeSession ksession = ... ... WorkingMemoryEntryPoint rawDirectionEntryPoint = ksession.getWorkingMemoryEntryPoint( "Raw-Direction-Stream" ); WorkingMemoryEntryPoint rawStrengthEntryPoint = ksession.getWorkingMemoryEntryPoint( "Raw-Strength-Stream" ); … // Every time we get input from direction sensor do: rawDirectionEntryPoint.insert(direction); // Every time we get input from flow sensor do: rawStrengthEntryPoint.insert(strength); ... rule detectVerticalScrolling When ... $direction : Direction( ) from entry-point "Raw-Direction-Stream" $strength : Strength( ) from entry-point "Raw-Strength-Stream" ... then ...
  • 99.
  • 100. Dynamic registration of consumers in channels possible.
  • 101.
  • 103. Push derived events for distribution in rules: StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession(config, null ); ksession.registerChannel( &quot;cursor-control&quot; , new CursorControlChannel()); ... public class CursorControlChannel implements Channel { private List<MouseControlService> controlServices ; @Override public void send(Object command) { for (MouseControlService service : controlServices ) { service.publishCommand(command); } } ... rule detectDoubleClick when ... then DoubleClick dc = new DoubleClick(); ... channels[ &quot;cursor-control&quot; ].send( dc ); end
  • 104.
  • 105. Choose a Clock type (realtime or pseudo for testing): ... KnowledgeBaseConfiguration config = KnowledgeBaseFactory. newKnowledgeBaseConfiguration (); config.setOption( EventProcessingOption. STREAM ); KnowledgeBase kbase = KnowledgeBaseFactory. newKnowledgeBase (config); ... ... KnowledgeSessionConfiguration config = KnowledgeBaseFactory. newKnowledgeSessionConfiguration (); config.setOption( ClockTypeOption. get ( &quot;realtime&quot; ) ); StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession(config, null ); ...
  • 106.
  • 109.
  • 110.
  • 111. Length rule &quot;Normalize cursor motion speed&quot; when CursorSpeedThreshold( $max : max ) Number( doubleValue > $max) from accumulate ( Strength( $val : value ) over window:length( 200 ), average( $val ) ) then // normalize the cursor speed end rule “Detect excessive Cursor Rotation” when Number( intValue > 15 ) from accumulate ( CursorRotation( ) over window:time(30s), count(e) ) then drools.getWorkingMemory().getProcessInstance(ATDepartmentNotificationProcess).signalEvent( &quot;notify&quot; , &quot;cursor rotation threshold exceeded&quot; ); end
  • 112.
  • 113. Drools Fusion – Temporal Context Operators
  • 114.
  • 115.
  • 119. Mailing Lists: http://www.jboss.org/drools/lists.html

Editor's Notes

  1. Expert – Rule Engine side, Logic side Flow – advanced process engine, tight integration of processes and rules Fusion – Even Processing , CEP integration into Drools Guvnor - about server-side management, web stuff
  2. Expert – Rule Engine side, Logic side Flow – advanced process engine, tight integration of processes and rules Fusion – Even Processing , CEP integration into Drools Guvnor - about server-side management, web stuff