SlideShare una empresa de Scribd logo
1 de 25
High performance model queries
                                        and their novel applications


                                                       Benedek Izsó
                                                      Zoltán Szatmári
                                                        István Ráth



Budapest University of Technology and Economics   Workshop on Eclipse Open Source Software and OMG Open Specifications
Fault Tolerant Systems Research Group             EclipseCon 2012, Reston, VA, USA 2012. 03. 25.
The speaker’s background
 Research @ academia
  o Metamodeling, DSMLs, model transformations, …
     • The VIATRA2 Model Transformation Framework (2004-)
  o Model queries
     • The EMF-IncQuery project (2010-)
 Consulting & Development @ industry
  o Eclipse consultant and trainer (2006-)
  o Architect, model-driven tools and projects (2008-)
The problem
 Scalable modeling tools
   o Issues encountered by several industrial partners using
     EMF-based tools
   o Modeling scenarios can get really complex really quickly
      • Instance models of size 1-10M and beyond
      • Performance issues with model transformations and code
        generators have an adverse effect on everyday development tasks
 Scalability
   o Complex (meta)models
   o Large instance models
   o High performance model I/O
Focus: model queries
 Model queries
   o “a piece of code that retrieves a given set of the model”
 Ubiquitous
   o Every model access/read is a (simple) query
   o More complex: Views, content providers
   o Most complex: Model transformations, code generators
 In interactive (user-driven) use cases, queries are far more common than
  model manipulation
   o  query performance is crucial
 Query performance
   o The speed of content retrieval
       • First vs consecutive vs throughput
       • Query result vs query contents
 Essence of performance issues
   o slow queries
   o Considerable programming effort necessary to get complex queries right
Technology landscape – what to build a modeling tool on?
 Eclipse Modeling
   o EMF (&variants, CDO, …)
   o Proven tools: Plain Java queries, OCL (&variants), EMF Query (1-2)
   o New/experimental technologies: EMF-IncQuery, JBoss Drools, …
 Triple stores / graph databases
   o   OWL/RDF, SPARQL
   o   RacerPro, Pellet, Sesame, Jena, OpenVirtuoso, Allegro, StarDog
   o   Modeling tools: not (yet) a traditional use case
   o   But…
        • Huge, distributed knowledge bases         Further options
        • Highly optimized SPARQL engines          (not covered yet)
        • Expensive commercial tools              • Modeling
                                                     frameworks other
 Relational DB                                      than EMF
   o SQL, PL/SQL, In-memory                       • Plain XML/XPath
   o Overhead: ORM layers                         • OO DB
                                                  • K-V (NoSQL)
                                                  …
Assessment through benchmarking
 Railway system design DSML
 Benchmark: well-formedness checking in 4 phases, using in-memory
  models
    o Phase1: model load into memory (READ)
    o Phase2: rule validation (retrieve all invalid elements) (CHECK1)
    o Phase3: scattered, programmatic, in-memory model modification
      (introducing new errors) (EDIT)
    o Phase4: revalidation (retrieve all invalid elements) (CHECK2)
 Several test queries with different characteristics
    o Varying “difficulty”
    o Approx. same percentage of invalid elements present in the model for all
      queries
    o Tool expected to return ALL invalid model elements with references/IDs
 Measured
    o Execution times for all phases
    o Memory usage over the entire sequence
Focus
 Model sizes: up to 2.5M elements
  o Industrial partner: we would like to see 10M+ elements!
     • Note: 10M+ model elements ~ 50M+ triples
  o This is not yet possible with in-memory tech 
 Query complexity
  o Typical well-formedness constraints similar to actual tools
  o Ranging from simple attribute checking to complex
    structural checks (circle detection)
 Interesting use cases
  o READ+CHECK1: “batch validator” (models are read into
    memory, rules are evaluated)
  o EDIT+CHECK2: “on-the-fly revalidation in an editor” (list of
    invalid elements updated according to changes in the
    model)
RESULTS
Disclaimer
 This is still work in progress
 External audits (not complete yet)
   o OCL: Ed Willink
   o Drools: Mark Proctor
   o Java: our industrial partner (Eclipse-based tool
     development)
   o OWL/SPARQL: technology experts at an academic
     partner
 Detailed results, analysis and the corpus will be
  available online
   o This is just an appetizer 
Question 1
 Q: How does model size affect query
  performance?
Batch validation

   SPARQL tools are               Read time is dominating
generally 1-2 Orders-of-
Magnitude (OM) slower
  than top EMF tools




                                   Eclipse OCL does really
                                     well here, followed
                                    closely by IncQuery
Revalidation on-the-fly

                    Incremental EMF
                  engines typically 5-10x
                    faster, sub-100ms
                  response times for up
                    to 1.5M elements
A closer look to the top

    Performance advantage
     of OCL-IA over OCL is
      not significant with
        complex queries
Memory usage
Answer 1
 Q: How does model size affect query
  performance?
 A: Polynomial growth in response times.
  o Batch validation: execution times grow according to a
    low-order polynomial (exponent depends on the
    technology)
  o On-the-fly revalidation: similarly, but incremental
    engines achieve much lower exponents (can be even
    close to constant)
