Modeling avengers – open source technology mix for saving the world econ fr

Preview:

Citation preview

MODELING AVENGERS

OSS TECHNOLOGY MIX FOR SAVINGTHE WORLD

, OBEO ( )

, INRIA and Univ. Rennes 1 ( )

Cédric Brun @bruncedric

Benoit Combemale @bcombemale

Slides available at http://cedric.brun.io/talks/ModelingAvengers/

GEMOCThe GEMOC ANR project ( ):

A Language Workbench for concurrent execution andsimulation of heterogeneous models

The GEMOC Initiative ( ):

GEMOC is an open international initiative that aims tocoordinate and disseminate the research results regardingthe support of the coordinated use of various modelinglanguages that will lead to the concept of globalization ofmodeling languages, that is, the use of multiple modelinglanguages to support coordinated development of diverseaspects of a system.

http://gemoc.org/ins

http://gemoc.org/

French National Institute for Agricultural Research

   

WATER RESOURCE MANAGEMENT INAGRICULTURE

Cultivator has to book for water one year in advanceAdministration has to make sure there is twice thequantity which has been booked for the whole region.Domain expert (INRA) wants to defines and assess newcultures activitiesMULTIPLE STAKEHOLDERS, MULTIPLE CONCERNS AND

SCALES

DECISIONS

Which field to use for growing what ?How would the crops grows?When would I have to add water ?Machines ? Peoples ?

COMPLEX SYSTEM, OPTIMIZATION WITH MULTIPLEFACTORS (WEATHER, COSTS, RESOURCES)

WHAT WE* DObuild domain specific tools for supporting design and

analysis of complex so�ware or embedded systems frommultiple viewpoints.

*: modeling community

HOW OUR TECHNOLOGIES ANDTECHNIQUES WOULD FARE IN SUCH

CONTEXT?

Disclaimer: this experiment is not about the science itselfbut about how to use the OSS modeling technologies.

This is a toy, but a toy complex enough that we can learnfrom it.

PROCESS1. State your resources (Machines, peoples, fields)2. Pick some climate model3. Assign surfaces to cultures4. Deduce a possible planning5. See how the biomass would grow6. See how much irrigation we would need7. do it again !

LanguageEngineers Domain Viewpoint

(Graph Editor)Grammar(Textual Editor)

Constraintsand Goals (Score function)

BehavioralSemantic (animator)

LanguageUsers Data Views and

staticchecking

Text Optimization Execution,simulation

DEMO TIME

EMF

SEVERAL ECORE MODELS

