derived features for emf by integrating advanced model queries
TRANSCRIPT
![Page 1: Derived Features for EMF by Integrating Advanced Model Queries](https://reader030.vdocument.in/reader030/viewer/2022032419/55a2a2cd1a28abd53f8b45d5/html5/thumbnails/1.jpg)
Budapest University of Technology and EconomicsDepartment of Measurement and Information Systems
Derived Features for EMF by Integrating Advanced Model Queries
István Ráth, Ábel Hegedüs and Dániel VarróBudapest University of Technology and Economics
ECMFA, 2012.07.04.
![Page 2: Derived Features for EMF by Integrating Advanced Model Queries](https://reader030.vdocument.in/reader030/viewer/2022032419/55a2a2cd1a28abd53f8b45d5/html5/thumbnails/2.jpg)
Motivating example
2
T = {}BUTE: School
VD: Teacher
BUTE
VD
teachers
T = {VD}
Metamodel
Instance model
Change notification:ADD(teachers, VD)
View
View gets updatedautomatically when the
model changesModel notifies listeners
upon changes
![Page 3: Derived Features for EMF by Integrating Advanced Model Queries](https://reader030.vdocument.in/reader030/viewer/2022032419/55a2a2cd1a28abd53f8b45d5/html5/thumbnails/3.jpg)
School metamodel in EMF
<<derived>>
<<derived>>
<<derived>>
„Teachers with the maximum number of courses assigned, among teachers of the same
school”
„Number of teachersin the school”
„Year with maximum starting date”
![Page 4: Derived Features for EMF by Integrating Advanced Model Queries](https://reader030.vdocument.in/reader030/viewer/2022032419/55a2a2cd1a28abd53f8b45d5/html5/thumbnails/4.jpg)
User-defined derived features
NoT = 1BUTE: School BUTE
VD
teachers
T = {VD}
Metamodel
Instance model View
VD: Teacher
T = {VD,RI}
teachers
RI: Teacher
Change notification:ADD(teachers, VD)
NoT = 2NoT = 1
Notification not sent forderived feature change!
View inconsistent untilmanual refresh!
RI
![Page 5: Derived Features for EMF by Integrating Advanced Model Queries](https://reader030.vdocument.in/reader030/viewer/2022032419/55a2a2cd1a28abd53f8b45d5/html5/thumbnails/5.jpg)
Ideal derived features
NoT = 1BUTE: School BUTE
teachers
T = {VD}
Metamodel
Instance model View
VD: Teacher
T = {VD,RI}
teachers
RI: Teacher
Change notification:ADD(teachers, VD)SET(NoT, 1, 2)
NoT = 2NoT = 1
Notification sent forderived feature change!
NoT = 2
VD RI
![Page 6: Derived Features for EMF by Integrating Advanced Model Queries](https://reader030.vdocument.in/reader030/viewer/2022032419/55a2a2cd1a28abd53f8b45d5/html5/thumbnails/6.jpg)
EMF-INCQUERY Overview
A model query engine for batch and live queries
• Expressive graph pattern-based query language
• Focus on reusability: query libraries, recursive pattern calls
Language
• Incrementalevaluation
• Instantaneous response for complex queries over large instance models
Performance
• On-the-fly well-formednes validation
• Incremental view maintenance
• Model synchronization
• Derived features
Use cases
http://viatra.inf.mit.bme.hu/incquery http://viatra.inf.mit.bme.hu/incquery/getting_started http://www.eclipse.org/proposals/modeling.emf.incquery/
![Page 7: Derived Features for EMF by Integrating Advanced Model Queries](https://reader030.vdocument.in/reader030/viewer/2022032419/55a2a2cd1a28abd53f8b45d5/html5/thumbnails/7.jpg)
• Declarative modelqueries
• Minimizeimperative code
Language
• Affects every part of the application
• Incrementalre-evaluation
Performance
• Developmenteffort
• Tool support
EMF integration of derived features
Important aspects of derived features
![Page 8: Derived Features for EMF by Integrating Advanced Model Queries](https://reader030.vdocument.in/reader030/viewer/2022032419/55a2a2cd1a28abd53f8b45d5/html5/thumbnails/8.jpg)
Derived features as model queries
Derived features can be represented as:o A set of relevant elements from the model
o An iterative algorithm over these elements Model query
Result can be updated withoutcomplete recalculation,
if an element is added to orremoved from the set
notification(ADD, School.teachers, teacher)-> School.numberOfTeachers++notification(REMOVE, School.teachers, teacher)-> School.numberOfTeachers--
ModelQuery(A,B): • tuples of model elements A, B• satisfying the query condition• enumerate 1 / all instances• A,B can be input or output
![Page 9: Derived Features for EMF by Integrating Advanced Model Queries](https://reader030.vdocument.in/reader030/viewer/2022032419/55a2a2cd1a28abd53f8b45d5/html5/thumbnails/9.jpg)
Advanced model queries
9
pattern teachersWithMostCourses(School : School, Teacher : Teacher) = {School.teachers(School,Teacher);neg find moreCourses(Teacher);}
pattern moreCourses(Teacher : Teacher) = {N == count find coursesOfTeacher(Teacher,_Course);M == count find coursesOfTeacher(Teacher2,_Course2);Teacher(Teacher2);Teacher != Teacher2;check(N < M);}
Queryparameters
Negativeapplicationcondition
Match counting
Checkexpression
![Page 10: Derived Features for EMF by Integrating Advanced Model Queries](https://reader030.vdocument.in/reader030/viewer/2022032419/55a2a2cd1a28abd53f8b45d5/html5/thumbnails/10.jpg)
• Declarative modelqueries
• Minimizeimperative code
Language
• Affects every part of the application
• Incrementalre-evaluation
Performance
• Developmenteffort
• Tool support
EMF integration of derived features
Important aspects of derived features
![Page 11: Derived Features for EMF by Integrating Advanced Model Queries](https://reader030.vdocument.in/reader030/viewer/2022032419/55a2a2cd1a28abd53f8b45d5/html5/thumbnails/11.jpg)
Derived features life cycle 1 – basic case
Application
ModelComplete
recalculation
RequestderivedvalueB1
B2
Getcurrentvalue
Value retrieval
• Model navigation• Filtering• Aggregation
Called when:• selected in editor• model traversal• serialization• etc.
![Page 12: Derived Features for EMF by Integrating Advanced Model Queries](https://reader030.vdocument.in/reader030/viewer/2022032419/55a2a2cd1a28abd53f8b45d5/html5/thumbnails/12.jpg)
Efficient derived features
Derived features life cycle 2 – efficient case
Application
ModelDerivedFeature
IncrementalQuery engine
EMF model reference + Change notifications
Initialization + Model
manipulation Deltamonitors
Requestderivedvalue
A3
A1
A2
A4
B1
B2
Getcurrentvalue
Incremental update
Value retrieval from cache
![Page 13: Derived Features for EMF by Integrating Advanced Model Queries](https://reader030.vdocument.in/reader030/viewer/2022032419/55a2a2cd1a28abd53f8b45d5/html5/thumbnails/13.jpg)
Query engine
RETE networkInput nodes
Intermediate nodes
Outputnodes
Deltamonitor
EMF instance model
Generated query components
Input = Model contents + changes (EMF notifications)
Output = Query results + (subsequent) Query result deltas
Query definition
Incremental evaluation of queries
![Page 14: Derived Features for EMF by Integrating Advanced Model Queries](https://reader030.vdocument.in/reader030/viewer/2022032419/55a2a2cd1a28abd53f8b45d5/html5/thumbnails/14.jpg)
A quick look into performance
Performance advantage of OCL-IA over
EclipseOCL is not significant with complex
queries
INCQUERY is 1-1.5 orders-of-magnitude faster
than Eclipse OCL-IA
http://viatra.inf.mit.bme.hu/performance
Constraint evaluation over large instance models
![Page 15: Derived Features for EMF by Integrating Advanced Model Queries](https://reader030.vdocument.in/reader030/viewer/2022032419/55a2a2cd1a28abd53f8b45d5/html5/thumbnails/15.jpg)
• Declarative modelqueries
• Minimizeimperative code
Language
• Affects every part of the application
• Incrementalre-evaluation
Performance
• Developmenteffort
• Tool support
EMF integration of derived features
Important aspects of derived features
![Page 16: Derived Features for EMF by Integrating Advanced Model Queries](https://reader030.vdocument.in/reader030/viewer/2022032419/55a2a2cd1a28abd53f8b45d5/html5/thumbnails/16.jpg)
<<derived>>
DEMO Developing derived features
private IncqueryFeatureHandler teachersWithMostCourses;public EList<Teacher> getTeachersWithMostCourses() {return IncqueryFeatureHelper.getManyReferenceValueForHandler(teachersWithMostCourses, this,SchoolPackage.Literals.SCHOOL__TEACHERS_WITH_MOST_COURSES);}
@DerivedFeature(feature = "teachersWithMostCourses")pattern teacherWithMostCourses(School : School, Teacher : Teacher) = {
find teachers(School,Teacher);neg find moreCourses(Teacher);
}
1. Define feature in metamodel
2. Define model query withEMF-IncQuery
3. Generate glue codeautomatically
![Page 17: Derived Features for EMF by Integrating Advanced Model Queries](https://reader030.vdocument.in/reader030/viewer/2022032419/55a2a2cd1a28abd53f8b45d5/html5/thumbnails/17.jpg)
Future workQuery-driven soft interconnections between EMF models
Handling references between different models by integrated queries(Paper at MODELS 2012)
Derived objects backed by model queriesRepresent query results as objects in the modelLife cycle managed by EMF-INCQUERY
• Expressivegraph-basedmodel querylanguage
Language
• Incrementalevaluationtechnique
Performance
• Easy integration through code generation
EMF integration
SummaryEfficient and automated computation ofderived features in EMF
![Page 18: Derived Features for EMF by Integrating Advanced Model Queries](https://reader030.vdocument.in/reader030/viewer/2022032419/55a2a2cd1a28abd53f8b45d5/html5/thumbnails/18.jpg)
Final points
EMF-INCQUERY 0.6 preview is available immediately
oWith complete support for derived featureso http://viatra.inf.mit.bme.hu/incquery/new/examples/derivedfeatures
Thank you very much!