A Functional, Comprehensive and Extensible Multi-Platform Querying and Transformation Approach

This thesis is about a new model querying and transformation approach called FunnyQT which is realized as a set of APIs and embedded domain-specific languages (DSLs) in the JVM-based functional Lisp-dialect Clojure. Founded on a powerful model management API, FunnyQT provides querying services such...

Olles dieđut

Furkejuvvon:
Bibliográfalaš dieđut
Váldodahkki: Horn, Tassilo
Materiálatiipa: Online
Giella:eaŋgalasgiella
Almmustuhtton: Logos Verlag Berlin 2021
Fáttát:
Liŋkkat:ONIX_20210408_9783832542917_4
Fáddágilkorat: Lasit fáddágilkoriid
Eai fáddágilkorat, Lasit vuosttaš fáddágilkora!
_version_ 1869513961444999168
author Horn, Tassilo
author_browse Horn, Tassilo
author_facet Horn, Tassilo
author_sort Horn, Tassilo
collection Directory of Open Access Books
description This thesis is about a new model querying and transformation approach called FunnyQT which is realized as a set of APIs and embedded domain-specific languages (DSLs) in the JVM-based functional Lisp-dialect Clojure. Founded on a powerful model management API, FunnyQT provides querying services such as comprehensions, quantified expressions, regular path expressions, logic-based, relational model querying, and pattern matching. On the transformation side, it supports the definition of unidirectional model-to-model transformations, of in-place transformations, it supports defining bidirectional transformations, and it supports a new kind of co-evolution transformations that allow for evolving a model together with its metamodel simultaneously. Several properties make FunnyQT unique. Foremost, it is just a Clojure library, thus, FunnyQT queries and transformations are Clojure programs. However, most higher-level services are provided as task-oriented embedded DSLs which use Clojure's powerful macro-system to support the user with tailor-made language constructs important for the task at hand. Since queries and transformations are just Clojure programs, they may use any Clojure or Java library for their own purpose, e.g., they may use some templating library for defining model-to-text transformations. Conversely, like every Clojure program, FunnyQT queries and transformations compile to normal JVM byte-code and can easily be called from other JVM languages. Furthermore, FunnyQT is platform-independent and designed with extensibility in mind. By default, it supports the Eclipse Modeling Framework and JGraLab, and support for other modeling frameworks can be added with minimal effort and without having to modify the respective framework's classes or FunnyQT itself. Lastly, because FunnyQT is embedded in a functional language, it has a functional emphasis itself. Every query and every transformation compiles to a function which can be passed around, given to higher-order functions, or be parametrized with other functions.
format Online
id doab-20.500.12854ir-64461
institution Directory of Open Access Books
language eng
publishDate 2021
publishDateRange 2021
publishDateSort 2021
publisher Logos Verlag Berlin
publisherStr Logos Verlag Berlin
record_format ojs
spelling doab-20.500.12854ir-644612024-04-14T10:29:02Z A Functional, Comprehensive and Extensible Multi-Platform Querying and Transformation Approach Horn, Tassilo model transformation model querying Clojure FunnyQT graph transformation thema EDItEUR::U Computing and Information Technology This thesis is about a new model querying and transformation approach called FunnyQT which is realized as a set of APIs and embedded domain-specific languages (DSLs) in the JVM-based functional Lisp-dialect Clojure. Founded on a powerful model management API, FunnyQT provides querying services such as comprehensions, quantified expressions, regular path expressions, logic-based, relational model querying, and pattern matching. On the transformation side, it supports the definition of unidirectional model-to-model transformations, of in-place transformations, it supports defining bidirectional transformations, and it supports a new kind of co-evolution transformations that allow for evolving a model together with its metamodel simultaneously. Several properties make FunnyQT unique. Foremost, it is just a Clojure library, thus, FunnyQT queries and transformations are Clojure programs. However, most higher-level services are provided as task-oriented embedded DSLs which use Clojure's powerful macro-system to support the user with tailor-made language constructs important for the task at hand. Since queries and transformations are just Clojure programs, they may use any Clojure or Java library for their own purpose, e.g., they may use some templating library for defining model-to-text transformations. Conversely, like every Clojure program, FunnyQT queries and transformations compile to normal JVM byte-code and can easily be called from other JVM languages. Furthermore, FunnyQT is platform-independent and designed with extensibility in mind. By default, it supports the Eclipse Modeling Framework and JGraLab, and support for other modeling frameworks can be added with minimal effort and without having to modify the respective framework's classes or FunnyQT itself. Lastly, because FunnyQT is embedded in a functional language, it has a functional emphasis itself. Every query and every transformation compiles to a function which can be passed around, given to higher-order functions, or be parametrized with other functions. 2021-04-08T19:39:02Z 2021-04-08T19:39:02Z 2016 book ONIX_20210408_9783832542917_4 9783832542917 https://directory.doabooks.org/handle/20.500.12854/64461 eng image/jpeg Attribution-NonCommercial-NoDerivatives 4.0 International https://www.logos-verlag.de/cgi-bin/engbuchmid?isbn=4291&lng=eng&id= https://www.logos-verlag.de/ebooks/OA/978-3-8325-4291-7.pdf Logos Verlag Berlin Logos Verlag Berlin 10.30819/4291 10.30819/4291 04b263a1-7fba-4491-9eae-1c394ac42fc3 9783832542917 Logos Verlag Berlin 472 Berlin/Germany open access
spellingShingle model transformation
model querying
Clojure
FunnyQT
graph transformation
thema EDItEUR::U Computing and Information Technology
Horn, Tassilo
A Functional, Comprehensive and Extensible Multi-Platform Querying and Transformation Approach
title A Functional, Comprehensive and Extensible Multi-Platform Querying and Transformation Approach
title_full A Functional, Comprehensive and Extensible Multi-Platform Querying and Transformation Approach
title_fullStr A Functional, Comprehensive and Extensible Multi-Platform Querying and Transformation Approach
title_full_unstemmed A Functional, Comprehensive and Extensible Multi-Platform Querying and Transformation Approach
title_short A Functional, Comprehensive and Extensible Multi-Platform Querying and Transformation Approach
title_sort functional comprehensive and extensible multi platform querying and transformation approach
topic model transformation
model querying
Clojure
FunnyQT
graph transformation
thema EDItEUR::U Computing and Information Technology
topic_facet model transformation
model querying
Clojure
FunnyQT
graph transformation
thema EDItEUR::U Computing and Information Technology
url ONIX_20210408_9783832542917_4
work_keys_str_mv AT horntassilo afunctionalcomprehensiveandextensiblemultiplatformqueryingandtransformationapproach
AT horntassilo functionalcomprehensiveandextensiblemultiplatformqueryingandtransformationapproach