ὄ� API           p u b l i c s t a t i c v o i d m a i n ( S t r i n g [ ] a r g s ) { / / . . . E x p l o i t a t i o n e x p l o i t a t i o n = l o a d F r o m F i l e ( a r g s [ 1 ] ) ; f o r ( W o r k G r o u p g r o u p : e x p l o i t a t i o n . g e t G r o u p s ( ) ) { S y s t e m . o u t . p r i n t l n ( g r o u p . g e t N a m e ( ) ) ;

f o r ( C u l t u r e c u l t u r e A s s i g n e d T o T h i s G r o u p : g r o u p . g e t C u l t u r e s ( ) ) { f o r ( E x p l o i t a t i o n A c t i v i t y a c t i v i t y : c u l t u r e A s s i g n e d T o T h i s G r o u p . g e t A c t i v i t i e s ( ) ) { S y s t e m . o u t . p r i n t l n ( a c t i v i t y . g e t N a m e ( ) ) ; S y s t e m . o u t . p r i n t l n ( a c t i v i t y . g e t F r e q u e n c y ( ) ) ; S y s t e m . o u t . p r i n t l n ( a c t i v i t y . g e t S t a r t D a t e ( ) ) ; S y s t e m . o u t . p r i n t l n ( a c t i v i t y . g e t E n d D a t e ( ) ) ; } / / . . .

         

ὄ� SEAMLESS DATA REUSE           p u b l i c c l a s s C l i m a t e D a t a R e s o u r c e I m p l e x t e n d s R e s o u r c e I m p l {

p u b l i c C l i m a t e D a t a R e s o u r c e I m p l ( U R I u r i ) { s u p e r ( u r i ) ; }

@ O v e r r i d e p r o t e c t e d v o i d d o L o a d ( I n p u t S t r e a m i n p u t S t r e a m , M a p < ! - - ? , ? - - > o p t i o n s ) t h r o w s I O E x c e p t i o n { g e t C o n t e n t s ( ) . c l e a r ( ) ; C l i m a t e D a t a c l i m a t e = S i m u l a t i o n F a c t o r y . e I N S T A N C E . c r e a t e C l i m a t e D a t a ( ) ; S t r i n g c o n t e n t = C h a r S t r e a m s . t o S t r i n g ( n e w I n p u t S t r e a m R e a d e r ( i n p u t S t r e a m , C h a r s e t s . U S _ A S C I I ) ) ;

L i s t < s t r i n g > l i n e s = L i s t s . n e w A r r a y L i s t ( S p l i t t e r . o n ( ' \ n ' ) . o m i t E m p t y S t r i n g s ( ) . s p l i t ( c o n t e n t ) ) ;

         

TEXTUAL SYNTAX : XTEXT

ὄ� PREDICATES, EXPRESSIONS,CONDITIONS

GRAPHICAL SYNTAX: SIRIUS

ὄ� DYNAMIC EDITING

ὄ� TABLE EDITORS

ὄ� ANIMATION

ὄ� ANIMATION*

* with Sirius animator

BARELY SCRATCHED THE SURFACEEclipse ICE and Science WGGenerating reports using Acceleo

Comparing alternatives using EMF Compare...

ANALYSIS

PLANNING PROBLEMSIf you need to optimize goals under constraints while having

limited resources.

When will I seed the crop based on the culture constraints, theclimate and the peoples, machine, fields I have ?

NP class of problems, huge number of solutions, many beinguseless

ὄ� EASY TO MIX WITH EMF           @ P l a n n i n g E n t i t y ( d i f f i c u l t y C o m p a r a t o r C l a s s = A c t i v i t y W o r k D i f f i c u l t y C o m p a r a t o r . c l a s s ) p u b l i c i n t e r f a c e A c t i v i t y W o r k e x t e n d s E O b j e c t { / / . . . @ P l a n n i n g V a r i a b l e ( v a l u e R a n g e P r o v i d e r R e f s = { " d a y s " } ) D a y g e t S c h e d u l e d O n ( ) ; / / . . . }

         

           @ P l a n n i n g E n t i t y ( d i f f i c u l t y C o m p a r a t o r C l a s s = R e s o u r c e A l l o c a t i o n D i f f i c u l t y C o m p a r a t o r . c l a s s ) p u b l i c i n t e r f a c e R e s o u r c e A l l o c a t i o n e x t e n d s E O b j e c t { / / . . . @ P l a n n i n g V a r i a b l e ( v a l u e R a n g e P r o v i d e r R e f s = { " r e s o u r c e s " } ) R e s o u r c e g e t R e s o u r c e ( ) ; / / . . . }

         

ὄ� EASY TO MIX WITH EMF           @ P l a n n i n g E n t i t y ( d i f f i c u l t y C o m p a r a t o r C l a s s = A c t i v i t y W o r k D i f f i c u l t y C o m p a r a t o r . c l a s s ) p u b l i c i n t e r f a c e A c t i v i t y W o r k e x t e n d s E O b j e c t { / / . . . @ P l a n n i n g V a r i a b l e ( v a l u e R a n g e P r o v i d e r R e f s = { " d a y s " } ) D a y g e t S c h e d u l e d O n ( ) ; / / . . . }

         

           @ P l a n n i n g E n t i t y ( d i f f i c u l t y C o m p a r a t o r C l a s s = R e s o u r c e A l l o c a t i o n D i f f i c u l t y C o m p a r a t o r . c l a s s ) p u b l i c i n t e r f a c e R e s o u r c e A l l o c a t i o n e x t e n d s E O b j e c t { / / . . . @ P l a n n i n g V a r i a b l e ( v a l u e R a n g e P r o v i d e r R e f s = { " r e s o u r c e s " } ) R e s o u r c e g e t R e s o u r c e ( ) ; / / . . . }

         

ὄ� EASY TO MIX WITH EMF           @ P l a n n i n g E n t i t y ( d i f f i c u l t y C o m p a r a t o r C l a s s = A c t i v i t y W o r k D i f f i c u l t y C o m p a r a t o r . c l a s s ) p u b l i c i n t e r f a c e A c t i v i t y W o r k e x t e n d s E O b j e c t { / / . . . @ P l a n n i n g V a r i a b l e ( v a l u e R a n g e P r o v i d e r R e f s = { " d a y s " } ) D a y g e t S c h e d u l e d O n ( ) ; / / . . . }

         

           @ P l a n n i n g E n t i t y ( d i f f i c u l t y C o m p a r a t o r C l a s s = R e s o u r c e A l l o c a t i o n D i f f i c u l t y C o m p a r a t o r . c l a s s ) p u b l i c i n t e r f a c e R e s o u r c e A l l o c a t i o n e x t e n d s E O b j e c t { / / . . . @ P l a n n i n g V a r i a b l e ( v a l u e R a n g e P r o v i d e r R e f s = { " r e s o u r c e s " } ) R e s o u r c e g e t R e s o u r c e ( ) ; / / . . . }

         

SCORE FUNCTION           p u b l i c S c o r e c a l c u l a t e S c o r e ( S i m u l a t i o n S o l u t i o n s o l u t i o n ) { i n t h a r d S c o r e = 0 ; i n t s o f t S c o r e = 0 ; / / . . . / * * C o n s t r a i n t : a l l t h e r e s o u r c e s w h i c h a r e r e q u i r e d s h o u l d b e a l l o c a t e d . * / f o r ( R e s o u r c e A l l o c a t i o n a l l o c : s o l u t i o n . g e t S i m u l a t i o n ( ) . g e t A l l o c a t i o n s ( ) ) { i f ( a l l o c . g e t R e s o u r c e ( ) = = n u l l ) { h a r d S c o r e + = m e d i u m P e n a l t y ( 1 ) ; a d d F e e d b a c k ( a l l o c . g e t W o r k ( ) , ( c r e a t e F e e d b a c k ( F e e d b a c k L e v e l . E R R O R , " A r e q u i r e d r e s o u r c e o f k i n d " + a l l o c . g e t K i n d ( ) . g e t N a m e ( ) + " i s m i s s i n g . " ) ) ) ; } }

         

WHAT HAVE WE LEARNED SO FAR?

“Do not compromise on your domain model.”

EFFORT TO BUILD THIS TOOLING ?3 hours meeting + mail exchanges with INRA experts10 days of Eclipse Modeling expertsProof of concept code is on github

TECHNOLOGIES MEANT TO DO THIS

ARE RELEVANT TO SAVE THIS

TEAMING UP TECHNOLOGIESINSTEAD OF STACKING IT

Eclipse: platform and User interface integration

EMF: data, resources, deeplinkink, reflective manipulation

OPPORTUNITIESTime modeling and managementProbabilistic models

Graph/Charts representation in SiriusAlternatives comparisons...

...

FURTHER MATERIALS[slides] (Benoit Combemale and Jean-Michel Bruel), CPS Seminar, 2016[slides] (Benoit Combemale), INRA Seminar, 2015[paper] (Jean-Michel Bruel, Benoit Combemale, IleanaOber, Hélène Raynal), In International Conference on Computational Science (ICCS), 2015.[video, french]

(Benoit Combemale, DEVLOG-IDM2014, Oct. 2014)[video, french] (Benoit Combemale, DEVLOG-IDM2013, Oct. 2013)

Modeling for Smart CPSModeling for SustainabilityMDE in Practice for Computational Science

L'IDM par la pratique dans le contexte des modèles agronomiques autour d'uneétude de cas

Composition and concurrent execution of heterogeneous domain-specific models

Recommended