Question 2
 Q: How does the complexity of the query affect
  performance?
Re-validation on-the-fly

• 1-2 OM differences
  with OCL
• Max 0.5 OM difference
  with IQ
Answer 2
 Q: How does the complexity of the query affect
  performance?
 A: Significantly!
  o Metamodel and contents of the query together
    determine the overall performance
     • E.g. inverse relations and model navigation
     • Metamodel and queries should be optimized together
  o RETE-based tools (Drools, IncQuery) can get around
    this
     • High performance regardless of metamodel & query
       structure
     • At the cost of increased memory overhead
        – But (much) less than OCL-IA!
Results
 Fastest batch validator: Eclipse OCL
 Fastest incremental validator: EMF-IncQuery
 Fast OWL tools (RDF reasoners): Sesame, Jena
  o Significantly better than commercial SPARQL engines
  o But at least 1-2 OM slower than top EMF technologies
 (In-memory) RDBMS are slow
  o Due to ORM overhead
  o Omitted for simplicity, full report will be online
How to build a scalable modeling tool?
 If everything fits into your workstations’ RAM
   o 8GB RAM  1-2M model elements
   o You can (& should) (continue to) use EMF
         • EMF tweaks (e.g. diet) have no significant impact
         • Instead, optimize queries and metamodels
   o Use Eclipse OCL for batch validation
     EMF Query 1-2 has much less expressive power, not focused on
     in-memory models
   o Use incremental engines for on-the-fly queries
         • EMF-IncQuery supports on-the-fly validation, view maintenance, queries
           for frequently executed and performance sensitive model
           transformations, …
         • With RETE-based tools such as Drools or IncQuery, no manual
           metamodel/query etc. optimization necessary
         • Cost: additional memory requirements
 Else
   o To be investigated
EMF-INCQUERY
Overview
 A model query engine
  o Supports batch queries
  o Optimized for incremental queries!
 Incremental evaluation
  o   Based on the RETE algorithm
  o   Compute once, update afterwards
  o   Gain: Instant re-evaluation
  o   Price: Uses some more memory
       • Manageable with proper life cycles
Benefits
 Makes on-the-fly well-formedness validation, view maintenance, …
  feasible over really large instance models
 Simplifies writing really complex queries
   o Graph pattern language
       • Capture local & global constraints
       • Compositions, reusable constructs
       • Arbitrary recursion, negation
   o Highly reusable, you can even build query libraries
 Easy-to-integrate into existing apps
   o works with any EMF DSL
   o Integration through standard EMF APIs
New features: IncQuery v0.7
 Tooling
    o Xtext2-based tooling
    o New language features (w.i.p.)
        •   Unlimited recursion and transitive closure
        •   Short attribute notation
        •   Aggregate functions
        •   Match/exceed the expressive power of OCL, while providing more flexible re-use
 Runtime
    o Generic queries
        • Build and execute queries on-the-fly, using Java and IQ PL
    o RETE construction optimizations
        • memory footprint significantly reduced
    o SCC-based incremental transitive closure
 Extensions / add-ons
    o Derived features
    o Efficient complex event processing over models
    o Design-space exploration
Final points
 EMF-IncQuery: proposal submission process
  underway
  o New sub-project under EMFT

 Pointers
  o   http://viatra.inf.mit.bme.hu/publications/trainbenchmark
  o   http://viatra.inf.mit.bme.hu/incquery
  o   http://viatra.inf.mit.bme.hu/incquery/examples
  o   http://viatra.inf.mit.bme.hu/incquery/new


 Thank you very much!

Más contenido relacionado

La actualidad más candente

Design Patterns For 70% Of Programmers In The World
Design Patterns For 70% Of Programmers In The WorldDesign Patterns For 70% Of Programmers In The World
Design Patterns For 70% Of Programmers In The WorldSaurabh Moody
 
A Survey on Automatic Software Evolution Techniques
A Survey on Automatic Software Evolution TechniquesA Survey on Automatic Software Evolution Techniques
A Survey on Automatic Software Evolution TechniquesSung Kim
 
Towards JVM Dynamic Languages Toolchain
Towards JVM Dynamic Languages ToolchainTowards JVM Dynamic Languages Toolchain
Towards JVM Dynamic Languages ToolchainAttila Szegedi
 
香港六合彩 » SlideShare
香港六合彩 » SlideShare香港六合彩 » SlideShare
香港六合彩 » SlideShareyayao
 
A Natural Language Programming Approach for Requirements-based Security Testing
A Natural Language Programming Approach for Requirements-based Security TestingA Natural Language Programming Approach for Requirements-based Security Testing
A Natural Language Programming Approach for Requirements-based Security TestingLionel Briand
 
Deep API Learning (FSE 2016)
Deep API Learning (FSE 2016)Deep API Learning (FSE 2016)
Deep API Learning (FSE 2016)Sung Kim
 
Defaultification Refactoring: A Tool for Automatically Converting Java Method...
Defaultification Refactoring: A Tool for Automatically Converting Java Method...Defaultification Refactoring: A Tool for Automatically Converting Java Method...
Defaultification Refactoring: A Tool for Automatically Converting Java Method...Raffi Khatchadourian
 
