[ocl] - Moving ICMT paper sources to Eclipse git
diff --git a/ocl/docs/publications/ICMT2016CS2AS_DSTL/icmt2016.bib b/ocl/docs/publications/ICMT2016CS2AS_DSTL/icmt2016.bib
new file mode 100644
index 0000000..a05ae67
--- /dev/null
+++ b/ocl/docs/publications/ICMT2016CS2AS_DSTL/icmt2016.bib
@@ -0,0 +1,1290 @@
+% This file was created with JabRef 2.10.
+% Encoding: Cp1252
+
+
+@Misc{alanen2003relGramMOF,
+  Title                    = {{A Relation Between Context-Free Grammars and Meta Object Facility Metamodels}},
+
+  Author                   = {Alanen, Marcus and Porres, Ivan},
+  HowPublished             = {Technical Report},
+  Year                     = {2003},
+
+  Owner                    = {asbh},
+  Timestamp                = {2013.12.09}
+}
+
+@Book{aho2007compilers,
+  Title                    = {Compilers: principles, techniques, \& tools},
+  Author                   = {Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman},
+  Publisher                = {Pearson Education Inc.},
+  Year                     = {2007},
+
+  Owner                    = {asbh},
+  Timestamp                = {2013.12.04}
+}
+
+@InCollection{bezivin2006mdeTS,
+  Title                    = {{Model driven engineering: An emerging technical space}},
+  Author                   = {B{\'e}zivin, Jean},
+  Booktitle                = {Generative and Transformational Techniques in Software Enegineering},
+  Publisher                = {Springer},
+  Year                     = {2006},
+  Pages                    = {36--64},
+
+  Owner                    = {asbh500},
+  Timestamp                = {2014.01.27}
+}
+
+@Article{bezivin2005unifPowerMdl,
+  Title                    = {On the unification power of models},
+  Author                   = {B{\'e}zivin, Jean},
+  Journal                  = {Software \& Systems Modeling},
+  Year                     = {2005},
+  Number                   = {2},
+  Pages                    = {171--188},
+  Volume                   = {4},
+
+  Owner                    = {asbh500},
+  Publisher                = {Springer},
+  Timestamp                = {2014.01.10}
+}
+
+@Article{bezivin2004searchMDEPrinc,
+  Title                    = {In search of a basic principle for model driven engineering},
+  Author                   = {B{\'e}zivin, Jean},
+  Journal                  = {Novatica Journal, Special Issue},
+  Year                     = {2004},
+  Number                   = {2},
+  Pages                    = {21--24},
+  Volume                   = {5},
+
+  Owner                    = {asbh500},
+  Timestamp                = {2014.01.10}
+}
+
+@InProceedings{Burger2010jastEMF,
+  Title                    = {Applying Attribute Grammars for Metamodel Semantics},
+  Author                   = {B\"{u}rger, Christoff and Karol, Sven and Wende, Christian},
+  Booktitle                = {Proceedings of the International Workshop on Formalization of Modeling Languages},
+  Year                     = {2010},
+
+  Address                  = {New York, NY, USA},
+  Pages                    = {1:1--1:5},
+  Publisher                = {ACM},
+  Series                   = {FML '10},
+
+  Acmid                    = {1943398},
+  Articleno                = {1},
+  Doi                      = {10.1145/1943397.1943398},
+  ISBN                     = {978-1-4503-0532-7},
+  Keywords                 = {EMF, JastAdd, attribute grammars, ecore, metamodelling},
+  Location                 = {Maribor, Slovenia},
+  Numpages                 = {5},
+  Owner                    = {asbh500},
+  Timestamp                = {2014.01.16},
+  Url                      = {http://doi.acm.org/10.1145/1943397.1943398}
+}
+
+@Article{bell2004umlFever,
+  Title                    = {{Death by UML Fever}},
+  Author                   = {Bell, Alex E.},
+  Journal                  = {Queue},
+  Year                     = {2004},
+
+  Month                    = mar,
+  Number                   = {1},
+  Pages                    = {72--80},
+  Volume                   = {2},
+
+  Acmid                    = {984495},
+  Address                  = {New York, NY, USA},
+  Doi                      = {10.1145/984458.984495},
+  ISSN                     = {1542-7730},
+  Issue_date               = {March 2004},
+  Numpages                 = {9},
+  Owner                    = {asbh500},
+  Publisher                = {ACM},
+  Timestamp                = {2014.01.22},
+  Url                      = {http://doi.acm.org/10.1145/984458.984495}
+}
+
+@InProceedings{bettini2013xsemantics,
+  Title                    = {Implementing Java-like languages in Xtext with Xsemantics},
+  Author                   = {Bettini, Lorenzo},
+  Booktitle                = {Proceedings of the 28th Annual ACM Symposium on Applied Computing},
+  Year                     = {2013},
+  Organization             = {ACM},
+  Pages                    = {1559--1564}
+}
+
+@InProceedings{bettini2011xtypes,
+  Title                    = {A DSL for writing type systems for Xtext languages},
+  Author                   = {Bettini, Lorenzo},
+  Booktitle                = {Proceedings of the 9th International Conference on Principles and Practice of Programming in Java},
+  Year                     = {2011},
+  Organization             = {ACM},
+  Pages                    = {31--40},
+
+  Owner                    = {asbh500},
+  Timestamp                = {2014.12.09}
+}
+
+@InCollection{boleyMeier1991declarative,
+  Title                    = {Declarative and procedural paradigms-do they really compete?},
+  Author                   = {Boley, Harold and Meier, Micha and Moss, Chris and Richter, Michael M and Voronkov, AA},
+  Booktitle                = {Processing Declarative Knowledge},
+  Publisher                = {Springer},
+  Year                     = {1991},
+  Pages                    = {383--398},
+
+  Owner                    = {asbh500},
+  Timestamp                = {2014.01.09}
+}
+
+@Article{boyland2005remoteAG,
+  Title                    = {Remote attribute grammars},
+  Author                   = {Boyland, John Tang},
+  Journal                  = {Journal of the ACM (JACM)},
+  Year                     = {2005},
+  Number                   = {4},
+  Pages                    = {627--687},
+  Volume                   = {52},
+
+  Owner                    = {asbh500},
+  Publisher                = {ACM},
+  Timestamp                = {2014.12.09}
+}
+
+@Book{brambilla2012MDSE,
+  Title                    = {Model-driven Software Engineering in Practice},
+  Author                   = {Brambilla, Marco and Cabot, Jordi and Wimmer, Manuel},
+  Publisher                = {Morgan \& Claypool Publishers},
+  Year                     = {2012},
+  Volume                   = {1},
+
+  Owner                    = {asbh},
+  Timestamp                = {2013.12.09}
+}
+
+@InProceedings{brucker2013aachenReport,
+  Title                    = {Report on the Aachen OCL meeting},
+  Author                   = {Brucker, Achim D and Chiorean, Dan and Clark, Tony and Demuth, Birgit and Gogolla, Martin and Plotnikov, Dimitri and Rumpe, Bernhard and Willink, Edward D and Wolff, Burkhart},
+  Booktitle                = {Proceedings of the MODELS 2013 OCL Workshop},
+  Year                     = {2014},
+  Organization             = {CEUR Workshop Proceedings},
+  Volume                   = {1092},
+
+  Doi                      = {arXiv preprint arXiv:1408.5698},
+  Owner                    = {asbh500},
+  Timestamp                = {2015.07.07},
+  Url                      = {http://ceur-ws.org/Vol-1092/aachen.pdf}
+}
+
+@Article{canovas2012gra2mol,
+  Title                    = {Extracting models from source code in software modernization},
+  Author                   = {C{\'a}novas, Javier Luis and Garc{\'\i}a-Molina, Jes{\'u}s},
+  Journal                  = {Software \& Systems Modeling},
+  Year                     = {2012},
+  Pages                    = {1--22},
+  Volume                   = {13},
+
+  Owner                    = {asbh},
+  Publisher                = {Springer},
+  Timestamp                = {2013.12.09}
+}
+
+@inproceedings{Charles2009imp,
+ author = {Charles, Philippe and Fuhrer, Robert M. and Sutton,Jr., Stanley M. and Duesterwald, Evelyn and Vinju, Jurgen},
+ title = {Accelerating the Creation of Customized, language-Specific IDEs in Eclipse},
+ booktitle = {Proceedings of the 24th ACM SIGPLAN Conference on Object Oriented Programming Systems Languages and Applications},
+ series = {OOPSLA '09},
+ year = {2009},
+ isbn = {978-1-60558-766-0},
+ location = {Orlando, Florida, USA},
+ pages = {191--206},
+ numpages = {16},
+ url = {http://doi.acm.org/10.1145/1640089.1640104},
+ doi = {10.1145/1640089.1640104},
+ acmid = {1640104},
+ publisher = {ACM},
+ address = {New York, NY, USA},
+ keywords = {IDE, eclipse, generation, meta-tooling},
+}
+
+@InProceedings{Cunha2007structureShy,
+  Title                    = {Transformation of Structure-shy Programs: Applied to {XPath} Queries and Strategic Functions},
+  Author                   = {Cunha, Alcino and Visser, Joost},
+  Booktitle                = {Proceedings of the 2007 ACM SIGPLAN Symposium on Partial Evaluation and Semantics-based Program Manipulation},
+  Year                     = {2007},
+
+  Address                  = {New York, NY, USA},
+  Pages                    = {11--20},
+  Publisher                = {ACM},
+  Series                   = {PEPM '07},
+
+  Acmid                    = {1244385},
+  Doi                      = {10.1145/1244381.1244385},
+  ISBN                     = {978-1-59593-620-2},
+  Keywords                 = {XML query languages, algebraic program transformation, point-free program calculation, strategic functional programming, type generalization, type specialization},
+  Location                 = {Nice, France},
+  Numpages                 = {10},
+  Owner                    = {asbh500},
+  Timestamp                = {2014.01.23},
+  Url                      = {http://doi.acm.org/10.1145/1244381.1244385}
+}
+
+@InProceedings{czarnecki2003classification,
+  Title                    = {Classification of model transformation approaches},
+  Author                   = {Czarnecki, Krzysztof and Helsen, Simon},
+  Booktitle                = {Proceedings of the 2nd OOPSLA Workshop on Generative Techniques in the Context of the Model Driven Architecture},
+  Year                     = {2003},
+  Pages                    = {1--17},
+  Owner                    = {asbh500},
+  Timestamp                = {2013.12.30}
+}
+
+@InCollection{ekman2006jastAdd,
+  Title                    = {Modular name analysis for {Java} using {JastAdd}},
+  Author                   = {Ekman, Torbj{\"o}rn and Hedin, G{\"o}rel},
+  Booktitle                = {Generative and Transformational Techniques in Software Engineering},
+  Publisher                = {Springer},
+  Year                     = {2006},
+  Pages                    = {422--436},
+
+  Owner                    = {asbh500},
+  Timestamp                = {2014.01.13}
+}
+
+@InCollection{erdweg2013staArtLangWork,
+  Title                    = {The state of the art in language workbenches},
+  Author                   = {Erdweg, Sebastian and van der Storm, Tijs and V{\"o}lter, Markus and Boersma, Meinte and Bosman, Remi and Cook, William R and Gerritsen, Albert and Hulshout, Angelo and Kelly, Steven and Loh, Alex and others},
+  Booktitle                = {Software Language Engineering},
+  Publisher                = {Springer},
+  Year                     = {2013},
+  Pages                    = {197--217},
+
+  Owner                    = {asbh},
+  Timestamp                = {2013.12.10}
+}
+
+@InProceedings{eysholdt2010Xtext,
+  Title                    = {Xtext: Implement Your Language Faster Than the Quick and Dirty Way},
+  Author                   = {Eysholdt, Moritz and Behrens, Heiko},
+  Booktitle                = {Proceedings of the ACM International Conference SPLASH '10},
+  Year                     = {2010},
+
+  Address                  = {New York, NY, USA},
+  Pages                    = {307--309},
+  Publisher                = {ACM},
+
+  Acmid                    = {1869625},
+  Doi                      = {10.1145/1869542.1869625},
+  ISBN                     = {978-1-4503-0240-1},
+  Keywords                 = {DSL, EMF, Eclipse, MDSD, Xtext, modeling},
+  Location                 = {Reno/Tahoe, Nevada, USA},
+  Numpages                 = {3},
+  Owner                    = {asbh500},
+  Timestamp                = {2014.01.23},
+  Url                      = {http://doi.acm.org/10.1145/1869542.1869625}
+}
+
+@InProceedings{farrow1986circularAG,
+  Title                    = {Automatic generation of fixed-point-finding evaluators for circular, but well-defined, attribute grammars},
+  Author                   = {Farrow, Rodney},
+  Booktitle                = {ACM SIGPLAN Notices},
+  Year                     = {1986},
+  Number                   = {7},
+  Organization             = {ACM},
+  Pages                    = {85--98},
+  Volume                   = {21},
+
+  Owner                    = {asbh500},
+  Timestamp                = {2014.12.09}
+}
+
+@InCollection{favre2012101companies,
+  Title                    = {101companies: a community project on software technologies and software languages},
+  Author                   = {Favre, Jean-Marie and L{\"a}mmel, Ralf and Schmorleiz, Thomas and Varanovich, Andrei},
+  Booktitle                = {Objects, Models, Components, Patterns},
+  Publisher                = {Springer},
+  Year                     = {2012},
+  Pages                    = {58--74},
+
+  Owner                    = {Adolfo},
+  Timestamp                = {2016.03.04}
+}
+
+@Misc{borlandAcq,
+  Title                    = {{Borland acquisition letter}},
+
+  Author                   = {Micro Focus},
+  HowPublished             = {On-Line: \url{http://www.microfocus.com/aboutmicrofocus/pressroom/releases/pr20090727756498.asp}},
+
+  Owner                    = {asbh},
+  Timestamp                = {2014.07.01},
+  Url                      = {http://www.microfocus.com/aboutmicrofocus/pressroom/releases/pr20090727756498.asp}
+}
+
+@Misc{eclipseOnline,
+  Title                    = {{Eclipse Platform}},
+
+  Author                   = {Eclipse Foundation},
+  HowPublished             = {On-Line: \url{http://www.eclipse.org/}},
+
+  Owner                    = {asbh},
+  Timestamp                = {2015.06.22},
+  Url                      = {http://www.eclipse.org/}
+}
+
+@Misc{eclipseAtlOnline,
+  Title                    = {{ATL Transformation Language}},
+
+  Author                   = {The Eclipse Foundation},
+  HowPublished             = {On-Line: \url{http://www.eclipse.org/atl/}},
+
+  Owner                    = {asbh},
+  Timestamp                = {2014.01.09},
+  Url                      = {http://www.eclipse.org/atl/}
+}
+
+@Misc{eclipseEpsilonOnline,
+  Title                    = {{Eclipse Epsilon}},
+
+  Author                   = {The Eclipse Foundation},
+  HowPublished             = {On-Line: \url{https://www.eclipse.org/epsilon/}},
+
+  Owner                    = {asbh},
+  Timestamp                = {2014.01.09},
+  Url                      = {https://www.eclipse.org/epsilon}
+}
+
+@Misc{eclipseEtlOnline,
+  Title                    = {{Epsilon Transformation Language}},
+
+  Author                   = {The Eclipse Foundation},
+  HowPublished             = {On-Line: \url{https://www.eclipse.org/epsilon/doc/etl/}},
+
+  Owner                    = {asbh},
+  Timestamp                = {2014.01.09},
+  Url                      = {https://www.eclipse.org/epsilon/doc/etl/}
+}
+
+@Misc{eclipseModiscoOnline,
+  Title                    = {{MoDisco}},
+
+  Author                   = {The Eclipse Foundation},
+  HowPublished             = {On-Line: \url{http://www.eclipse.org/MoDisco/}},
+
+  Owner                    = {asbh},
+  Timestamp                = {2014.01.09},
+  Url                      = {http://www.eclipse.org/MoDisco/}
+}
+
+@Misc{eclipseOclCodeGen,
+  Title                    = {{Eclipse OCL - CodeGen component}},
+
+  Author                   = {The Eclipse Foundation},
+  HowPublished             = {On-Line: \url{http://download.eclipse.org/modeling/mdt/ocl/javadoc/5.0.0/index.html?org/eclipse/ocl/examples/codegen/package-summary.html}},
+
+  Owner                    = {asbh},
+  Timestamp                = {2014.07.01},
+  Url                      = {http://download.eclipse.org/modeling/mdt/ocl/javadoc/5.0.0/index.html?org/eclipse/ocl/examples/codegen/package-summary.html}
+}
+
+@Misc{eclipseOclTestsSuite,
+  Title                    = {{Eclipse OCL -Tests Suite}},
+
+  Author                   = {The Eclipse Foundation},
+  HowPublished             = {On-Line: \url{https://hudson.eclipse.org/ocl/job/buckminster-ocl-core-luna-master/lastCompletedBuild/testReport/}},
+
+  Owner                    = {asbh},
+  Timestamp                = {2014.07.01},
+  Url                      = {https://hudson.eclipse.org/ocl/job/buckminster-ocl-core-luna-master/lastCompletedBuild/testReport/}
+}
+
+@Misc{eclipseSRTOnline,
+  Title                    = {{Eclipse Simultaneous Relase Train}},
+
+  Author                   = {The Eclipse Foundation},
+  HowPublished             = {On-Line: \url{http://wiki.eclipse.org/Simultaneous_Release}},
+
+  Owner                    = {asbh},
+  Timestamp                = {2014.01.09},
+  Url                      = {http://wiki.eclipse.org/Simultaneous_Release}
+}
+
+@Misc{eclipseXtextOnline,
+  Title                    = {Xtext},
+
+  Author                   = {The Eclipse Foundation},
+  HowPublished             = {On-Line: \url{http://www.eclipse.org/Xtext/}},
+
+  Owner                    = {asbh},
+  Timestamp                = {2014.01.09},
+  Url                      = {http://www.eclipse.org/Xtext/}
+}
+
+@Misc{eclipseQvtdOnline,
+  Title                    = {{Eclipse QVTd}},
+
+  Author                   = {The Eclipse Foundation},
+  HowPublished             = {On-Line: \url{https://projects.eclipse.org/projects/modeling.mmt.qvtd}},
+  Year                     = {2007},
+
+  Owner                    = {asbh},
+  Timestamp                = {2014.01.09},
+  Url                      = {https://projects.eclipse.org/projects/modeling.mmt.qvtd}
+}
+
+@Misc{eclipseQvtoOnline,
+  Title                    = {{Eclipse QVTo}},
+
+  Author                   = {The Eclipse Foundation},
+  HowPublished             = {On-Line: \url{http://projects.eclipse.org/projects/modeling.mmt.qvt-oml}},
+  Year                     = {2007},
+
+  Owner                    = {asbh},
+  Timestamp                = {2014.01.09},
+  Url                      = {http://projects.eclipse.org/projects/modeling.mmt.qvt-oml}
+}
+
+@Misc{eclipseOclOnline,
+  Title                    = {{Eclipse OCL}},
+
+  Author                   = {The Eclipse Foundation},
+  HowPublished             = {On-Line: \url{http://projects.eclipse.org/projects/modeling.mdt.ocl}},
+  Year                     = {2005},
+
+  Owner                    = {asbh},
+  Timestamp                = {2014.01.09},
+  Url                      = {http://projects.eclipse.org/projects/modeling.mdt.ocl}
+}
+
+@Book{fowler2010dsl,
+  Title                    = {Domain-Specific Languages},
+  Author                   = {Fowler, Martin},
+  Publisher                = {Pearson Education},
+  Year                     = {2010},
+
+  Owner                    = {asbh},
+  Timestamp                = {2013.12.09}
+}
+
+@Misc{fowler2004inversion,
+  Title                    = {Inversion of control containers and the dependency injection pattern},
+
+  Author                   = {Fowler, Martin},
+  HowPublished             = {On-Line: \url{http://martinfowler.com/articles/injection.html}},
+  Year                     = {2004},
+
+  Owner                    = {asbh500},
+  Timestamp                = {2014.01.23},
+  Url                      = {http://martinfowler.com/articles/injection.html}
+}
+
+@Book{fowler2004uml,
+  Title                    = {UML Distilled: A Brief Guide to the Standard Object Modeling Languange},
+  Author                   = {Fowler, Martin},
+  Publisher                = {Addison-Wesley Professional},
+  Year                     = {2004},
+
+  Owner                    = {asbh},
+  Timestamp                = {2013.12.03}
+}
+
+@Book{gamma1994GoF,
+  Title                    = {Design Patterns},
+  Author                   = {Gamma, Erich and Helm, Richard and Vlissides, John and Johnson, Ralph},
+  Publisher                = {Addison-Wesley},
+  Year                     = {1994},
+
+  Owner                    = {asbh500},
+  Timestamp                = {2014.01.14}
+}
+
+@Book{molina2013DSDM,
+  Title                    = {Desarrollo de Software Dirigido por MoModel: Concepts, M{\'e}todos y Herramientas},
+  Author                   = {Garc{\'i}a Molina, Jes{\'u}s and Garc{\'i}a Rubio, F{\'e}lix O. and Pelechano, Vicente and Vallecillo, Antonio and Vicente-Chicote, Cristina},
+  Editor                   = {Ra-Ma},
+  Publisher                = {Ra-Ma},
+  Year                     = {2013},
+
+  Owner                    = {asbh500},
+  Pages                    = {586},
+  Timestamp                = {2014.01.20}
+}
+
+@Misc{omgXXXXoptimalJ,
+  Title                    = {{Compuware OptimalJ standardizes on Object Management Group�s Model Driven Architecture}},
+
+  Author                   = {Object Management Group},
+  HowPublished             = {On-Line: \url{http://www.omg.org/mda/mda_files/MDA_OptimalJ.pdf}},
+
+  Owner                    = {asbh},
+  Timestamp                = {2014.01.09},
+  Url                      = {http://www.omg.org/mda/mda_files/MDA_OptimalJ.pdf}
+}
+
+@Misc{omg2014ocl,
+  Title                    = {{Object Constraint Language (OCL), V2.4}},
+
+  Author                   = {Object Management Group},
+  HowPublished             = {formal/2014-02-03 (\url{http://www.omg.org/spec/OCL/2.4})},
+  Month                    = {February},
+  Year                     = {2014},
+
+  Owner                    = {asbh},
+  Timestamp                = {2016.02.22},
+  Url                      = {http://www.omg.org/spec/OCL/2.4}
+}
+
+@Misc{omg2014qvt,
+  Title                    = {{Meta Object Facility (MOF) 2.0 Query/View/Transformation V1.2}},
+
+  Author                   = {Object Management Group},
+  HowPublished             = {OMG Document: ptc/2014-03-38 (\url{http://www.omg.org/spec/QVT/1.2})},
+  Month                    = {May},
+  Year                     = {2014},
+
+  Owner                    = {asbh},
+  Timestamp                = {2013.07.11},
+  Url                      = {http://www.omg.org/spec/QVT/1.1}
+}
+
+@Misc{omg2013mof,
+  Title                    = {{Meta Object Facility (MOF) Core Specification, V2.4.1}},
+
+  Author                   = {Object Management Group},
+  HowPublished             = {OMG Document: formal/2013-06-01 (\url{http://www.omg.org/spec/MOF/2.4.1})},
+  Year                     = {2013},
+
+  Owner                    = {asbh},
+  Timestamp                = {2014.01.09},
+  Url                      = {http://www.omg.org/spec/MOF/2.4.1}
+}
+
+@Misc{omg2012uml,
+  Title                    = {{Unified Modeling Language (UML), V2.5}},
+
+  Author                   = {Object Management Group},
+  HowPublished             = {OMG Document: ptc/2012-10-24 (\url{http://www.omg.org/spec/UML/2.5})},
+  Year                     = {2012},
+
+  Owner                    = {asbh},
+  Timestamp                = {2014.01.09},
+  Url                      = {http://www.omg.org/spec/UML/2.5}
+}
+
+@Misc{omg2011astm,
+  Title                    = {{Abstract Syntax Tree Metamodel (ASTM), V1.0}},
+
+  Author                   = {Object Management Group},
+  HowPublished             = {OMG Document: formal/2011-01-05.pdf (\url{http://www.omg.org/spec/ASTM/1.0/})},
+  Month                    = {January},
+  Year                     = {2011},
+
+  Owner                    = {asbh},
+  Timestamp                = {2013.07.11}
+}
+
+@Misc{omg2011kdm,
+  Title                    = {{Knowledge Discovery Meta-Model (KDM), V1.3}},
+
+  Author                   = {Object Management Group},
+  HowPublished             = {OMG Document: formal/2011-08-04 (\url{http://www.omg.org/spec/KDM/1.3/})},
+  Month                    = {August},
+  Year                     = {2011},
+
+  Owner                    = {asbh},
+  Timestamp                = {2014.01.09},
+  Url                      = {http://www.omg.org/spec/KDM/1.3/}
+}
+
+@Misc{omg2011qvt,
+  Title                    = {{Meta Object Facility (MOF) 2.0 Query/View/Transformation V1.1}},
+
+  Author                   = {Object Management Group},
+  HowPublished             = {OMG Document: formal/2011-01-01 (\url{http://www.omg.org/spec/QVT/1.1})},
+  Month                    = {January},
+  Year                     = {2011},
+
+  Owner                    = {asbh},
+  Timestamp                = {2013.07.11},
+  Url                      = {http://www.omg.org/spec/QVT/1.1}
+}
+
+@Misc{omg2008m2t,
+  Title                    = {{MOF Model To Text Transformation Language, V1.0}},
+
+  Author                   = {Object Management Group},
+  HowPublished             = {OMG Document: formal/08-01-16.pdf (\url{http://www.omg.org/spec/MOFM2T/1.0})},
+  Month                    = {January},
+  Year                     = {2008},
+
+  Owner                    = {asbh},
+  Timestamp                = {2013.07.11},
+  Url                      = {http://www.omg.org/spec/MOFM2T/1.0}
+}
+
+@Article{harel2004semantics,
+  Title                    = {Meaningful modeling: what's the semantics of "semantics"?},
+  Author                   = {Harel, D. and Rumpe, B.},
+  Journal                  = {Computer},
+  Year                     = {2004},
+
+  Month                    = {Oct},
+  Number                   = {10},
+  Pages                    = {64-72},
+  Volume                   = {37},
+
+  Doi                      = {10.1109/MC.2004.172},
+  ISSN                     = {0018-9162},
+  Keywords                 = {formal specification;grammars;programming language semantics;specification languages;UML semantics;Unified Modeling Language;diagrammatic notations;language meaning;language notation;language semantics;language syntax;modeling language definition;software modeling;Context modeling;Data mining;Handicapped aids;Hardware;Law;Legal factors;Natural languages;Springs;Standardization;Unified modeling language},
+  Owner                    = {asbh},
+  Publisher                = {IEEE},
+  Timestamp                = {2013.12.09}
+}
+
+@InCollection{heidenreich2011emfText,
+  Title                    = {Model-Based Language Engineering with EMFText},
+  Author                   = {Heidenreich, Florian and Johannes, Jendrik and Karol, Sven and Seifert, Mirko and Wende, Christian},
+  Booktitle                = {Generative and Transformational Techniques in Software Engineering IV},
+  Publisher                = {Springer},
+  Year                     = {2011},
+  Pages                    = {322--345}
+}
+
+@TechReport{hursch1995soc,
+  Title                    = {Separation of Concerns},
+  Author                   = {Walter L. H�rsch and Cristina Videira Lopes},
+  Institution              = {College of Computer Science, Northeastern University},
+  Year                     = {1995},
+
+  Owner                    = {asbh500},
+  Timestamp                = {2014.01.23}
+}
+
+@InProceedings{horn2013flowGraphCase,
+  Title                    = {The {TTC} 2013 Flowgraphs Case},
+  Author                   = {Horn, Tassilo},
+  Booktitle                = {{\rm Proceedings Sixth} Transformation Tool Contest, {\rm Budapest, Hungary, 19-20 June, 2013}},
+  Year                     = {2013},
+  Editor                   = {Van Gorp, Pieter and Rose, Louis M. and Krause, Christian},
+  Pages                    = {3-7},
+  Publisher                = {Open Publishing Association},
+  Series                   = {Electronic Proceedings in Theoretical Computer Science},
+  Volume                   = {135},
+
+  Doi                      = {10.4204/EPTCS.135.1},
+  Owner                    = {asbh500},
+  Timestamp                = {2014.01.14}
+}
+
+@InProceedings{jouault2006tcs,
+  Title                    = {{TCS: A DSL for the Specification of Textual Concrete Syntaxes in Model Engineering}},
+  Author                   = {Jouault, Fr{\'e}d{\'e}ric and B{\'e}zivin, Jean and Kurtev, Ivan},
+  Booktitle                = {Proc. of the 5th International conference},
+  Year                     = {2006},
+
+  Address                  = {New York, NY, USA},
+  Pages                    = {249--254},
+  Publisher                = {ACM},
+
+  Acmid                    = {1173744},
+  Doi                      = {10.1145/1173706.1173744},
+  ISBN                     = {1-59593-237-2},
+  Keywords                 = {DSL, concrete syntax, model driven engineering},
+  Location                 = {Portland, Oregon, USA},
+  Numpages                 = {6},
+  Owner                    = {asbh500},
+  Timestamp                = {2014.07.01},
+  Url                      = {http://doi.acm.org/10.1145/1173706.1173744}
+}
+
+@InCollection{jouault2015oclt,
+  Title                    = {Towards Functional Model Transformations with OCL},
+  Author                   = {Jouault, Fr{\'e}d{\'e}ric and Beaudoux, Olivier and Brun, Matthias and Clavreul, Mickael and Savaton, Guillaume},
+  Booktitle                = {Theory and Practice of Model Transformations},
+  Publisher                = {Springer},
+  Year                     = {2015},
+  Pages                    = {111--120}
+}
+
+@Article{kastens1980orderedAG,
+  Title                    = {Ordered attributed grammars},
+  Author                   = {Kastens, Uwe},
+  Journal                  = {Acta Informatica},
+  Year                     = {1980},
+  Number                   = {3},
+  Pages                    = {229--256},
+  Volume                   = {13},
+
+  Owner                    = {asbh500},
+  Publisher                = {Springer},
+  Timestamp                = {2014.12.09}
+}
+
+@InProceedings{kats2010spoofax,
+  Title                    = {The spoofax language workbench: rules for declarative specification of languages and {IDE}s},
+  Author                   = {Kats, Lennart C.L. and Visser, Eelco},
+  Booktitle                = {ACM Sigplan Notices},
+  Year                     = {2010},
+  Organization             = {ACM},
+  Pages                    = {444--463},
+  Volume                   = {45},
+
+  Owner                    = {asbh500},
+  Timestamp                = {2013.12.17}
+}
+
+@InProceedings{kats2010sdf,
+  Title                    = {Pure and Declarative Syntax Definition: Paradise Lost and Regained},
+  Author                   = {Kats, Lennart C.L. and Visser, Eelco and Wachsmuth, Guido},
+  Booktitle                = {Proceedings of the ACM International Conference OOPSLA '10},
+  Year                     = {2010},
+
+  Address                  = {New York, NY, USA},
+  Pages                    = {918--932},
+  Publisher                = {ACM},
+
+  Acmid                    = {1869535},
+  Doi                      = {10.1145/1869459.1869535},
+  ISBN                     = {978-1-4503-0203-6},
+  Keywords                 = {declarative, grammars, grammarware, parsers, sdf, sglr, syntax definition},
+  Location                 = {Reno/Tahoe, Nevada, USA},
+  Numpages                 = {15},
+  Url                      = {http://doi.acm.org/10.1145/1869459.1869535}
+}
+
+@InProceedings{kennedy1976autoGenAG,
+  Title                    = {Automatic generation of efficient evaluators for attribute grammars},
+  Author                   = {Kennedy, Ken and Warren, Scott K},
+  Booktitle                = {Proceedings of the 3rd ACM SIGACT-SIGPLAN symposium on Principles on programming languages},
+  Year                     = {1976},
+  Organization             = {ACM},
+  Pages                    = {32--49},
+
+  Owner                    = {asbh500},
+  Timestamp                = {2014.12.09}
+}
+
+@Book{kleppe2003mda,
+  Title                    = {MDA Explained. The model driven architecture: practice and promise},
+  Author                   = {Kleppe, Anneke G and Warmer, Jos and Bast, Wim},
+  Publisher                = {Addison Wesley Reading},
+  Year                     = {2003},
+
+  Owner                    = {asbh500},
+  Timestamp                = {2014.01.15}
+}
+
+@Article{klint2005grammarware,
+  Title                    = {Toward an engineering discipline for grammarware},
+  Author                   = {Klint, Paul and L{\"a}mmel, Ralf and Verhoef, Chris},
+  Journal                  = {ACM Transactions on Software Engineering and Methodology (TOSEM)},
+  Year                     = {2005},
+  Number                   = {3},
+  Pages                    = {331--380},
+  Volume                   = {14},
+
+  Owner                    = {asbh},
+  Publisher                = {ACM},
+  Timestamp                = {2013.12.06}
+}
+
+@Article{knuth1968attributeGrammars,
+  Title                    = {Semantics of context-free languages},
+  Author                   = {Knuth, Donald E},
+  Journal                  = {Mathematical systems theory},
+  Year                     = {1968},
+  Number                   = {2},
+  Pages                    = {127--145},
+  Volume                   = {2},
+
+  Owner                    = {asbh500},
+  Publisher                = {Springer},
+  Timestamp                = {2014.12.09}
+}
+
+@InCollection{konat2013decNameRes,
+  Title                    = {{Declarative Name Binding and Scope Rules}},
+  Author                   = {Konat, Gabri{\"e}l and Kats, Lennart and Wachsmuth, Guido and Visser, Eelco},
+  Booktitle                = {SLE'13},
+  Publisher                = {Springer},
+  Year                     = {2013},
+  Pages                    = {311--331},
+
+  Owner                    = {asbh500},
+  Timestamp                = {2013.12.17}
+}
+
+@Article{kosar2010dslVsgpl,
+  Title                    = {Comparing general-purpose and domain-specific languages: An empirical study},
+  Author                   = {Kosar, Toma{\v{z}} and Oliveira, Nuno and Mernik, Marjan and Pereira, Varanda Jo{\~a}o Maria and {\v{C}}repin{\v{s}}ek, Matej and Da, Cruz Daniela and Henriques, Rangel Pedro},
+  Journal                  = {Computer Science and Information Systems},
+  Year                     = {2010},
+  Number                   = {2},
+  Pages                    = {247--264},
+  Volume                   = {7},
+
+  Owner                    = {asbh500},
+  Timestamp                = {2014.01.23}
+}
+
+@Article{krahn2010monticore,
+  Title                    = {MontiCore: a framework for compositional development of domain specific languages},
+  Author                   = {Krahn, Holger and Rumpe, Bernhard and V{\"o}lkel, Steven},
+  Journal                  = {International journal on software tools for technology transfer},
+  Year                     = {2010},
+  Number                   = {5},
+  Pages                    = {353--372},
+  Volume                   = {12},
+
+  Publisher                = {Springer}
+}
+
+@InProceedings{KurtevBezAks2002,
+  Title                    = {Technological Spaces: An Initial Appraisal},
+  Author                   = {I. {Kurtev} and J. {B{\'e}zivin} and M. {Ak{\c{s}}it}},
+  Booktitle                = {International Conference on Cooperative Information Systems (CoopIS), DOA'2002 Federated Conferences, Industrial Track, Irvine, USA},
+  Year                     = {2002},
+  Month                    = {October},
+  Pages                    = {1--6},
+
+  Abstract                 = {In this paper, we propose a high level view of technological spaces (TS) and relations among these spaces. A technological space is a working context with a set of associated concepts, body of knowledge, tools, required skills, and possibilities. It is often associated to a given user community with shared know-how, educational support, common literature and even workshop and conference regular meetings. Although it is difficult to give a precise definition, some TSs can be easily identified, e.g. the XML TS, the DBMS TS, the abstract syntax TS, the meta-model (OMG/MDA) TS, etc. The purpose of our work is not to define an abstract theory of technological spaces, but to figure out how to work more efficiently by using the best possibilities of each technology. To do so, we need a basic understanding of the similarities and differences between various TSs, and also of the possible operational bridges that will allow transferring the results obtained in one TS to other TS. We hope that the presented industrial vision may help us putting forward the idea that there could be more cooperation than competition among alternative technologies. Furthermore, as the spectrum of such available technologies is rapidly broadening, the necessity to offer clear guidelines when choosing practical solutions to engineering problems is becoming a must, not only for teachers but for project leaders as well.},
+  Eprint_note              = {http://www.cs.rmit.edu.au/fedconf/2002/program.html#thursday
+There is no DOI available. Ther is no ISSN and no ISBN assigned.},
+  Eprintid                 = {10206},
+  Event_dates              = {30 Oct - 1 Nov 2002},
+  Event_type               = {Conference},
+  HowPublished             = {http://eprints.eemcs.utwente.nl/10206/},
+  International            = {Yes},
+  ISBN                     = {not assigned},
+  Ispublished              = {Published},
+  Location                 = {Irvine, USA},
+  Num_pages                = {6},
+  Owner                    = {asbh},
+  Pres_types               = {Talk},
+  Refereed                 = {Yes},
+  Research_groups          = {EWI-SE: Software Engineering},
+  Timestamp                = {2013.12.05}
+}
+
+@Article{landin1964mee,
+  Title                    = {The mechanical evaluation of expressions},
+  Author                   = {Landin, Peter J},
+  Journal                  = {The Computer Journal},
+  Year                     = {1964},
+  Number                   = {4},
+  Pages                    = {308--320},
+  Volume                   = {6},
+
+  Owner                    = {asbh500},
+  Publisher                = {Br Computer Soc},
+  Timestamp                = {2014.01.16}
+}
+
+@Article{magnusson2007circularRAG,
+  Title                    = {Circular reference attributed grammars�their evaluation and applications},
+  Author                   = {Magnusson, Eva and Hedin, G{\"o}rel},
+  Journal                  = {Science of Computer Programming},
+  Year                     = {2007},
+  Number                   = {1},
+  Pages                    = {21--37},
+  Volume                   = {68},
+
+  Owner                    = {asbh500},
+  Publisher                = {Elsevier},
+  Timestamp                = {2014.12.09}
+}
+
+@Article{miller2003mda,
+  Title                    = {{MDA Guide Version 1.0.1}},
+  Author                   = {Miller, Joaquin and Mukerji, Jishnu and others},
+  Journal                  = {Object Management Group},
+  Year                     = {2003},
+  Pages                    = {51},
+  Volume                   = {234},
+
+  Owner                    = {asbh},
+  Timestamp                = {2013.12.03}
+}
+
+@InCollection{muller2005kermeta,
+  Title                    = {Weaving executability into object-oriented meta-languages},
+  Author                   = {Muller, Pierre-Alain and Fleurey, Franck and J{\'e}z{\'e}quel, Jean-Marc},
+  Booktitle                = {Model Driven Engineering Languages and Systems},
+  Publisher                = {Springer},
+  Year                     = {2005},
+  Pages                    = {264--278},
+
+  Owner                    = {asbh},
+  Timestamp                = {2013.12.10}
+}
+
+@Book{naur1969softEng,
+  Title                    = {Software Engineering: Report of a Conference Sponsored by the NATO Science Committee, Garmisch, Germany, 7-11 Oct. 1968, Brussels, Scientific Affairs Division, NATO},
+  Author                   = {Naur, Peter and Randell, Brian},
+  Editor                   = {Naur, Peter and Randell, Brian},
+  Publisher                = {NATO},
+  Year                     = {1969},
+
+  Owner                    = {asbh500},
+  Timestamp                = {2014.01.23}
+}
+
+@Misc{antlrOnline,
+  Title                    = {{ANTLR}},
+
+  Author                   = {Terence Parr},
+  HowPublished             = {On-Line: \url{http://www.antlr.org/}},
+
+  Owner                    = {asbh},
+  Timestamp                = {2014.01.09},
+  Url                      = {http://www.antlr.org/}
+}
+
+@Article{Petre1995textVsGraphics,
+  Title                    = {{Why Looking Isn't Always Seeing: Readership Skills and Graphical Programming}},
+  Author                   = {Petre, Marian},
+  Journal                  = {Commun. ACM},
+  Year                     = {1995},
+
+  Month                    = jun,
+  Number                   = {6},
+  Pages                    = {33--44},
+  Volume                   = {38},
+
+  Acmid                    = {203251},
+  Address                  = {New York, NY, USA},
+  Doi                      = {10.1145/203241.203251},
+  ISSN                     = {0001-0782},
+  Issue_date               = {June 1995},
+  Numpages                 = {12},
+  Owner                    = {asbh500},
+  Publisher                = {ACM},
+  Timestamp                = {2014.01.23},
+  Url                      = {http://doi.acm.org/10.1145/203241.203251}
+}
+
+@InProceedings{vanRest2013syncTextGraphEditors,
+  Title                    = {Robust Real-Time Synchronization between Textual and Graphical Editors},
+  Author                   = {van Rest, Oskar and Wachsmuth, Guido and Steel, Jim RH and S{\"u}{\ss}, J{\"o}rn Guy and Visser, Eelco},
+  Booktitle                = {Proceedings of ICMT'13},
+  Year                     = {2013},
+  Organization             = {Springer},
+  Pages                    = {92--107},
+  Volume                   = {7909}
+}
+
+@InProceedings{sanchez2014enhancingXtext,
+  Title                    = {Enhancing {Xtext} for {General Purpose Languages}},
+  Author                   = {S{\'a}nchez-Barbudo Herrera, Adolfo},
+  Booktitle                = {Proceedings of the Doctoral Symposium at MODELS'14},
+  Year                     = {2014},
+  Editor                   = {Benoit Baudry},
+  Organization             = {CEUR Workshop Proceedings},
+  Volume                   = {1321},
+
+  Doi                      = {urn:nbn:de:0074-1321-0},
+  Owner                    = {asbh500},
+  Timestamp                = {2015.07.07},
+  Url                      = {http://ceur-ws.org/Vol-1321/dsmodels14_5.pdf}
+}
+
+@InProceedings{sanchez2013visitors,
+  Title                    = {Automatic Application of Visitors to Evolving {Domain-Specific Languages}},
+  Author                   = {S{\'a}nchez-Barbudo Herrera, Adolfo and Paige, Richard F. and Willink, E. D. and Rose, L. M. and Kolovos, D. S.},
+  Booktitle                = {Sixth York Doctoral Symposium on Computer Science and Electronics},
+  Year                     = {2013},
+  Editor                   = {Sam Simpson},
+  Number                   = {YCS-2013-480},
+  Organization             = {The University of York},
+  Pages                    = {46--54},
+
+  Owner                    = {asbh},
+  Timestamp                = {2013.12.09},
+  Url                      = {http://www.cs.york.ac.uk/yds/yds2013Proceedings/YDS_2013_Proceddings.pdf}
+}
+
+@InProceedings{sanchez2015oclCS2AS,
+  Title                    = {{An OCL-based Bridge from Concrete to Abstract Syntax}},
+  Author                   = {S{\'a}nchez-Barbudo, Adolfo and Willink, Edward and Paige, Richard F.},
+  Booktitle                = {Proceedings of the 15th OCL Workshop},
+  Year                     = {2015},
+  Editor                   = {Fr{\'e}d{\'e}ric Tuong et al.},
+  Organization             = {CEUR},
+  Pages                    = {19-34},
+  Volume                   = {1512},
+
+  Owner                    = {asbh500},
+  Timestamp                = {2016.01.11},
+  Url                      = {http://ceur-ws.org/Vol-1512/paper02.pdf}
+}
+
+@InProceedings{scheidgen2008tef,
+  Title                    = {Textual modelling embedded into graphical modelling},
+  Author                   = {Scheidgen, Markus},
+  Booktitle                = {Model Driven Architecture--Foundations and Applications},
+  Year                     = {2008},
+  Organization             = {Springer},
+  Pages                    = {153--168}
+}
+
+@Article{seidewitz2003modelsMean,
+  Title                    = {What models mean},
+  Author                   = {Seidewitz, Edwin},
+  Journal                  = {Software, IEEE},
+  Year                     = {2003},
+  Number                   = {5},
+  Pages                    = {26--32},
+  Volume                   = {20},
+
+  Owner                    = {asbh500},
+  Publisher                = {IEEE},
+  Timestamp                = {2014.01.23}
+}
+
+@Book{volter2006mdsd,
+  Title                    = {Model-driven software development},
+  Author                   = {Thomas (Tom) Stahl and Voelter, Markus},
+  Publisher                = {John Wiley \& Sons Chichester},
+  Year                     = {2006},
+
+  Owner                    = {asbh500},
+  Timestamp                = {2014.01.22}
+}
+
+@Book{steinberg2008emf,
+  Title                    = {EMF: Eclipse Modeling Framework},
+  Author                   = {Dave Steinberg and Frank Budinsky and Marcelo Paternostro and Ed Merks},
+  Publisher                = {Addison-Wesley},
+  Year                     = {2008},
+
+  Owner                    = {asbh500},
+  Timestamp                = {2014.01.14}
+}
+
+@Misc{lwbChallenge2013Online,
+  Title                    = {Language Workbench Challenge 2013},
+
+  Author                   = {Tijs van der Storm},
+  HowPublished             = {On-Line: \url{http://www.languageworkbenches.net/wp-content/uploads/2013/11/Ql.pdf}},
+  Year                     = {2013},
+
+  Owner                    = {asbh},
+  Timestamp                = {2014.01.09},
+  Url                      = {http://www.languageworkbenches.net/wp-content/uploads/2013/11/Ql.pdf}
+}
+
+@Misc{spoofaxOnline,
+  Title                    = {{Spoofax}},
+
+  Author                   = {Delft University of Technology},
+  HowPublished             = {On-Line: \url{http://www.metaborg.org/spoofax}},
+
+  Owner                    = {asbh},
+  Timestamp                = {2014.01.09},
+  Url                      = {http://www.metaborg.org/spoofax}
+}
+
+@Misc{volter2011XtextTS,
+  Title                    = {Xtext/TS-a typesystem framwork for Xtext},
+
+  Author                   = {V{\"o}lter, Markus},
+  HowPublished             = {ON-LINE},
+  Year                     = {May, 2011},
+
+  Owner                    = {asbh500},
+  Timestamp                = {2014.12.09},
+  Url                      = {https://code.google.com/a/eclipselabs.org/p/xtext-typesystem/}
+}
+
+@Article{vanGorp2012share,
+  Title                    = {Supporting the internet-based evaluation of research software with cloud infrastructure},
+  Author                   = {Van Gorp, Pieter and Grefen, Paul},
+  Journal                  = {Software \& Systems Modeling},
+  Year                     = {2012},
+  Number                   = {1},
+  Pages                    = {11--28},
+  Volume                   = {11},
+
+  Owner                    = {Adolfo},
+  Publisher                = {Springer},
+  Timestamp                = {2016.03.07}
+}
+
+@InCollection{visser2004stratego,
+  Title                    = {Program Transformation with Stratego/XT},
+  Author                   = {Visser, Eelco},
+  Booktitle                = {Domain-Specific Program Generation},
+  Publisher                = {Springer Berlin Heidelberg},
+  Year                     = {2004},
+  Editor                   = {Lengauer, Christian et. al},
+  Pages                    = {216-238},
+  Series                   = {Lecture Notes in Computer Science},
+  Volume                   = {3016},
+
+  Doi                      = {10.1007/978-3-540-25935-0_13},
+  ISBN                     = {978-3-540-22119-7},
+  Language                 = {English},
+  Owner                    = {asbh500},
+  Timestamp                = {2015.07.07},
+  Url                      = {http://dx.doi.org/10.1007/978-3-540-25935-0_13}
+}
+
+@InCollection{voelter2011mps,
+  Title                    = {{Language and IDE Modularization and Composition with MPS}},
+  Author                   = {Voelter, Markus},
+  Booktitle                = {Generative and transformational techniques in software engineering IV},
+  Publisher                = {Springer},
+  Year                     = {2011},
+  Pages                    = {383--430}
+}
+
+@Book{vogt1989higherOrderAG,
+  Title                    = {Higher order attribute grammars},
+  Author                   = {Vogt, Harald H and Swierstra, S Doaitse and Kuiper, Matthijs F},
+  Publisher                = {ACM},
+  Year                     = {1989},
+  Number                   = {7},
+  Volume                   = {24},
+
+  Owner                    = {asbh500},
+  Timestamp                = {2014.12.09}
+}
+
+@Misc{wei2014ttcEpsilon,
+  Title                    = {{An Epsilon Solution to the Flowgraphs Case}},
+
+  Author                   = {Wei, R. and S{\'a}nchez-Barbudo Herrera, Adolfo and Ogunyomi, Babajide and Rose, Louis M. and Kolovos, Dimitrios S.},
+  HowPublished             = {In preparation},
+  Year                     = {2014},
+
+  Comment                  = {in preparation},
+  Owner                    = {asbh500},
+  Timestamp                = {2014.01.14},
+  Url                      = {http://planet-sl.org/_/ttc/ttc2013/solutions/initial/ttc2013_submission_10.pdf}
+}
+
+@InCollection{willink2013yet3QVT,
+  Title                    = {Yet another three QVT languages},
+  Author                   = {Willink, Edward and Hoyos, Horacio and Kolovos, Dimitris},
+  Booktitle                = {Theory and Practice of Model Transformations},
+  Publisher                = {Springer},
+  Year                     = {2013},
+  Pages                    = {58--59},
+
+  Owner                    = {asbh500},
+  Timestamp                = {2014.12.09}
+}
+
+@Article{willink2010oclXtext,
+  Title                    = {{Re-engineering Eclipse MDT/OCL for Xtext}},
+  Author                   = {Willink, Edward Daniel},
+  Journal                  = {Electronic Communications of the EASST},
+  Year                     = {2010},
+  Pages                    = {1},
+  Volume                   = {36},
+
+  Owner                    = {asbh},
+  Timestamp                = {2013.02.27}
+}
+
+@InProceedings{wimmer2006bridgeGraMod,
+  Title                    = {Bridging grammarware and modelware},
+  Author                   = {Wimmer, Manuel and Kramler, Gerhard},
+  Booktitle                = {Satellite Events at the MoDELS 2005 Conference},
+  Year                     = {2006},
+  Organization             = {Springer},
+  Pages                    = {159--168},
+
+  Owner                    = {asbh},
+  Timestamp                = {2013.12.09}
+}
+
+@Article{wirth1996ebnf,
+  Title                    = {Extended Backus-Naur Form (EBNF)},
+  Author                   = {Wirth, Niklaus},
+  Journal                  = {ISO/IEC},
+  Year                     = {1996},
+  Pages                    = {2996},
+  Volume                   = {14977},
+
+  Owner                    = {asbh500},
+  Timestamp                = {2015.07.07}
+}
+
+@Misc{emfText,
+  Title                    = {{EMF Text}},
+  HowPublished             = {On-Line: \url{http://www.emftext.org/}},
+
+  Owner                    = {asbh},
+  Timestamp                = {2014.01.09},
+  Url                      = {http://www.emftext.org/}
+}
+
+@Misc{itemisOnline,
+  Title                    = {{Itemis AG}},
+  HowPublished             = {On-Line: \url{http://www.itemis.com/itemis-ag/language=en/2604/company}},
+
+  Owner                    = {asbh},
+  Timestamp                = {2014.01.09},
+  Url                      = {http://www.eclipse.org/forums/index.php?t=thread&frm_id=27}
+}
+
+@Misc{lpgOnline,
+  Title                    = {{LALR Parser Generator}},
+  HowPublished             = {\url{http://sourceforge.net/projects/lpg/}},
+
+  Owner                    = {asbh},
+  Timestamp                = {2014.01.09},
+  Url                      = {http://sourceforge.net/projects/lpg/}
+}
+
+@Misc{xtend,
+  Title                    = {{Xtend}},
+  HowPublished             = {On-Line: \url{https://www.eclipse.org/xtend/}},
+
+  Owner                    = {asbh},
+  Timestamp                = {2014.01.09},
+  Url                      = {https://www.eclipse.org/xtend/}
+}
+
+@Misc{xtendTemplates,
+  Title                    = {{Xtend Templates}},
+  HowPublished             = {On-Line: \url{https://www.eclipse.org/xtend/documentation.html\#templates}},
+
+  Owner                    = {asbh},
+  Timestamp                = {2014.01.09},
+  Url                      = {https://www.eclipse.org/xtend/documentation.html#templates}
+}
+
+@Misc{xtextDocOnline,
+  Title                    = {{Xtext Documentation}},
+  HowPublished             = {On-Line: \url{http://www.eclipse.org/Xtext/documentation.html}},
+
+  Owner                    = {asbh},
+  Timestamp                = {2014.01.09},
+  Url                      = {http://www.eclipse.org/Xtext/documentation.html}
+}
+
+@Misc{xtextForumOnline,
+  Title                    = {{Xtext Forum}},
+  HowPublished             = {On-Line: \url{http://www.eclipse.org/forums/index.php?t=thread&frm_id=27}},
+
+  Owner                    = {asbh},
+  Timestamp                = {2014.01.09},
+  Url                      = {http://www.eclipse.org/forums/index.php?t=thread&frm_id=27}
+}
+
+@incollection{muller2006csMetamodel,
+	title={Model-driven analysis and synthesis of concrete syntax},
+	author={Muller, Pierre-Alain and Fleurey, Franck and Fondement, Fr{\'e}d{\'e}ric and Hassenforder, Michel and Schneckenburger, R{\'e}mi and G{\'e}rard, S{\'e}bastien and J{\'e}z{\'e}quel, Jean-Marc},
+	booktitle={Model Driven Engineering Languages and Systems},
+	pages={98--110},
+	year={2006},
+	publisher={Springer},
+	Timestamp                = {2016.04.12}
+}
+
diff --git a/ocl/docs/publications/ICMT2016CS2AS_DSTL/icmt2016.pdf b/ocl/docs/publications/ICMT2016CS2AS_DSTL/icmt2016.pdf
new file mode 100644
index 0000000..f7da6ad
--- /dev/null
+++ b/ocl/docs/publications/ICMT2016CS2AS_DSTL/icmt2016.pdf
Binary files differ
diff --git a/ocl/docs/publications/ICMT2016CS2AS_DSTL/icmt2016.tex b/ocl/docs/publications/ICMT2016CS2AS_DSTL/icmt2016.tex
new file mode 100644
index 0000000..b00a965
--- /dev/null
+++ b/ocl/docs/publications/ICMT2016CS2AS_DSTL/icmt2016.tex
@@ -0,0 +1,845 @@
+\documentclass{llncs}
+
+\usepackage{graphicx}
+
+%\usepackage{caption, subcaption}
+%\captionsetup{compatibility=false}
+\usepackage[caption=false]{subfig}
+
+\makeatletter%
+\newbox\sf@box%
+\newenvironment{SubFloat}[2][]%
+{\def\sf@one{#1}%
+	\def\sf@two{#2}%
+	\setbox\sf@box\hbox%
+	\bgroup}%
+{ \egroup%
+	\ifx\@empty\sf@two\@empty\relax%
+	\def\sf@two{\@empty}%
+	\fi%
+	\ifx\@empty\sf@one\@empty\relax%
+	\subfloat[\sf@two]{\box\sf@box}%
+	\else%
+	\subfloat[\sf@one][\sf@two]{\box\sf@box}%
+	\fi%
+}%
+\makeatother%
+
+\usepackage{url}
+\usepackage{courier}
+\usepackage{listings}
+
+\usepackage{pifont}
+
+\usepackage{xcolor}
+\definecolor{mygreen}{rgb}{0,0.5,0}
+\definecolor{mypurple}{rgb}{0.5,0,0.33}
+
+\input{listings.tex}
+
+\lstset{% general command to set parameter(s)
+	%basicstyle=\scriptsize,%\libertineDisplay, % print whole listing small
+	keywordstyle=\bfseries\color{mypurple},	% underlined bold black keywords
+	keywordstyle=[2]\bfseries\textsl,	% slanted directives
+	commentstyle=\color{mygreen}\textit, % white comments
+	%stringstyle=\ttfamily, % typewriter type for strings
+	showstringspaces=false,	% no special string spaces
+	breaklines=true,	% break lines
+	breakatwhitespace=false,
+	escapechar=@,	% escape character for latex, e.g. \label{key}
+	numberbychapter=false
+}
+
+\addtolength{\intextsep}{-15pt}
+\addtolength{\textfloatsep}{-15pt}
+
+
+\begin{document}
+
+%opening
+\title{A Domain Specific Transformation Language to Bridge Concrete and Abstract Syntax}
+
+\author{Adolfo S\'{a}nchez-Barbudo Herrera\inst{1}, Edward D. Willink\inst{2},
+Richard F. Paige\inst{1}}
+
+\institute{
+Department of Computer Science, University of York, UK.\\
+\email{\{asbh500, richard.paige\}\_at\_york.ac.uk}
+\and 
+Willink Transformations Ltd. 
+\email{ed\_at\_willink.me.uk}
+}
+\maketitle
+
+\begin{abstract}
+%In Model-Driven Engineering, there are modelling languages where the gap between concrete syntax (CS) and abstract syntax (AS) is so significant that providing tools to create and manage valid models is a non-trivial task. 
+Existing language workbenches, such as Xtext, support bridging the gap between the concrete syntax (CS) and abstract syntax (AS) of textual languages. However, the specification artefacts -- i.e. grammars -- are not sufficiently expressive to completely model the required CS-to-AS mapping, when it requires complex name resolution or multi-way mappings. This paper proposes a new declarative domain specific transformation language (DSTL) which provides support for complex CS-to-AS mappings, including features for name resolution and CS disambiguation. We justify the value of and need for a DSTL, analyse the challenges for using it to support mappings for complex languages such as Object Constraint Language, and demonstrate how it addresses these challenges. We present a comparison between the new DSTL and the state-of-the-art Gra2Mol, including performance data showing a significant improvement in terms of execution time.
+
+\keywords{
+Concrete Syntax 
+$\cdot$ Abstract Syntax
+$\cdot$ Domain Specific Transformation Language
+$\cdot$ Xtext
+$\cdot$ OCL
+$\cdot$ Gra2Mol}
+\end{abstract}
+
+\section{Introduction}
+
+%In Model-Driven Engineering (MDE), models are the first class artefacts managed by end users for different engineering purposes (e.g., software development, re-engineering, process design, documentation). Models can be expressed in varied forms (e.g. text, diagrams, spreadsheets) conforming to the concrete syntax (CS) of the language. Regardless of the specific language CS, the tools provided for the modelling languages manipulate models that conform to its abstract syntax (AS), or meta-model. 
+One of the challenges that Model-Driven Engineering (MDE) tool implementors face when creating modelling languages is how to effectively bridge the gap between the concrete syntax (CS) and the abstract syntax (AS) of a language: the CS must be designed so that end-users have a familiar and accessible syntax, whereas the AS must be provided behind-the-scenes to enable model management and manipulation -- and the two artefacts must be related.
+
+Although this is a general challenge addressed by many works in the field, there are still gaps, particularly for bridging the CS-to-AS (CS2AS) gap for non-trivial modelling languages like the Object Constraint Language (OCL). %To adequately introduce this gap, we firstly describe the motivation and scope, focusing on the technical challenges of building the official Eclipse OCL tools. To conclude the introductory section, we clarify the contributions of this paper, and its overall structure.
+To understand the aims of this research, we introduce its scope and motivation in the remainder of this section. Section~\ref{sec:problem} goes deeper into the challenges that arise when specifying CS2AS bridges for languages like OCL. Section~\ref{sec:solution} introduces the proposed solution to overcome these challenges. Section~\ref{sec:relatedWork} assesses related work, and we present a more extensive comparative study with Gra2Mol in Sect.~\ref{sec:gra2mol}. We give final remarks and future work in Sect.~\ref{sec:futureWork} and conclude in Sect.~\ref{sec:conclusions}.
+
+\subsection{Scope}
+\label{subsec:scope}
+
+Bridging the CS and the AS of a modelling language is a topic with significant related work (discussed in Sect.~\ref{sec:relatedWork}).
+We focus on the problem for a subset of languages:
+\begin{itemize}
+\item Those whose AS is given in the form of an established (possibly standardised) meta-model. In other words, the end user is interested in editing models conforming to an already existent meta-model.% Examples might include OMG standard metamodels, which are widely deployed and used.
+\item Those whose CS is textual and given in the form of a grammar. Although we are aware of previous work \cite{jouault2006tcs,heidenreich2011emfText,voelter2011mps} that supports for textual concrete syntaxes without any grammar provision, they are out of this paper scope. %as they target a different class of problem.
+\end{itemize}
+
+We use OCL~\cite{omg2014ocl} to illustrate the ideas of our approach. OCL has a textual CS and managing instances of it consists of editing models conforming to the language AS (meta-model). The grammar and meta-model come from the specification defined by the Object Management Group (OMG).
+
+%[?]. Should I mention EMF as modeling platform ?
+%TODO. This work is a continuation of the work presented at the Ocl workshop
+
+
+\subsection{Motivation}
+\label{subsec:motivation}
+
+%With respect to the topic of bridging the gap between a textual CS (defined by a grammar) and an AS (defined by a meta-model), many publications and open tools might be found [????].
+To clarify the motivation for our approach, we expose a problem with a specific language workbench: Xtext~\cite{eysholdt2010Xtext}. Then, we briefly introduce our solution.
+
+%\textbf{Problem.} Xtext is a language workbench which gives you support to textual modelling languages in the form of generating a parser capable of producing AS models. For the sake of bridging the CS and AS of a language, Xtext specification artefacts, i.e. the grammars, let us specify those bridges.
+
+
+%\begin{lstlisting}[caption=Xtext grammar excerpt, label=lst:XtextExcerpt, language=Xtext]
+%import MM 'http://myMetamodelNSURI';
+%TopRule returns Model: // grammar non-terminal -> returns Model AS Class
+%  'model'        // grammar terminal (Keyword)
+%    (element+=   // matches Model::element AS Property
+%      Element)*; // grammar non-terminal reference
+%SubRule returns Element:        // grammar non-terminal -> returns Element AS Class 
+%  'element'      // grammar terminal (Keyword)
+%    name=        // matches Element::name AS Property
+%      ID;        // grammar terminal reference
+%\end{lstlisting} 
+
+%Listing~\ref{lst:XtextExcerpt} shows how an Xtext grammar that imports an existing meta-model (AS), uses some EBNF like constructs to define the CS, but also incorporates additional syntax to map the CS and the AS. In particular:
+%\begin{itemize}
+%\item Lines 2 and 6 map grammar non-terminals with meta-model classes, respectively Model and Element.
+%\item Line 4 maps the consumption of non-terminals with a property of the Model meta-model class.
+%\item Line 8 maps the consumption of a terminal with a property of the Element meta-model class.
+%\end{itemize}
+
+\textbf{Problem.} Xtext grammars provide the means to specify bridges between the CS and the AS. However, this can only be done easily for simple languages. Consider the following example of an OCL expression: % that will be used along the paper:
+
+\begin{lstlisting}[label=lst:namedExp, language=Xtext]
+x.y
+\end{lstlisting} 
+
+Fig.~\ref{fig:ExampleCS} shows a plausible CS definition. It uses a very simplified OCL grammar and CS with just navigation expressions for ease of presentation.
+
+%\begin{figure}[htbp]
+%	\centering
+%	\begin{subfigure}{0.35\textwidth}
+%		\centering
+%		\begin{lstlisting}[label=lst:ExampleGrammar, language=Xtext]
+%NameExpCS:
+%  sName=SimpleNameCS 
+%  ( navOp=('.' | '->')
+%    navExp=NameExpCS)?;
+%SimpleNameCS:
+%  name=(ID | 'self');
+%		\end{lstlisting} 
+%	\end{subfigure}%
+%	\begin{subfigure}{0.65\textwidth}
+%		\centering
+%		\includegraphics[width=\textwidth]{images/NameExpCS.pdf}
+%	\end{subfigure}
+%	\caption{Example CS definition}
+%	\label{fig:ExampleCS}
+%\end{figure}
+\begin{figure}[htbp]
+  \captionsetup[subfigure]{labelformat=empty}
+  \begin{SubFloat}[]{}%
+  	\begin{minipage}{0.35\textwidth}%
+    \begin{lstlisting}[label=lst:ExampleGrammar, language=Xtext]
+NameExpCS:
+  sName=SimpleNameCS 
+  ( navOp=('.' | '->')
+  navExp=NameExpCS)?;
+SimpleNameCS:
+  name=(ID | 'self');
+    \end{lstlisting} 
+    \end{minipage}
+  \end{SubFloat}
+  %\hfill
+  \begin{SubFloat}[]{}%
+    \begin{minipage}{.60\textwidth}%
+	  \includegraphics[width=\textwidth]{images/NameExpCS.pdf}
+    \end{minipage}
+  \end{SubFloat}
+  %	\subfloat[]{\includegraphics[width=0.45\textwidth]
+  %				    {images/NameExpCS.pdf}
+  %	}
+  \caption{Example CS definition}
+  \label{fig:ExampleCS}
+\end{figure}
+
+In terms of AS (Clause 8 of~\cite{omg2014ocl}), we can be sure that \textit{'y'} must be a \textit{PropertyCallExp}. This means, in terms of evaluation (dynamic semantics), that the \textit{'y'} property must be navigated from the object evaluated from the \textit{PropertyCallExp} source (i.e. \textit{'x'}). \textit{'x'} could be a \textit{VariableExp}, whose evaluation uses the value of the \textit{'x'} variable (perhaps defined in an outer \textit{LetExp}). However, in OCL, \textit{'x'} could also be another property navigation using the value of the implicit \textit{'self'} variable. In other words, the original expression could be shorthand for \textit{'self.x.y'}.
+
+This kind of situation cannot be handled by Xtext grammars. Syntactically, it is unknown whether the name \textit{'x'} that precedes the \textit{'.'} operator is a \textit{VariableExp}, or a \textit{PropertyCallExp}. Additional semantic information (static semantics) is required. Despite enhancing EBNF notation~\cite{wirth1996ebnf} to map the AS from the CS, Xtext grammars are insufficient to cope with all the required mappings.%Section~\ref{sec:problem} gets into some identified situations.
+
+% We can generalize, i.e. it is not an Xtext specific issue. Context-free grammars are conceived to parse the syntactic structure of textual programs. Further analysis taking into account the static semantics of the language might be required to produce the desired AS models.
+
+\textbf{Proposed approach.}
+%The problem explained before, exposes a conceptual deficiency in Xtext which is latent when working with non trivial DSLs. Unless the CS2AS gap is simple (further discussed in Section~\ref{subsec:issue1}), we can't only rely on syntactic information to adequately produce AS elements.%We might need semantic information to decide which is the adequate AS element to create.
+Given such problematic scenarios, we advocate a clear distinction between the CS specification (i.e a grammar), from which a CS meta-model can be straightforwardly derived (as Xtext does), and the AS specification (i.e a meta-model). Transition from the CS to the AS is then a matter of exercising a model-to-model (M2M) transformation. In particular, we propose a domain specific transformation language (DSTL); our solution entirely operates in the modelware technological space~\cite{bezivin2006mdeTS}.
+%Since this concrete syntax to abstract syntax (CS2AS) transformation have its particularities, we therefore propose a domain specific transformation language (DSTL) so that:
+%\begin{itemize}
+%	\item Language engineers can model complex CS2AS bridges with a language fit for purpose.
+%	\item Tools can execute M2M transformations to produce AS models from CS ones.
+%\end{itemize}
+
+The reader may note that the approach itself is not novel. The convenience of a CS meta-model has been previously published~\cite{muller2006csMetamodel}, and, as discussed in our previous work~\cite{sanchez2015oclCS2AS}, an OCL based informal description is proposed by the own OCL specification. Gra2Mol~\cite{canovas2012gra2mol} demonstrates the same idea of a DSTL to map grammars to arbitrary AS meta-models. However, we have identified limitations that have pushed us to come up with a new DSTL, which combines novel features from DSLs like NaBL~\cite{konat2013decNameRes}, while offering both declarative capabilities and significant performance improvement (see Sect.~\ref{sec:gra2mol}).
+%With the freedom of designing a new language, we also take the opportunity to bring convenient features of related works such as NaBL~\cite{konat2013decNameRes} from Spoofax~\cite{kats2010spoofax}.
+
+%Last, but not least, since we are proposing a M2M transformation language to describe CS2AS, we step away from particular parser technologies or language workbenches. As long as a parser produces models conforming to a CS meta-model, our DSTL can be used to complement the parser technology. Implementation wise the prototype discussed in this paper is tight to EMF as the modeling platform, and other Eclipse Modeling techologies built on it. [NB this should probably should go somewhere else]
+
+% TODO. Mention some advantages of having  the DSTL(OMG spec gen, Xtext gen)
+
+%\subsection{Paper structure}
+
+%After introducing the research scope and motivation, we can state what are the contributions and what aren't considered as such.
+
+%\begin{itemize}
+%\item We identify the need for grammar independent CS2AS specification, which should take the form of a declarative DSTL. This idea is not novel. %As clarification, we emphasize that this need is not present in every possible modelling language, just in complex languages where there exist a substantial gap between the CS and the AS. If your modelling language is simple enough, you don't require these complementary (to the grammar) descriptions.
+
+%\item We contribute a new DSTL to solve the need. Although it borrows some concepts and/or ideas from M2M transformations and language workbenches topics, the novelty resides in putting them together.
+
+
+%\item We contribute an open tool (prototype state) capable of producing an executable transformation from an instance of our DSTL. With respect to execution, we compile to an existing declarative M2M transformation language. Therefore, we don't contribute a new M2M transformation engine.%, it just reuses existing technology.
+ 
+%Due to space limits we don't present in detail the whole language. Instead, we show how various issues arisen when working in a language like OCL, can be addressed within the proposed approach.
+
+%\item We contribute a comparative study with Gra2Mol, the state-of-the-art. It includes a benchmark in terms of execution time.% This provides us the means to evaluate the work presented in this paper.
+
+%\end{itemize}
+
+%The paper is structured as follows. Section~\ref{sec:problem} goes deeper in explaining varied issues that we might find when specifying CS2AS bridges for languages like OCL. Section~\ref{sec:solution} introduces the proposed solution, focusing on how to solve these issues. Section~\ref{sec:relatedWork} mentions some relevant related work, and we present a more extensive comparative study with Gra2Mol in Section~\ref{sec:gra2mol}. We remark some limitations in Section~\ref{sec:limitations}, and future work in Section~\ref{sec:futureWork}. In Section~\ref{sec:conclusions} we expose the paper conclusions.
+
+\section{Problem Analysis}
+\label{sec:problem}
+In this section, we analyse challenges to be addressed when specifying CS2AS bridges for languages like OCL that require non-trivial CS2AS mappings.% By analysing the different problems, we are exposing some requirements for the further solution. 
+
+\textbf{Challenge 1: Significant gap between CS and AS.}
+Previous work~\cite{wimmer2006bridgeGraMod,eysholdt2010Xtext} has proposed how meta-models can be mapped from grammars specification. In OCL, there is an AS meta-model which has been established \textit{a priori}; there are substantial differences between the CS and AS. When the mappings between CS and AS elements (e.g. between a grammar non-terminal and a meta-class) are not direct (1-1 mapping), existing approaches cannot easily establish the desired CS2AS bridges. In general, the possibility to create many AS elements from many CS elements (M-N mappings) is required.
+
+In our introductory example we required either a 2-1 or 2-2 mapping. A \textit{NameExpCS} and a \textit{SimpleNameCS} corresponding to the \textit{'x'} expression, maps either to a \textit{VariableExp} for the  \textit{'x'} variable or to a \textit{VariableExp} for the implicit \textit{'self'} variable and a \textit{PropertyCallExp} for the \textit{'x'} property.
+
+\textbf{Challenge 2: Cross-references resolution.}
+When creating AS models, graphs are produced rather than trees. This requires a mechanism to set cross-references at the AS level. For instance, in OCL, the AS elements reference their type. We must therefore specify the computation of these types that may involve identification of a common specialization of template types.
+
+% It's important to note that this cross-referencing activity is always done at the AS level. Regardless we are processing textual files, we might have external AS models (e.g a library model) participating in the process.
+
+\textbf{Challenge 3: Name resolution.}
+Name resolution is a particular form of cross-referencing where we use CS information such as a name to locate one AS named element in the context of another AS element to resolve a cross-reference between the AS elements. For instance, in our introductory example, \textit{'y'} is used in the context of the \textit{PropertyCallExp} to resolve the reference to the \textit{Property}.
+
+% It's important to note, that not only a name has to be used. For instance, in OCL, if we had to resolve a cross-reference between an OperationCallExp and its referred Operation, apart from a name to locate the expected operation, we would also require information about the call arguments.
+
+\textbf{Challenge 4: Disambiguation resolution.}
+In the introductory example, we explained how \textit{'x'} might map to either a \textit{VariableExp} for \textit{'x'} or a \textit{VariableExp} and \textit{PropertyCallExp} for \textit{'self.x'}. Syntactically, we cannot determine which AS should be created. Disambiguation rules are therefore required whenever a CS element is ambiguous. CS2AS bridges can specify these CS disambiguation rules as computations involving the CS and/or AS model elements.
+
+%Finally we have to mention the need of disambiguation rules in CS2AS bridges.
+%In Issue~\ref{subsec:issue1} we mention that a single CS element might span into many AS elements. Even though a single CS element were mapped to just one AS element, we might require creation of different AS elements, depending on CS and/or AS information. 
+
+%We refer again to the introductory example to explain CS disambiguation resolution. We explained why \textit{'x'} expression might be mapped to either a \textit{VariableExp} referring to an 'x' variable, or to a \textit{PropertyCallExp} referring to an 'x' property (whose source is a \textit{VariableExp} referring to the \textit{'self'} variable).
+
+
+
+\section{Solution}
+\label{sec:solution}
+
+We now propose our solution to the aforementioned challenges.
+
+\subsection{Distinct CS and AS Meta-Models}
+
+%Previous works\cite{wimmer2006bridgeGraMod} have established some bases about how grammarware and modelware technological spaces can be mapped. Language workbenches such as Xtext\cite{eysholdt2010Xtext}, allows you to directly map AS meta-model concepts from CS grammar constructs. % Whereas context free grammars describe the correct syntactic structure of textual inputs for our language, AS meta-models describe the static semantics [?] of it. [Need to rethink which direction I give to these ideas]
+%As we explained before, we might require semantic information to properly produce the target AS models. At the same time, we might be interested in not polluting AS models with unneeded syntactic information (e.g. a set of strings comprising a qualified name). We therefore advocate for introducing distinct CS and AS meta-models. While the latter is the established meta-model we are targeting, the former can be an intermediate meta-model, automatically derived from a grammar definition. Expressing potentially complex bridges between the CS and AS of a language, would then consist of establishing mappings between the concepts of the CS and AS meta-models, i.e. defining a model-to-model (M2M) transformation. Whilst existing tools might generate a CS meta-model and the parser capable of producing the conforming CS models from a given textual input, a M2M transformation solution would be in charge of consuming those CS models in order to produce the final AS ones. The overall approach is depicted by Figure~\ref{fig:OverallApproach}.
+
+
+The overall approach is depicted in Fig.~\ref{fig:OverallApproach}. We advocate introducing distinct CS and AS meta-models. The AS is the established target meta-model~\ding{204}. The CS can be an intermediate meta-model~\ding{203} automatically derived from a grammar definition~\ding{202}. A potentially complex bridge~\ding{205} between the CS and AS of a language defines mappings between the concepts of the CS and AS meta-models, i.e. defining a model-to-model (M2M) transformation. Existing tools can generate a CS meta-model and the parser \ding{206} capable of producing the conforming CS models from a given textual input. In this paper we are concerned with the CS2AS bridge from which we synthesize the M2M transformation solution \ding{207} that is responsible for consuming CS models in order to produce the final AS ones. 
+
+\begin{figure}[htbp]
+	\centering
+	\includegraphics[width=\textwidth]{images/OverallApproach.pdf}
+	\caption{Overall approach}
+	\label{fig:OverallApproach}
+\end{figure}
+	
+With the proposed approach we operate in the modelware technological space. The significant parsing concerns do not affect us and so we are not dependent on a particular parser and/or language workbench technology.  % We just rely on the existence of a CS meta-model (generated or not) and the existence of a parser which will provide the CS models for a given input. 
+For example, Xtext (and ANTLR~\cite{antlrOnline} based parsers) are suitable for this approach. More generally, any underlying parser produces CS models conforming to a meta-model could be used. We could therefore use IMP~\cite{charles2009imp} (and LPG~\cite{lpgOnline} based parsers). % The description between the CS and AS should certainly be parser agnostic.
+
+\subsection{CS2AS External DSTL}
+\label{subsec:dstl}
+
+We propose a new external DSTL for the CS2AS definition~\ding{205} in Fig.~\ref{fig:OverallApproach}. We use a new DSTL rather than an existing M2M transformation language, to provide a more concise declarative language in this domain. The DSTL reuses Essential OCL as the expressions language. The following characteristics led us to define it as a DSTL:
+
+\textbf{One input and output domain}. The model transformations involves just one source input domain and one target output domain. Each domain which may comprise several meta-models. There is no need to support in-place transformations.
+
+\textbf{Specific name resolution related constructs}. We add specific constructs to define name resolution in a declarative manner.
+
+\textbf{Specific disambiguation rules}. The CS disambiguation concern is separated by providing a dedicated declarative section to specify the disambiguation rules that drive AS element construction.
+
+
+%Due to limited space, we focus on exposing the features that address the issues identified in Section~\ref{sec:problem}, taking the example introduced in Section~\ref{subsec:motivation} to show concrete excerpts.
+
+The DSTL consists of four different sections: \textit{helpers}, \textit{mappings}, \textit{name resolution} and \textit{disambiguation}. Each addresses a particular concern of the process of describing CS2AS bridges, and they are introduced below.
+
+\textbf{Helpers.}
+The helpers section provides reusable functionality in the form of helper operations. For instance, Listing~\ref{lst:HelpersExcerpt} depicts a declaration of a helper operation that retrieves the parent element of a \textit{NameExpCS} as another \textit{NameExpCS}. When the parent element is either \textit{null} or a non-\textit{NameExpCS}, \textit{null} is returned.
+
+\begin{lstlisting}[caption=Helpers section excerpt, label=lst:HelpersExcerpt, language=CS2AS]
+helpers {
+  NameExpCS::parentAsNameExp() : NameExpCS[?] := 
+      let container = self.oclContainer()
+      in if container.oclIsKindOf(NameExpCS)
+         then container.oclAsType(NameExpCS)
+         else null endif  }
+\end{lstlisting} 
+
+\textbf{Mappings.}
+The \textit{mappings} section is the main part of the DSTL. The mappings declare how AS outputs are created and initialized from CS inputs. The DSTL includes the basics of declarative M2M transformation languages\cite{czarnecki2003classification}.
+
+%Listing~\ref{lst:MappingsExcerpt} depicts an excerpt for our example. %Line 2 declares that a \textit{PropertyCallExp} might be created from a \textit{NameExpCS}. Line 3 refers to a disambiguation rule, and it will be explained later on. % Here, the reader just need to know that they act as mapping guards. 
+%Line 4, will declare how \textit{PropertyCallExp::ownedSource} property is computed. Firstly, it might be noticed that the helper we introduced before is invoked on \textit{self}. The \textit{self} keyword always refers to the contextual CS element, source of the mapping, and it might normally be removed. If we syntactically check that the \textit{NameExpCS} is not navigated (i.e. it's not a nested \textit{NameExpCS}), a \textit{VariableExp} is created referring to the implicit 'self' Variable, otherwise we are interestesd in the AS element created from the parent \textit{NameExpCS} element. The latter is declared with the first of the special expressions added to OCL in our DSTL: \textbf{resolve}. A resolve expression simply returns, by the means of traces information, the AS element created from a CS one (source of that resolve expression). Lines 7 and 11, include the second (and last) kind of special expression: \textbf{lookup}. They are explained later on. In line 12, we see how cross-references can be established by making use of the expressions language.
+
+\begin{lstlisting}[float, caption=Mappings section excerpt, label=lst:MappingsExcerpt, language=CS2AS]
+mappings {
+  map PropertyCallExp from NameExpCS 
+    when nameRefersAProperty {
+      ownedSource := let parent = self.parentAsNameExp()
+                     in if parent = null
+                       then VariableExp {
+                         referredVariable = trace.lookup(Variable, 'self'); }
+                       else parent.trace;
+                       endif
+      property := trace.lookupFrom(Property, sName, trace.ownedSource.type)
+      type := trace.property.type }}
+\end{lstlisting}
+
+Listing~\ref{lst:MappingsExcerpt} depicts an excerpt for our example; we highlight the relevant features. Line 3 refers to a disambiguation rule that is specified in the \textit{disambiguation} section (explained later). Lines 7, 8, 10 and 11 make use of \textit{trace} expressions, which let us access the AS domain from CS elements. Lines 7 and 10 make use of \textit{lookup} expressions to compute name resolution based cross-references (more details later). 
+
+The \textit{mappings} section addresses complex CS2AS mappings like that required by our example. The use of OCL supports  complex computation and full navigation of the CS and AS models. % In this case, the input elements involved in the mappings are a NameExpCS and a SimpleNameCS. The output elements that might be created by this mapping are a PropertyCallExp and a VariableExp.
+
+%Although  needed in our simple example, we explain another DSTL feature required by the comparative study presented in Section~\ref{subsec:featuresComparison}. The mappings exposed before, allow us to the declare how AS elements are created from CS ones, establishing a trace link between one source CS element and the target AS. These trace links might be used by resolve expressions to access the AS domain from the CS one. Sometimes, We might want to access the AS domain from CS elements, even though no particular AS element is created. %This scenario is normally found when we have CS elements conceived to create cross-references in the AS, for instance when have a name used to look up a type in the AS. 
+%The syntax to support this kind of declarations can be depicted by Listing~\ref{lst:MappingsExcerpt2}.
+
+%\begin{lstlisting}[caption=Mappings section excerpt, label=lst:MappingsExcerpt2, language=CS2AS]
+%mappings {
+%  map Type from TypeRefCS :=
+%     resolve.lookup(Type, pathName)
+%}
+%\end{lstlisting}
+
+\textbf{Name resolution.}
+The third section of the DSTL specifies how names are resolved. % to create cross-references in the AS models. Name resolution is a so common activity, even in simple modeling languages, that the DSTL incorporates dedicated syntax for it. 
+Explaining the full capabilities of the language would merit its own paper. We therefore focus on what is required to explain name resolution in our example: in particular, how a \textit{Property} might be located to resolve the \textit{PropertyCallExp::referredProperty} cross-reference.
+
+%Name resolution consists of performing a lookup activity from an AS element with the aim of finding another AS (named) element located somewhere else in the AS model. The input of this lookup activity is normally CS related information (e.g. a name), whilst the output is the desired AS model, target of a  cross-reference. In our DSTL we identify three kind of named element lookups (i.e three different name resolution protocols): \textbf{unqualified}, \textbf{qualified} and \textbf{exported} named element lookups. 
+%In the name resolution section, it will be declared how the different types of AS elements will contribute named elements for the different kind of name lookups.
+
+
+\begin{lstlisting}[caption=Basic name resolution declaration for \textit{Property} elements lookup., label=lst:unqualifiedLookup, language=CS2AS]
+nameresolution {
+  Property { 
+    named-element name-property name; }
+  Class {
+    for all-children -- scopes can be configured for all-children elements
+      nested-scope ownedProperties;
+    exports ownedProperties; }}
+\end{lstlisting}
+
+Listing~\ref{lst:unqualifiedLookup} shows the solution for the simple case. We firstly identify \textit{Property} as a named element, the target of name-based lookups (lines 2-3). Basic unqualified named element lookups are based on the concept of lookup environments (scopes) propagation (Clause 9.4 of~\cite{omg2014ocl}). They are detailed in our previous work~\cite{sanchez2015oclCS2AS}. In our example, we declare how \textit{Properties} are contributed to lookup scopes. In this case, it is done by the owning \textit{Class} (Lines 5-6). Since a property name might occlude others defined in outer scopes, we use the \textbf{\textit{nested-scope}} keyword. 
+
+Named elements might be the target of lookups out of the scope of the element that performs the lookup. For instance, a \textit{PropertyCallExp} may refer to a \textit{Property} of a \textit{Class} that is not the \textit{Class} defining the expression's scope. Thus, we also declare that a \textit{Class} \textbf{exports} its owned \textit{Properties} (line 7). 
+
+Finally, we explain how name-based lookups are linked with the mappings section. In Listing~\ref{lst:MappingsExcerpt}, we remarked on two new expressions that enhance OCL: \textbf{lookup} expressions (line 7) are used to declare a named element lookup in the current scope. They require the target element type and additional input information (the string \textit{'self'}, in that example); \textbf{lookupFrom} (line 10) expressions are used to look up \textbf{exported} elements. They require another parameter indicating from which element the lookup is performed (the \textit{type} of the \textit{ownedSource}, in that example).
+
+
+%In a first place, \textbf{Unqualified named element lookups} are explained. It simply consists of locating AS named elements which are in the scope (also known as environment in~\cite{omg2014ocl}) computed for the AS element which performs the name-based lookup. A scope is conceptually a map of name-to-named-element exposing all the candidate AS named elements target of a name-based lookup. It's always declared in a top-down fashion. This means that for a particular AS element we declare how the scope will be propagated to its children AS elements. By default, the scope of the AS element parent will be propagated as it is to all children element. The DSTL name resolution section allows then to declare how a scope is particularly configured to its children elements, which normally implies adding adequate named elements to the scope. The scopes can be nested, allowing to occlude named elements (with the same name) already existing in outer scopes.
+
+%\begin{lstlisting}[caption=Basic name resolution declaration for \textit{Property} elements lookup., label=lst:unqualifiedLookup, language=CS2AS]
+%nameresolution {
+%  Property { 
+%    named-element name-property name;
+%  }
+%  Class {
+%    for all-children // It might be removed, all-children is the default
+%      nested-scope ownedProperties, ownedOperations;
+%  }
+%}
+%\end{lstlisting}
+
+%Listing~\ref{lst:unqualifiedLookup} shows a first excerpt to declare the name resolution related to a \textit{Property}. At Line 4, we declare that \textit{Property} elements are target of a name resolution, including which is the property involved in the name-based lookup\footnote{OCL AS offers a common NamedElement::name property. We might globally declare it as such to avoid to write the name-property declaration for every possible AS element participating in the name resolution}.
+
+%We also need to declare how \textit{Property} elements are contributed to lookup scopes. In this case, \textit{Class} elements are the adequate AS elements to deal with. So at lines 6 and 7, we declare that a Class propagates for all its children a nested scope, which includes all the \textit{Property} elements accessed via the \textit{ownedProperties} expression (\textit{ownedOperations} is for operations lookup purposes). 
+
+%Note the usage of OCL expressions to do the contributions to the scope. They let us declare more complex navigations through the AS to locate the required named elements. This is actually required for another requisite: we also have to consider the properties of any super \textit{Class}. Listing~\ref{lst:occludingSuperProperties} shows a possible declaration to comply with that requisite. Note the \textit{occluding} keyword to create an additional nested scope, which allows us to occlude the properties of super classes \textit{Property} elements in favour of those owned by the \textit{Class} element.
+
+%\begin{lstlisting}[caption=Contributing \textit{superClasses Property} elements, label=lst:occludingSuperProperties, language=CS2AS]
+%nameresolution {
+%  Class { 
+%    for all-children
+%      nested-scope ownedProperties,ownedOperations
+%        occluding let allSuperClasses = self->closure(superClass)
+%                  in allSuperClasses.ownedProperties
+%                      ->includingAll(allSuperClasses.ownedOperations);
+%  }
+%}
+%\end{lstlisting}
+
+%In a second place, we need to introduce the \textbf{Exported named element lookups}. Unqualified named element lookups rely on a scope propagation based on the containment hierarchy (from-parent-to-children) of an element, so that an specific \textit{Property} element of a given \textit{Class} element might be found from any \textit{PropertyCallExp} which is directly or indirectly contained by that \textit{Class} element. However, we might often find that the wanted \textit{Property} element doesn't belong to the \textit{Class} element containing the call expression. For instance, in our example we want to access the property 'y' of the \textit{Class} corresponding to the type of 'x' (the source expression).
+
+%Listing~\ref{lst:qualifiedLookup} depicts these situations are tackled. We want to declare which are the candidate named elements to be looked up (i.e. exported named elements), when the name-based lookup is performed from an AS element which is out of the scope of contributing element (i.e. the former is not contained by the latter). 
+
+%\begin{lstlisting}[caption=Contributing \textit{superClasses Property} elements, label=lst:qualifiedLookup, language=CS2AS]
+%nameresolution {
+%  Class { 
+%    ...
+%    exports ownedProperties,ownedOperations
+%      occluding let allSuperClasses = self->closure(superClass)
+%                in allSuperClasses.ownedProperties
+%                    ->includingAll(allSuperClasses.ownedOperations);
+%  }
+%}
+%\end{lstlisting}
+
+%Note that the named element contributions for the two different lookup protocols don't have to be the same. For instance, if we were working with a Java meta-model we would like to declare that for unqualified named element lookups, public and protected class members of super classes are contributed, whereas for exported named element lookups, only public class members of super classes must be considered, instead.
+
+%Finally, we explain how the name resolution definition is linked with the mappings section. The set of OCL expressions is enhanced with two dedicated call expressions, to express that a lookup activity needs to be performed. The Figure~\ref{lst:MappingsExcerpt} we mentioned before, contains usage of both:
+
+%\begin{itemize}
+%	\item At line 7, a \textbf{lookup} call expression performs an unqualified named element lookup. It passes two arguments: the first is the kind of named element to look up; the second is the CS information used as input (e.g. a name).
+%	\item At line 11, a \textbf{lookupFrom} call expression performs an exported named element lookup. It passes three arguments: the first is the kind of named element to look up, the second is an expression which evaluates to the actual element from which the exported named element lookup will be performed; the third is the CS information used as input (e.g. a name).
+%\end{itemize}
+
+\textbf{Disambiguation.}
+The \textit{disambiguation} section of the DSTL declares CS disambiguation rules which can be referred to by mappings declared in the \textit{mappings} section. These disambiguation rules act as a guard for the referring mapping. %, so that we can drive the AS element creation based on some specific disambiguation rules. 
+Listing~\ref{lst:disambiguationExcerpt} shows an example of disambiguation rules required by our introductory example.
+
+\begin{lstlisting}[caption=CS disambiguation rules, label=lst:disambiguationExcerpt, language=CS2AS]
+disambiguation {
+  NameExpCS { 
+    nameRefersAVariable := 
+      let asParent = oclContainer().trace
+      in asParent.lookup(Variable, sName) <> null;
+    nameRefersAProperty := 
+      let csParent = parentAsNameExp(),
+          asParent = oclContainer().trace
+      in if parentNameExpCS = null
+         then asParent.lookup(Property, sName) <> null
+         else asParent.lookupFrom(Property, csParent.trace.type, sName) <> null
+         endif; }}
+\end{lstlisting}
+
+%Line 2, simply refers to the CS element (NameExpCS) which requires some disambiguation rules. In lines 3 and 6, we declare two disambiguation rules which will drive what AS element must be created from a particular NameExpCS: either a VariableExp element or a PropertyCallExp one.
+
+%A disambiguation rule consists of a left hand side identifier, and a right hand side boolean valued OCL expression. The identifier, can be referred from a mapping rule by the means of the \textit{when} keyword  as we previously showed in Listing~\ref{lst:MappingsExcerpt}. The OCL expression might access CS information from the contextual CS element, even make use of resolve expressions to access the AS domain. For instance, in our example we require name-based lookups in the AS. % That said, it should be taken into account that disambiguation rules evaluation precedes the corresponding AS creation. Therefore, disambiguation rules which require AS information, must access the AS domain from its parent CS element, as exposed in lines 4 and 8 from Listing~\ref{lst:disambiguationExcerpt}.
+
+Our DSTL separates the disambiguation rules from the mappings section. This lets us solve a typical issue in declarative transformation languages where mappings applied to the same input type contain non-exclusive guards (two guards might evaluate to true).
+%Finally, we clarify the last issue. In CS disambiguation scenarios, we normally find different mappings applying to the same CS element, and referring to their corresponding disambiguation rules. It might happen that two or more disambiguation rules of those mappings evaluate to true for a particular CS element, provoking a new dilemma about which mapping rule should be executed.
+For instance, in our example, \textit{'x'} might be both a variable to refer in that particular expression scope, \textit{and} a property of the \textit{'self'} variable. In order to address this issue and keep the mappings section declarative, we enhance the semantics of the disambiguation section so that the order in which the disambiguation rules are defined is significant: the first disambiguation rule that applies for a particular CS element is used. In our example, and providing the mentioned conflict, \textit{'x'} disambiguates to a \textit{VariableExp}, rather than a \textit{PropertyCallExp}, since the \textit{nameRefersAVariable} disambiguation rule is defined first.
+
+\subsection{Implementation}
+
+The DSTL has been prototyped using Xtext. The corresponding Eclipse plugins are publicly available\footnote{\url{https://github.com/adolfosbh/cs2as}}. The implementation does not include an M2M transformation engine capable to execute instances of the DSTL, rather it contains an Xtend-based~\cite{xtend} code generator\footnote{Implementation details about the generator are not included in this paper} that generates a set of Complete OCL files conforming to the OCL-based internal DSL described in our previous work~\cite{sanchez2015oclCS2AS}. As explained in \cite{sanchez2015oclCS2AS}, the actual CS2AS transformation execution is performed by a generated Java class that uses the Eclipse Modeling Framework and Ecore meta-models to transform CS models to AS models.
+
+\section{Related Work}
+\label{sec:relatedWork}
+
+We now discuss how our approach relates to previous work. Space constraints prevent a detailed comparison with the very many tools that provide partial support to the problems
+identified in this paper, including TEF\cite{scheidgen2008tef}, Spoofax\cite{kats2010spoofax} and Monticore\cite{krahn2010monticore}. %If we have a look to previous Language Workbench Challenges, we might find a bunch of candidates which would merit a mention.
+%To cite a few of them: Xtext\cite{eysholdt2010Xtext}, , etc.
+%We firstly highlight that this paper is a continuation of our previous work~\cite{sanchez2015oclCS2AS}, in which we admitted the need for an external DSL to declare CS2AS bridges.
+The state-of-the-art related to this research is Gra2mol~\cite{canovas2012gra2mol} for which we include a detailed comparative study (Sect.~\ref{sec:gra2mol}). Here, we discuss two particular language workbenches in more detail: Xtext, because it has motivated this research and we aim to integrate with it; and Spoofax, whose  NaBL\cite{konat2013decNameRes} sub-language has been a source of inspiration of a part of our DSTL. 
+
+\subsection{Xtext}
+
+The introduction mentioned some of the limitations of Xtext; we now relate the challenges from Sect.~\ref{sec:problem} to Xtext's capabilities.
+
+\textbf{Challenge 1}. Although Xtext grammars provide mechanisms to bridge the CS and AS of a language, as soon as we move away from simple DSLs to those that require M-N mappings, Xtext is insufficient.
+
+\textbf{Challenge 2}. Xtext grammars support name resolution for cross-references in the AS models. They do not support derived resolution such as the types of OCL expressions.
+
+\textbf{Challenge 3}. Xtext grammars resolve names using simple implicit scoping rules. More complex scoping scenarios requires customized code.
+
+\textbf{Challenge 4}. Xtext provides no way to declare CS disambiguation rules.
+
+%\textbf{Discussion.} Although the language specification artefacts (i.e the Xtext grammars) are not enough to describe the CS2AS bridge of languages like OCL, and given the powerful customizable framework it provides, creating tools for OCL using Xtext is still plausible. For instance, Eclipse OCL~\cite{eclipseOclOnline}, provides an Xtext-based tooling (parser, editor) capable of consuming OCL textual inputs and producing models conforming to the AS.
+
+%The taken approach is conceptually the same to the one we take for our solution. An Xtext grammar generates the parser capable of consuming textual OCL files and producing some CS models. Then, some hand-written Java components are in charge of processing those CS models in order to produce the AS ones. This java code conforms the executable artefact to bridge the OCL CS2AS gap.
+
+%Xtext takes EMF as its modelling framework, so the proposed prototype could complement Xtext to give better support to languages like OCL. By just creating an instance of our DSTL we should be able to capture the OCL CS2AS gap. The compiled and generated java transformation would then conform the executable artefact which might replace the current hand-written java code in charge of producing AS models from CS ones. As it is commented later on, future work.
+
+\subsection{Spoofax}
+
+%Spoofax is a language workbench to give support (e.g parsers, editors) to textual languages. Although it was not originally conceived to create models conforming to predefined meta-models, the goal might still be achieved by using additional facilities like Stratego/XT~\cite{visser2004stratego}. This assertion is demonstrated in this paper\cite{vanRest2013syncTextGraphEditors}, where the authors show how models can be edited by textual editors and graphical model editors in a synchronized way. Although they provide generic transformations so that they automatically generate a meta-model from their textual syntax definitions (as Xtext does), it's not clear how the general approach integrates with specific AS meta-model definitions. In any case, we might expect that specific Stratego/XT transformation might be specified between the AST produced by the parser (i.e what we refer as CS model), and a model conforming to an specific meta-model. Our DSTL would play the role of the general purpose programs transformation language Stratego/XT.
+
+%\textbf{Discussion.} The main difference we can highlight between our DSTL and the different Spoofax languages is the following. As it occurs with Xtext, the name resolution activity is integrated in the parsing activity. Name resolution descriptions (using NaBL\cite{konat2013decNameRes} are only aware of the grammar descriptions (using SDF\cite{kats2010sdf}). This causes two main problems:
+%\begin{itemize}
+%	\item Name-based cross referencing is limited to refer elements that were parsed from the text. In other words, we could not create AS models referencing external AS models (e.g. a library AS model with no CS). 
+%	\item In the required Stratego transformation, we can't declare CS disambiguation rules relying on name resolution. This means that any CS ambiguity resolution that requires name resolution and AS model information, can't be adequately described in Spoofax. 
+%\end{itemize}
+
+%Our approach postpones name resolution based cross-referencing (and any AS model cross-reference) to a further step, allowing name resolution based declarations to be adequately reused by the CS2AS mappings.
+
+%NaBL has inspired some features of the name resolution section of our DSTL. Getting into details about them is beyond the goal of this paper. The real contribution resides in integrating a NaBL-like language as part of the DSTL.
+
+%Given that Spoofax can work with EMF, our solution might be used within modelling languages defined with Spoofax. That said, there is not yet implementation to integrate the CS2AS descriptions (e.g. name resolution) with the different Spoofax editor services.
+
+Spoofax is a language workbench to give support -- e.g parsers, editors -- to textual languages. Although it was not originally intended to create models, there is  work~\cite{vanRest2013syncTextGraphEditors} showing that Spoofax can be used for this purpose. We now relate the challenges from Sect.~\ref{sec:problem} to Spoofax capabilities.
+
+\textbf{Challenge 1}. Past Spoofax work~\cite{vanRest2013syncTextGraphEditors} to generate meta-models from grammars suffers from the same limitations as Xtext (above). However, Stratego/XT \cite{visser2004stratego} can be used within Spoofax to address this challenge. Building on its foundations, we can define transformations from AST elements (i.e., the CS model) produced by a parser into an AS model.
+
+\textbf{Challenge 2}. Stratego/XT can resolve cross-references in the AS model.
+
+\textbf{Challenge 3}. Spoofax offers a declarative name resolution language (NaBL \cite{konat2013decNameRes}). However, the name resolution descriptions are only aware of the grammar descriptions (SDF~\cite{kats2010sdf}). Cross-references are set when producing the initial AST obtained from the parser. This inhibits cross-references to external AS models -- e.g. an AS model with no CS. In the case of OCL, many of the external (meta-)models on which OCL queries operate do not necessarily relate to any textual CS at all.
+
+\textbf{Challenge 4}. Stratego/XT specifies disambiguation rules using \textit{strategy expressions}. There is no convenient way to declare CS disambiguation rules relying on name resolution.
+
+\section{Gra2Mol: Comparative Study}
+\label{sec:gra2mol}
+
+We consider Gra2Mol as the-state-of-the-art related to this work. Although it was originally intended as a text-to-model tool for software modernization, their DSTL fits in the same scope and objective we present in this paper. To better assess how our proposed DSTL contributes to the field, we present a comparative study with Gra2Mol. The study consists of a qualitative evaluation in terms of features/capabilities and a quantitative evaluation in terms of performance.
+
+\subsection{Qualitative Study}
+\label{subsec:featuresComparison}
+
+In this section we compare Gra2Mol and our DSTL in terms of their features and capabilities. Due to restricted space, we focus on relevant differences.
+%Firstly, as we did with the related work discussed in Section~\ref{sec:relatedWork}, we discuss how gra2mol can deal with the issues presented in Section~\ref{sec:problem}.
+%\begin{itemize}
+%	\item \textbf{Issue 1}. 
+%	\item \textbf{Issue 2}. 
+%	\item \textbf{Issue 3}. 
+%	\item \textbf{Issue 4}.
+%\end{itemize}
+
+%\textbf{Technology dependency.} The proposed DSTL is parser technology agnostic. It might be used with classic parser generators (e.g ANTLR, LPG) or modern language workbenches (Xtext, Spoofax). The main requirement is that the output of the parser is a model conforming to a meta-model (CS one), and the current solution depends on the Eclipse Modelling Framework. 
+
+%Gra2Mol works on top the same modelling framework, and the main difference is that our DSTL operates on any arbitrary (possibly heterogeneous) CS meta-model, whereas Gra2Mol works on a unique (homogeneous) CS meta-model (called CST meta-model in~\cite{canovas2012gra2mol}) they define. This would prevent to seamlessly integrate Gra2Mol in tools generated by a language workbench like Xtext. Although this kind of integrations was not a goal of Gra2Mol at all, it's worthy to remark that the presented prototype fits better that purpose. 
+
+%\textbf{Declarative nature.} Both languages are similarly declarative, which makes CS2AS definitions clear and concise. However, declarative languages require well designed execution engines, otherwise it might negatively impact performance. A quantitative study about performance will be presented in Section~\ref{subsec:benchmark}.
+
+\textbf{Query language.} Gra2Mol is based on a tailored structure-shy (like XPath) query language, and our DSTL is based on the statically typed OCL. %Despite planned feature additions in OCL (e.g. safe naviation [?]), 
+The Gra2Mol query language is less verbose and more concise than OCL; thus,  Gra2Mol instances tend to be smaller. However, Gra2Mol navigation operators are based on accessing children elements. This forces\footnote{Gra2Mol has a language extension mechanism to introduce new operators, which could be used to improve the default built-in functionality.} the declaration of deep navigations from the root element, whenever the information is not contained by a given CS element. This leads to performance penalties, because the operators are not as fast as a simple oclContainer() call. Also, the Gra2Mol query language is designed to work strictly on CS models. This has some advantages (e.g., conciseness) compared with our DSTL, because the latter requires usage of \textit{trace} expressions to access the AS domain. However, navigating the AS domain (graphs) from the CS one (trees) provides more concise and/or less expensive navigations to retrieve some particular AS information (e.g. querying the type -- a cross-reference -- of a particular expression). More importantly, focusing on CS navigations prevents CS2AS transformations from working with external AS models (e.g. a library model with no CS).
+
+%	\item A statically typed language like OCL enables usage of a wide range of techniques based on static analysis. A textual editor can provide better content-assist facilities. Execution engines can provide good execution schedules for the transformation based on the dependency analysis of mappings and the involved expressions. When the grammar evolves, and so does CS meta-model, tools can help in the migration of existing CS2AS bridges, etc.
+
+\textbf{Name resolution.} Name-based cross-references are declared in Gra2Mol as another model query. These queries are described as direct searches that consider where the target element is located in the model. Model queries get significantly complicated when simulating lookup scopes. In complex languages like OCL, the declarative nature of our \textit{nameresolution} section makes name-based cross-reference declarations concise.
+
+%In our DSTL we introduce a dedicated declarative name resolution description, separating this particular concern in its own section. Lookup scopes are easily declared in the language and  now we don't have to elaborate how to reach a particular named element. Instead, we have to focus on how they are contributed to the lookup scopes. These contributions are usually easy to identify since the general case is that a named element is contributed to the lookup scope by its owner (e.g properties and operations are contributed by the owning class. Classes are contributed by the owning package. A let variable is contributed by the owning let expression etc.). For abnormal cases, more complex OCL expressions can be used to configure the scope contributions.
+
+%\textbf{Disambiguation.} CS disambiguation scenarios can be similarly described with Gra2Mol by the means of rule filtering expressions applied to different rules working on the same grammar concept. These filtering expressions act as traditional M2M transformation mapping guards. The only drawback we have identified is related to the following imposition of their language: "If two or more conforming rules exist, their filter conditions must be exclusive, since only one of them can be applied"~\cite{canovas2012gra2mol}. The particular disambiguation scenario explained in Section~\ref{subsec:dstl}, is a case where two rules are applied to the same input element, whose disambiguation rules might both apply. There is still a workaround to this situation with Gra2Mol. To make the filtering expressions be exclusive, we would have to add additional condition checks related to what the other filtering expression is checking. However, we not are not only losing the declarative nature of mappings, but also the number of additional conditions will undesirably grow, as the number of potential rules with non-exclusive filtering expression does.
+
+\textbf{Disambiguation rules.} Separating the disambiguation rules away from the mapping declarations provides additional semantics and overcomes a Gra2Mol limitation~\cite{canovas2012gra2mol}: ``If two or more conforming rules exist, their filter conditions must be exclusive, since only one of them can be applied". This limitation prevents a simple Gra2Mol solution to our introductory `x.y' example.
+
+\textbf{Front-end coupling.} Our DSTL is not coupled to a parser technology or language workbench. The Gra2Mol transformation interpreter is coupled to a homogeneous CS meta-model they provide, which is incompatible  with Xtext grammars; more generally, integrating Gra2Mol with a language workbench like Xtext is impractical.
+
+%In our DSTL we separate the disambiguation rules, in its own section, away from the actual referred mapping. With a policy based on disambiguation rules ordering (first matched), we can better declare how non-exclusive disambiguation rules are resolved. Since we move the disambiguation rules definition away from the mappings, the declarative nature of the mappings section is preserved.
+
+%\textbf{Rule inheritance.} Gra2Mol provides rule inheritance mechanisms in order to create rules that declare queries and mappings common to and to be reused by other rules. They are called mixin rules, and they require that (input and output element) types of the extending rule (sub-rule) conform to the types of the extended one (super-rule). You must explicitly state the name of mixin rule that a specific rule inherits.
+
+%For the proposed DSTL, as long as the involved (input and output) types conform [? ] to the types of any other, rule inheritance is assumed between them. This decision would imply additional work to be done by the compiler, but it let us not to make the different rules identifiable by name (improvement conciseness). For completeness, we permit redefinition (override) of property initializations, so that a sub-rule can respecify any property initialization done by any of its super-rules. This particular rule inheritance mechanism is not currently implemented by the compiler, so we currently don't support execution of transformation relying on the proposed rule inheritance mechanism.
+
+%\textbf{Language expressiveness.} By the means of the helpers section, and the expressiveness of OCL, the user can declare complex functions required to perform a particular computuation of an AS element property. Although this is not the case for the Gra2Mol built-in language, the tool provides an extension mechanism tp add new mapping and query operators. These can be conceived and implemented as a Java black boxes, complying with the expressiveness requirement. Our DSTL doesn't currently support black box operations, so our limits are set by the OCL language expressiveness.
+
+%\textbf{Additional Gra2Mol language constructs}. We finally show how additional language capability of Gra2Mol might be supported with the proposed DSTL. Gra2Mol allows to define special rules, called skip rules, to give support to a particular issue that turns up when working with with LL-grammars. In particular, when some trivial operators precedence are specified via grammar rules. 
+
+%The problem can be summarized as follows (issue extended explanation and gra2mol solution might be found in \cite{canovas2012gra2mol}). Listing~\ref{lst:andExp} depicts an Xtext grammar rule corresponding to a Java 'or' logical expression.
+
+%\begin{lstlisting}[caption= Grammar rule of an 'or' logical expression in Java, label=lst:andExp, language=CS2AS]
+%OrExpCS:
+%  mandatoryExp=AndExpCS ('||' optionalExps+=AndExpCS)* ;
+%\end{lstlisting}
+
+%When defining the CS2AS mapping for this CS element, we find the issue that OrExpCS should be mapped to one (or many) 'or' logical expression(s), but only in the case that (at least) one 'or' logical operator has been found. In principle, by the means of disambiguation rules we could declare that 'or' logical expressions should be created whenever \textit{OrExpCS::optionalExps} is no empty. However, we don't want to create any new AS element when no 'or' logical operator has been processed. In this case, we must make use of the second kind of CS2AS mapping definition we explained for the DSTL mappings section, in which we declare that the CS element will be mapped to another AS element, rather than create a new one. See Listing~\ref{lst:orExpCSmapping}
+
+%\begin{lstlisting}[caption=CS Disambiguation Rules, label=lst:orExpCSmapping, language=CS2AS]
+%map OrExpression from OrExpCS when orOpProcessed {/*props computation*/};
+%map Expression from OrExpCS when orOpNotProcessed := mandatoryExp.resolve; 
+%\end{lstlisting}
+
+\subsection{Quantitative Study}
+\label{subsec:benchmark}
+
+The quantitative study consists of an experiment based on obtaining execution time measurements for both Gra2Mol and our prototype when executing CS2AS transformations. We focus on execution time because we aim to integrate these CS2AS transformations in textual editors, where too-slow execution time is unacceptable.
+
+Gra2Mol is publicly available with different ready-to-go examples. Our experiment replicates one of them with our prototype and performs a benchmark involving models of different size and/or topology.
+
+\textbf{Example.} %Among the different examples that might be found in the gra2mol source code repository,
+We have picked one of the published Gra2Mol examples that is simple enough to fit within our space constraints, that requires cross-references resolution, and provides models of varied topologies.
+
+\begin{figure}[htbp]
+   \captionsetup[subfigure]{labelformat=empty}
+   \begin{SubFloat}[]{}
+     \begin{minipage}{.5\textwidth}
+		\begin{lstlisting}[label=lst:CompaniesCS, language=Xtext]
+company :
+  'company' STRING '{' 
+  department* 
+  '}' EOF;
+department :
+  'department' STRING '{' 
+    department_manager
+	department_employees
+	department*
+  '}';
+department_manager :
+  'manager' employee;
+department_employees :
+  ('employee' employee)*;
+employee :
+  STRING '{'
+    'address' STRING
+    'salary' FLOAT
+    ('mentor' STRING)?
+  '}';
+		\end{lstlisting} 
+      \end{minipage}
+	\end{SubFloat}%
+	\begin{SubFloat}{}
+		\begin{minipage}{.5\textwidth}
+		\centering
+		\includegraphics[scale=.5]{images/CompanyAS.pdf}
+     	\end{minipage}
+	\end{SubFloat}
+	\caption{CS (left) and AS (right) of the target 101companies~\cite{favre2012101companies} example.}
+	\label{fig:CompaniesExample}
+\end{figure}
+
+Figure~\ref{fig:CompaniesExample} shows the CS (ANTLR grammar) and AS (Ecore meta-model) of the modelling language, as defined by the target ``101 Companies`` example\footnote{\url{https://github.com/jlcanovas/gra2mol/tree/master/examples/Grammar2Model.examples.101companies}}~\cite{favre2012101companies}. The definition of lexical tokens has been intentionally omitted.
+
+
+
+%For the experiment, we have replicated the example's grammar specification with an Xtext grammar, so that we can automatically generate the CS meta-model, to which our DSTL instance will refer.
+
+%\begin{figure}[htbp]
+%	\centering
+%	\begin{subfigure}{0.65\textwidth}
+%		\centering
+%		\begin{lstlisting}[label=lst:ExampleGrammar, language=Xtext]
+%company :
+%  'company' name=STRING '{' 
+%     deparment+=department* 
+%  '}';
+%department :
+%  'department' name=STRING '{' 
+%    department_manager=department_manager
+%    department_employees=department_employees
+%    deparment+= department*
+%  '}';
+%
+%department_manager :
+%  'manager' employee=employee;
+%
+%department_employees :
+%  {department_employees}
+%  ('employee' employee+=employee)* ;
+%
+%employee :
+%  name=STRING '{'
+%    'address' address=STRING
+%    'salary' salary=FLOAT
+%    ('mentor' mentor=STRING)?
+%  '}';
+%		\end{lstlisting} 
+%	\end{subfigure}%
+%	\begin{subfigure}{0.35\textwidth}
+%		\centering
+%		\includegraphics[scale=0.5]{images/CompaniesCS.png}
+%	\end{subfigure}
+%	\caption{Analogous Xtext grammar and corresponding CS meta-model.}
+%	\label{fig:CompaniesCS}
+%\end{figure}
+
+\begin{figure}[htbp]
+	\captionsetup[subfigure]{labelformat=empty}
+	\centering
+	%\begin{subfigure}{0.5\textwidth}
+  	\begin{SubFloat}[]{}
+  	  \begin{minipage}{0.45\textwidth}
+		\centering
+		\begin{lstlisting}[label=lst:Gra2MolExampleGrammar, language=gra2mol]
+rule 'mapEmployee'
+ from employee e
+ to   Employee
+ queries
+  mElem : //#employee{STRING[0].eq(e.STRING[2])};
+ mappings
+  name    = removeQuotes e.STRING[0];
+  address = removeQuotes e.STRING[1];
+  salary  = e.FLOAT;
+  mentor  = mElem;
+end_rule
+		\end{lstlisting} 
+      \end{minipage}
+    \end{SubFloat}	
+	%\end{subfigure}%
+	%\begin{subfigure}{0.5\textwidth}
+  \hfill  
+	\begin{SubFloat}[]{}
+	  \begin{minipage}{0.45\textwidth}
+		\centering
+		\begin{lstlisting}[label=lst:DstlExampleGrammar, language=CS2AS]
+mappings {
+map as::Employee from employee {
+  name := name;
+  address := address;
+  salary := salary;
+  mentor := trace.lookup(Employee, mentor);}} 
+nameresolution {
+ Employee {
+  named-element name-property name;}
+ Company {
+  nested-scope
+   depts->closure(subdepts)
+          ->collect(employees
+          ->including(manager));}}
+		\end{lstlisting}
+      \end{minipage}
+	\end{SubFloat}
+ 
+    %\end{subfigure}
+	\caption{CS2AS specification in Gra2Mol (left) and our DSTL (right).}
+	\label{fig:CompaniesCS2AS}
+\end{figure}
+
+
+Figure~\ref{fig:CompaniesCS2AS} depicts side-by-side excerpts of the artefacts that show how the CS2AS bridge is specified within both approaches. There are numerous similarities between the CS2AS descriptions, where the main differences are in the model queries. Our DSTL isolates the name resolution concerns in its own section.
+
+
+ %to resolve the \textit{Employee::mentor} cross-reference, in its own section. %That said, given the simple name resolution policy of the example, in which any employee might be mentor of any other employee, we can't note the benefits of the \textit{nameresolution} section. 
+
+%Finally, Gra2Mol transformation requires additional facilities like \textit{removeQuotes}. The DSTL instance doesn't have to deal with them because the parser generated by Xtext does that job for us (when building the CS model). However, we have included an \textit{unquote()} helper, depicted by Listing~\ref{lst:unquoteHelper}, to simulate the additional work that the gra2mol transformation needs to perform (we aim to reduce threats to the experiment validity). 
+
+%\begin{lstlisting}[caption= Unquote helper, label=lst:unquoteHelper, language=CS2AS]
+%helpers {
+%  String {
+%    -- In the experiment, we will simulate an unquote function
+%    -- We do not actually unquote, since the strings are already unquoted.
+%    unquote() : String := self.substring(1,self.size());
+%  }
+%}
+%\end{lstlisting} 
+	
+\textbf{Experiment Setup.} We now describe how the experiment is conducted. We ensure that the CS2AS transformation executions are correct by checking that the output models produced by both transformations are the same. 
+
+We created a tailored model generator for the  example, configured by the following parameters:
+
+$N_d$ : Number of (top level) departments in the company model.
+
+$N_s$ : Number of subdepartments per department/subdepartment.
+
+$N_e$ : Number of employees per department/subdepartment.
+
+$D_s$ : Depth level of (sub)departments.
+
+
+Element attributes are pseudo-randomly generated, whereas the \textit{Employee:: mentor} cross-reference is assigned to another random employee with a $0.5$ probability. The input models used in the experiment are characterized by Table~\ref{tbl:models}.
+
+\begin{table}	
+	\centering
+	\caption{Experiment model characterization}
+	\begin{tabular}{c||c|c|c|c|c|c}
+	Model ID & Size (bytes) & Elements &  $N_d$ & $N_s$ & $N_e$ & $D_s$ \\
+	\hline		
+	$M_1$ & 1,238  & 22 & 3 & 0 & 3 & 1 \\
+	$M_2$ & 6,105 & 97 & 3 & 3 & 4 & 2 \\
+  	$M_3$ & 149,951 & 701 & 1 & 1 & 3 & 100 \\
+	$M_4$ & 42,805 & 708 & 1 & 100 & 3 & 2 \\
+	$M_5$ & 223,848 & 3061 & 4 & 4 & 5 & 4 \\
+	$M_6$ & 1,018,254 & 11901 & 10 & 4 & 10 & 4 \\
+	$M_7$ & 9,794,276 & 109341 & 10 & 5 & 10 & 5 \\
+	%M8 & 1033341 & 10 & 9 & 10 & 5 \\
+	\hline
+	\end{tabular}
+	\label{tbl:models}
+\end{table}
+
+The experiment consists of using both technologies to run the corresponding CS2AS transformation with each model. With the aim of easing repeatability, we have set up an experiment environment in the SHARE \cite{vanGorp2012share} platform\footnote{\url{http://share20.eu}}. The reader just needs to log in platform, and request access to the prepared virtual machine\footnote{\url{http://is.ieis.tue.nl/staff/pvgorp/share/?page=ConfigureNewSession&vdi=Ubuntu12LTS_CS2AS-DSTL---Experiments.vdi}}. When the access is granted, the user can connect to the remote virtual machine and access the system using \textit{Ubuntu} as user name, and \textit{reverse} as password. Additional information (README) about how to repeat the experiment, as well as more details about the environment can be found in the user desktop.
+%\begin{itemize}
+%  \item The JVM is configured to use a 4096MB heap.
+%  \item To warm the JVM up prior to taking measurements, we will run 3000 times the main transformation execution code with $M_2$.
+%  \item We then run and measure the main transformation execution 10 times with the specific model. The first measurement is discarded, having 9 data points.
+%  \item Loading/saving models and parsing activities are excluded from the main transformation execution time.
+%\end{itemize}
+
+%We have modified\footnote{\url{https://github.com/adolfosbh/gra2mol/tree/icmt2016}} the Gra2Mol base code to obtain performance data from just the transformation execution (model loading/saving is thus not included). We have deactivated Gra2Mol debug/logging mode. The experiment for both technologies can be downloaded and replicated\footnote{\url{https://github.com/adolfosbh/cs2as/tree/icmt2016/org.xtext.example.companies}}\footnote{\url{https://github.com/adolfosbh/gra2mol/tree/icmt2016/examples/org.gra2mol.example.companies}}.
+
+\textbf{Experiment Results.} We now present the results, including observations and discussion. Figure~\ref{fig:Results} summarizes the performance results. All the collected data and graphics are publicly available\footnote{\url{https://docs.google.com/spreadsheets/d/16aYZRdKiPOMA_z_85zfVFNLqPPe1XMvNsSdGIw8j7vw/edit?usp=sharing}}.
+
+\begin{figure}[htbp]	
+	\centering
+	\includegraphics[scale=0.65]{images/Results.PNG}
+	\caption{Experiment results: execution time.}
+	\label{fig:Results}
+\end{figure}
+
+Overall, Gra2Mol is ten times slower than our prototype with respect to this example. There is an observed peak in performance when Gra2Mol deals with $M_3$ (701 model elements). It is unexpected, especially when comparing with $M_4$ (708 model elements) which has a similar number of model elements. If we look at the model parameters characterization from Table~\ref{tbl:models}, we identify two main differences: $M_3$ is a deep model, whereas $M_4$ is a wide one; Despite the similar number of model elements, $M_3$ is bigger in terms of size (149,951 vs 42,805 bytes). This is explained by the logic used by the model generator to assign names to model elements: the deeper the named element is inside the model, the longer the string for the corresponding name. These topology differences between $M_3$ and $M_4$, makes us conclude that model topology seriously impacts Gra2Mol performance, whereas this is not the case with our prototype.
+
+ %% Explain
+
+In terms of scalability, we observe that neither approach adequately scales (i.e bad performance results with big models). Some more comments about this limitation are given below.
+
+%\section{Limitations and shortcomings}
+%\label{sec:limitations}
+
+%Creating these CS2AS bridges complementary to the grammar implies elaborating  a new artefact that will normally be as big as the grammar one. This is not ideal, and therefore our solution should be limited to languages that existing language workbenches can't straightforwardly cope with (i.e complex languages with a big gap between the CS and AS). That said, we will consider to apply other techniques (e.g. Flock [1] for meta-model evolution scenarios), so that the CS2AS specification artefacts size might be significantly reduced.
+
+\textbf{Limitations.} Neither Gra2Mol nor our prototype scaled proportionately; we repeated the experiment but we removed the computation of \textit{Employee::mentor} property from both transformations. For the latter, we also removed the model query required to compute that property. The results are depicted in Fig.~\ref{fig:Results2}.
+
+\begin{figure}[htbp]	
+	\centering
+	\includegraphics[scale=0.65]{images/Results2.PNG}
+	\caption{Execution time when \textit{Employee::mentor} property is not computed.}
+	\label{fig:Results2}
+\end{figure}
+
+We get more reasonable results that lead to the same previous conclusions. Additionally, we conclude that the bad performance results from the original experiment come from the expensive query to compute the \textit{Employee::mentor} property. In our prototype, when compiling to a Complete OCL document-based specification~\cite{sanchez2015oclCS2AS}, the name resolution behaviour is translated as a set of OCL operations. Given the name resolution defined for the example, the operational behaviour of these OCL operations implies traversing the whole model every time name resolution is required. In Gra2Mol the penalty is even worse (transformation of $M_7$ takes several hours), because the expensive traversal is performed even though a particular employee is not meant to have a mentor.
+
+Although this an implementation issue, rather than a DSTL one, this is an important issue to address, and so we aim to address the missing re-computation cache in the near future.
+
+\section{Remarks and future work}
+\label{sec:futureWork}
+
+In this paper, we have focused on textual CS. However, the proposed solution works in the modelware technological space. Thus, it might be used, for instance, with diagrammatic CS, as long as all the corresponding editing facilities produce a CS model (e.g figures, colours, etc.). This is something we aim to explore in future work, e.g., on editors for probabilistic state machines or flexible models.
+
+In this paper, our DSTL establishes mappings from the CS towards the AS. However, many tools need to obtain the corresponding CS representation of an AS model, for instance, after a model refactoring. Although the traces between the CS and AS models are retained, the inverse transformation step is not currently supported. However, we see no immediate impediment to use the same DSTL to specify the opposite transformation. 
+
+In this paper, we focused on the CS-to-AS transformation step. However, to add more value to the proposed language, additional tooling to better integrate with modern workbench languages is required. We have created some Xtext integration support, so that a generated editor benefits from an enhanced content assist produced from the name resolution description. Also, the generated outline view is enhanced to show the structure of the AS model rather than the CS model one. We want to polish and publish this work in the near future.
+
+When comparing with Gra2Mol, we improved the DSTL's declarative nature by incorporating a NaBL-like sub-language to support name resolution based cross references. We could improve the DSTL further by incorporating an XSemantics-like~\cite{bettini2013xsemantics} sub-language to support type system resolution based cross references.
+
+\section{Conclusions}
+\label{sec:conclusions}
+
+We have proposed a new DSTL to bridge the CS and AS of languages, in particular, those whose CS is textual and specified by a grammar, and whose AS is specified by an established meta-model. We have justified the need for this language by showing some specific challenges that arise when the CS and AS bridge is non-trivial, in particular in OCL. The proposed solution operates in the modelware technological space, and hence does not commit to a particular parser technology or language workbench. 
+
+After a qualitative comparison with Gra2Mol (state-of-the-art), we showed an experiment whose results provide evidence that our prototype outperforms -- in terms of execution time -- Gra2Mol (in the example, ten times fold).
+
+Although there currently are limitations, the proposed solution makes a substantial step towards providing the required support for complex textual modelling languages (e.g OCL), by means of specification artefacts such as grammars, meta-models and domain specific transformations.
+
+\vspace*{1mm}
+\textbf{Acknowledgement.}
+We gratefully acknowledge the support of the UK Engineering and Physical Sciences Research Council, via the LSCITS initiative, and Javier Lu\'{i}s C\'{a}novas Izquierdo (Gra2Mol) and Pieter Van Gorp (SHARE) for the technical support required to produce the results exposed in this paper.
+
+\bibliographystyle{unsrt}
+\bibliography{icmt2016}
+
+\end{document}
\ No newline at end of file
diff --git a/ocl/docs/publications/ICMT2016CS2AS_DSTL/images/CompaniesCS.PNG b/ocl/docs/publications/ICMT2016CS2AS_DSTL/images/CompaniesCS.PNG
new file mode 100644
index 0000000..a038226
--- /dev/null
+++ b/ocl/docs/publications/ICMT2016CS2AS_DSTL/images/CompaniesCS.PNG
Binary files differ
diff --git a/ocl/docs/publications/ICMT2016CS2AS_DSTL/images/CompanyAS.pdf b/ocl/docs/publications/ICMT2016CS2AS_DSTL/images/CompanyAS.pdf
new file mode 100644
index 0000000..dbd277b
--- /dev/null
+++ b/ocl/docs/publications/ICMT2016CS2AS_DSTL/images/CompanyAS.pdf
Binary files differ
diff --git a/ocl/docs/publications/ICMT2016CS2AS_DSTL/images/NameExpCS.pdf b/ocl/docs/publications/ICMT2016CS2AS_DSTL/images/NameExpCS.pdf
new file mode 100644
index 0000000..87ed24a
--- /dev/null
+++ b/ocl/docs/publications/ICMT2016CS2AS_DSTL/images/NameExpCS.pdf
Binary files differ
diff --git a/ocl/docs/publications/ICMT2016CS2AS_DSTL/images/OverallApproach.PNG b/ocl/docs/publications/ICMT2016CS2AS_DSTL/images/OverallApproach.PNG
new file mode 100644
index 0000000..48b50e7
--- /dev/null
+++ b/ocl/docs/publications/ICMT2016CS2AS_DSTL/images/OverallApproach.PNG
Binary files differ
diff --git a/ocl/docs/publications/ICMT2016CS2AS_DSTL/images/OverallApproach.pdf b/ocl/docs/publications/ICMT2016CS2AS_DSTL/images/OverallApproach.pdf
new file mode 100644
index 0000000..33c7d1c
--- /dev/null
+++ b/ocl/docs/publications/ICMT2016CS2AS_DSTL/images/OverallApproach.pdf
Binary files differ
diff --git a/ocl/docs/publications/ICMT2016CS2AS_DSTL/images/Results.PNG b/ocl/docs/publications/ICMT2016CS2AS_DSTL/images/Results.PNG
new file mode 100644
index 0000000..6496641
--- /dev/null
+++ b/ocl/docs/publications/ICMT2016CS2AS_DSTL/images/Results.PNG
Binary files differ
diff --git a/ocl/docs/publications/ICMT2016CS2AS_DSTL/images/Results2.PNG b/ocl/docs/publications/ICMT2016CS2AS_DSTL/images/Results2.PNG
new file mode 100644
index 0000000..b8db4d6
--- /dev/null
+++ b/ocl/docs/publications/ICMT2016CS2AS_DSTL/images/Results2.PNG
Binary files differ
diff --git a/ocl/docs/publications/ICMT2016CS2AS_DSTL/images/TODO.png b/ocl/docs/publications/ICMT2016CS2AS_DSTL/images/TODO.png
new file mode 100644
index 0000000..329cddf
--- /dev/null
+++ b/ocl/docs/publications/ICMT2016CS2AS_DSTL/images/TODO.png
Binary files differ
diff --git a/ocl/docs/publications/ICMT2016CS2AS_DSTL/listings.tex b/ocl/docs/publications/ICMT2016CS2AS_DSTL/listings.tex
new file mode 100644
index 0000000..afecbf5
--- /dev/null
+++ b/ocl/docs/publications/ICMT2016CS2AS_DSTL/listings.tex
@@ -0,0 +1,100 @@
+%!TEX root = ./paper1.tex
+
+\lstset{
+  float=tb,
+	captionpos=b,
+	breaklines=true,
+	xleftmargin=20pt,
+	basicstyle=\ttfamily\scriptsize,
+	numberstyle=\tiny,
+	flexiblecolumns=true,
+	numbers=left,
+	nolol=false,
+	tabsize=2
+}
+
+\lstdefinelanguage{OCL}{
+morekeywords={import,if,then,else,endif,self,and,true,false,def,includes,OclElement,package,let,in},
+sensitive=true,
+morecomment=[l]{--},
+morestring=[b]",
+morestring=[b]',
+showstringspaces=false
+}
+
+\lstdefinelanguage{QVTo}{
+morekeywords={import,modeltype,uses,transformation,inout,in,out,configuration,property,main,var,if,then,else,endif,map,new,self,library,helper, mapping, and,return, when, where, object, true, false, result},
+sensitive=true,
+morecomment=[l]{--},
+morecomment=[l]{//},
+morestring=[b]",
+morestring=[b]',
+showstringspaces=false
+}
+
+\lstdefinelanguage{Acceleo}{
+morekeywords={template, file, if, else, for},
+sensitive=true,
+morecomment=[l]{--},
+morecomment=[l]{//},
+morestring=[b]",
+morestring=[b]',
+showstringspaces=false
+}
+
+\lstdefinelanguage{MWE}{
+morekeywords={module, import, var, true, false, },
+sensitive=true,
+morecomment=[l]{//},
+morestring=[b]",
+showstringspaces=false
+}
+
+\lstdefinelanguage{Java}{
+morekeywords={class, private, public, true, false, new, if, for, int, return, void, extends, implements, this, null, super, import, package},
+sensitive=true,
+morecomment=[l]{//},
+morestring=[b]",
+showstringspaces=false
+}
+
+\lstdefinelanguage{JastAdd}{
+morekeywords={abstract, ast, syn, inh, eq, boolean, int, false, true, if, for, return},
+morestring=[b]',
+sensitive=true
+}
+
+\lstdefinelanguage{NaBL}{
+morekeywords={rules, defines, unique, non, refers, to},
+sensitive=true
+}
+
+\lstdefinelanguage{Gra2Mol}{
+morekeywords={rule, from, to, queries, mappings, skip, end_rule},
+morestring=[b]',
+sensitive=true
+}
+
+\lstdefinelanguage{Xtext}{
+morekeywords={terminal, returns, grammar, import, fragment, current},
+morestring=[b]',
+morecomment=[l]{//},
+sensitive=true
+}
+
+\lstdefinelanguage{Xtend}{
+morekeywords={FOR, ENDFOR, IF, ELSE, ENDIF, def, protected, void, new, var, typeof, return},
+morestring=[b]',
+morestring=[b]",
+morecomment=[s]{/*}{*/},
+sensitive=true
+}
+
+\lstdefinelanguage{CS2AS}{
+morekeywords={source, target, nameresolution, named, element, exports, for, from, all, children, resolution, helpers, mappings, map, disambiguation, lookup, lookupFrom, resolve, trace, when, occluding, nested,scope, def, protected, import,if,then,else,endif,self,and,true,false,def,includes,OclElement,package,let,in, void, new, var, typeof, return},
+morestring=[b]',
+morestring=[b]",
+morecomment=[l]{--},
+morecomment=[s]{/*}{*/},
+sensitive=true
+}
diff --git a/ocl/docs/publications/ICMT2016CS2AS_DSTL/llncs.cls b/ocl/docs/publications/ICMT2016CS2AS_DSTL/llncs.cls
new file mode 100644
index 0000000..040102a
--- /dev/null
+++ b/ocl/docs/publications/ICMT2016CS2AS_DSTL/llncs.cls
@@ -0,0 +1,1208 @@
+% LLNCS DOCUMENT CLASS -- version 2.19 (31-Mar-2014)
+% Springer Verlag LaTeX2e support for Lecture Notes in Computer Science
+%
+%%
+%% \CharacterTable
+%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%%   Digits        \0\1\2\3\4\5\6\7\8\9
+%%   Exclamation   \!     Double quote  \"     Hash (number) \#
+%%   Dollar        \$     Percent       \%     Ampersand     \&
+%%   Acute accent  \'     Left paren    \(     Right paren   \)
+%%   Asterisk      \*     Plus          \+     Comma         \,
+%%   Minus         \-     Point         \.     Solidus       \/
+%%   Colon         \:     Semicolon     \;     Less than     \<
+%%   Equals        \=     Greater than  \>     Question mark \?
+%%   Commercial at \@     Left bracket  \[     Backslash     \\
+%%   Right bracket \]     Circumflex    \^     Underscore    \_
+%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
+%%   Right brace   \}     Tilde         \~}
+%%
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+\ProvidesClass{llncs}[2014/03/31 v2.19
+^^J LaTeX document class for Lecture Notes in Computer Science]
+% Options
+\let\if@envcntreset\iffalse
+\DeclareOption{envcountreset}{\let\if@envcntreset\iftrue}
+\DeclareOption{citeauthoryear}{\let\citeauthoryear=Y}
+\DeclareOption{oribibl}{\let\oribibl=Y}
+\let\if@custvec\iftrue
+\DeclareOption{orivec}{\let\if@custvec\iffalse}
+\let\if@envcntsame\iffalse
+\DeclareOption{envcountsame}{\let\if@envcntsame\iftrue}
+\let\if@envcntsect\iffalse
+\DeclareOption{envcountsect}{\let\if@envcntsect\iftrue}
+\let\if@runhead\iffalse
+\DeclareOption{runningheads}{\let\if@runhead\iftrue}
+
+\let\if@openright\iftrue
+\let\if@openbib\iffalse
+\DeclareOption{openbib}{\let\if@openbib\iftrue}
+
+% languages
+\let\switcht@@therlang\relax
+\def\ds@deutsch{\def\switcht@@therlang{\switcht@deutsch}}
+\def\ds@francais{\def\switcht@@therlang{\switcht@francais}}
+
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
+
+\ProcessOptions
+
+\LoadClass[twoside]{article}
+\RequirePackage{multicol} % needed for the list of participants, index
+\RequirePackage{aliascnt}
+
+\setlength{\textwidth}{12.2cm}
+\setlength{\textheight}{19.3cm}
+\renewcommand\@pnumwidth{2em}
+\renewcommand\@tocrmarg{3.5em}
+%
+\def\@dottedtocline#1#2#3#4#5{%
+  \ifnum #1>\c@tocdepth \else
+    \vskip \z@ \@plus.2\p@
+    {\leftskip #2\relax \rightskip \@tocrmarg \advance\rightskip by 0pt plus 2cm
+               \parfillskip -\rightskip \pretolerance=10000
+     \parindent #2\relax\@afterindenttrue
+     \interlinepenalty\@M
+     \leavevmode
+     \@tempdima #3\relax
+     \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip
+     {#4}\nobreak
+     \leaders\hbox{$\m@th
+        \mkern \@dotsep mu\hbox{.}\mkern \@dotsep
+        mu$}\hfill
+     \nobreak
+     \hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #5}%
+     \par}%
+  \fi}
+%
+\def\switcht@albion{%
+\def\abstractname{Abstract.}%
+\def\ackname{Acknowledgement.}%
+\def\andname{and}%
+\def\lastandname{\unskip, and}%
+\def\appendixname{Appendix}%
+\def\chaptername{Chapter}%
+\def\claimname{Claim}%
+\def\conjecturename{Conjecture}%
+\def\contentsname{Table of Contents}%
+\def\corollaryname{Corollary}%
+\def\definitionname{Definition}%
+\def\examplename{Example}%
+\def\exercisename{Exercise}%
+\def\figurename{Fig.}%
+\def\keywordname{{\bf Keywords:}}%
+\def\indexname{Index}%
+\def\lemmaname{Lemma}%
+\def\contriblistname{List of Contributors}%
+\def\listfigurename{List of Figures}%
+\def\listtablename{List of Tables}%
+\def\mailname{{\it Correspondence to\/}:}%
+\def\noteaddname{Note added in proof}%
+\def\notename{Note}%
+\def\partname{Part}%
+\def\problemname{Problem}%
+\def\proofname{Proof}%
+\def\propertyname{Property}%
+\def\propositionname{Proposition}%
+\def\questionname{Question}%
+\def\remarkname{Remark}%
+\def\seename{see}%
+\def\solutionname{Solution}%
+\def\subclassname{{\it Subject Classifications\/}:}%
+\def\tablename{Table}%
+\def\theoremname{Theorem}}
+\switcht@albion
+% Names of theorem like environments are already defined
+% but must be translated if another language is chosen
+%
+% French section
+\def\switcht@francais{%\typeout{On parle francais.}%
+ \def\abstractname{R\'esum\'e.}%
+ \def\ackname{Remerciements.}%
+ \def\andname{et}%
+ \def\lastandname{ et}%
+ \def\appendixname{Appendice}%
+ \def\chaptername{Chapitre}%
+ \def\claimname{Pr\'etention}%
+ \def\conjecturename{Hypoth\`ese}%
+ \def\contentsname{Table des mati\`eres}%
+ \def\corollaryname{Corollaire}%
+ \def\definitionname{D\'efinition}%
+ \def\examplename{Exemple}%
+ \def\exercisename{Exercice}%
+ \def\figurename{Fig.}%
+ \def\keywordname{{\bf Mots-cl\'e:}}%
+ \def\indexname{Index}%
+ \def\lemmaname{Lemme}%
+ \def\contriblistname{Liste des contributeurs}%
+ \def\listfigurename{Liste des figures}%
+ \def\listtablename{Liste des tables}%
+ \def\mailname{{\it Correspondence to\/}:}%
+ \def\noteaddname{Note ajout\'ee \`a l'\'epreuve}%
+ \def\notename{Remarque}%
+ \def\partname{Partie}%
+ \def\problemname{Probl\`eme}%
+ \def\proofname{Preuve}%
+ \def\propertyname{Caract\'eristique}%
+%\def\propositionname{Proposition}%
+ \def\questionname{Question}%
+ \def\remarkname{Remarque}%
+ \def\seename{voir}%
+ \def\solutionname{Solution}%
+ \def\subclassname{{\it Subject Classifications\/}:}%
+ \def\tablename{Tableau}%
+ \def\theoremname{Th\'eor\`eme}%
+}
+%
+% German section
+\def\switcht@deutsch{%\typeout{Man spricht deutsch.}%
+ \def\abstractname{Zusammenfassung.}%
+ \def\ackname{Danksagung.}%
+ \def\andname{und}%
+ \def\lastandname{ und}%
+ \def\appendixname{Anhang}%
+ \def\chaptername{Kapitel}%
+ \def\claimname{Behauptung}%
+ \def\conjecturename{Hypothese}%
+ \def\contentsname{Inhaltsverzeichnis}%
+ \def\corollaryname{Korollar}%
+%\def\definitionname{Definition}%
+ \def\examplename{Beispiel}%
+ \def\exercisename{\"Ubung}%
+ \def\figurename{Abb.}%
+ \def\keywordname{{\bf Schl\"usselw\"orter:}}%
+ \def\indexname{Index}%
+%\def\lemmaname{Lemma}%
+ \def\contriblistname{Mitarbeiter}%
+ \def\listfigurename{Abbildungsverzeichnis}%
+ \def\listtablename{Tabellenverzeichnis}%
+ \def\mailname{{\it Correspondence to\/}:}%
+ \def\noteaddname{Nachtrag}%
+ \def\notename{Anmerkung}%
+ \def\partname{Teil}%
+%\def\problemname{Problem}%
+ \def\proofname{Beweis}%
+ \def\propertyname{Eigenschaft}%
+%\def\propositionname{Proposition}%
+ \def\questionname{Frage}%
+ \def\remarkname{Anmerkung}%
+ \def\seename{siehe}%
+ \def\solutionname{L\"osung}%
+ \def\subclassname{{\it Subject Classifications\/}:}%
+ \def\tablename{Tabelle}%
+%\def\theoremname{Theorem}%
+}
+
+% Ragged bottom for the actual page
+\def\thisbottomragged{\def\@textbottom{\vskip\z@ plus.0001fil
+\global\let\@textbottom\relax}}
+
+\renewcommand\small{%
+   \@setfontsize\small\@ixpt{11}%
+   \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@
+   \abovedisplayshortskip \z@ \@plus2\p@
+   \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@
+   \def\@listi{\leftmargin\leftmargini
+               \parsep 0\p@ \@plus1\p@ \@minus\p@
+               \topsep 8\p@ \@plus2\p@ \@minus4\p@
+               \itemsep0\p@}%
+   \belowdisplayskip \abovedisplayskip
+}
+
+\frenchspacing
+\widowpenalty=10000
+\clubpenalty=10000
+
+\setlength\oddsidemargin   {63\p@}
+\setlength\evensidemargin  {63\p@}
+\setlength\marginparwidth  {90\p@}
+
+\setlength\headsep   {16\p@}
+
+\setlength\footnotesep{7.7\p@}
+\setlength\textfloatsep{8mm\@plus 2\p@ \@minus 4\p@}
+\setlength\intextsep   {8mm\@plus 2\p@ \@minus 2\p@}
+
+\setcounter{secnumdepth}{2}
+
+\newcounter {chapter}
+\renewcommand\thechapter      {\@arabic\c@chapter}
+
+\newif\if@mainmatter \@mainmattertrue
+\newcommand\frontmatter{\cleardoublepage
+            \@mainmatterfalse\pagenumbering{Roman}}
+\newcommand\mainmatter{\cleardoublepage
+       \@mainmattertrue\pagenumbering{arabic}}
+\newcommand\backmatter{\if@openright\cleardoublepage\else\clearpage\fi
+      \@mainmatterfalse}
+
+\renewcommand\part{\cleardoublepage
+                 \thispagestyle{empty}%
+                 \if@twocolumn
+                     \onecolumn
+                     \@tempswatrue
+                   \else
+                     \@tempswafalse
+                 \fi
+                 \null\vfil
+                 \secdef\@part\@spart}
+
+\def\@part[#1]#2{%
+    \ifnum \c@secnumdepth >-2\relax
+      \refstepcounter{part}%
+      \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
+    \else
+      \addcontentsline{toc}{part}{#1}%
+    \fi
+    \markboth{}{}%
+    {\centering
+     \interlinepenalty \@M
+     \normalfont
+     \ifnum \c@secnumdepth >-2\relax
+       \huge\bfseries \partname~\thepart
+       \par
+       \vskip 20\p@
+     \fi
+     \Huge \bfseries #2\par}%
+    \@endpart}
+\def\@spart#1{%
+    {\centering
+     \interlinepenalty \@M
+     \normalfont
+     \Huge \bfseries #1\par}%
+    \@endpart}
+\def\@endpart{\vfil\newpage
+              \if@twoside
+                \null
+                \thispagestyle{empty}%
+                \newpage
+              \fi
+              \if@tempswa
+                \twocolumn
+              \fi}
+
+\newcommand\chapter{\clearpage
+                    \thispagestyle{empty}%
+                    \global\@topnum\z@
+                    \@afterindentfalse
+                    \secdef\@chapter\@schapter}
+\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
+                       \if@mainmatter
+                         \refstepcounter{chapter}%
+                         \typeout{\@chapapp\space\thechapter.}%
+                         \addcontentsline{toc}{chapter}%
+                                  {\protect\numberline{\thechapter}#1}%
+                       \else
+                         \addcontentsline{toc}{chapter}{#1}%
+                       \fi
+                    \else
+                      \addcontentsline{toc}{chapter}{#1}%
+                    \fi
+                    \chaptermark{#1}%
+                    \addtocontents{lof}{\protect\addvspace{10\p@}}%
+                    \addtocontents{lot}{\protect\addvspace{10\p@}}%
+                    \if@twocolumn
+                      \@topnewpage[\@makechapterhead{#2}]%
+                    \else
+                      \@makechapterhead{#2}%
+                      \@afterheading
+                    \fi}
+\def\@makechapterhead#1{%
+% \vspace*{50\p@}%
+  {\centering
+    \ifnum \c@secnumdepth >\m@ne
+      \if@mainmatter
+        \large\bfseries \@chapapp{} \thechapter
+        \par\nobreak
+        \vskip 20\p@
+      \fi
+    \fi
+    \interlinepenalty\@M
+    \Large \bfseries #1\par\nobreak
+    \vskip 40\p@
+  }}
+\def\@schapter#1{\if@twocolumn
+                   \@topnewpage[\@makeschapterhead{#1}]%
+                 \else
+                   \@makeschapterhead{#1}%
+                   \@afterheading
+                 \fi}
+\def\@makeschapterhead#1{%
+% \vspace*{50\p@}%
+  {\centering
+    \normalfont
+    \interlinepenalty\@M
+    \Large \bfseries  #1\par\nobreak
+    \vskip 40\p@
+  }}
+
+\renewcommand\section{\@startsection{section}{1}{\z@}%
+                       {-18\p@ \@plus -4\p@ \@minus -4\p@}%
+                       {12\p@ \@plus 4\p@ \@minus 4\p@}%
+                       {\normalfont\large\bfseries\boldmath
+                        \rightskip=\z@ \@plus 8em\pretolerance=10000 }}
+\renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
+                       {-18\p@ \@plus -4\p@ \@minus -4\p@}%
+                       {8\p@ \@plus 4\p@ \@minus 4\p@}%
+                       {\normalfont\normalsize\bfseries\boldmath
+                        \rightskip=\z@ \@plus 8em\pretolerance=10000 }}
+\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
+                       {-18\p@ \@plus -4\p@ \@minus -4\p@}%
+                       {-0.5em \@plus -0.22em \@minus -0.1em}%
+                       {\normalfont\normalsize\bfseries\boldmath}}
+\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
+                       {-12\p@ \@plus -4\p@ \@minus -4\p@}%
+                       {-0.5em \@plus -0.22em \@minus -0.1em}%
+                       {\normalfont\normalsize\itshape}}
+\renewcommand\subparagraph[1]{\typeout{LLNCS warning: You should not use
+                  \string\subparagraph\space with this class}\vskip0.5cm
+You should not use \verb|\subparagraph| with this class.\vskip0.5cm}
+
+\DeclareMathSymbol{\Gamma}{\mathalpha}{letters}{"00}
+\DeclareMathSymbol{\Delta}{\mathalpha}{letters}{"01}
+\DeclareMathSymbol{\Theta}{\mathalpha}{letters}{"02}
+\DeclareMathSymbol{\Lambda}{\mathalpha}{letters}{"03}
+\DeclareMathSymbol{\Xi}{\mathalpha}{letters}{"04}
+\DeclareMathSymbol{\Pi}{\mathalpha}{letters}{"05}
+\DeclareMathSymbol{\Sigma}{\mathalpha}{letters}{"06}
+\DeclareMathSymbol{\Upsilon}{\mathalpha}{letters}{"07}
+\DeclareMathSymbol{\Phi}{\mathalpha}{letters}{"08}
+\DeclareMathSymbol{\Psi}{\mathalpha}{letters}{"09}
+\DeclareMathSymbol{\Omega}{\mathalpha}{letters}{"0A}
+
+\let\footnotesize\small
+
+\if@custvec
+\def\vec#1{\mathchoice{\mbox{\boldmath$\displaystyle#1$}}
+{\mbox{\boldmath$\textstyle#1$}}
+{\mbox{\boldmath$\scriptstyle#1$}}
+{\mbox{\boldmath$\scriptscriptstyle#1$}}}
+\fi
+
+\def\squareforqed{\hbox{\rlap{$\sqcap$}$\sqcup$}}
+\def\qed{\ifmmode\squareforqed\else{\unskip\nobreak\hfil
+\penalty50\hskip1em\null\nobreak\hfil\squareforqed
+\parfillskip=0pt\finalhyphendemerits=0\endgraf}\fi}
+
+\def\getsto{\mathrel{\mathchoice {\vcenter{\offinterlineskip
+\halign{\hfil
+$\displaystyle##$\hfil\cr\gets\cr\to\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr\gets
+\cr\to\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr\gets
+\cr\to\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
+\gets\cr\to\cr}}}}}
+\def\lid{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil
+$\displaystyle##$\hfil\cr<\cr\noalign{\vskip1.2pt}=\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr<\cr
+\noalign{\vskip1.2pt}=\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr<\cr
+\noalign{\vskip1pt}=\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
+<\cr
+\noalign{\vskip0.9pt}=\cr}}}}}
+\def\gid{\mathrel{\mathchoice {\vcenter{\offinterlineskip\halign{\hfil
+$\displaystyle##$\hfil\cr>\cr\noalign{\vskip1.2pt}=\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr>\cr
+\noalign{\vskip1.2pt}=\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr>\cr
+\noalign{\vskip1pt}=\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
+>\cr
+\noalign{\vskip0.9pt}=\cr}}}}}
+\def\grole{\mathrel{\mathchoice {\vcenter{\offinterlineskip
+\halign{\hfil
+$\displaystyle##$\hfil\cr>\cr\noalign{\vskip-1pt}<\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\textstyle##$\hfil\cr
+>\cr\noalign{\vskip-1pt}<\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptstyle##$\hfil\cr
+>\cr\noalign{\vskip-0.8pt}<\cr}}}
+{\vcenter{\offinterlineskip\halign{\hfil$\scriptscriptstyle##$\hfil\cr
+>\cr\noalign{\vskip-0.3pt}<\cr}}}}}
+\def\bbbr{{\rm I\!R}} %reelle Zahlen
+\def\bbbm{{\rm I\!M}}
+\def\bbbn{{\rm I\!N}} %natuerliche Zahlen
+\def\bbbf{{\rm I\!F}}
+\def\bbbh{{\rm I\!H}}
+\def\bbbk{{\rm I\!K}}
+\def\bbbp{{\rm I\!P}}
+\def\bbbone{{\mathchoice {\rm 1\mskip-4mu l} {\rm 1\mskip-4mu l}
+{\rm 1\mskip-4.5mu l} {\rm 1\mskip-5mu l}}}
+\def\bbbc{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm C$}\hbox{\hbox
+to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}
+{\setbox0=\hbox{$\textstyle\rm C$}\hbox{\hbox
+to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}
+{\setbox0=\hbox{$\scriptstyle\rm C$}\hbox{\hbox
+to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}
+{\setbox0=\hbox{$\scriptscriptstyle\rm C$}\hbox{\hbox
+to0pt{\kern0.4\wd0\vrule height0.9\ht0\hss}\box0}}}}
+\def\bbbq{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm
+Q$}\hbox{\raise
+0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.8\ht0\hss}\box0}}
+{\setbox0=\hbox{$\textstyle\rm Q$}\hbox{\raise
+0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.8\ht0\hss}\box0}}
+{\setbox0=\hbox{$\scriptstyle\rm Q$}\hbox{\raise
+0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.7\ht0\hss}\box0}}
+{\setbox0=\hbox{$\scriptscriptstyle\rm Q$}\hbox{\raise
+0.15\ht0\hbox to0pt{\kern0.4\wd0\vrule height0.7\ht0\hss}\box0}}}}
+\def\bbbt{{\mathchoice {\setbox0=\hbox{$\displaystyle\rm
+T$}\hbox{\hbox to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}
+{\setbox0=\hbox{$\textstyle\rm T$}\hbox{\hbox
+to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}
+{\setbox0=\hbox{$\scriptstyle\rm T$}\hbox{\hbox
+to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}
+{\setbox0=\hbox{$\scriptscriptstyle\rm T$}\hbox{\hbox
+to0pt{\kern0.3\wd0\vrule height0.9\ht0\hss}\box0}}}}
+\def\bbbs{{\mathchoice
+{\setbox0=\hbox{$\displaystyle     \rm S$}\hbox{\raise0.5\ht0\hbox
+to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\hbox
+to0pt{\kern0.55\wd0\vrule height0.5\ht0\hss}\box0}}
+{\setbox0=\hbox{$\textstyle        \rm S$}\hbox{\raise0.5\ht0\hbox
+to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\hbox
+to0pt{\kern0.55\wd0\vrule height0.5\ht0\hss}\box0}}
+{\setbox0=\hbox{$\scriptstyle      \rm S$}\hbox{\raise0.5\ht0\hbox
+to0pt{\kern0.35\wd0\vrule height0.45\ht0\hss}\raise0.05\ht0\hbox
+to0pt{\kern0.5\wd0\vrule height0.45\ht0\hss}\box0}}
+{\setbox0=\hbox{$\scriptscriptstyle\rm S$}\hbox{\raise0.5\ht0\hbox
+to0pt{\kern0.4\wd0\vrule height0.45\ht0\hss}\raise0.05\ht0\hbox
+to0pt{\kern0.55\wd0\vrule height0.45\ht0\hss}\box0}}}}
+\def\bbbz{{\mathchoice {\hbox{$\mathsf\textstyle Z\kern-0.4em Z$}}
+{\hbox{$\mathsf\textstyle Z\kern-0.4em Z$}}
+{\hbox{$\mathsf\scriptstyle Z\kern-0.3em Z$}}
+{\hbox{$\mathsf\scriptscriptstyle Z\kern-0.2em Z$}}}}
+
+\let\ts\,
+
+\setlength\leftmargini  {17\p@}
+\setlength\leftmargin    {\leftmargini}
+\setlength\leftmarginii  {\leftmargini}
+\setlength\leftmarginiii {\leftmargini}
+\setlength\leftmarginiv  {\leftmargini}
+\setlength  \labelsep  {.5em}
+\setlength  \labelwidth{\leftmargini}
+\addtolength\labelwidth{-\labelsep}
+
+\def\@listI{\leftmargin\leftmargini
+            \parsep 0\p@ \@plus1\p@ \@minus\p@
+            \topsep 8\p@ \@plus2\p@ \@minus4\p@
+            \itemsep0\p@}
+\let\@listi\@listI
+\@listi
+\def\@listii {\leftmargin\leftmarginii
+              \labelwidth\leftmarginii
+              \advance\labelwidth-\labelsep
+              \topsep    0\p@ \@plus2\p@ \@minus\p@}
+\def\@listiii{\leftmargin\leftmarginiii
+              \labelwidth\leftmarginiii
+              \advance\labelwidth-\labelsep
+              \topsep    0\p@ \@plus\p@\@minus\p@
+              \parsep    \z@
+              \partopsep \p@ \@plus\z@ \@minus\p@}
+
+\renewcommand\labelitemi{\normalfont\bfseries --}
+\renewcommand\labelitemii{$\m@th\bullet$}
+
+\setlength\arraycolsep{1.4\p@}
+\setlength\tabcolsep{1.4\p@}
+
+\def\tableofcontents{\chapter*{\contentsname\@mkboth{{\contentsname}}%
+                                                    {{\contentsname}}}
+ \def\authcount##1{\setcounter{auco}{##1}\setcounter{@auth}{1}}
+ \def\lastand{\ifnum\value{auco}=2\relax
+                 \unskip{} \andname\
+              \else
+                 \unskip \lastandname\
+              \fi}%
+ \def\and{\stepcounter{@auth}\relax
+          \ifnum\value{@auth}=\value{auco}%
+             \lastand
+          \else
+             \unskip,
+          \fi}%
+ \@starttoc{toc}\if@restonecol\twocolumn\fi}
+
+\def\l@part#1#2{\addpenalty{\@secpenalty}%
+   \addvspace{2em plus\p@}%  % space above part line
+   \begingroup
+     \parindent \z@
+     \rightskip \z@ plus 5em
+     \hrule\vskip5pt
+     \large               % same size as for a contribution heading
+     \bfseries\boldmath   % set line in boldface
+     \leavevmode          % TeX command to enter horizontal mode.
+     #1\par
+     \vskip5pt
+     \hrule
+     \vskip1pt
+     \nobreak             % Never break after part entry
+   \endgroup}
+
+\def\@dotsep{2}
+
+\let\phantomsection=\relax
+
+\def\hyperhrefextend{\ifx\hyper@anchor\@undefined\else
+{}\fi}
+
+\def\addnumcontentsmark#1#2#3{%
+\addtocontents{#1}{\protect\contentsline{#2}{\protect\numberline
+                     {\thechapter}#3}{\thepage}\hyperhrefextend}}%
+\def\addcontentsmark#1#2#3{%
+\addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}\hyperhrefextend}}%
+\def\addcontentsmarkwop#1#2#3{%
+\addtocontents{#1}{\protect\contentsline{#2}{#3}{0}\hyperhrefextend}}%
+
+\def\@adcmk[#1]{\ifcase #1 \or
+\def\@gtempa{\addnumcontentsmark}%
+  \or    \def\@gtempa{\addcontentsmark}%
+  \or    \def\@gtempa{\addcontentsmarkwop}%
+  \fi\@gtempa{toc}{chapter}%
+}
+\def\addtocmark{%
+\phantomsection
+\@ifnextchar[{\@adcmk}{\@adcmk[3]}%
+}
+
+\def\l@chapter#1#2{\addpenalty{-\@highpenalty}
+ \vskip 1.0em plus 1pt \@tempdima 1.5em \begingroup
+ \parindent \z@ \rightskip \@tocrmarg
+ \advance\rightskip by 0pt plus 2cm
+ \parfillskip -\rightskip \pretolerance=10000
+ \leavevmode \advance\leftskip\@tempdima \hskip -\leftskip
+ {\large\bfseries\boldmath#1}\ifx0#2\hfil\null
+ \else
+      \nobreak
+      \leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern
+      \@dotsep mu$}\hfill
+      \nobreak\hbox to\@pnumwidth{\hss #2}%
+ \fi\par
+ \penalty\@highpenalty \endgroup}
+
+\def\l@title#1#2{\addpenalty{-\@highpenalty}
+ \addvspace{8pt plus 1pt}
+ \@tempdima \z@
+ \begingroup
+ \parindent \z@ \rightskip \@tocrmarg
+ \advance\rightskip by 0pt plus 2cm
+ \parfillskip -\rightskip \pretolerance=10000
+ \leavevmode \advance\leftskip\@tempdima \hskip -\leftskip
+ #1\nobreak
+ \leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern
+ \@dotsep mu$}\hfill
+ \nobreak\hbox to\@pnumwidth{\hss #2}\par
+ \penalty\@highpenalty \endgroup}
+
+\def\l@author#1#2{\addpenalty{\@highpenalty}
+ \@tempdima=15\p@ %\z@
+ \begingroup
+ \parindent \z@ \rightskip \@tocrmarg
+ \advance\rightskip by 0pt plus 2cm
+ \pretolerance=10000
+ \leavevmode \advance\leftskip\@tempdima %\hskip -\leftskip
+ \textit{#1}\par
+ \penalty\@highpenalty \endgroup}
+
+\setcounter{tocdepth}{0}
+\newdimen\tocchpnum
+\newdimen\tocsecnum
+\newdimen\tocsectotal
+\newdimen\tocsubsecnum
+\newdimen\tocsubsectotal
+\newdimen\tocsubsubsecnum
+\newdimen\tocsubsubsectotal
+\newdimen\tocparanum
+\newdimen\tocparatotal
+\newdimen\tocsubparanum
+\tocchpnum=\z@            % no chapter numbers
+\tocsecnum=15\p@          % section 88. plus 2.222pt
+\tocsubsecnum=23\p@       % subsection 88.8 plus 2.222pt
+\tocsubsubsecnum=27\p@    % subsubsection 88.8.8 plus 1.444pt
+\tocparanum=35\p@         % paragraph 88.8.8.8 plus 1.666pt
+\tocsubparanum=43\p@      % subparagraph 88.8.8.8.8 plus 1.888pt
+\def\calctocindent{%
+\tocsectotal=\tocchpnum
+\advance\tocsectotal by\tocsecnum
+\tocsubsectotal=\tocsectotal
+\advance\tocsubsectotal by\tocsubsecnum
+\tocsubsubsectotal=\tocsubsectotal
+\advance\tocsubsubsectotal by\tocsubsubsecnum
+\tocparatotal=\tocsubsubsectotal
+\advance\tocparatotal by\tocparanum}
+\calctocindent
+
+\def\l@section{\@dottedtocline{1}{\tocchpnum}{\tocsecnum}}
+\def\l@subsection{\@dottedtocline{2}{\tocsectotal}{\tocsubsecnum}}
+\def\l@subsubsection{\@dottedtocline{3}{\tocsubsectotal}{\tocsubsubsecnum}}
+\def\l@paragraph{\@dottedtocline{4}{\tocsubsubsectotal}{\tocparanum}}
+\def\l@subparagraph{\@dottedtocline{5}{\tocparatotal}{\tocsubparanum}}
+
+\def\listoffigures{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn
+ \fi\section*{\listfigurename\@mkboth{{\listfigurename}}{{\listfigurename}}}
+ \@starttoc{lof}\if@restonecol\twocolumn\fi}
+\def\l@figure{\@dottedtocline{1}{0em}{1.5em}}
+
+\def\listoftables{\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn
+ \fi\section*{\listtablename\@mkboth{{\listtablename}}{{\listtablename}}}
+ \@starttoc{lot}\if@restonecol\twocolumn\fi}
+\let\l@table\l@figure
+
+\renewcommand\listoffigures{%
+    \section*{\listfigurename
+      \@mkboth{\listfigurename}{\listfigurename}}%
+    \@starttoc{lof}%
+    }
+
+\renewcommand\listoftables{%
+    \section*{\listtablename
+      \@mkboth{\listtablename}{\listtablename}}%
+    \@starttoc{lot}%
+    }
+
+\ifx\oribibl\undefined
+\ifx\citeauthoryear\undefined
+\renewenvironment{thebibliography}[1]
+     {\section*{\refname}
+      \def\@biblabel##1{##1.}
+      \small
+      \list{\@biblabel{\@arabic\c@enumiv}}%
+           {\settowidth\labelwidth{\@biblabel{#1}}%
+            \leftmargin\labelwidth
+            \advance\leftmargin\labelsep
+            \if@openbib
+              \advance\leftmargin\bibindent
+              \itemindent -\bibindent
+              \listparindent \itemindent
+              \parsep \z@
+            \fi
+            \usecounter{enumiv}%
+            \let\p@enumiv\@empty
+            \renewcommand\theenumiv{\@arabic\c@enumiv}}%
+      \if@openbib
+        \renewcommand\newblock{\par}%
+      \else
+        \renewcommand\newblock{\hskip .11em \@plus.33em \@minus.07em}%
+      \fi
+      \sloppy\clubpenalty4000\widowpenalty4000%
+      \sfcode`\.=\@m}
+     {\def\@noitemerr
+       {\@latex@warning{Empty `thebibliography' environment}}%
+      \endlist}
+\def\@lbibitem[#1]#2{\item[{[#1]}\hfill]\if@filesw
+     {\let\protect\noexpand\immediate
+     \write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces}
+\newcount\@tempcntc
+\def\@citex[#1]#2{\if@filesw\immediate\write\@auxout{\string\citation{#2}}\fi
+  \@tempcnta\z@\@tempcntb\m@ne\def\@citea{}\@cite{\@for\@citeb:=#2\do
+    {\@ifundefined
+       {b@\@citeb}{\@citeo\@tempcntb\m@ne\@citea\def\@citea{,}{\bfseries
+        ?}\@warning
+       {Citation `\@citeb' on page \thepage \space undefined}}%
+    {\setbox\z@\hbox{\global\@tempcntc0\csname b@\@citeb\endcsname\relax}%
+     \ifnum\@tempcntc=\z@ \@citeo\@tempcntb\m@ne
+       \@citea\def\@citea{,}\hbox{\csname b@\@citeb\endcsname}%
+     \else
+      \advance\@tempcntb\@ne
+      \ifnum\@tempcntb=\@tempcntc
+      \else\advance\@tempcntb\m@ne\@citeo
+      \@tempcnta\@tempcntc\@tempcntb\@tempcntc\fi\fi}}\@citeo}{#1}}
+\def\@citeo{\ifnum\@tempcnta>\@tempcntb\else
+               \@citea\def\@citea{,\,\hskip\z@skip}%
+               \ifnum\@tempcnta=\@tempcntb\the\@tempcnta\else
+               {\advance\@tempcnta\@ne\ifnum\@tempcnta=\@tempcntb \else
+                \def\@citea{--}\fi
+      \advance\@tempcnta\m@ne\the\@tempcnta\@citea\the\@tempcntb}\fi\fi}
+\else
+\renewenvironment{thebibliography}[1]
+     {\section*{\refname}
+      \small
+      \list{}%
+           {\settowidth\labelwidth{}%
+            \leftmargin\parindent
+            \itemindent=-\parindent
+            \labelsep=\z@
+            \if@openbib
+              \advance\leftmargin\bibindent
+              \itemindent -\bibindent
+              \listparindent \itemindent
+              \parsep \z@
+            \fi
+            \usecounter{enumiv}%
+            \let\p@enumiv\@empty
+            \renewcommand\theenumiv{}}%
+      \if@openbib
+        \renewcommand\newblock{\par}%
+      \else
+        \renewcommand\newblock{\hskip .11em \@plus.33em \@minus.07em}%
+      \fi
+      \sloppy\clubpenalty4000\widowpenalty4000%
+      \sfcode`\.=\@m}
+     {\def\@noitemerr
+       {\@latex@warning{Empty `thebibliography' environment}}%
+      \endlist}
+      \def\@cite#1{#1}%
+      \def\@lbibitem[#1]#2{\item[]\if@filesw
+        {\def\protect##1{\string ##1\space}\immediate
+      \write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces}
+   \fi
+\else
+\@cons\@openbib@code{\noexpand\small}
+\fi
+
+\def\idxquad{\hskip 10\p@}% space that divides entry from number
+
+\def\@idxitem{\par\hangindent 10\p@}
+
+\def\subitem{\par\setbox0=\hbox{--\enspace}% second order
+                \noindent\hangindent\wd0\box0}% index entry
+
+\def\subsubitem{\par\setbox0=\hbox{--\,--\enspace}% third
+                \noindent\hangindent\wd0\box0}% order index entry
+
+\def\indexspace{\par \vskip 10\p@ plus5\p@ minus3\p@\relax}
+
+\renewenvironment{theindex}
+               {\@mkboth{\indexname}{\indexname}%
+                \thispagestyle{empty}\parindent\z@
+                \parskip\z@ \@plus .3\p@\relax
+                \let\item\par
+                \def\,{\relax\ifmmode\mskip\thinmuskip
+                             \else\hskip0.2em\ignorespaces\fi}%
+                \normalfont\small
+                \begin{multicols}{2}[\@makeschapterhead{\indexname}]%
+                }
+                {\end{multicols}}
+
+\renewcommand\footnoterule{%
+  \kern-3\p@
+  \hrule\@width 2truecm
+  \kern2.6\p@}
+  \newdimen\fnindent
+  \fnindent1em
+\long\def\@makefntext#1{%
+    \parindent \fnindent%
+    \leftskip \fnindent%
+    \noindent
+    \llap{\hb@xt@1em{\hss\@makefnmark\ }}\ignorespaces#1}
+
+\long\def\@makecaption#1#2{%
+  \small
+  \vskip\abovecaptionskip
+  \sbox\@tempboxa{{\bfseries #1.} #2}%
+  \ifdim \wd\@tempboxa >\hsize
+    {\bfseries #1.} #2\par
+  \else
+    \global \@minipagefalse
+    \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
+  \fi
+  \vskip\belowcaptionskip}
+
+\def\fps@figure{htbp}
+\def\fnum@figure{\figurename\thinspace\thefigure}
+\def \@floatboxreset {%
+        \reset@font
+        \small
+        \@setnobreak
+        \@setminipage
+}
+\def\fps@table{htbp}
+\def\fnum@table{\tablename~\thetable}
+\renewenvironment{table}
+               {\setlength\abovecaptionskip{0\p@}%
+                \setlength\belowcaptionskip{10\p@}%
+                \@float{table}}
+               {\end@float}
+\renewenvironment{table*}
+               {\setlength\abovecaptionskip{0\p@}%
+                \setlength\belowcaptionskip{10\p@}%
+                \@dblfloat{table}}
+               {\end@dblfloat}
+
+\long\def\@caption#1[#2]#3{\par\addcontentsline{\csname
+  ext@#1\endcsname}{#1}{\protect\numberline{\csname
+  the#1\endcsname}{\ignorespaces #2}}\begingroup
+    \@parboxrestore
+    \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par
+  \endgroup}
+
+% LaTeX does not provide a command to enter the authors institute
+% addresses. The \institute command is defined here.
+
+\newcounter{@inst}
+\newcounter{@auth}
+\newcounter{auco}
+\newdimen\instindent
+\newbox\authrun
+\newtoks\authorrunning
+\newtoks\tocauthor
+\newbox\titrun
+\newtoks\titlerunning
+\newtoks\toctitle
+
+\def\clearheadinfo{\gdef\@author{No Author Given}%
+                   \gdef\@title{No Title Given}%
+                   \gdef\@subtitle{}%
+                   \gdef\@institute{No Institute Given}%
+                   \gdef\@thanks{}%
+                   \global\titlerunning={}\global\authorrunning={}%
+                   \global\toctitle={}\global\tocauthor={}}
+
+\def\institute#1{\gdef\@institute{#1}}
+
+\def\institutename{\par
+ \begingroup
+ \parskip=\z@
+ \parindent=\z@
+ \setcounter{@inst}{1}%
+ \def\and{\par\stepcounter{@inst}%
+ \noindent$^{\the@inst}$\enspace\ignorespaces}%
+ \setbox0=\vbox{\def\thanks##1{}\@institute}%
+ \ifnum\c@@inst=1\relax
+   \gdef\fnnstart{0}%
+ \else
+   \xdef\fnnstart{\c@@inst}%
+   \setcounter{@inst}{1}%
+   \noindent$^{\the@inst}$\enspace
+ \fi
+ \ignorespaces
+ \@institute\par
+ \endgroup}
+
+\def\@fnsymbol#1{\ensuremath{\ifcase#1\or\star\or{\star\star}\or
+   {\star\star\star}\or \dagger\or \ddagger\or
+   \mathchar "278\or \mathchar "27B\or \|\or **\or \dagger\dagger
+   \or \ddagger\ddagger \else\@ctrerr\fi}}
+
+\def\inst#1{\unskip$^{#1}$}
+\def\fnmsep{\unskip$^,$}
+\def\email#1{{\tt#1}}
+\AtBeginDocument{\@ifundefined{url}{\def\url#1{#1}}{}%
+\@ifpackageloaded{babel}{%
+\@ifundefined{extrasenglish}{}{\addto\extrasenglish{\switcht@albion}}%
+\@ifundefined{extrasfrenchb}{}{\addto\extrasfrenchb{\switcht@francais}}%
+\@ifundefined{extrasgerman}{}{\addto\extrasgerman{\switcht@deutsch}}%
+\@ifundefined{extrasngerman}{}{\addto\extrasngerman{\switcht@deutsch}}%
+}{\switcht@@therlang}%
+\providecommand{\keywords}[1]{\par\addvspace\baselineskip
+\noindent\keywordname\enspace\ignorespaces#1}%
+}
+\def\homedir{\~{ }}
+
+\def\subtitle#1{\gdef\@subtitle{#1}}
+\clearheadinfo
+%
+%%% to avoid hyperref warnings
+\providecommand*{\toclevel@author}{999}
+%%% to make title-entry parent of section-entries
+\providecommand*{\toclevel@title}{0}
+%
+\renewcommand\maketitle{\newpage
+\phantomsection
+  \refstepcounter{chapter}%
+  \stepcounter{section}%
+  \setcounter{section}{0}%
+  \setcounter{subsection}{0}%
+  \setcounter{figure}{0}
+  \setcounter{table}{0}
+  \setcounter{equation}{0}
+  \setcounter{footnote}{0}%
+  \begingroup
+    \parindent=\z@
+    \renewcommand\thefootnote{\@fnsymbol\c@footnote}%
+    \if@twocolumn
+      \ifnum \col@number=\@ne
+        \@maketitle
+      \else
+        \twocolumn[\@maketitle]%
+      \fi
+    \else
+      \newpage
+      \global\@topnum\z@   % Prevents figures from going at top of page.
+      \@maketitle
+    \fi
+    \thispagestyle{empty}\@thanks
+%
+    \def\\{\unskip\ \ignorespaces}\def\inst##1{\unskip{}}%
+    \def\thanks##1{\unskip{}}\def\fnmsep{\unskip}%
+    \instindent=\hsize
+    \advance\instindent by-\headlineindent
+    \if!\the\toctitle!\addcontentsline{toc}{title}{\@title}\else
+       \addcontentsline{toc}{title}{\the\toctitle}\fi
+    \if@runhead
+       \if!\the\titlerunning!\else
+         \edef\@title{\the\titlerunning}%
+       \fi
+       \global\setbox\titrun=\hbox{\small\rm\unboldmath\ignorespaces\@title}%
+       \ifdim\wd\titrun>\instindent
+          \typeout{Title too long for running head. Please supply}%
+          \typeout{a shorter form with \string\titlerunning\space prior to
+                   \string\maketitle}%
+          \global\setbox\titrun=\hbox{\small\rm
+          Title Suppressed Due to Excessive Length}%
+       \fi
+       \xdef\@title{\copy\titrun}%
+    \fi
+%
+    \if!\the\tocauthor!\relax
+      {\def\and{\noexpand\protect\noexpand\and}%
+      \protected@xdef\toc@uthor{\@author}}%
+    \else
+      \def\\{\noexpand\protect\noexpand\newline}%
+      \protected@xdef\scratch{\the\tocauthor}%
+      \protected@xdef\toc@uthor{\scratch}%
+    \fi
+    \addtocontents{toc}{\noexpand\protect\noexpand\authcount{\the\c@auco}}%
+    \addcontentsline{toc}{author}{\toc@uthor}%
+    \if@runhead
+       \if!\the\authorrunning!
+         \value{@inst}=\value{@auth}%
+         \setcounter{@auth}{1}%
+       \else
+         \edef\@author{\the\authorrunning}%
+       \fi
+       \global\setbox\authrun=\hbox{\small\unboldmath\@author\unskip}%
+       \ifdim\wd\authrun>\instindent
+          \typeout{Names of authors too long for running head. Please supply}%
+          \typeout{a shorter form with \string\authorrunning\space prior to
+                   \string\maketitle}%
+          \global\setbox\authrun=\hbox{\small\rm
+          Authors Suppressed Due to Excessive Length}%
+       \fi
+       \xdef\@author{\copy\authrun}%
+       \markboth{\@author}{\@title}%
+     \fi
+  \endgroup
+  \setcounter{footnote}{\fnnstart}%
+  \clearheadinfo}
+%
+\def\@maketitle{\newpage
+ \markboth{}{}%
+ \def\lastand{\ifnum\value{@inst}=2\relax
+                 \unskip{} \andname\
+              \else
+                 \unskip \lastandname\
+              \fi}%
+ \def\and{\stepcounter{@auth}\relax
+          \ifnum\value{@auth}=\value{@inst}%
+             \lastand
+          \else
+             \unskip,
+          \fi}%
+ \begin{center}%
+ \let\newline\\
+ {\Large \bfseries\boldmath
+  \pretolerance=10000
+  \@title \par}\vskip .8cm
+\if!\@subtitle!\else {\large \bfseries\boldmath
+  \vskip -.65cm
+  \pretolerance=10000
+  \@subtitle \par}\vskip .8cm\fi
+ \setbox0=\vbox{\setcounter{@auth}{1}\def\and{\stepcounter{@auth}}%
+ \def\thanks##1{}\@author}%
+ \global\value{@inst}=\value{@auth}%
+ \global\value{auco}=\value{@auth}%
+ \setcounter{@auth}{1}%
+{\lineskip .5em
+\noindent\ignorespaces
+\@author\vskip.35cm}
+ {\small\institutename}
+ \end{center}%
+ }
+
+% definition of the "\spnewtheorem" command.
+%
+% Usage:
+%
+%     \spnewtheorem{env_nam}{caption}[within]{cap_font}{body_font}
+% or  \spnewtheorem{env_nam}[numbered_like]{caption}{cap_font}{body_font}
+% or  \spnewtheorem*{env_nam}{caption}{cap_font}{body_font}
+%
+% New is "cap_font" and "body_font". It stands for
+% fontdefinition of the caption and the text itself.
+%
+% "\spnewtheorem*" gives a theorem without number.
+%
+% A defined spnewthoerem environment is used as described
+% by Lamport.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\@thmcountersep{}
+\def\@thmcounterend{.}
+
+\def\spnewtheorem{\@ifstar{\@sthm}{\@Sthm}}
+
+% definition of \spnewtheorem with number
+
+\def\@spnthm#1#2{%
+  \@ifnextchar[{\@spxnthm{#1}{#2}}{\@spynthm{#1}{#2}}}
+\def\@Sthm#1{\@ifnextchar[{\@spothm{#1}}{\@spnthm{#1}}}
+
+\def\@spxnthm#1#2[#3]#4#5{\expandafter\@ifdefinable\csname #1\endcsname
+   {\@definecounter{#1}\@addtoreset{#1}{#3}%
+   \expandafter\xdef\csname the#1\endcsname{\expandafter\noexpand
+     \csname the#3\endcsname \noexpand\@thmcountersep \@thmcounter{#1}}%
+   \expandafter\xdef\csname #1name\endcsname{#2}%
+   \global\@namedef{#1}{\@spthm{#1}{\csname #1name\endcsname}{#4}{#5}}%
+                              \global\@namedef{end#1}{\@endtheorem}}}
+
+\def\@spynthm#1#2#3#4{\expandafter\@ifdefinable\csname #1\endcsname
+   {\@definecounter{#1}%
+   \expandafter\xdef\csname the#1\endcsname{\@thmcounter{#1}}%
+   \expandafter\xdef\csname #1name\endcsname{#2}%
+   \global\@namedef{#1}{\@spthm{#1}{\csname #1name\endcsname}{#3}{#4}}%
+                               \global\@namedef{end#1}{\@endtheorem}}}
+
+\def\@spothm#1[#2]#3#4#5{%
+  \@ifundefined{c@#2}{\@latexerr{No theorem environment `#2' defined}\@eha}%
+  {\expandafter\@ifdefinable\csname #1\endcsname
+  {\newaliascnt{#1}{#2}%
+  \expandafter\xdef\csname #1name\endcsname{#3}%
+  \global\@namedef{#1}{\@spthm{#1}{\csname #1name\endcsname}{#4}{#5}}%
+  \global\@namedef{end#1}{\@endtheorem}}}}
+
+\def\@spthm#1#2#3#4{\topsep 7\p@ \@plus2\p@ \@minus4\p@
+\refstepcounter{#1}%
+\@ifnextchar[{\@spythm{#1}{#2}{#3}{#4}}{\@spxthm{#1}{#2}{#3}{#4}}}
+
+\def\@spxthm#1#2#3#4{\@spbegintheorem{#2}{\csname the#1\endcsname}{#3}{#4}%
+                    \ignorespaces}
+
+\def\@spythm#1#2#3#4[#5]{\@spopargbegintheorem{#2}{\csname
+       the#1\endcsname}{#5}{#3}{#4}\ignorespaces}
+
+\def\@spbegintheorem#1#2#3#4{\trivlist
+                 \item[\hskip\labelsep{#3#1\ #2\@thmcounterend}]#4}
+
+\def\@spopargbegintheorem#1#2#3#4#5{\trivlist
+      \item[\hskip\labelsep{#4#1\ #2}]{#4(#3)\@thmcounterend\ }#5}
+
+% definition of \spnewtheorem* without number
+
+\def\@sthm#1#2{\@Ynthm{#1}{#2}}
+
+\def\@Ynthm#1#2#3#4{\expandafter\@ifdefinable\csname #1\endcsname
+   {\global\@namedef{#1}{\@Thm{\csname #1name\endcsname}{#3}{#4}}%
+    \expandafter\xdef\csname #1name\endcsname{#2}%
+    \global\@namedef{end#1}{\@endtheorem}}}
+
+\def\@Thm#1#2#3{\topsep 7\p@ \@plus2\p@ \@minus4\p@
+\@ifnextchar[{\@Ythm{#1}{#2}{#3}}{\@Xthm{#1}{#2}{#3}}}
+
+\def\@Xthm#1#2#3{\@Begintheorem{#1}{#2}{#3}\ignorespaces}
+
+\def\@Ythm#1#2#3[#4]{\@Opargbegintheorem{#1}
+       {#4}{#2}{#3}\ignorespaces}
+
+\def\@Begintheorem#1#2#3{#3\trivlist
+                           \item[\hskip\labelsep{#2#1\@thmcounterend}]}
+
+\def\@Opargbegintheorem#1#2#3#4{#4\trivlist
+      \item[\hskip\labelsep{#3#1}]{#3(#2)\@thmcounterend\ }}
+
+\if@envcntsect
+   \def\@thmcountersep{.}
+   \spnewtheorem{theorem}{Theorem}[section]{\bfseries}{\itshape}
+\else
+   \spnewtheorem{theorem}{Theorem}{\bfseries}{\itshape}
+   \if@envcntreset
+      \@addtoreset{theorem}{section}
+   \else
+      \@addtoreset{theorem}{chapter}
+   \fi
+\fi
+
+%definition of divers theorem environments
+\spnewtheorem*{claim}{Claim}{\itshape}{\rmfamily}
+\spnewtheorem*{proof}{Proof}{\itshape}{\rmfamily}
+\if@envcntsame % alle Umgebungen wie Theorem.
+   \def\spn@wtheorem#1#2#3#4{\@spothm{#1}[theorem]{#2}{#3}{#4}}
+\else % alle Umgebungen mit eigenem Zaehler
+   \if@envcntsect % mit section numeriert
+      \def\spn@wtheorem#1#2#3#4{\@spxnthm{#1}{#2}[section]{#3}{#4}}
+   \else % nicht mit section numeriert
+      \if@envcntreset
+         \def\spn@wtheorem#1#2#3#4{\@spynthm{#1}{#2}{#3}{#4}
+                                   \@addtoreset{#1}{section}}
+      \else
+         \def\spn@wtheorem#1#2#3#4{\@spynthm{#1}{#2}{#3}{#4}
+                                   \@addtoreset{#1}{chapter}}%
+      \fi
+   \fi
+\fi
+\spn@wtheorem{case}{Case}{\itshape}{\rmfamily}
+\spn@wtheorem{conjecture}{Conjecture}{\itshape}{\rmfamily}
+\spn@wtheorem{corollary}{Corollary}{\bfseries}{\itshape}
+\spn@wtheorem{definition}{Definition}{\bfseries}{\itshape}
+\spn@wtheorem{example}{Example}{\itshape}{\rmfamily}
+\spn@wtheorem{exercise}{Exercise}{\itshape}{\rmfamily}
+\spn@wtheorem{lemma}{Lemma}{\bfseries}{\itshape}
+\spn@wtheorem{note}{Note}{\itshape}{\rmfamily}
+\spn@wtheorem{problem}{Problem}{\itshape}{\rmfamily}
+\spn@wtheorem{property}{Property}{\itshape}{\rmfamily}
+\spn@wtheorem{proposition}{Proposition}{\bfseries}{\itshape}
+\spn@wtheorem{question}{Question}{\itshape}{\rmfamily}
+\spn@wtheorem{solution}{Solution}{\itshape}{\rmfamily}
+\spn@wtheorem{remark}{Remark}{\itshape}{\rmfamily}
+
+\def\@takefromreset#1#2{%
+    \def\@tempa{#1}%
+    \let\@tempd\@elt
+    \def\@elt##1{%
+        \def\@tempb{##1}%
+        \ifx\@tempa\@tempb\else
+            \@addtoreset{##1}{#2}%
+        \fi}%
+    \expandafter\expandafter\let\expandafter\@tempc\csname cl@#2\endcsname
+    \expandafter\def\csname cl@#2\endcsname{}%
+    \@tempc
+    \let\@elt\@tempd}
+
+\def\theopargself{\def\@spopargbegintheorem##1##2##3##4##5{\trivlist
+      \item[\hskip\labelsep{##4##1\ ##2}]{##4##3\@thmcounterend\ }##5}
+                  \def\@Opargbegintheorem##1##2##3##4{##4\trivlist
+      \item[\hskip\labelsep{##3##1}]{##3##2\@thmcounterend\ }}
+      }
+
+\renewenvironment{abstract}{%
+      \list{}{\advance\topsep by0.35cm\relax\small
+      \leftmargin=1cm
+      \labelwidth=\z@
+      \listparindent=\z@
+      \itemindent\listparindent
+      \rightmargin\leftmargin}\item[\hskip\labelsep
+                                    \bfseries\abstractname]}
+    {\endlist}
+
+\newdimen\headlineindent             % dimension for space between
+\headlineindent=1.166cm              % number and text of headings.
+
+\def\ps@headings{\let\@mkboth\@gobbletwo
+   \let\@oddfoot\@empty\let\@evenfoot\@empty
+   \def\@evenhead{\normalfont\small\rlap{\thepage}\hspace{\headlineindent}%
+                  \leftmark\hfil}
+   \def\@oddhead{\normalfont\small\hfil\rightmark\hspace{\headlineindent}%
+                 \llap{\thepage}}
+   \def\chaptermark##1{}%
+   \def\sectionmark##1{}%
+   \def\subsectionmark##1{}}
+
+\def\ps@titlepage{\let\@mkboth\@gobbletwo
+   \let\@oddfoot\@empty\let\@evenfoot\@empty
+   \def\@evenhead{\normalfont\small\rlap{\thepage}\hspace{\headlineindent}%
+                  \hfil}
+   \def\@oddhead{\normalfont\small\hfil\hspace{\headlineindent}%
+                 \llap{\thepage}}
+   \def\chaptermark##1{}%
+   \def\sectionmark##1{}%
+   \def\subsectionmark##1{}}
+
+\if@runhead\ps@headings\else
+\ps@empty\fi
+
+\setlength\arraycolsep{1.4\p@}
+\setlength\tabcolsep{1.4\p@}
+
+\endinput
+%end of file llncs.cls
diff --git a/ocl/docs/publications/ICMT2016CS2AS_DSTL/metamodels/CompaniesCS.aird b/ocl/docs/publications/ICMT2016CS2AS_DSTL/metamodels/CompaniesCS.aird
new file mode 100644
index 0000000..27f79e5
--- /dev/null
+++ b/ocl/docs/publications/ICMT2016CS2AS_DSTL/metamodels/CompaniesCS.aird
@@ -0,0 +1,390 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<viewpoint:DAnalysis xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:diagram="http://www.eclipse.org/sirius/diagram/1.1.0" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:viewpoint="http://www.eclipse.org/sirius/1.1.0" xsi:schemaLocation="http://www.eclipse.org/sirius/description/1.1.0 http://www.eclipse.org/sirius/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/style/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description/style" xmi:id="_9e3-0NWFEeWIZqAU25SM3Q" selectedViews="_9gd6QNWFEeWIZqAU25SM3Q _9glPANWFEeWIZqAU25SM3Q _9gr8sNWFEeWIZqAU25SM3Q _9gxcQNWFEeWIZqAU25SM3Q" version="10.1.0.201509162000">
+  <semanticResources>CompaniesCS.ecore</semanticResources>
+  <semanticResources>http://www.eclipse.org/emf/2002/Ecore</semanticResources>
+  <ownedViews xmi:type="viewpoint:DRepresentationContainer" xmi:id="_9gd6QNWFEeWIZqAU25SM3Q">
+    <ownedRepresentations xmi:type="diagram:DSemanticDiagram" xmi:id="_-UyTINWFEeWIZqAU25SM3Q" name="companies class diagram">
+      <ownedAnnotationEntries xmi:type="description:AnnotationEntry" xmi:id="_-UyTIdWFEeWIZqAU25SM3Q" source="DANNOTATION_CUSTOMIZATION_KEY">
+        <data xmi:type="diagram:ComputedStyleDescriptionRegistry" xmi:id="_-UyTItWFEeWIZqAU25SM3Q">
+          <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_-nCgwNWFEeWIZqAU25SM3Q" sourceArrow="FillDiamond" routingStyle="manhattan">
+            <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+            <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_-nCgwdWFEeWIZqAU25SM3Q" showIcon="false" labelExpression="service:render">
+              <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+            </centerLabelStyleDescription>
+            <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_-nCgwtWFEeWIZqAU25SM3Q" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel">
+              <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/>
+            </endLabelStyleDescription>
+          </computedStyleDescriptions>
+        </data>
+      </ownedAnnotationEntries>
+      <ownedAnnotationEntries xmi:type="description:AnnotationEntry" xmi:id="_-Uy6MNWFEeWIZqAU25SM3Q" source="GMF_DIAGRAMS">
+        <data xmi:type="notation:Diagram" xmi:id="_-Uy6MdWFEeWIZqAU25SM3Q" type="Sirius" element="_-UyTINWFEeWIZqAU25SM3Q" measurementUnit="Pixel">
+          <children xmi:type="notation:Node" xmi:id="_-nM40NWFEeWIZqAU25SM3Q" type="2003" element="_-mwz8NWFEeWIZqAU25SM3Q">
+            <children xmi:type="notation:Node" xmi:id="_-nM409WFEeWIZqAU25SM3Q" type="5007"/>
+            <children xmi:type="notation:Node" xmi:id="_-nM41NWFEeWIZqAU25SM3Q" type="7004">
+              <children xmi:type="notation:Node" xmi:id="_-nOG_tWFEeWIZqAU25SM3Q" type="3010" element="_-m8aINWFEeWIZqAU25SM3Q">
+                <styles xmi:type="notation:FontStyle" xmi:id="_-nOG_9WFEeWIZqAU25SM3Q" fontName="Segoe UI" fontHeight="8"/>
+                <layoutConstraint xmi:type="notation:Location" xmi:id="_-nOHANWFEeWIZqAU25SM3Q"/>
+              </children>
+              <styles xmi:type="notation:SortingStyle" xmi:id="_-nM41dWFEeWIZqAU25SM3Q"/>
+              <styles xmi:type="notation:FilteringStyle" xmi:id="_-nM41tWFEeWIZqAU25SM3Q"/>
+            </children>
+            <styles xmi:type="notation:ShapeStyle" xmi:id="_-nM40dWFEeWIZqAU25SM3Q" fontName="Segoe UI" fontHeight="8"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-nM40tWFEeWIZqAU25SM3Q" x="385" y="80"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_-nM419WFEeWIZqAU25SM3Q" type="2003" element="_-myCENWFEeWIZqAU25SM3Q">
+            <children xmi:type="notation:Node" xmi:id="_-nNf4NWFEeWIZqAU25SM3Q" type="5007"/>
+            <children xmi:type="notation:Node" xmi:id="_-nNf4dWFEeWIZqAU25SM3Q" type="7004">
+              <children xmi:type="notation:Node" xmi:id="_-nOuANWFEeWIZqAU25SM3Q" type="3010" element="_-m9BMNWFEeWIZqAU25SM3Q">
+                <styles xmi:type="notation:FontStyle" xmi:id="_-nOuAdWFEeWIZqAU25SM3Q" fontName="Segoe UI" fontHeight="8"/>
+                <layoutConstraint xmi:type="notation:Location" xmi:id="_-nOuAtWFEeWIZqAU25SM3Q"/>
+              </children>
+              <styles xmi:type="notation:SortingStyle" xmi:id="_-nNf4tWFEeWIZqAU25SM3Q"/>
+              <styles xmi:type="notation:FilteringStyle" xmi:id="_-nNf49WFEeWIZqAU25SM3Q"/>
+            </children>
+            <styles xmi:type="notation:ShapeStyle" xmi:id="_-nM42NWFEeWIZqAU25SM3Q" fontName="Segoe UI" fontHeight="8"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-nM42dWFEeWIZqAU25SM3Q" x="385" y="205"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_-nNf5NWFEeWIZqAU25SM3Q" type="2003" element="_-mypIdWFEeWIZqAU25SM3Q">
+            <children xmi:type="notation:Node" xmi:id="_-nNf59WFEeWIZqAU25SM3Q" type="5007"/>
+            <children xmi:type="notation:Node" xmi:id="_-nNf6NWFEeWIZqAU25SM3Q" type="7004">
+              <styles xmi:type="notation:SortingStyle" xmi:id="_-nNf6dWFEeWIZqAU25SM3Q"/>
+              <styles xmi:type="notation:FilteringStyle" xmi:id="_-nNf6tWFEeWIZqAU25SM3Q"/>
+            </children>
+            <styles xmi:type="notation:ShapeStyle" xmi:id="_-nNf5dWFEeWIZqAU25SM3Q" fontName="Segoe UI" fontHeight="8"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-nNf5tWFEeWIZqAU25SM3Q" x="465" y="340"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_-nNf69WFEeWIZqAU25SM3Q" type="2003" element="_-mz3QNWFEeWIZqAU25SM3Q">
+            <children xmi:type="notation:Node" xmi:id="_-nNf7tWFEeWIZqAU25SM3Q" type="5007"/>
+            <children xmi:type="notation:Node" xmi:id="_-nNf79WFEeWIZqAU25SM3Q" type="7004">
+              <styles xmi:type="notation:SortingStyle" xmi:id="_-nNf8NWFEeWIZqAU25SM3Q"/>
+              <styles xmi:type="notation:FilteringStyle" xmi:id="_-nNf8dWFEeWIZqAU25SM3Q"/>
+            </children>
+            <styles xmi:type="notation:ShapeStyle" xmi:id="_-nNf7NWFEeWIZqAU25SM3Q" fontName="Segoe UI" fontHeight="8"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-nNf7dWFEeWIZqAU25SM3Q" x="305" y="340"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_-nOG8NWFEeWIZqAU25SM3Q" type="2003" element="_-m1FYNWFEeWIZqAU25SM3Q">
+            <children xmi:type="notation:Node" xmi:id="_-nOG89WFEeWIZqAU25SM3Q" type="5007"/>
+            <children xmi:type="notation:Node" xmi:id="_-nOG9NWFEeWIZqAU25SM3Q" type="7004">
+              <children xmi:type="notation:Node" xmi:id="_-nOuA9WFEeWIZqAU25SM3Q" type="3010" element="_-m9oQNWFEeWIZqAU25SM3Q">
+                <styles xmi:type="notation:FontStyle" xmi:id="_-nOuBNWFEeWIZqAU25SM3Q" fontName="Segoe UI" fontHeight="8"/>
+                <layoutConstraint xmi:type="notation:Location" xmi:id="_-nOuBdWFEeWIZqAU25SM3Q"/>
+              </children>
+              <children xmi:type="notation:Node" xmi:id="_-nOuBtWFEeWIZqAU25SM3Q" type="3010" element="_-m-2YNWFEeWIZqAU25SM3Q">
+                <styles xmi:type="notation:FontStyle" xmi:id="_-nOuB9WFEeWIZqAU25SM3Q" fontName="Segoe UI" fontHeight="8"/>
+                <layoutConstraint xmi:type="notation:Location" xmi:id="_-nOuCNWFEeWIZqAU25SM3Q"/>
+              </children>
+              <children xmi:type="notation:Node" xmi:id="_-nPVENWFEeWIZqAU25SM3Q" type="3010" element="_-m-2YtWFEeWIZqAU25SM3Q">
+                <styles xmi:type="notation:FontStyle" xmi:id="_-nPVEdWFEeWIZqAU25SM3Q" fontName="Segoe UI" fontHeight="8"/>
+                <layoutConstraint xmi:type="notation:Location" xmi:id="_-nPVEtWFEeWIZqAU25SM3Q"/>
+              </children>
+              <children xmi:type="notation:Node" xmi:id="_-nPVE9WFEeWIZqAU25SM3Q" type="3010" element="_-m_dcdWFEeWIZqAU25SM3Q">
+                <styles xmi:type="notation:FontStyle" xmi:id="_-nPVFNWFEeWIZqAU25SM3Q" fontName="Segoe UI" fontHeight="8"/>
+                <layoutConstraint xmi:type="notation:Location" xmi:id="_-nPVFdWFEeWIZqAU25SM3Q"/>
+              </children>
+              <styles xmi:type="notation:SortingStyle" xmi:id="_-nOG9dWFEeWIZqAU25SM3Q"/>
+              <styles xmi:type="notation:FilteringStyle" xmi:id="_-nOG9tWFEeWIZqAU25SM3Q"/>
+            </children>
+            <styles xmi:type="notation:ShapeStyle" xmi:id="_-nOG8dWFEeWIZqAU25SM3Q" fontName="Segoe UI" fontHeight="8"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-nOG8tWFEeWIZqAU25SM3Q" x="385" y="460"/>
+          </children>
+          <styles xmi:type="notation:DiagramStyle" xmi:id="_-Uy6MtWFEeWIZqAU25SM3Q"/>
+          <edges xmi:type="notation:Edge" xmi:id="_-nP8INWFEeWIZqAU25SM3Q" type="4001" element="_-nB5sNWFEeWIZqAU25SM3Q" source="_-nM40NWFEeWIZqAU25SM3Q" target="_-nM419WFEeWIZqAU25SM3Q">
+            <children xmi:type="notation:Node" xmi:id="_-nP8JNWFEeWIZqAU25SM3Q" type="6001">
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-nP8JdWFEeWIZqAU25SM3Q" x="-1" y="-57"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_-nP8JtWFEeWIZqAU25SM3Q" type="6002">
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-nP8J9WFEeWIZqAU25SM3Q" x="5"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_-nP8KNWFEeWIZqAU25SM3Q" type="6003">
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-nP8KdWFEeWIZqAU25SM3Q" x="5"/>
+            </children>
+            <styles xmi:type="notation:ConnectorStyle" xmi:id="_-nP8IdWFEeWIZqAU25SM3Q" routing="Rectilinear"/>
+            <styles xmi:type="notation:FontStyle" xmi:id="_-nP8ItWFEeWIZqAU25SM3Q" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+            <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-nP8I9WFEeWIZqAU25SM3Q" points="[0, 98, 0, -125]$[0, 125, 0, -98]"/>
+            <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-nP8KtWFEeWIZqAU25SM3Q" id="(0.5,0.0)"/>
+            <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-nP8K9WFEeWIZqAU25SM3Q" id="(0.5,1.0)"/>
+          </edges>
+          <edges xmi:type="notation:Edge" xmi:id="_-nP8LNWFEeWIZqAU25SM3Q" type="4001" element="_-nDH0NWFEeWIZqAU25SM3Q" source="_-nM419WFEeWIZqAU25SM3Q" target="_-nNf5NWFEeWIZqAU25SM3Q">
+            <children xmi:type="notation:Node" xmi:id="_-nP8MNWFEeWIZqAU25SM3Q" type="6001">
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-nP8MdWFEeWIZqAU25SM3Q" x="4" y="-78"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_-nQjMNWFEeWIZqAU25SM3Q" type="6002">
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-nQjMdWFEeWIZqAU25SM3Q" x="-4" y="-9"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_-nQjMtWFEeWIZqAU25SM3Q" type="6003">
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-nQjM9WFEeWIZqAU25SM3Q" x="4"/>
+            </children>
+            <styles xmi:type="notation:ConnectorStyle" xmi:id="_-nP8LdWFEeWIZqAU25SM3Q" routing="Rectilinear"/>
+            <styles xmi:type="notation:FontStyle" xmi:id="_-nP8LtWFEeWIZqAU25SM3Q" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+            <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-nP8L9WFEeWIZqAU25SM3Q" points="[36, 49, -50, -86]$[36, 86, -50, -49]"/>
+            <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-nQjNNWFEeWIZqAU25SM3Q" id="(0.5,0.5)"/>
+            <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-nQjNdWFEeWIZqAU25SM3Q" id="(0.5,0.5)"/>
+          </edges>
+          <edges xmi:type="notation:Edge" xmi:id="_-nQjNtWFEeWIZqAU25SM3Q" type="4001" element="_-nDu4NWFEeWIZqAU25SM3Q" source="_-nM419WFEeWIZqAU25SM3Q" target="_-nNf69WFEeWIZqAU25SM3Q">
+            <children xmi:type="notation:Node" xmi:id="_-nQjOtWFEeWIZqAU25SM3Q" type="6001">
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-nQjO9WFEeWIZqAU25SM3Q" x="4" y="81"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_-nQjPNWFEeWIZqAU25SM3Q" type="6002">
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-nQjPdWFEeWIZqAU25SM3Q" x="18"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_-nQjPtWFEeWIZqAU25SM3Q" type="6003">
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-nQjP9WFEeWIZqAU25SM3Q" x="-1"/>
+            </children>
+            <styles xmi:type="notation:ConnectorStyle" xmi:id="_-nQjN9WFEeWIZqAU25SM3Q" routing="Rectilinear"/>
+            <styles xmi:type="notation:FontStyle" xmi:id="_-nQjONWFEeWIZqAU25SM3Q" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+            <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-nQjOdWFEeWIZqAU25SM3Q" points="[-30, 49, 39, -86]$[-30, 86, 39, -49]"/>
+            <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-nQjQNWFEeWIZqAU25SM3Q" id="(0.5,0.5)"/>
+            <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-nQjQdWFEeWIZqAU25SM3Q" id="(0.5,0.5)"/>
+          </edges>
+          <edges xmi:type="notation:Edge" xmi:id="_-nQjQtWFEeWIZqAU25SM3Q" type="4001" element="_-nEV8NWFEeWIZqAU25SM3Q" source="_-nM419WFEeWIZqAU25SM3Q" target="_-nM419WFEeWIZqAU25SM3Q">
+            <children xmi:type="notation:Node" xmi:id="_-nRKQNWFEeWIZqAU25SM3Q" type="6001">
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-nRKQdWFEeWIZqAU25SM3Q" x="35" y="29"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_-nRKQtWFEeWIZqAU25SM3Q" type="6002">
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-nRKQ9WFEeWIZqAU25SM3Q" x="15" y="10"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_-nRKRNWFEeWIZqAU25SM3Q" type="6003">
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-nRKRdWFEeWIZqAU25SM3Q" x="1" y="-10"/>
+            </children>
+            <styles xmi:type="notation:ConnectorStyle" xmi:id="_-nQjQ9WFEeWIZqAU25SM3Q" routing="Rectilinear"/>
+            <styles xmi:type="notation:FontStyle" xmi:id="_-nQjRNWFEeWIZqAU25SM3Q" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+            <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-nQjRdWFEeWIZqAU25SM3Q" points="[59, -19, 59, -19]$[136, -19, 136, -19]$[136, 26, 136, 26]$[59, 26, 59, 26]"/>
+            <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-nRKRtWFEeWIZqAU25SM3Q" id="(0.5,0.5)"/>
+            <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-nRKR9WFEeWIZqAU25SM3Q" id="(0.5,0.5)"/>
+          </edges>
+          <edges xmi:type="notation:Edge" xmi:id="_-nRKSNWFEeWIZqAU25SM3Q" type="4001" element="_-nE9A9WFEeWIZqAU25SM3Q" source="_-nNf5NWFEeWIZqAU25SM3Q" target="_-nOG8NWFEeWIZqAU25SM3Q">
+            <children xmi:type="notation:Node" xmi:id="_-nRKTNWFEeWIZqAU25SM3Q" type="6001">
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-nRKTdWFEeWIZqAU25SM3Q" x="28" y="-13"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_-nRKTtWFEeWIZqAU25SM3Q" type="6002">
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-nRKT9WFEeWIZqAU25SM3Q" x="17"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_-nRKUNWFEeWIZqAU25SM3Q" type="6003">
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-nRKUdWFEeWIZqAU25SM3Q" x="-16" y="2"/>
+            </children>
+            <styles xmi:type="notation:ConnectorStyle" xmi:id="_-nRKSdWFEeWIZqAU25SM3Q" routing="Rectilinear"/>
+            <styles xmi:type="notation:FontStyle" xmi:id="_-nRKStWFEeWIZqAU25SM3Q" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+            <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-nRKS9WFEeWIZqAU25SM3Q" points="[25, 49, 100, -71]$[25, 111, 100, -9]$[-5, 111, 70, -9]"/>
+            <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-nRxUNWFEeWIZqAU25SM3Q" id="(0.5,0.5)"/>
+            <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-nRxUdWFEeWIZqAU25SM3Q" id="(0.5,0.5)"/>
+          </edges>
+          <edges xmi:type="notation:Edge" xmi:id="_-nRxUtWFEeWIZqAU25SM3Q" type="4001" element="_-nFkE9WFEeWIZqAU25SM3Q" source="_-nNf69WFEeWIZqAU25SM3Q" target="_-nOG8NWFEeWIZqAU25SM3Q">
+            <children xmi:type="notation:Node" xmi:id="_-nRxVtWFEeWIZqAU25SM3Q" type="6001">
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-nRxV9WFEeWIZqAU25SM3Q" x="26" y="12"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_-nRxWNWFEeWIZqAU25SM3Q" type="6002">
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-nRxWdWFEeWIZqAU25SM3Q" x="29"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_-nRxWtWFEeWIZqAU25SM3Q" type="6003">
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-nRxW9WFEeWIZqAU25SM3Q" x="-17" y="-8"/>
+            </children>
+            <styles xmi:type="notation:ConnectorStyle" xmi:id="_-nRxU9WFEeWIZqAU25SM3Q" routing="Rectilinear"/>
+            <styles xmi:type="notation:FontStyle" xmi:id="_-nRxVNWFEeWIZqAU25SM3Q" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+            <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-nRxVdWFEeWIZqAU25SM3Q" points="[2, 3, -101, -120]$[2, 65, -101, -58]$[33, 65, -70, -58]"/>
+            <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-nRxXNWFEeWIZqAU25SM3Q" id="(0.3380281690140845,0.97)"/>
+            <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-nRxXdWFEeWIZqAU25SM3Q" id="(0.5,1.0)"/>
+          </edges>
+        </data>
+      </ownedAnnotationEntries>
+      <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_-mwz8NWFEeWIZqAU25SM3Q" name="company" tooltipText="" outgoingEdges="_-nB5sNWFEeWIZqAU25SM3Q" width="12" height="10">
+        <target xmi:type="ecore:EClass" href="CompaniesCS.ecore#//company"/>
+        <semanticElements xmi:type="ecore:EClass" href="CompaniesCS.ecore#//company"/>
+        <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+        <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+        <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+        <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_-mxbANWFEeWIZqAU25SM3Q" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+          <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+        <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_-m8aINWFEeWIZqAU25SM3Q" name="name : EString" tooltipText="">
+          <target xmi:type="ecore:EAttribute" href="CompaniesCS.ecore#//company/name"/>
+          <semanticElements xmi:type="ecore:EAttribute" href="CompaniesCS.ecore#//company/name"/>
+          <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_-m8aIdWFEeWIZqAU25SM3Q" labelAlignment="LEFT">
+            <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+          </ownedStyle>
+          <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+        </ownedElements>
+      </ownedDiagramElements>
+      <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_-myCENWFEeWIZqAU25SM3Q" name="department" tooltipText="" outgoingEdges="_-nDH0NWFEeWIZqAU25SM3Q _-nDu4NWFEeWIZqAU25SM3Q _-nEV8NWFEeWIZqAU25SM3Q" incomingEdges="_-nB5sNWFEeWIZqAU25SM3Q _-nEV8NWFEeWIZqAU25SM3Q" width="12" height="10">
+        <target xmi:type="ecore:EClass" href="CompaniesCS.ecore#//department"/>
+        <semanticElements xmi:type="ecore:EClass" href="CompaniesCS.ecore#//department"/>
+        <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+        <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+        <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+        <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_-mypINWFEeWIZqAU25SM3Q" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+          <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+        <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_-m9BMNWFEeWIZqAU25SM3Q" name="name : EString" tooltipText="">
+          <target xmi:type="ecore:EAttribute" href="CompaniesCS.ecore#//department/name"/>
+          <semanticElements xmi:type="ecore:EAttribute" href="CompaniesCS.ecore#//department/name"/>
+          <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_-m9BMdWFEeWIZqAU25SM3Q" labelAlignment="LEFT">
+            <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+          </ownedStyle>
+          <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+        </ownedElements>
+      </ownedDiagramElements>
+      <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_-mypIdWFEeWIZqAU25SM3Q" name="department_manager" tooltipText="" outgoingEdges="_-nE9A9WFEeWIZqAU25SM3Q" incomingEdges="_-nDH0NWFEeWIZqAU25SM3Q" width="12" height="10">
+        <target xmi:type="ecore:EClass" href="CompaniesCS.ecore#//department_manager"/>
+        <semanticElements xmi:type="ecore:EClass" href="CompaniesCS.ecore#//department_manager"/>
+        <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+        <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+        <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+        <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_-mzQMNWFEeWIZqAU25SM3Q" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+          <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      </ownedDiagramElements>
+      <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_-mz3QNWFEeWIZqAU25SM3Q" name="department_employees" tooltipText="" outgoingEdges="_-nFkE9WFEeWIZqAU25SM3Q" incomingEdges="_-nDu4NWFEeWIZqAU25SM3Q" width="12" height="10">
+        <target xmi:type="ecore:EClass" href="CompaniesCS.ecore#//department_employees"/>
+        <semanticElements xmi:type="ecore:EClass" href="CompaniesCS.ecore#//department_employees"/>
+        <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+        <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+        <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+        <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_-m0eUNWFEeWIZqAU25SM3Q" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+          <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+      </ownedDiagramElements>
+      <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_-m1FYNWFEeWIZqAU25SM3Q" name="employee" tooltipText="" incomingEdges="_-nE9A9WFEeWIZqAU25SM3Q _-nFkE9WFEeWIZqAU25SM3Q" width="12" height="10">
+        <target xmi:type="ecore:EClass" href="CompaniesCS.ecore#//employee"/>
+        <semanticElements xmi:type="ecore:EClass" href="CompaniesCS.ecore#//employee"/>
+        <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+        <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+        <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+        <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_-m1scNWFEeWIZqAU25SM3Q" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+          <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+        <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_-m9oQNWFEeWIZqAU25SM3Q" name="name : EString" tooltipText="">
+          <target xmi:type="ecore:EAttribute" href="CompaniesCS.ecore#//employee/name"/>
+          <semanticElements xmi:type="ecore:EAttribute" href="CompaniesCS.ecore#//employee/name"/>
+          <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_-m-PUNWFEeWIZqAU25SM3Q" labelAlignment="LEFT">
+            <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+          </ownedStyle>
+          <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+        </ownedElements>
+        <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_-m-2YNWFEeWIZqAU25SM3Q" name="address : EString" tooltipText="">
+          <target xmi:type="ecore:EAttribute" href="CompaniesCS.ecore#//employee/address"/>
+          <semanticElements xmi:type="ecore:EAttribute" href="CompaniesCS.ecore#//employee/address"/>
+          <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_-m-2YdWFEeWIZqAU25SM3Q" labelAlignment="LEFT">
+            <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+          </ownedStyle>
+          <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+        </ownedElements>
+        <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_-m-2YtWFEeWIZqAU25SM3Q" name="salary : EDouble = 0.0" tooltipText="">
+          <target xmi:type="ecore:EAttribute" href="CompaniesCS.ecore#//employee/salary"/>
+          <semanticElements xmi:type="ecore:EAttribute" href="CompaniesCS.ecore#//employee/salary"/>
+          <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_-m_dcNWFEeWIZqAU25SM3Q" labelAlignment="LEFT">
+            <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+          </ownedStyle>
+          <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+        </ownedElements>
+        <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_-m_dcdWFEeWIZqAU25SM3Q" name="mentor : EString" tooltipText="">
+          <target xmi:type="ecore:EAttribute" href="CompaniesCS.ecore#//employee/mentor"/>
+          <semanticElements xmi:type="ecore:EAttribute" href="CompaniesCS.ecore#//employee/mentor"/>
+          <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_-m_dctWFEeWIZqAU25SM3Q" labelAlignment="LEFT">
+            <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+          </ownedStyle>
+          <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+        </ownedElements>
+      </ownedDiagramElements>
+      <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_-nB5sNWFEeWIZqAU25SM3Q" name="[0..*] deparment" sourceNode="_-mwz8NWFEeWIZqAU25SM3Q" targetNode="_-myCENWFEeWIZqAU25SM3Q">
+        <target xmi:type="ecore:EReference" href="CompaniesCS.ecore#//company/deparment"/>
+        <semanticElements xmi:type="ecore:EReference" href="CompaniesCS.ecore#//company/deparment"/>
+        <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_-nCgw9WFEeWIZqAU25SM3Q" description="_-nCgwNWFEeWIZqAU25SM3Q" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+          <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_-nCgxNWFEeWIZqAU25SM3Q" showIcon="false">
+            <customFeatures>labelSize</customFeatures>
+          </centerLabelStyle>
+          <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_-nCgxdWFEeWIZqAU25SM3Q" showIcon="false" labelColor="39,76,114">
+            <customFeatures>labelSize</customFeatures>
+          </endLabelStyle>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+      </ownedDiagramElements>
+      <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_-nDH0NWFEeWIZqAU25SM3Q" name="[0..1] department_manager" sourceNode="_-myCENWFEeWIZqAU25SM3Q" targetNode="_-mypIdWFEeWIZqAU25SM3Q">
+        <target xmi:type="ecore:EReference" href="CompaniesCS.ecore#//department/department_manager"/>
+        <semanticElements xmi:type="ecore:EReference" href="CompaniesCS.ecore#//department/department_manager"/>
+        <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_-nDH0dWFEeWIZqAU25SM3Q" description="_-nCgwNWFEeWIZqAU25SM3Q" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+          <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_-nDH0tWFEeWIZqAU25SM3Q" showIcon="false">
+            <customFeatures>labelSize</customFeatures>
+          </centerLabelStyle>
+          <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_-nDH09WFEeWIZqAU25SM3Q" showIcon="false" labelColor="39,76,114">
+            <customFeatures>labelSize</customFeatures>
+          </endLabelStyle>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+      </ownedDiagramElements>
+      <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_-nDu4NWFEeWIZqAU25SM3Q" name="[0..1] department_employees" sourceNode="_-myCENWFEeWIZqAU25SM3Q" targetNode="_-mz3QNWFEeWIZqAU25SM3Q">
+        <target xmi:type="ecore:EReference" href="CompaniesCS.ecore#//department/department_employees"/>
+        <semanticElements xmi:type="ecore:EReference" href="CompaniesCS.ecore#//department/department_employees"/>
+        <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_-nDu4dWFEeWIZqAU25SM3Q" description="_-nCgwNWFEeWIZqAU25SM3Q" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+          <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_-nDu4tWFEeWIZqAU25SM3Q" showIcon="false">
+            <customFeatures>labelSize</customFeatures>
+          </centerLabelStyle>
+          <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_-nDu49WFEeWIZqAU25SM3Q" showIcon="false" labelColor="39,76,114">
+            <customFeatures>labelSize</customFeatures>
+          </endLabelStyle>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+      </ownedDiagramElements>
+      <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_-nEV8NWFEeWIZqAU25SM3Q" name="[0..*] deparment" sourceNode="_-myCENWFEeWIZqAU25SM3Q" targetNode="_-myCENWFEeWIZqAU25SM3Q">
+        <target xmi:type="ecore:EReference" href="CompaniesCS.ecore#//department/deparment"/>
+        <semanticElements xmi:type="ecore:EReference" href="CompaniesCS.ecore#//department/deparment"/>
+        <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_-nE9ANWFEeWIZqAU25SM3Q" description="_-nCgwNWFEeWIZqAU25SM3Q" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+          <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_-nE9AdWFEeWIZqAU25SM3Q" showIcon="false">
+            <customFeatures>labelSize</customFeatures>
+          </centerLabelStyle>
+          <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_-nE9AtWFEeWIZqAU25SM3Q" showIcon="false" labelColor="39,76,114">
+            <customFeatures>labelSize</customFeatures>
+          </endLabelStyle>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+      </ownedDiagramElements>
+      <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_-nE9A9WFEeWIZqAU25SM3Q" name="[0..1] employee" sourceNode="_-mypIdWFEeWIZqAU25SM3Q" targetNode="_-m1FYNWFEeWIZqAU25SM3Q">
+        <target xmi:type="ecore:EReference" href="CompaniesCS.ecore#//department_manager/employee"/>
+        <semanticElements xmi:type="ecore:EReference" href="CompaniesCS.ecore#//department_manager/employee"/>
+        <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_-nFkENWFEeWIZqAU25SM3Q" description="_-nCgwNWFEeWIZqAU25SM3Q" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+          <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_-nFkEdWFEeWIZqAU25SM3Q" showIcon="false">
+            <customFeatures>labelSize</customFeatures>
+          </centerLabelStyle>
+          <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_-nFkEtWFEeWIZqAU25SM3Q" showIcon="false" labelColor="39,76,114">
+            <customFeatures>labelSize</customFeatures>
+          </endLabelStyle>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+      </ownedDiagramElements>
+      <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_-nFkE9WFEeWIZqAU25SM3Q" name="[0..*] employee" sourceNode="_-mz3QNWFEeWIZqAU25SM3Q" targetNode="_-m1FYNWFEeWIZqAU25SM3Q">
+        <target xmi:type="ecore:EReference" href="CompaniesCS.ecore#//department_employees/employee"/>
+        <semanticElements xmi:type="ecore:EReference" href="CompaniesCS.ecore#//department_employees/employee"/>
+        <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_-nGLINWFEeWIZqAU25SM3Q" description="_-nCgwNWFEeWIZqAU25SM3Q" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+          <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_-nGLIdWFEeWIZqAU25SM3Q" showIcon="false">
+            <customFeatures>labelSize</customFeatures>
+          </centerLabelStyle>
+          <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_-nGLItWFEeWIZqAU25SM3Q" showIcon="false" labelColor="39,76,114">
+            <customFeatures>labelSize</customFeatures>
+          </endLabelStyle>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+      </ownedDiagramElements>
+      <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
+      <filterVariableHistory xmi:type="diagram:FilterVariableHistory" xmi:id="_-UyTJdWFEeWIZqAU25SM3Q"/>
+      <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/>
+      <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Package']"/>
+      <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Validation']"/>
+      <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Archetype']/@ownedRepresentationExtensions[name='Entities%20With%20Archetypes']/@layers[name='Archetypes']"/>
+      <target xmi:type="ecore:EPackage" href="CompaniesCS.ecore#/"/>
+    </ownedRepresentations>
+    <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/>
+  </ownedViews>
+  <ownedViews xmi:type="viewpoint:DRepresentationContainer" xmi:id="_9glPANWFEeWIZqAU25SM3Q">
+    <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Review']"/>
+  </ownedViews>
+  <ownedViews xmi:type="viewpoint:DRepresentationContainer" xmi:id="_9gr8sNWFEeWIZqAU25SM3Q">
+    <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Archetype']"/>
+  </ownedViews>
+  <ownedViews xmi:type="viewpoint:DRepresentationContainer" xmi:id="_9gxcQNWFEeWIZqAU25SM3Q">
+    <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Generation']"/>
+  </ownedViews>
+</viewpoint:DAnalysis>
diff --git a/ocl/docs/publications/ICMT2016CS2AS_DSTL/metamodels/CompaniesCS.ecore b/ocl/docs/publications/ICMT2016CS2AS_DSTL/metamodels/CompaniesCS.ecore
new file mode 100644
index 0000000..20dca3c
--- /dev/null
+++ b/ocl/docs/publications/ICMT2016CS2AS_DSTL/metamodels/CompaniesCS.ecore
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="companies" nsURI="http://www.xtext.org/example/mydsl/Companies"
+    nsPrefix="companies">
+  <eClassifiers xsi:type="ecore:EClass" name="company">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="deparment" upperBound="-1"
+        eType="#//department" containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="department">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="department_manager" eType="#//department_manager"
+        containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="department_employees" eType="#//department_employees"
+        containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="deparment" upperBound="-1"
+        eType="#//department" containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="department_manager">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="employee" eType="#//employee"
+        containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="department_employees">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="employee" upperBound="-1"
+        eType="#//employee" containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="employee">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="address" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="salary" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="mentor" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+</ecore:EPackage>
diff --git a/ocl/docs/publications/ICMT2016CS2AS_DSTL/metamodels/Company.aird b/ocl/docs/publications/ICMT2016CS2AS_DSTL/metamodels/Company.aird
new file mode 100644
index 0000000..e5d4caa
--- /dev/null
+++ b/ocl/docs/publications/ICMT2016CS2AS_DSTL/metamodels/Company.aird
@@ -0,0 +1,326 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<viewpoint:DAnalysis xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:diagram="http://www.eclipse.org/sirius/diagram/1.1.0" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:viewpoint="http://www.eclipse.org/sirius/1.1.0" xsi:schemaLocation="http://www.eclipse.org/sirius/description/1.1.0 http://www.eclipse.org/sirius/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/style/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description/style" xmi:id="_pCKU8NWDEeWIZqAU25SM3Q" selectedViews="_pE6uANWDEeWIZqAU25SM3Q _pFBbsNWDEeWIZqAU25SM3Q _pFJXgNWDEeWIZqAU25SM3Q _pFNo8NWDEeWIZqAU25SM3Q" version="10.1.0.201509162000">
+  <semanticResources>Company.ecore</semanticResources>
+  <semanticResources>http://www.eclipse.org/emf/2002/Ecore</semanticResources>
+  <ownedViews xmi:type="viewpoint:DRepresentationContainer" xmi:id="_pE6uANWDEeWIZqAU25SM3Q">
+    <ownedRepresentations xmi:type="diagram:DSemanticDiagram" xmi:id="_qEIIQNWDEeWIZqAU25SM3Q" name="company class diagram">
+      <ownedAnnotationEntries xmi:type="description:AnnotationEntry" xmi:id="_qEIIQdWDEeWIZqAU25SM3Q" source="DANNOTATION_CUSTOMIZATION_KEY">
+        <data xmi:type="diagram:ComputedStyleDescriptionRegistry" xmi:id="_qEIIQtWDEeWIZqAU25SM3Q">
+          <computedStyleDescriptions xmi:type="style:BundledImageDescription" xmi:id="_rY1RYNWDEeWIZqAU25SM3Q" labelExpression="service:render" labelAlignment="LEFT" tooltipExpression="service:renderTooltip" sizeComputationExpression="1">
+            <borderColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+            <labelFormat>bold</labelFormat>
+            <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+            <color xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+          </computedStyleDescriptions>
+          <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_rY47wNWDEeWIZqAU25SM3Q" sourceArrow="FillDiamond" routingStyle="manhattan">
+            <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+            <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_rY47wdWDEeWIZqAU25SM3Q" showIcon="false" labelExpression="service:render">
+              <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+            </centerLabelStyleDescription>
+            <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_rY47wtWDEeWIZqAU25SM3Q" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel">
+              <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/>
+            </endLabelStyleDescription>
+          </computedStyleDescriptions>
+          <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_rY5i0NWDEeWIZqAU25SM3Q" sourceArrow="FillDiamond" routingStyle="manhattan">
+            <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+            <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_rY5i0dWDEeWIZqAU25SM3Q" showIcon="false" labelExpression="service:render">
+              <labelFormat>bold</labelFormat>
+              <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+            </centerLabelStyleDescription>
+            <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_rY5i0tWDEeWIZqAU25SM3Q" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel">
+              <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/>
+            </endLabelStyleDescription>
+          </computedStyleDescriptions>
+        </data>
+      </ownedAnnotationEntries>
+      <ownedAnnotationEntries xmi:type="description:AnnotationEntry" xmi:id="_qEPdANWDEeWIZqAU25SM3Q" source="GMF_DIAGRAMS">
+        <data xmi:type="notation:Diagram" xmi:id="_qEPdAdWDEeWIZqAU25SM3Q" type="Sirius" element="_qEIIQNWDEeWIZqAU25SM3Q" measurementUnit="Pixel">
+          <children xmi:type="notation:Node" xmi:id="_rY90QNWDEeWIZqAU25SM3Q" type="2003" element="_rYrgYNWDEeWIZqAU25SM3Q">
+            <children xmi:type="notation:Node" xmi:id="_rZEh8NWDEeWIZqAU25SM3Q" type="5007"/>
+            <children xmi:type="notation:Node" xmi:id="_rZJacNWDEeWIZqAU25SM3Q" type="7004">
+              <children xmi:type="notation:Node" xmi:id="_rZLPoNWDEeWIZqAU25SM3Q" type="3010" element="_rY0qUNWDEeWIZqAU25SM3Q">
+                <styles xmi:type="notation:FontStyle" xmi:id="_rZLPodWDEeWIZqAU25SM3Q" fontName="Segoe UI" fontHeight="8" bold="true"/>
+                <layoutConstraint xmi:type="notation:Location" xmi:id="_rZLPotWDEeWIZqAU25SM3Q"/>
+              </children>
+              <styles xmi:type="notation:SortingStyle" xmi:id="_rZJacdWDEeWIZqAU25SM3Q"/>
+              <styles xmi:type="notation:FilteringStyle" xmi:id="_rZJactWDEeWIZqAU25SM3Q"/>
+            </children>
+            <styles xmi:type="notation:ShapeStyle" xmi:id="_rY90QdWDEeWIZqAU25SM3Q" fontName="Segoe UI" fontHeight="8"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rY90QtWDEeWIZqAU25SM3Q" x="370" y="50"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_rZKBgNWDEeWIZqAU25SM3Q" type="2003" element="_rYt8oNWDEeWIZqAU25SM3Q">
+            <children xmi:type="notation:Node" xmi:id="_rZKBg9WDEeWIZqAU25SM3Q" type="5007"/>
+            <children xmi:type="notation:Node" xmi:id="_rZKBhNWDEeWIZqAU25SM3Q" type="7004">
+              <children xmi:type="notation:Node" xmi:id="_rZLPo9WDEeWIZqAU25SM3Q" type="3010" element="_rY14cNWDEeWIZqAU25SM3Q">
+                <styles xmi:type="notation:FontStyle" xmi:id="_rZLPpNWDEeWIZqAU25SM3Q" fontName="Segoe UI" fontHeight="8" bold="true"/>
+                <layoutConstraint xmi:type="notation:Location" xmi:id="_rZLPpdWDEeWIZqAU25SM3Q"/>
+              </children>
+              <styles xmi:type="notation:SortingStyle" xmi:id="_rZKBhdWDEeWIZqAU25SM3Q"/>
+              <styles xmi:type="notation:FilteringStyle" xmi:id="_rZKBhtWDEeWIZqAU25SM3Q"/>
+            </children>
+            <styles xmi:type="notation:ShapeStyle" xmi:id="_rZKBgdWDEeWIZqAU25SM3Q" fontName="Segoe UI" fontHeight="8"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rZKBgtWDEeWIZqAU25SM3Q" x="370" y="195"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_rZKBh9WDEeWIZqAU25SM3Q" type="2003" element="_rYvKwNWDEeWIZqAU25SM3Q">
+            <children xmi:type="notation:Node" xmi:id="_rZKokNWDEeWIZqAU25SM3Q" type="5007"/>
+            <children xmi:type="notation:Node" xmi:id="_rZKokdWDEeWIZqAU25SM3Q" type="7004">
+              <children xmi:type="notation:Node" xmi:id="_rZLPptWDEeWIZqAU25SM3Q" type="3010" element="_rY2fgNWDEeWIZqAU25SM3Q">
+                <styles xmi:type="notation:FontStyle" xmi:id="_rZLPp9WDEeWIZqAU25SM3Q" fontName="Segoe UI" fontHeight="8" bold="true"/>
+                <layoutConstraint xmi:type="notation:Location" xmi:id="_rZLPqNWDEeWIZqAU25SM3Q"/>
+              </children>
+              <children xmi:type="notation:Node" xmi:id="_rZL2sNWDEeWIZqAU25SM3Q" type="3010" element="_rY3GkNWDEeWIZqAU25SM3Q">
+                <styles xmi:type="notation:FontStyle" xmi:id="_rZL2sdWDEeWIZqAU25SM3Q" fontName="Segoe UI" fontHeight="8" bold="true"/>
+                <layoutConstraint xmi:type="notation:Location" xmi:id="_rZL2stWDEeWIZqAU25SM3Q"/>
+              </children>
+              <children xmi:type="notation:Node" xmi:id="_rZL2s9WDEeWIZqAU25SM3Q" type="3010" element="_rY3GktWDEeWIZqAU25SM3Q">
+                <styles xmi:type="notation:FontStyle" xmi:id="_rZL2tNWDEeWIZqAU25SM3Q" fontName="Segoe UI" fontHeight="8" bold="true"/>
+                <layoutConstraint xmi:type="notation:Location" xmi:id="_rZL2tdWDEeWIZqAU25SM3Q"/>
+              </children>
+              <styles xmi:type="notation:SortingStyle" xmi:id="_rZKoktWDEeWIZqAU25SM3Q"/>
+              <styles xmi:type="notation:FilteringStyle" xmi:id="_rZKok9WDEeWIZqAU25SM3Q"/>
+            </children>
+            <styles xmi:type="notation:ShapeStyle" xmi:id="_rZKBiNWDEeWIZqAU25SM3Q" fontName="Segoe UI" fontHeight="8"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rZKBidWDEeWIZqAU25SM3Q" x="358" y="350"/>
+          </children>
+          <styles xmi:type="notation:DiagramStyle" xmi:id="_qEPdAtWDEeWIZqAU25SM3Q"/>
+          <edges xmi:type="notation:Edge" xmi:id="_rZQvMNWDEeWIZqAU25SM3Q" type="4001" element="_rY4UsNWDEeWIZqAU25SM3Q" source="_rY90QNWDEeWIZqAU25SM3Q" target="_rZKBgNWDEeWIZqAU25SM3Q">
+            <children xmi:type="notation:Node" xmi:id="_rZQvNNWDEeWIZqAU25SM3Q" type="6001">
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rZRWQNWDEeWIZqAU25SM3Q" x="14" y="35"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_rZRWQdWDEeWIZqAU25SM3Q" type="6002">
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rZR9UNWDEeWIZqAU25SM3Q" x="-6" y="-10"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_rZR9UdWDEeWIZqAU25SM3Q" type="6003">
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rZR9UtWDEeWIZqAU25SM3Q" x="-20" y="-10"/>
+            </children>
+            <styles xmi:type="notation:ConnectorStyle" xmi:id="_rZQvMdWDEeWIZqAU25SM3Q" routing="Rectilinear"/>
+            <styles xmi:type="notation:FontStyle" xmi:id="_rZQvMtWDEeWIZqAU25SM3Q" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+            <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rZQvM9WDEeWIZqAU25SM3Q" points="[-1, 98, -1, -145]$[-1, 145, -1, -98]"/>
+            <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rZUZkNWDEeWIZqAU25SM3Q" id="(0.5,0.0)"/>
+            <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rZVAoNWDEeWIZqAU25SM3Q" id="(0.5,1.0)"/>
+          </edges>
+          <edges xmi:type="notation:Edge" xmi:id="_rZVAodWDEeWIZqAU25SM3Q" type="4001" element="_rY47xtWDEeWIZqAU25SM3Q" source="_rZKBgNWDEeWIZqAU25SM3Q" target="_rZKBh9WDEeWIZqAU25SM3Q">
+            <children xmi:type="notation:Node" xmi:id="_rZVApdWDEeWIZqAU25SM3Q" type="6001">
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rZVAptWDEeWIZqAU25SM3Q" x="16" y="-48"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_rZVnsNWDEeWIZqAU25SM3Q" type="6002">
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rZVnsdWDEeWIZqAU25SM3Q" x="48" y="-10"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_rZVnstWDEeWIZqAU25SM3Q" type="6003">
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rZVns9WDEeWIZqAU25SM3Q" x="-1" y="-10"/>
+            </children>
+            <styles xmi:type="notation:ConnectorStyle" xmi:id="_rZVAotWDEeWIZqAU25SM3Q" routing="Rectilinear"/>
+            <styles xmi:type="notation:FontStyle" xmi:id="_rZVAo9WDEeWIZqAU25SM3Q" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+            <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rZVApNWDEeWIZqAU25SM3Q" points="[26, 49, 27, -106]$[26, 106, 27, -49]"/>
+            <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rZVntNWDEeWIZqAU25SM3Q" id="(0.5,0.5)"/>
+            <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rZVntdWDEeWIZqAU25SM3Q" id="(0.5,0.5)"/>
+          </edges>
+          <edges xmi:type="notation:Edge" xmi:id="_rZVnttWDEeWIZqAU25SM3Q" type="4001" element="_rY5i1tWDEeWIZqAU25SM3Q" source="_rZKBgNWDEeWIZqAU25SM3Q" target="_rZKBgNWDEeWIZqAU25SM3Q">
+            <children xmi:type="notation:Node" xmi:id="_rZVnutWDEeWIZqAU25SM3Q" type="6001">
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rZVnu9WDEeWIZqAU25SM3Q" x="44" y="18"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_rZVnvNWDEeWIZqAU25SM3Q" type="6002">
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rZVnvdWDEeWIZqAU25SM3Q" x="20" y="10"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_rZVnvtWDEeWIZqAU25SM3Q" type="6003">
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rZVnv9WDEeWIZqAU25SM3Q" x="1" y="-10"/>
+            </children>
+            <styles xmi:type="notation:ConnectorStyle" xmi:id="_rZVnt9WDEeWIZqAU25SM3Q" routing="Rectilinear"/>
+            <styles xmi:type="notation:FontStyle" xmi:id="_rZVnuNWDEeWIZqAU25SM3Q" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+            <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rZVnudWDEeWIZqAU25SM3Q" points="[59, -34, 59, -34]$[116, -34, 116, -34]$[116, 21, 116, 21]$[59, 21, 59, 21]"/>
+            <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rZWOwNWDEeWIZqAU25SM3Q" id="(0.5,0.5)"/>
+            <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rZWOwdWDEeWIZqAU25SM3Q" id="(0.5,0.5)"/>
+          </edges>
+          <edges xmi:type="notation:Edge" xmi:id="_rZWOwtWDEeWIZqAU25SM3Q" type="4001" element="_rY6J49WDEeWIZqAU25SM3Q" source="_rZKBgNWDEeWIZqAU25SM3Q" target="_rZKBh9WDEeWIZqAU25SM3Q">
+            <children xmi:type="notation:Node" xmi:id="_rZWOxtWDEeWIZqAU25SM3Q" type="6001">
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rZWOx9WDEeWIZqAU25SM3Q" x="16" y="48"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_rZWOyNWDEeWIZqAU25SM3Q" type="6002">
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rZWOydWDEeWIZqAU25SM3Q" x="48" y="-10"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_rZWOytWDEeWIZqAU25SM3Q" type="6003">
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rZWOy9WDEeWIZqAU25SM3Q" x="-1" y="-10"/>
+            </children>
+            <styles xmi:type="notation:ConnectorStyle" xmi:id="_rZWOw9WDEeWIZqAU25SM3Q" routing="Rectilinear"/>
+            <styles xmi:type="notation:FontStyle" xmi:id="_rZWOxNWDEeWIZqAU25SM3Q" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+            <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rZWOxdWDEeWIZqAU25SM3Q" points="[-28, 49, 41, -141]$[-28, 106, 41, -84]"/>
+            <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rZWOzNWDEeWIZqAU25SM3Q" id="(0.5,0.5)"/>
+            <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rZWOzdWDEeWIZqAU25SM3Q" id="(0.02097902097902098,0.86)"/>
+          </edges>
+          <edges xmi:type="notation:Edge" xmi:id="_rZWOztWDEeWIZqAU25SM3Q" type="4001" element="_rY6w89WDEeWIZqAU25SM3Q" source="_rZKBh9WDEeWIZqAU25SM3Q" target="_rZKBh9WDEeWIZqAU25SM3Q">
+            <children xmi:type="notation:Node" xmi:id="_rZWO0tWDEeWIZqAU25SM3Q" type="6001">
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rZWO09WDEeWIZqAU25SM3Q" x="41" y="13"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_rZWO1NWDEeWIZqAU25SM3Q" type="6002">
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rZWO1dWDEeWIZqAU25SM3Q" x="22" y="10"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_rZW10NWDEeWIZqAU25SM3Q" type="6003">
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rZW10dWDEeWIZqAU25SM3Q" x="17" y="6"/>
+            </children>
+            <styles xmi:type="notation:ConnectorStyle" xmi:id="_rZWOz9WDEeWIZqAU25SM3Q" routing="Rectilinear"/>
+            <styles xmi:type="notation:FontStyle" xmi:id="_rZWO0NWDEeWIZqAU25SM3Q" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+            <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rZWO0dWDEeWIZqAU25SM3Q" points="[71, -29, 4, -57]$[120, -29, 53, -57]$[120, 31, 53, 3]$[71, 31, 4, 3]"/>
+            <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rZW10tWDEeWIZqAU25SM3Q" id="(0.5,0.5)"/>
+            <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rZW109WDEeWIZqAU25SM3Q" id="(0.972027972027972,0.79)"/>
+          </edges>
+        </data>
+      </ownedAnnotationEntries>
+      <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_rYrgYNWDEeWIZqAU25SM3Q" name="Company" tooltipText="" outgoingEdges="_rY4UsNWDEeWIZqAU25SM3Q" width="12" height="10">
+        <target xmi:type="ecore:EClass" href="Company.ecore#//Company"/>
+        <semanticElements xmi:type="ecore:EClass" href="Company.ecore#//Company"/>
+        <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+        <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+        <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+        <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_rYsugNWDEeWIZqAU25SM3Q" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+          <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+        <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_rY0qUNWDEeWIZqAU25SM3Q" name="name : EString" tooltipText="">
+          <target xmi:type="ecore:EAttribute" href="Company.ecore#//Company/name"/>
+          <semanticElements xmi:type="ecore:EAttribute" href="Company.ecore#//Company/name"/>
+          <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_rY1RYdWDEeWIZqAU25SM3Q" labelAlignment="LEFT" description="_rY1RYNWDEeWIZqAU25SM3Q">
+            <labelFormat>bold</labelFormat>
+          </ownedStyle>
+          <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+        </ownedElements>
+      </ownedDiagramElements>
+      <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_rYt8oNWDEeWIZqAU25SM3Q" name="Department" tooltipText="" outgoingEdges="_rY47xtWDEeWIZqAU25SM3Q _rY5i1tWDEeWIZqAU25SM3Q _rY6J49WDEeWIZqAU25SM3Q" incomingEdges="_rY4UsNWDEeWIZqAU25SM3Q _rY5i1tWDEeWIZqAU25SM3Q" width="12" height="10">
+        <target xmi:type="ecore:EClass" href="Company.ecore#//Department"/>
+        <semanticElements xmi:type="ecore:EClass" href="Company.ecore#//Department"/>
+        <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+        <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+        <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+        <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_rYujsNWDEeWIZqAU25SM3Q" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+          <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+        <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_rY14cNWDEeWIZqAU25SM3Q" name="name : EString" tooltipText="">
+          <target xmi:type="ecore:EAttribute" href="Company.ecore#//Department/name"/>
+          <semanticElements xmi:type="ecore:EAttribute" href="Company.ecore#//Department/name"/>
+          <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_rY14cdWDEeWIZqAU25SM3Q" labelAlignment="LEFT" description="_rY1RYNWDEeWIZqAU25SM3Q">
+            <labelFormat>bold</labelFormat>
+          </ownedStyle>
+          <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+        </ownedElements>
+      </ownedDiagramElements>
+      <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_rYvKwNWDEeWIZqAU25SM3Q" name="Employee" tooltipText="" outgoingEdges="_rY6w89WDEeWIZqAU25SM3Q" incomingEdges="_rY47xtWDEeWIZqAU25SM3Q _rY6J49WDEeWIZqAU25SM3Q _rY6w89WDEeWIZqAU25SM3Q" width="12" height="10">
+        <target xmi:type="ecore:EClass" href="Company.ecore#//Employee"/>
+        <semanticElements xmi:type="ecore:EClass" href="Company.ecore#//Employee"/>
+        <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+        <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+        <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+        <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_rYvKwdWDEeWIZqAU25SM3Q" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+          <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+        <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_rY2fgNWDEeWIZqAU25SM3Q" name="name : EString" tooltipText="">
+          <target xmi:type="ecore:EAttribute" href="Company.ecore#//Employee/name"/>
+          <semanticElements xmi:type="ecore:EAttribute" href="Company.ecore#//Employee/name"/>
+          <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_rY2fgdWDEeWIZqAU25SM3Q" labelAlignment="LEFT" description="_rY1RYNWDEeWIZqAU25SM3Q">
+            <labelFormat>bold</labelFormat>
+          </ownedStyle>
+          <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+        </ownedElements>
+        <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_rY3GkNWDEeWIZqAU25SM3Q" name="address : EString" tooltipText="">
+          <target xmi:type="ecore:EAttribute" href="Company.ecore#//Employee/address"/>
+          <semanticElements xmi:type="ecore:EAttribute" href="Company.ecore#//Employee/address"/>
+          <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_rY3GkdWDEeWIZqAU25SM3Q" labelAlignment="LEFT" description="_rY1RYNWDEeWIZqAU25SM3Q">
+            <labelFormat>bold</labelFormat>
+          </ownedStyle>
+          <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+        </ownedElements>
+        <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_rY3GktWDEeWIZqAU25SM3Q" name="salary : EDouble = 0.0" tooltipText="">
+          <target xmi:type="ecore:EAttribute" href="Company.ecore#//Employee/salary"/>
+          <semanticElements xmi:type="ecore:EAttribute" href="Company.ecore#//Employee/salary"/>
+          <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_rY3toNWDEeWIZqAU25SM3Q" labelAlignment="LEFT" description="_rY1RYNWDEeWIZqAU25SM3Q">
+            <labelFormat>bold</labelFormat>
+          </ownedStyle>
+          <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+        </ownedElements>
+      </ownedDiagramElements>
+      <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_rY4UsNWDEeWIZqAU25SM3Q" name="[0..*] depts" sourceNode="_rYrgYNWDEeWIZqAU25SM3Q" targetNode="_rYt8oNWDEeWIZqAU25SM3Q">
+        <target xmi:type="ecore:EReference" href="Company.ecore#//Company/depts"/>
+        <semanticElements xmi:type="ecore:EReference" href="Company.ecore#//Company/depts"/>
+        <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_rY47w9WDEeWIZqAU25SM3Q" description="_rY47wNWDEeWIZqAU25SM3Q" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+          <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_rY47xNWDEeWIZqAU25SM3Q" showIcon="false">
+            <customFeatures>labelSize</customFeatures>
+          </centerLabelStyle>
+          <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_rY47xdWDEeWIZqAU25SM3Q" showIcon="false" labelColor="39,76,114">
+            <customFeatures>labelSize</customFeatures>
+          </endLabelStyle>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+      </ownedDiagramElements>
+      <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_rY47xtWDEeWIZqAU25SM3Q" name="[1..1] manager" sourceNode="_rYt8oNWDEeWIZqAU25SM3Q" targetNode="_rYvKwNWDEeWIZqAU25SM3Q">
+        <target xmi:type="ecore:EReference" href="Company.ecore#//Department/manager"/>
+        <semanticElements xmi:type="ecore:EReference" href="Company.ecore#//Department/manager"/>
+        <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_rY5i09WDEeWIZqAU25SM3Q" description="_rY5i0NWDEeWIZqAU25SM3Q" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+          <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_rY5i1NWDEeWIZqAU25SM3Q" showIcon="false">
+            <customFeatures>labelSize</customFeatures>
+          </centerLabelStyle>
+          <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_rY5i1dWDEeWIZqAU25SM3Q" showIcon="false" labelColor="39,76,114">
+            <customFeatures>labelSize</customFeatures>
+          </endLabelStyle>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+      </ownedDiagramElements>
+      <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_rY5i1tWDEeWIZqAU25SM3Q" name="[0..*] subdepts" sourceNode="_rYt8oNWDEeWIZqAU25SM3Q" targetNode="_rYt8oNWDEeWIZqAU25SM3Q">
+        <target xmi:type="ecore:EReference" href="Company.ecore#//Department/subdepts"/>
+        <semanticElements xmi:type="ecore:EReference" href="Company.ecore#//Department/subdepts"/>
+        <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_rY6J4NWDEeWIZqAU25SM3Q" description="_rY47wNWDEeWIZqAU25SM3Q" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+          <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_rY6J4dWDEeWIZqAU25SM3Q" showIcon="false">
+            <customFeatures>labelSize</customFeatures>
+          </centerLabelStyle>
+          <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_rY6J4tWDEeWIZqAU25SM3Q" showIcon="false" labelColor="39,76,114">
+            <customFeatures>labelSize</customFeatures>
+          </endLabelStyle>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+      </ownedDiagramElements>
+      <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_rY6J49WDEeWIZqAU25SM3Q" name="[0..*] employees" sourceNode="_rYt8oNWDEeWIZqAU25SM3Q" targetNode="_rYvKwNWDEeWIZqAU25SM3Q">
+        <target xmi:type="ecore:EReference" href="Company.ecore#//Department/employees"/>
+        <semanticElements xmi:type="ecore:EReference" href="Company.ecore#//Department/employees"/>
+        <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_rY6w8NWDEeWIZqAU25SM3Q" description="_rY47wNWDEeWIZqAU25SM3Q" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+          <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_rY6w8dWDEeWIZqAU25SM3Q" showIcon="false">
+            <customFeatures>labelSize</customFeatures>
+          </centerLabelStyle>
+          <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_rY6w8tWDEeWIZqAU25SM3Q" showIcon="false" labelColor="39,76,114">
+            <customFeatures>labelSize</customFeatures>
+          </endLabelStyle>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+      </ownedDiagramElements>
+      <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_rY6w89WDEeWIZqAU25SM3Q" name="[0..1] mentor" sourceNode="_rYvKwNWDEeWIZqAU25SM3Q" targetNode="_rYvKwNWDEeWIZqAU25SM3Q">
+        <target xmi:type="ecore:EReference" href="Company.ecore#//Employee/mentor"/>
+        <semanticElements xmi:type="ecore:EReference" href="Company.ecore#//Employee/mentor"/>
+        <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_rY7YANWDEeWIZqAU25SM3Q" routingStyle="manhattan" strokeColor="0,0,0">
+          <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
+          <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_rY7YAdWDEeWIZqAU25SM3Q" showIcon="false">
+            <customFeatures>labelSize</customFeatures>
+          </centerLabelStyle>
+          <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_rY7YAtWDEeWIZqAU25SM3Q" showIcon="false" labelColor="39,76,114">
+            <customFeatures>labelSize</customFeatures>
+          </endLabelStyle>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+      </ownedDiagramElements>
+      <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
+      <filterVariableHistory xmi:type="diagram:FilterVariableHistory" xmi:id="_qEIIRdWDEeWIZqAU25SM3Q"/>
+      <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/>
+      <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Package']"/>
+      <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Validation']"/>
+      <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Archetype']/@ownedRepresentationExtensions[name='Entities%20With%20Archetypes']/@layers[name='Archetypes']"/>
+      <target xmi:type="ecore:EPackage" href="Company.ecore#/"/>
+    </ownedRepresentations>
+    <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/>
+  </ownedViews>
+  <ownedViews xmi:type="viewpoint:DRepresentationContainer" xmi:id="_pFBbsNWDEeWIZqAU25SM3Q">
+    <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Review']"/>
+  </ownedViews>
+  <ownedViews xmi:type="viewpoint:DRepresentationContainer" xmi:id="_pFJXgNWDEeWIZqAU25SM3Q">
+    <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Archetype']"/>
+  </ownedViews>
+  <ownedViews xmi:type="viewpoint:DRepresentationContainer" xmi:id="_pFNo8NWDEeWIZqAU25SM3Q">
+    <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Generation']"/>
+  </ownedViews>
+</viewpoint:DAnalysis>
diff --git a/ocl/docs/publications/ICMT2016CS2AS_DSTL/metamodels/Company.ecore b/ocl/docs/publications/ICMT2016CS2AS_DSTL/metamodels/Company.ecore
new file mode 100644
index 0000000..9d9a3c1
--- /dev/null
+++ b/ocl/docs/publications/ICMT2016CS2AS_DSTL/metamodels/Company.ecore
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0"
+    xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="company"
+    nsURI="http://www.company.com" nsPrefix="com">
+  <eClassifiers xsi:type="ecore:EClass" name="Company">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="depts" ordered="false"
+        upperBound="-1" eType="#//Department" containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Department">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="manager" ordered="false"
+        lowerBound="1" eType="#//Employee" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="subdepts" ordered="false"
+        upperBound="-1" eType="#//Department" containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="employees" ordered="false"
+        upperBound="-1" eType="#//Employee" containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Employee">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="address" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="salary" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="mentor" eType="#//Employee"/>
+  </eClassifiers>
+</ecore:EPackage>
diff --git a/ocl/docs/publications/ICMT2016CS2AS_DSTL/metamodels/cs.aird b/ocl/docs/publications/ICMT2016CS2AS_DSTL/metamodels/cs.aird
new file mode 100644
index 0000000..aa6d61c
--- /dev/null
+++ b/ocl/docs/publications/ICMT2016CS2AS_DSTL/metamodels/cs.aird
@@ -0,0 +1,179 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<viewpoint:DAnalysis xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:diagram="http://www.eclipse.org/sirius/diagram/1.1.0" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:viewpoint="http://www.eclipse.org/sirius/1.1.0" xsi:schemaLocation="http://www.eclipse.org/sirius/description/1.1.0 http://www.eclipse.org/sirius/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/style/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description/style" xmi:id="_tmSFsNPpEeWHdOkhRZLfbw" selectedViews="_uCeScNPpEeWHdOkhRZLfbw _uCsU4NPpEeWHdOkhRZLfbw _uCuKENPpEeWHdOkhRZLfbw _uCzCkNPpEeWHdOkhRZLfbw" version="10.1.0.201509162000">
+  <semanticResources>cs.ecore</semanticResources>
+  <ownedViews xmi:type="viewpoint:DRepresentationContainer" xmi:id="_uCeScNPpEeWHdOkhRZLfbw">
+    <ownedRepresentations xmi:type="diagram:DSemanticDiagram" xmi:id="_vmzzANPpEeWHdOkhRZLfbw" name=" class diagram">
+      <ownedAnnotationEntries xmi:type="description:AnnotationEntry" xmi:id="_vmzzAdPpEeWHdOkhRZLfbw" source="DANNOTATION_CUSTOMIZATION_KEY">
+        <data xmi:type="diagram:ComputedStyleDescriptionRegistry" xmi:id="_vmzzAtPpEeWHdOkhRZLfbw">
+          <computedStyleDescriptions xmi:type="style:BundledImageDescription" xmi:id="_AADSUNPqEeWHdOkhRZLfbw" labelExpression="service:render" labelAlignment="LEFT" tooltipExpression="service:renderTooltip" sizeComputationExpression="1">
+            <borderColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+            <labelFormat>bold</labelFormat>
+            <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+            <color xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+          </computedStyleDescriptions>
+          <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_G2T_gNPqEeWHdOkhRZLfbw" sourceArrow="FillDiamond" routingStyle="manhattan">
+            <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+            <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_G2T_gdPqEeWHdOkhRZLfbw" showIcon="false" labelExpression="service:render">
+              <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+            </centerLabelStyleDescription>
+            <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_G2T_gtPqEeWHdOkhRZLfbw" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel">
+              <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/>
+            </endLabelStyleDescription>
+          </computedStyleDescriptions>
+          <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_83ZNYNPrEeWHdOkhRZLfbw" sourceArrow="FillDiamond" routingStyle="manhattan">
+            <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+            <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_83ZNYdPrEeWHdOkhRZLfbw" showIcon="false" labelExpression="service:render">
+              <labelFormat>bold</labelFormat>
+              <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
+            </centerLabelStyleDescription>
+            <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_83ZNYtPrEeWHdOkhRZLfbw" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel">
+              <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/>
+            </endLabelStyleDescription>
+          </computedStyleDescriptions>
+        </data>
+      </ownedAnnotationEntries>
+      <ownedAnnotationEntries xmi:type="description:AnnotationEntry" xmi:id="_voAF0NPpEeWHdOkhRZLfbw" source="GMF_DIAGRAMS">
+        <data xmi:type="notation:Diagram" xmi:id="_voAF0dPpEeWHdOkhRZLfbw" type="Sirius" element="_vmzzANPpEeWHdOkhRZLfbw" measurementUnit="Pixel">
+          <children xmi:type="notation:Node" xmi:id="_xbCwwNPpEeWHdOkhRZLfbw" type="2003" element="_xanS8NPpEeWHdOkhRZLfbw">
+            <children xmi:type="notation:Node" xmi:id="_xbJecNPpEeWHdOkhRZLfbw" type="5007"/>
+            <children xmi:type="notation:Node" xmi:id="_xbQzMNPpEeWHdOkhRZLfbw" type="7004">
+              <children xmi:type="notation:Node" xmi:id="_DapJ4NPqEeWHdOkhRZLfbw" type="3010" element="_DajqUNPqEeWHdOkhRZLfbw">
+                <styles xmi:type="notation:FontStyle" xmi:id="_DapJ4dPqEeWHdOkhRZLfbw" fontColor="2697711" fontName="Segoe UI" fontHeight="8"/>
+                <layoutConstraint xmi:type="notation:Location" xmi:id="_DapJ4tPqEeWHdOkhRZLfbw"/>
+              </children>
+              <styles xmi:type="notation:SortingStyle" xmi:id="_xbQzMdPpEeWHdOkhRZLfbw"/>
+              <styles xmi:type="notation:FilteringStyle" xmi:id="_xbQzMtPpEeWHdOkhRZLfbw"/>
+            </children>
+            <styles xmi:type="notation:ShapeStyle" xmi:id="_xbCwwdPpEeWHdOkhRZLfbw" fontName="Segoe UI" fontHeight="8"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xbCwwtPpEeWHdOkhRZLfbw" x="445" y="140" width="123" height="73"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_090pENPrEeWHdOkhRZLfbw" type="2003" element="_09qRANPrEeWHdOkhRZLfbw">
+            <children xmi:type="notation:Node" xmi:id="_091QINPrEeWHdOkhRZLfbw" type="5007"/>
+            <children xmi:type="notation:Node" xmi:id="_091QIdPrEeWHdOkhRZLfbw" type="7004">
+              <children xmi:type="notation:Node" xmi:id="_091QJNPrEeWHdOkhRZLfbw" type="3010" element="_09wXoNPrEeWHdOkhRZLfbw">
+                <styles xmi:type="notation:FontStyle" xmi:id="_091QJdPrEeWHdOkhRZLfbw" fontName="Segoe UI" fontHeight="8" bold="true"/>
+                <layoutConstraint xmi:type="notation:Location" xmi:id="_091QJtPrEeWHdOkhRZLfbw"/>
+              </children>
+              <styles xmi:type="notation:SortingStyle" xmi:id="_091QItPrEeWHdOkhRZLfbw"/>
+              <styles xmi:type="notation:FilteringStyle" xmi:id="_091QI9PrEeWHdOkhRZLfbw"/>
+            </children>
+            <styles xmi:type="notation:ShapeStyle" xmi:id="_090pEdPrEeWHdOkhRZLfbw" fontName="Segoe UI" fontHeight="8"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_090pEtPrEeWHdOkhRZLfbw" x="655" y="140" width="118" height="73"/>
+          </children>
+          <styles xmi:type="notation:DiagramStyle" xmi:id="_voAF0tPpEeWHdOkhRZLfbw"/>
+          <edges xmi:type="notation:Edge" xmi:id="_G2uPMNPqEeWHdOkhRZLfbw" type="4001" element="_G2SxYNPqEeWHdOkhRZLfbw" source="_xbCwwNPpEeWHdOkhRZLfbw" target="_xbCwwNPpEeWHdOkhRZLfbw">
+            <children xmi:type="notation:Node" xmi:id="_G2u2QNPqEeWHdOkhRZLfbw" type="6001">
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_G2u2QdPqEeWHdOkhRZLfbw" x="34" y="4"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_G2vdUNPqEeWHdOkhRZLfbw" type="6002">
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_G2vdUdPqEeWHdOkhRZLfbw" x="23" y="-12"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_G2wEYNPqEeWHdOkhRZLfbw" type="6003">
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_G2wEYdPqEeWHdOkhRZLfbw" x="-9" y="10"/>
+            </children>
+            <styles xmi:type="notation:ConnectorStyle" xmi:id="_G2uPMdPqEeWHdOkhRZLfbw" routing="Rectilinear"/>
+            <styles xmi:type="notation:FontStyle" xmi:id="_G2uPMtPqEeWHdOkhRZLfbw" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+            <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_G2uPM9PqEeWHdOkhRZLfbw" points="[-117, -1, -120, -44]$[-147, -1, -150, -44]$[-147, 39, -150, -4]$[-117, 39, -120, -4]"/>
+            <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_G2wrcNPqEeWHdOkhRZLfbw" id="(0.967479674796748,0.1643835616438356)"/>
+            <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_G2wrcdPqEeWHdOkhRZLfbw" id="(0.991869918699187,0.7671232876712328)"/>
+          </edges>
+          <edges xmi:type="notation:Edge" xmi:id="_6rk2ENPrEeWHdOkhRZLfbw" type="4001" element="_6rYo0NPrEeWHdOkhRZLfbw" source="_xbCwwNPpEeWHdOkhRZLfbw" target="_090pENPrEeWHdOkhRZLfbw">
+            <children xmi:type="notation:Node" xmi:id="_6rldINPrEeWHdOkhRZLfbw" type="6001">
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6rldIdPrEeWHdOkhRZLfbw" x="7" y="-9"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_6rldItPrEeWHdOkhRZLfbw" type="6002">
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6rldI9PrEeWHdOkhRZLfbw" x="-3" y="10"/>
+            </children>
+            <children xmi:type="notation:Node" xmi:id="_6rldJNPrEeWHdOkhRZLfbw" type="6003">
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6rldJdPrEeWHdOkhRZLfbw" x="-22" y="10"/>
+            </children>
+            <styles xmi:type="notation:ConnectorStyle" xmi:id="_6rk2EdPrEeWHdOkhRZLfbw" routing="Rectilinear"/>
+            <styles xmi:type="notation:FontStyle" xmi:id="_6rk2EtPrEeWHdOkhRZLfbw" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
+            <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_6rk2E9PrEeWHdOkhRZLfbw" points="[0, 0, -89, 0]$[89, 0, 0, 0]"/>
+            <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6rmEMNPrEeWHdOkhRZLfbw" id="(1.0,0.49295774647887325)"/>
+            <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6rmEMdPrEeWHdOkhRZLfbw" id="(0.0,0.49295774647887325)"/>
+          </edges>
+        </data>
+      </ownedAnnotationEntries>
+      <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_xanS8NPpEeWHdOkhRZLfbw" name="NameExpCS" tooltipText="" outgoingEdges="_G2SxYNPqEeWHdOkhRZLfbw _6rYo0NPrEeWHdOkhRZLfbw" incomingEdges="_G2SxYNPqEeWHdOkhRZLfbw" width="12" height="10">
+        <target xmi:type="ecore:EClass" href="cs.ecore#//NameExpCS"/>
+        <semanticElements xmi:type="ecore:EClass" href="cs.ecore#//NameExpCS"/>
+        <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+        <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+        <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+        <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_Eun6QNPqEeWHdOkhRZLfbw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+          <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+        <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_DajqUNPqEeWHdOkhRZLfbw" name="navOp : EString" tooltipText="">
+          <target xmi:type="ecore:EAttribute" href="cs.ecore#//NameExpCS/navOp"/>
+          <semanticElements xmi:type="ecore:EAttribute" href="cs.ecore#//NameExpCS/navOp"/>
+          <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_EupIYNPqEeWHdOkhRZLfbw" labelAlignment="LEFT">
+            <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
+          </ownedStyle>
+          <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+        </ownedElements>
+      </ownedDiagramElements>
+      <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_G2SxYNPqEeWHdOkhRZLfbw" name="[0..1] navExp" sourceNode="_xanS8NPpEeWHdOkhRZLfbw" targetNode="_xanS8NPpEeWHdOkhRZLfbw">
+        <target xmi:type="ecore:EReference" href="cs.ecore#//NameExpCS/navExp"/>
+        <semanticElements xmi:type="ecore:EReference" href="cs.ecore#//NameExpCS/navExp"/>
+        <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_G2VNoNPqEeWHdOkhRZLfbw" description="_G2T_gNPqEeWHdOkhRZLfbw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+          <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_G2VNodPqEeWHdOkhRZLfbw" showIcon="false">
+            <customFeatures>labelSize</customFeatures>
+          </centerLabelStyle>
+          <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_G2VNotPqEeWHdOkhRZLfbw" showIcon="false" labelColor="39,76,114">
+            <customFeatures>labelSize</customFeatures>
+          </endLabelStyle>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+      </ownedDiagramElements>
+      <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_09qRANPrEeWHdOkhRZLfbw" name="SimpleNameCS" tooltipText="" incomingEdges="_6rYo0NPrEeWHdOkhRZLfbw" width="12" height="10">
+        <target xmi:type="ecore:EClass" href="cs.ecore#//SimpleNameCS"/>
+        <semanticElements xmi:type="ecore:EClass" href="cs.ecore#//SimpleNameCS"/>
+        <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+        <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+        <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+        <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_09q4ENPrEeWHdOkhRZLfbw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
+          <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+        <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_09wXoNPrEeWHdOkhRZLfbw" name="name : EString" tooltipText="">
+          <target xmi:type="ecore:EAttribute" href="cs.ecore#//SimpleNameCS/name"/>
+          <semanticElements xmi:type="ecore:EAttribute" href="cs.ecore#//SimpleNameCS/name"/>
+          <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_09w-sNPrEeWHdOkhRZLfbw" labelAlignment="LEFT" description="_AADSUNPqEeWHdOkhRZLfbw">
+            <labelFormat>bold</labelFormat>
+          </ownedStyle>
+          <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
+        </ownedElements>
+      </ownedDiagramElements>
+      <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_6rYo0NPrEeWHdOkhRZLfbw" name="[1..1] sName" sourceNode="_xanS8NPpEeWHdOkhRZLfbw" targetNode="_09qRANPrEeWHdOkhRZLfbw">
+        <target xmi:type="ecore:EReference" href="cs.ecore#//NameExpCS/sName"/>
+        <semanticElements xmi:type="ecore:EReference" href="cs.ecore#//NameExpCS/sName"/>
+        <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_83Z0cNPrEeWHdOkhRZLfbw" description="_83ZNYNPrEeWHdOkhRZLfbw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
+          <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_83Z0cdPrEeWHdOkhRZLfbw" showIcon="false">
+            <labelFormat>bold</labelFormat>
+          </centerLabelStyle>
+          <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_83Z0ctPrEeWHdOkhRZLfbw" labelSize="6" showIcon="false" labelColor="39,76,114"/>
+        </ownedStyle>
+        <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+      </ownedDiagramElements>
+      <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
+      <filterVariableHistory xmi:type="diagram:FilterVariableHistory" xmi:id="_vmzzBdPpEeWHdOkhRZLfbw"/>
+      <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/>
+      <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Package']"/>
+      <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Validation']"/>
+      <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Archetype']/@ownedRepresentationExtensions[name='Entities%20With%20Archetypes']/@layers[name='Archetypes']"/>
+      <target xmi:type="ecore:EPackage" href="cs.ecore#/"/>
+    </ownedRepresentations>
+    <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/>
+  </ownedViews>
+  <ownedViews xmi:type="viewpoint:DRepresentationContainer" xmi:id="_uCsU4NPpEeWHdOkhRZLfbw">
+    <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Review']"/>
+  </ownedViews>
+  <ownedViews xmi:type="viewpoint:DRepresentationContainer" xmi:id="_uCuKENPpEeWHdOkhRZLfbw">
+    <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Archetype']"/>
+  </ownedViews>
+  <ownedViews xmi:type="viewpoint:DRepresentationContainer" xmi:id="_uCzCkNPpEeWHdOkhRZLfbw">
+    <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Generation']"/>
+  </ownedViews>
+</viewpoint:DAnalysis>
diff --git a/ocl/docs/publications/ICMT2016CS2AS_DSTL/metamodels/cs.ecore b/ocl/docs/publications/ICMT2016CS2AS_DSTL/metamodels/cs.ecore
new file mode 100644
index 0000000..ad1f7c1
--- /dev/null
+++ b/ocl/docs/publications/ICMT2016CS2AS_DSTL/metamodels/cs.ecore
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="oclcs" nsURI="http://icmt2016/oclCS" nsPrefix="oclcs">
+  <eClassifiers xsi:type="ecore:EClass" name="NameExpCS">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="navOp" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="navExp" eType="#//NameExpCS"
+        containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="sName" lowerBound="1" eType="#//SimpleNameCS"
+        containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="SimpleNameCS">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+</ecore:EPackage>