Introduction to PSPICE
Introduction to PSPICEIntroduction to PSPICE
Introduction to PSPICEsyella
 
TMPA-2017: 5W+1H Static Analysis Report Quality Measure
TMPA-2017: 5W+1H Static Analysis Report Quality MeasureTMPA-2017: 5W+1H Static Analysis Report Quality Measure
TMPA-2017: 5W+1H Static Analysis Report Quality MeasureIosif Itkin
 
Automatic Assessment of Programming Assignments
Automatic Assessment of Programming AssignmentsAutomatic Assessment of Programming Assignments
Automatic Assessment of Programming AssignmentsPetri Ihantola
 
Dissertation Defense
Dissertation DefenseDissertation Defense
Dissertation DefenseSung Kim
 
REMI: Defect Prediction for Efficient API Testing (

ESEC/FSE 2015, Industria...
REMI: Defect Prediction for Efficient API Testing (

ESEC/FSE 2015, Industria...REMI: Defect Prediction for Efficient API Testing (

ESEC/FSE 2015, Industria...
REMI: Defect Prediction for Efficient API Testing (

ESEC/FSE 2015, Industria...Sung Kim
 
Introduction to java
Introduction to javaIntroduction to java
Introduction to javaSujit Majety
 
Partitioning Composite Code Changes to Facilitate Code Review (MSR2015)
Partitioning Composite Code Changes to Facilitate Code Review (MSR2015)Partitioning Composite Code Changes to Facilitate Code Review (MSR2015)
Partitioning Composite Code Changes to Facilitate Code Review (MSR2015)Sung Kim
 

La actualidad más candente (20)

Design Patterns For 70% Of Programmers In The World
Design Patterns For 70% Of Programmers In The WorldDesign Patterns For 70% Of Programmers In The World
Design Patterns For 70% Of Programmers In The World
 
A Survey on Automatic Software Evolution Techniques
A Survey on Automatic Software Evolution TechniquesA Survey on Automatic Software Evolution Techniques
A Survey on Automatic Software Evolution Techniques
 
Towards JVM Dynamic Languages Toolchain
Towards JVM Dynamic Languages ToolchainTowards JVM Dynamic Languages Toolchain
Towards JVM Dynamic Languages Toolchain
 
Core Java
Core JavaCore Java
Core Java
 
香港六合彩 » SlideShare
香港六合彩 » SlideShare香港六合彩 » SlideShare
香港六合彩 » SlideShare
 
A Natural Language Programming Approach for Requirements-based Security Testing
A Natural Language Programming Approach for Requirements-based Security TestingA Natural Language Programming Approach for Requirements-based Security Testing
A Natural Language Programming Approach for Requirements-based Security Testing
 
Deep API Learning (FSE 2016)
Deep API Learning (FSE 2016)Deep API Learning (FSE 2016)
Deep API Learning (FSE 2016)
 
Core Java
Core JavaCore Java
Core Java
 
Defaultification Refactoring: A Tool for Automatically Converting Java Method...
Defaultification Refactoring: A Tool for Automatically Converting Java Method...Defaultification Refactoring: A Tool for Automatically Converting Java Method...
Defaultification Refactoring: A Tool for Automatically Converting Java Method...
 
Introduction to PSPICE
Introduction to PSPICEIntroduction to PSPICE
Introduction to PSPICE
 
Java programming course for beginners
Java programming course for beginnersJava programming course for beginners
Java programming course for beginners
 
Java basics training 1
Java basics training 1Java basics training 1
Java basics training 1
 
Core java slides
Core java slidesCore java slides
Core java slides
 
TMPA-2017: 5W+1H Static Analysis Report Quality Measure
TMPA-2017: 5W+1H Static Analysis Report Quality MeasureTMPA-2017: 5W+1H Static Analysis Report Quality Measure
TMPA-2017: 5W+1H Static Analysis Report Quality Measure
 
Automatic Assessment of Programming Assignments
Automatic Assessment of Programming AssignmentsAutomatic Assessment of Programming Assignments
Automatic Assessment of Programming Assignments
 
Dissertation Defense
Dissertation DefenseDissertation Defense
Dissertation Defense
 
REMI: Defect Prediction for Efficient API Testing (

ESEC/FSE 2015, Industria...
REMI: Defect Prediction for Efficient API Testing (

ESEC/FSE 2015, Industria...REMI: Defect Prediction for Efficient API Testing (

ESEC/FSE 2015, Industria...
REMI: Defect Prediction for Efficient API Testing (

ESEC/FSE 2015, Industria...
 
Introduction to java
Introduction to javaIntroduction to java
Introduction to java
 
Partitioning Composite Code Changes to Facilitate Code Review (MSR2015)
Partitioning Composite Code Changes to Facilitate Code Review (MSR2015)Partitioning Composite Code Changes to Facilitate Code Review (MSR2015)
Partitioning Composite Code Changes to Facilitate Code Review (MSR2015)
 
Understanding Annotations in Java
Understanding Annotations in JavaUnderstanding Annotations in Java
Understanding Annotations in Java
 

Similar a High-performance model queries

Xcore meets IncQuery: How the New Generation of DSLs are Made
Xcore meets IncQuery: How the New Generation of DSLs are MadeXcore meets IncQuery: How the New Generation of DSLs are Made
Xcore meets IncQuery: How the New Generation of DSLs are MadeIstvan Rath
 
A tutorial on EMF-IncQuery
A tutorial on EMF-IncQueryA tutorial on EMF-IncQuery
A tutorial on EMF-IncQueryIstvan Rath
 
EclipseCon Eu 2015 - Breathe life into your Designer!
EclipseCon Eu 2015 - Breathe life into your Designer!EclipseCon Eu 2015 - Breathe life into your Designer!
EclipseCon Eu 2015 - Breathe life into your Designer!melbats
 
Object- Relational Persistence in Smalltalk
Object- Relational Persistence in SmalltalkObject- Relational Persistence in Smalltalk
Object- Relational Persistence in SmalltalkESUG
 
Eclipse Modeling Framework (EMF) and Graphical Modeling Framework (GMF)
Eclipse Modeling Framework (EMF) and Graphical Modeling Framework (GMF)Eclipse Modeling Framework (EMF) and Graphical Modeling Framework (GMF)
Eclipse Modeling Framework (EMF) and Graphical Modeling Framework (GMF)Dimitris Kolovos
 
On the Use of an Internal DSL for Enriching EMF Models
On the Use of an Internal DSL for Enriching EMF ModelsOn the Use of an Internal DSL for Enriching EMF Models
On the Use of an Internal DSL for Enriching EMF ModelsFilip Krikava
 
Introduction to OpenSees by Frank McKenna
Introduction to OpenSees by Frank McKennaIntroduction to OpenSees by Frank McKenna
Introduction to OpenSees by Frank McKennaopenseesdays
 
Domain oriented development
Domain oriented developmentDomain oriented development
Domain oriented developmentrajmundr
 
Build Java Web Application Using Apache Struts
Build Java Web Application Using Apache Struts Build Java Web Application Using Apache Struts
Build Java Web Application Using Apache Struts weili_at_slideshare
 
Cutting Edge Computer Vision for Everyone
Cutting Edge Computer Vision for EveryoneCutting Edge Computer Vision for Everyone
Cutting Edge Computer Vision for EveryoneIvo Andreev
 
Model visualization made easy: Incremental query-driven views in modeling tools
Model visualization made easy: Incremental query-driven views in modeling toolsModel visualization made easy: Incremental query-driven views in modeling tools
Model visualization made easy: Incremental query-driven views in modeling toolsÁkos Horváth
 
Object Oriented Concepts and Principles
Object Oriented Concepts and PrinciplesObject Oriented Concepts and Principles
Object Oriented Concepts and Principlesdeonpmeyer
 
Distributed Model Validation with Epsilon
Distributed Model Validation with EpsilonDistributed Model Validation with Epsilon
Distributed Model Validation with EpsilonSina Madani
 
The secret life of rules in Software Engineering
The secret life of rules in Software EngineeringThe secret life of rules in Software Engineering
The secret life of rules in Software EngineeringJordi Cabot
 
Efficient Validation of Large Models using the Mogwaï Tool
Efficient Validation of Large Models using the Mogwaï ToolEfficient Validation of Large Models using the Mogwaï Tool
Efficient Validation of Large Models using the Mogwaï ToolGwendal Daniel
 
Constrained Optimization with Genetic Algorithms and Project Bonsai
Constrained Optimization with Genetic Algorithms and Project BonsaiConstrained Optimization with Genetic Algorithms and Project Bonsai
Constrained Optimization with Genetic Algorithms and Project BonsaiIvo Andreev
 
COMMitMDE'18: Eclipse Hawk: model repository querying as a service
COMMitMDE'18: Eclipse Hawk: model repository querying as a serviceCOMMitMDE'18: Eclipse Hawk: model repository querying as a service
COMMitMDE'18: Eclipse Hawk: model repository querying as a serviceAntonio García-Domínguez
 

Similar a High-performance model queries (20)

Xcore meets IncQuery: How the New Generation of DSLs are Made
Xcore meets IncQuery: How the New Generation of DSLs are MadeXcore meets IncQuery: How the New Generation of DSLs are Made
Xcore meets IncQuery: How the New Generation of DSLs are Made
 
A tutorial on EMF-IncQuery
A tutorial on EMF-IncQueryA tutorial on EMF-IncQuery
A tutorial on EMF-IncQuery
 
EclipseCon Eu 2015 - Breathe life into your Designer!
EclipseCon Eu 2015 - Breathe life into your Designer!EclipseCon Eu 2015 - Breathe life into your Designer!
EclipseCon Eu 2015 - Breathe life into your Designer!
 
Object- Relational Persistence in Smalltalk
Object- Relational Persistence in SmalltalkObject- Relational Persistence in Smalltalk
Object- Relational Persistence in Smalltalk
 
Eclipse Modeling Framework (EMF) and Graphical Modeling Framework (GMF)
Eclipse Modeling Framework (EMF) and Graphical Modeling Framework (GMF)Eclipse Modeling Framework (EMF) and Graphical Modeling Framework (GMF)
Eclipse Modeling Framework (EMF) and Graphical Modeling Framework (GMF)
 
CoreML
CoreMLCoreML
CoreML
 
On the Use of an Internal DSL for Enriching EMF Models
On the Use of an Internal DSL for Enriching EMF ModelsOn the Use of an Internal DSL for Enriching EMF Models
On the Use of an Internal DSL for Enriching EMF Models
 
Introduction to OpenSees by Frank McKenna
Introduction to OpenSees by Frank McKennaIntroduction to OpenSees by Frank McKenna
Introduction to OpenSees by Frank McKenna
 
Domain oriented development
Domain oriented developmentDomain oriented development
Domain oriented development
 
Build Java Web Application Using Apache Struts
Build Java Web Application Using Apache Struts Build Java Web Application Using Apache Struts
Build Java Web Application Using Apache Struts
 
Cutting Edge Computer Vision for Everyone
Cutting Edge Computer Vision for EveryoneCutting Edge Computer Vision for Everyone
Cutting Edge Computer Vision for Everyone
 
Model visualization made easy: Incremental query-driven views in modeling tools
Model visualization made easy: Incremental query-driven views in modeling toolsModel visualization made easy: Incremental query-driven views in modeling tools
Model visualization made easy: Incremental query-driven views in modeling tools
 
Object Oriented Concepts and Principles
Object Oriented Concepts and PrinciplesObject Oriented Concepts and Principles
Object Oriented Concepts and Principles
 
Distributed Model Validation with Epsilon
Distributed Model Validation with EpsilonDistributed Model Validation with Epsilon
Distributed Model Validation with Epsilon
 
The secret life of rules in Software Engineering
The secret life of rules in Software EngineeringThe secret life of rules in Software Engineering
The secret life of rules in Software Engineering
 
Efficient Validation of Large Models using the Mogwaï Tool
Efficient Validation of Large Models using the Mogwaï ToolEfficient Validation of Large Models using the Mogwaï Tool
Efficient Validation of Large Models using the Mogwaï Tool
 
Constrained Optimization with Genetic Algorithms and Project Bonsai
Constrained Optimization with Genetic Algorithms and Project BonsaiConstrained Optimization with Genetic Algorithms and Project Bonsai
Constrained Optimization with Genetic Algorithms and Project Bonsai
 
Sadiq786
Sadiq786Sadiq786
Sadiq786
 
COMMitMDE'18: Eclipse Hawk: model repository querying as a service
COMMitMDE'18: Eclipse Hawk: model repository querying as a serviceCOMMitMDE'18: Eclipse Hawk: model repository querying as a service
COMMitMDE'18: Eclipse Hawk: model repository querying as a service
 
Eclipse OCL Summary
Eclipse OCL SummaryEclipse OCL Summary
Eclipse OCL Summary
 

Más de Istvan Rath

Cloud-based Modelling Solutions Empowering Tool Integration
Cloud-based Modelling Solutions Empowering Tool IntegrationCloud-based Modelling Solutions Empowering Tool Integration
Cloud-based Modelling Solutions Empowering Tool IntegrationIstvan Rath
 
Cloud-based Modelling Solutions Empowering Tool Integration
Cloud-based Modelling Solutions Empowering Tool IntegrationCloud-based Modelling Solutions Empowering Tool Integration
Cloud-based Modelling Solutions Empowering Tool IntegrationIstvan Rath
 
MBSE meets Industrial IoT: Introducing the New MagicDraw Plug-in for RTI Co...
MBSE meets Industrial IoT: Introducing the New MagicDraw Plug-in for RTI Co...MBSE meets Industrial IoT: Introducing the New MagicDraw Plug-in for RTI Co...
MBSE meets Industrial IoT: Introducing the New MagicDraw Plug-in for RTI Co...Istvan Rath
 
IncQuery Server for Teamwork Cloud - Talk at IW2019
IncQuery Server for Teamwork Cloud - Talk at IW2019IncQuery Server for Teamwork Cloud - Talk at IW2019
IncQuery Server for Teamwork Cloud - Talk at IW2019Istvan Rath
 
VIATRA 2.0 Webinar
VIATRA 2.0 WebinarVIATRA 2.0 Webinar
VIATRA 2.0 WebinarIstvan Rath
 
Easier smart home development with simulators and rule engines
Easier smart home development with simulators and rule enginesEasier smart home development with simulators and rule engines
Easier smart home development with simulators and rule enginesIstvan Rath
 
Eclipse VIATRA Overview 2017
Eclipse VIATRA Overview 2017Eclipse VIATRA Overview 2017
Eclipse VIATRA Overview 2017Istvan Rath
 
Smarter internet of things with stream and event processing virtual io_t_meet...
Smarter internet of things with stream and event processing virtual io_t_meet...Smarter internet of things with stream and event processing virtual io_t_meet...
Smarter internet of things with stream and event processing virtual io_t_meet...Istvan Rath
 
Modes3: Model-based Demonstrator for Smart and Safe Systems
Modes3: Model-based Demonstrator for Smart and Safe SystemsModes3: Model-based Demonstrator for Smart and Safe Systems
Modes3: Model-based Demonstrator for Smart and Safe SystemsIstvan Rath
 
Eclipse DemoCamp Budapest 2016 November: Best of EclipseCon Europe 2016
Eclipse DemoCamp Budapest 2016 November: Best of EclipseCon Europe 2016Eclipse DemoCamp Budapest 2016 November: Best of EclipseCon Europe 2016
Eclipse DemoCamp Budapest 2016 November: Best of EclipseCon Europe 2016Istvan Rath
 
Exploring the Future of Eclipse Modeling: Web and Semantic Collaboration
Exploring the Future of Eclipse Modeling: Web and Semantic CollaborationExploring the Future of Eclipse Modeling: Web and Semantic Collaboration
Exploring the Future of Eclipse Modeling: Web and Semantic CollaborationIstvan Rath
 
Okosabb Internet of Things rendszerek komplex eseményfeldolgozás alkalmazásával
Okosabb Internet of Things rendszerek komplex eseményfeldolgozás alkalmazásával Okosabb Internet of Things rendszerek komplex eseményfeldolgozás alkalmazásával
Okosabb Internet of Things rendszerek komplex eseményfeldolgozás alkalmazásával Istvan Rath
 
IoT Supercharged: Complex event processing for MQTT with Eclipse technologies
IoT Supercharged: Complex event processing for MQTT with Eclipse technologiesIoT Supercharged: Complex event processing for MQTT with Eclipse technologies
IoT Supercharged: Complex event processing for MQTT with Eclipse technologiesIstvan Rath
 
mbeddr meets IncQuer - Combining the Best Features of Two Modeling Worlds
mbeddr meets IncQuer - Combining the Best Features of Two Modeling Worldsmbeddr meets IncQuer - Combining the Best Features of Two Modeling Worlds
mbeddr meets IncQuer - Combining the Best Features of Two Modeling WorldsIstvan Rath
 
Event-driven Model Transformations in Domain-specific Modeling Languages
Event-driven Model Transformations in Domain-specific Modeling LanguagesEvent-driven Model Transformations in Domain-specific Modeling Languages
Event-driven Model Transformations in Domain-specific Modeling LanguagesIstvan Rath
 
The SENSORIA Development Environment
The SENSORIA Development EnvironmentThe SENSORIA Development Environment
The SENSORIA Development EnvironmentIstvan Rath
 
Challenges for advanced domain-specific frameworks
Challenges for advanced domain-specific frameworksChallenges for advanced domain-specific frameworks
Challenges for advanced domain-specific frameworksIstvan Rath
 
Transzformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésben
Transzformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésbenTranszformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésben
Transzformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésbenIstvan Rath
 
Change-driven model transformations
Change-driven model transformationsChange-driven model transformations
Change-driven model transformationsIstvan Rath
 
Domain-specifikus nyelvek a fejlesztésben
Domain-specifikus nyelvek a fejlesztésbenDomain-specifikus nyelvek a fejlesztésben
Domain-specifikus nyelvek a fejlesztésbenIstvan Rath
 

Más de Istvan Rath (20)

Cloud-based Modelling Solutions Empowering Tool Integration
Cloud-based Modelling Solutions Empowering Tool IntegrationCloud-based Modelling Solutions Empowering Tool Integration
Cloud-based Modelling Solutions Empowering Tool Integration
 
Cloud-based Modelling Solutions Empowering Tool Integration
Cloud-based Modelling Solutions Empowering Tool IntegrationCloud-based Modelling Solutions Empowering Tool Integration
Cloud-based Modelling Solutions Empowering Tool Integration
 
MBSE meets Industrial IoT: Introducing the New MagicDraw Plug-in for RTI Co...
MBSE meets Industrial IoT: Introducing the New MagicDraw Plug-in for RTI Co...MBSE meets Industrial IoT: Introducing the New MagicDraw Plug-in for RTI Co...
MBSE meets Industrial IoT: Introducing the New MagicDraw Plug-in for RTI Co...
 
IncQuery Server for Teamwork Cloud - Talk at IW2019
IncQuery Server for Teamwork Cloud - Talk at IW2019IncQuery Server for Teamwork Cloud - Talk at IW2019
IncQuery Server for Teamwork Cloud - Talk at IW2019
 
VIATRA 2.0 Webinar
VIATRA 2.0 WebinarVIATRA 2.0 Webinar
VIATRA 2.0 Webinar
 
Easier smart home development with simulators and rule engines
Easier smart home development with simulators and rule enginesEasier smart home development with simulators and rule engines
Easier smart home development with simulators and rule engines
 
Eclipse VIATRA Overview 2017
Eclipse VIATRA Overview 2017Eclipse VIATRA Overview 2017
Eclipse VIATRA Overview 2017
 
Smarter internet of things with stream and event processing virtual io_t_meet...
Smarter internet of things with stream and event processing virtual io_t_meet...Smarter internet of things with stream and event processing virtual io_t_meet...
Smarter internet of things with stream and event processing virtual io_t_meet...
 
Modes3: Model-based Demonstrator for Smart and Safe Systems
Modes3: Model-based Demonstrator for Smart and Safe SystemsModes3: Model-based Demonstrator for Smart and Safe Systems
Modes3: Model-based Demonstrator for Smart and Safe Systems
 
Eclipse DemoCamp Budapest 2016 November: Best of EclipseCon Europe 2016
Eclipse DemoCamp Budapest 2016 November: Best of EclipseCon Europe 2016Eclipse DemoCamp Budapest 2016 November: Best of EclipseCon Europe 2016
Eclipse DemoCamp Budapest 2016 November: Best of EclipseCon Europe 2016
 
Exploring the Future of Eclipse Modeling: Web and Semantic Collaboration
Exploring the Future of Eclipse Modeling: Web and Semantic CollaborationExploring the Future of Eclipse Modeling: Web and Semantic Collaboration
Exploring the Future of Eclipse Modeling: Web and Semantic Collaboration
 
Okosabb Internet of Things rendszerek komplex eseményfeldolgozás alkalmazásával
Okosabb Internet of Things rendszerek komplex eseményfeldolgozás alkalmazásával Okosabb Internet of Things rendszerek komplex eseményfeldolgozás alkalmazásával
Okosabb Internet of Things rendszerek komplex eseményfeldolgozás alkalmazásával
 
IoT Supercharged: Complex event processing for MQTT with Eclipse technologies
IoT Supercharged: Complex event processing for MQTT with Eclipse technologiesIoT Supercharged: Complex event processing for MQTT with Eclipse technologies
IoT Supercharged: Complex event processing for MQTT with Eclipse technologies
 
mbeddr meets IncQuer - Combining the Best Features of Two Modeling Worlds
mbeddr meets IncQuer - Combining the Best Features of Two Modeling Worldsmbeddr meets IncQuer - Combining the Best Features of Two Modeling Worlds
mbeddr meets IncQuer - Combining the Best Features of Two Modeling Worlds
 
Event-driven Model Transformations in Domain-specific Modeling Languages
Event-driven Model Transformations in Domain-specific Modeling LanguagesEvent-driven Model Transformations in Domain-specific Modeling Languages
Event-driven Model Transformations in Domain-specific Modeling Languages
 
The SENSORIA Development Environment
The SENSORIA Development EnvironmentThe SENSORIA Development Environment
The SENSORIA Development Environment
 
Challenges for advanced domain-specific frameworks
Challenges for advanced domain-specific frameworksChallenges for advanced domain-specific frameworks
Challenges for advanced domain-specific frameworks
 
Transzformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésben
Transzformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésbenTranszformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésben
Transzformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésben
 
Change-driven model transformations
Change-driven model transformationsChange-driven model transformations
Change-driven model transformations
 
Domain-specifikus nyelvek a fejlesztésben
Domain-specifikus nyelvek a fejlesztésbenDomain-specifikus nyelvek a fejlesztésben
Domain-specifikus nyelvek a fejlesztésben
 

Último

New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 

Último (20)

New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 

High-performance model queries

  • 1. High performance model queries and their novel applications Benedek Izsó Zoltán Szatmári István Ráth Budapest University of Technology and Economics Workshop on Eclipse Open Source Software and OMG Open Specifications Fault Tolerant Systems Research Group EclipseCon 2012, Reston, VA, USA 2012. 03. 25.
  • 2. The speaker’s background  Research @ academia o Metamodeling, DSMLs, model transformations, … • The VIATRA2 Model Transformation Framework (2004-) o Model queries • The EMF-IncQuery project (2010-)  Consulting & Development @ industry o Eclipse consultant and trainer (2006-) o Architect, model-driven tools and projects (2008-)
  • 3. The problem  Scalable modeling tools o Issues encountered by several industrial partners using EMF-based tools o Modeling scenarios can get really complex really quickly • Instance models of size 1-10M and beyond • Performance issues with model transformations and code generators have an adverse effect on everyday development tasks  Scalability o Complex (meta)models o Large instance models o High performance model I/O
  • 4. Focus: model queries  Model queries o “a piece of code that retrieves a given set of the model”  Ubiquitous o Every model access/read is a (simple) query o More complex: Views, content providers o Most complex: Model transformations, code generators  In interactive (user-driven) use cases, queries are far more common than model manipulation o  query performance is crucial  Query performance o The speed of content retrieval • First vs consecutive vs throughput • Query result vs query contents  Essence of performance issues o slow queries o Considerable programming effort necessary to get complex queries right
  • 5. Technology landscape – what to build a modeling tool on?  Eclipse Modeling o EMF (&variants, CDO, …) o Proven tools: Plain Java queries, OCL (&variants), EMF Query (1-2) o New/experimental technologies: EMF-IncQuery, JBoss Drools, …  Triple stores / graph databases o OWL/RDF, SPARQL o RacerPro, Pellet, Sesame, Jena, OpenVirtuoso, Allegro, StarDog o Modeling tools: not (yet) a traditional use case o But… • Huge, distributed knowledge bases Further options • Highly optimized SPARQL engines (not covered yet) • Expensive commercial tools • Modeling frameworks other  Relational DB than EMF o SQL, PL/SQL, In-memory • Plain XML/XPath o Overhead: ORM layers • OO DB • K-V (NoSQL) …
  • 6. Assessment through benchmarking  Railway system design DSML  Benchmark: well-formedness checking in 4 phases, using in-memory models o Phase1: model load into memory (READ) o Phase2: rule validation (retrieve all invalid elements) (CHECK1) o Phase3: scattered, programmatic, in-memory model modification (introducing new errors) (EDIT) o Phase4: revalidation (retrieve all invalid elements) (CHECK2)  Several test queries with different characteristics o Varying “difficulty” o Approx. same percentage of invalid elements present in the model for all queries o Tool expected to return ALL invalid model elements with references/IDs  Measured o Execution times for all phases o Memory usage over the entire sequence
  • 7. Focus  Model sizes: up to 2.5M elements o Industrial partner: we would like to see 10M+ elements! • Note: 10M+ model elements ~ 50M+ triples o This is not yet possible with in-memory tech   Query complexity o Typical well-formedness constraints similar to actual tools o Ranging from simple attribute checking to complex structural checks (circle detection)  Interesting use cases o READ+CHECK1: “batch validator” (models are read into memory, rules are evaluated) o EDIT+CHECK2: “on-the-fly revalidation in an editor” (list of invalid elements updated according to changes in the model)
  • 9. Disclaimer  This is still work in progress  External audits (not complete yet) o OCL: Ed Willink o Drools: Mark Proctor o Java: our industrial partner (Eclipse-based tool development) o OWL/SPARQL: technology experts at an academic partner  Detailed results, analysis and the corpus will be available online o This is just an appetizer 
  • 10. Question 1  Q: How does model size affect query performance?
  • 11. Batch validation SPARQL tools are Read time is dominating generally 1-2 Orders-of- Magnitude (OM) slower than top EMF tools Eclipse OCL does really well here, followed closely by IncQuery
  • 12. Revalidation on-the-fly Incremental EMF engines typically 5-10x faster, sub-100ms response times for up to 1.5M elements
  • 13. A closer look to the top Performance advantage of OCL-IA over OCL is not significant with complex queries
  • 15. Answer 1  Q: How does model size affect query performance?  A: Polynomial growth in response times. o Batch validation: execution times grow according to a low-order polynomial (exponent depends on the technology) o On-the-fly revalidation: similarly, but incremental engines achieve much lower exponents (can be even close to constant)
  • 16. Question 2  Q: How does the complexity of the query affect performance?
  • 17. Re-validation on-the-fly • 1-2 OM differences with OCL • Max 0.5 OM difference with IQ
  • 18. Answer 2  Q: How does the complexity of the query affect performance?  A: Significantly! o Metamodel and contents of the query together determine the overall performance • E.g. inverse relations and model navigation • Metamodel and queries should be optimized together o RETE-based tools (Drools, IncQuery) can get around this • High performance regardless of metamodel & query structure • At the cost of increased memory overhead – But (much) less than OCL-IA!
  • 19. Results  Fastest batch validator: Eclipse OCL  Fastest incremental validator: EMF-IncQuery  Fast OWL tools (RDF reasoners): Sesame, Jena o Significantly better than commercial SPARQL engines o But at least 1-2 OM slower than top EMF technologies  (In-memory) RDBMS are slow o Due to ORM overhead o Omitted for simplicity, full report will be online
  • 20. How to build a scalable modeling tool?  If everything fits into your workstations’ RAM o 8GB RAM  1-2M model elements o You can (& should) (continue to) use EMF • EMF tweaks (e.g. diet) have no significant impact • Instead, optimize queries and metamodels o Use Eclipse OCL for batch validation EMF Query 1-2 has much less expressive power, not focused on in-memory models o Use incremental engines for on-the-fly queries • EMF-IncQuery supports on-the-fly validation, view maintenance, queries for frequently executed and performance sensitive model transformations, … • With RETE-based tools such as Drools or IncQuery, no manual metamodel/query etc. optimization necessary • Cost: additional memory requirements  Else o To be investigated
  • 22. Overview  A model query engine o Supports batch queries o Optimized for incremental queries!  Incremental evaluation o Based on the RETE algorithm o Compute once, update afterwards o Gain: Instant re-evaluation o Price: Uses some more memory • Manageable with proper life cycles
  • 23. Benefits  Makes on-the-fly well-formedness validation, view maintenance, … feasible over really large instance models  Simplifies writing really complex queries o Graph pattern language • Capture local & global constraints • Compositions, reusable constructs • Arbitrary recursion, negation o Highly reusable, you can even build query libraries  Easy-to-integrate into existing apps o works with any EMF DSL o Integration through standard EMF APIs
  • 24. New features: IncQuery v0.7  Tooling o Xtext2-based tooling o New language features (w.i.p.) • Unlimited recursion and transitive closure • Short attribute notation • Aggregate functions • Match/exceed the expressive power of OCL, while providing more flexible re-use  Runtime o Generic queries • Build and execute queries on-the-fly, using Java and IQ PL o RETE construction optimizations • memory footprint significantly reduced o SCC-based incremental transitive closure  Extensions / add-ons o Derived features o Efficient complex event processing over models o Design-space exploration
  • 25. Final points  EMF-IncQuery: proposal submission process underway o New sub-project under EMFT  Pointers o http://viatra.inf.mit.bme.hu/publications/trainbenchmark o http://viatra.inf.mit.bme.hu/incquery o http://viatra.inf.mit.bme.hu/incquery/examples o http://viatra.inf.mit.bme.hu/incquery/new  Thank you very much!