42 research outputs found

    Language integrated relational lenses

    Get PDF
    Relational databases are ubiquitous. Such monolithic databases accumulate large amounts of data, yet applications typically only work on small portions of the data at a time. A subset of the database defined as a computation on the underlying tables is called a view. Querying views is helpful, but it is also desirable to update them and have these changes be applied to the underlying database. This view update problem has been the subject of much previous work before, but support by database servers is limited and only rarely available. Lenses are a popular approach to bidirectional transformations, a generalization of the view update problem in databases to arbitrary data. However, perhaps surprisingly, lenses have seldom actually been used to implement updatable views in databases. Bohannon, Pierce and Vaughan propose an approach to updatable views called relational lenses. However, to the best of our knowledge this proposal has not been implemented or evaluated prior to the work reported in this thesis. This thesis proposes programming language support for relational lenses. Language integrated relational lenses support expressive and efficient view updates, without relying on updatable view support from the database server. By integrating relational lenses into the programming language, application development becomes easier and less error-prone, avoiding the impedance mismatch of having two programming languages. Integrating relational lenses into the language poses additional challenges. As defined by Bohannon et al. relational lenses completely recompute the database, making them inefficient as the database scales. The other challenge is that some parts of the well-formedness conditions are too general for implementation. Bohannon et al. specify predicates using possibly infinite abstract sets and define the type checking rules using relational algebra. Incremental relational lenses equip relational lenses with change-propagating semantics that map small changes to the view into (potentially) small changes to the source tables. We prove that our incremental semantics are functionally equivalent to the non-incremental semantics, and our experimental results show orders of magnitude improvement over the non-incremental approach. This thesis introduces a concrete predicate syntax and shows how the required checks are performed on these predicates and show that they satisfy the abstract predicate specifications. We discuss trade-offs between static predicates that are fully known at compile time vs dynamic predicates that are only known during execution and introduce hybrid predicates taking inspiration from both approaches. This thesis adapts the typing rules for relational lenses from sequential composition to a functional style of sub-expressions. We prove that any well-typed functional relational lens expression can derive a well-typed sequential lens. We use these additions to relational lenses as the foundation for two practical implementations: an extension of the Links functional language and a library written in Haskell. The second implementation demonstrates how type-level computation can be used to implement relational lenses without changes to the compiler. These two implementations attest to the possibility of turning relational lenses into a practical language feature

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

    Get PDF
    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

    Building Transformation Networks for Consistent Evolution of Interrelated Models

    Get PDF
    In dieser Dissertation formalisieren und analysieren wir die Konsistenzerhaltung verschiedener Artefakte zur Beschreibung eines Softwaresystems durch die Kopplung von Transformationen zwischen diesen und unterstĂŒtzen sie mit geeigneten Methoden. FĂŒr die Entwicklung eines Softwaresystems nutzen Entwickler:innen und weitere Beteiligte verschiedene Sprachen, oder allgemein Werkzeuge, zur Beschreibung unterschiedlicher Belange. Meist stellt Programmcode das zentrale Artefakt dar, welches jedoch, implizit oder explizit, durch Spezifikationen von Architektur, Deployment, Anforderungen und anderen ergĂ€nzt wird. Neben der Programmiersprache verwenden die Beteiligten weitere Sprachen zur Spezifikation dieser Artefakte, beispielsweise die UML fĂŒr Modelle des objektorientierten Entwurfs oder der Architektur, den OpenAPI-Standard fĂŒr Schnittstellen-Definitionen, oder Docker fĂŒr Deployment-Spezifikationen. Zur Erstellung eines funktionsfĂ€higen Softwaresystems mĂŒssen diese Artefakte das System einheitlich und widerspruchsfrei darstellen. Beispielsweise mĂŒssen Dienst-Schnittstellen in allen Artefakten einheitlich reprĂ€sentiert sein. Wir sagen, die Artefakte mĂŒssen konsistent sein. In der modellgetriebenen Entwicklung werden solche verschiedenen Artefakte allgemein Modelle genannt und bereits als wesentliche zentrale Entwicklungsbestandteile genutzt, um auch Teile des Programmcodes aus ihnen abzuleiten. Dies betrifft beispielsweise die Softwareentwicklung fĂŒr Fahrzeuge. Zur Konsistenzerhaltung der Modelle werden oftmals Transformationen eingesetzt, die nach Änderungen eines Modells die anderen Modelle anpassen. Die bisherige Forschung beschrĂ€nkt sich auf Transformationen zur Konsistenzerhaltung zweier Modelle und die projektspezifische Kombination von Transformationen zur Konsistenzerhaltung mehrerer Modelle. Ein systematischer Entwicklungsprozess, in dem einzelne Transformationen unabhĂ€ngig entwickelt und in verschiedenen Kontexten modular wiederverwendet werden können, wird hierdurch jedoch nicht unterstĂŒtzt. In dieser Dissertation erforschen wir, wie Entwickler:innen mehrere Transformationen zu einem Netzwerk kombinieren können, welches die Transformationen in einer geeigneten Reihenfolge ausfĂŒhren kann, sodass abschließend alle Modelle konsistent zueinander sind. Dies geschieht unter der Annahme, dass einzelne Transformationen zwischen zwei Sprachen unabhĂ€ngig voneinander entwickelt werden und daher nicht aufeinander abgestimmt werden können. Unsere BeitrĂ€ge unterteilen sich in die Untersuchung der Korrektheit einer solchen Kombination von Transformationen zu einem Netzwerk und die Optimierung von QualitĂ€tseigenschaften solcher Netzwerke. Wir diskutieren und definieren zunĂ€chst einen adĂ€quaten Korrektheitsbegriff, welcher drei Anforderungen impliziert. Diese umfassen eine Synchronisations-Eigenschaft fĂŒr die einzelnen Transformationen, eine KompatibilitĂ€ts-Eigenschaft fĂŒr das Transformationsnetzwerk, sowie das Finden einer geeigneten AusfĂŒhrungsreihenfolge der Transformationen, einer Orchestrierung. Wir stellen ein Konstruktionsverfahren fĂŒr Transformationen vor, mit welchem die Synchronisations-Eigenschaft basierend auf einer formal bewiesenen Eigenschaft erfĂŒllt wird. FĂŒr dieses zeigen wir VollstĂ€ndigkeit und Angemessenheit mit einer fallstudienbasierten empirischen Evaluation in der DomĂ€ne der komponentenbasierten Softwareentwicklung. Wir definieren die Eigenschaft der KompatibilitĂ€t von Transformationen, fĂŒr welche wir ein formales und bewiesen korrektes Analyseverfahren vorschlagen und eine praktische Realisierung ableiten, deren Anwendbarkeit wir in Fallstudien nachweisen. Schlussendlich definieren wir das Orchestrierungsproblem zum Finden einer Orchestrierung, die zu konsistenten Modelle fĂŒhrt wann immer solch eine Orchestrierung existiert. Wir beweisen die Unentscheidbarkeit dieses Problems und diskutieren, dass eine EinschrĂ€nkung des Problems, um Entscheidbarkeit zu erreichen, die Anwendbarkeit unpraktikabel beschrĂ€nken wĂŒrde. Daher schlagen wir einen Algorithmus vor, der das Problem konservativ behandelt. Er findet eine Orchestrierung unter bestimmten, wohldefinierten Bedingungen und terminiert andernfalls mit einem Fehler. Wir beweisen die Korrektheit des Algorithmus und eine Eigenschaft, die das Finden der Ursache im Fehlerfall unterstĂŒtzt. ZusĂ€tzlich kategorisieren wir Fehler, die auftreten können falls ein Netzwerk den definierten Korrektheitsbegriff nicht erfĂŒllt. Daraus leiten wir mittels den bereits genannten Fallstudien ab, dass die meisten potentiellen Fehler per Konstruktion mit den in dieser Arbeit vorgeschlagenen AnsĂ€tzen vermieden werden können. Zur Untersuchung von QualitĂ€tseigenschaften eines Netzwerkes von Transformationen klassifizieren wir zunĂ€chst relevante Eigenschaften, sowie den Effekt verschiedener Typen von Netzwerktopologien auf diese. Hierbei zeigt sich, dass insbesondere Korrektheit und Wiederverwendbarkeit im Widerspruch stehen, sodass die Wahl der Netzwerktopologie ein AbwĂ€gen bei der Optimierung dieser Eigenschaften erfordert. Wir leiten hieraus ein Konstruktionsverfahren fĂŒr Transformationsnetzwerke ab, welches die Notwendigkeit einer AbwĂ€gung zwischen den QualitĂ€tseigenschaften abmildert und, unter gewissen Voraussetzungen, Korrektheit per Konstruktion gewĂ€hrleistet. Wir unterstĂŒtzen den Entwicklungsprozess fĂŒr diesen Ansatz mithilfe einer spezialisierten Spezifikationssprache. WĂ€hrend die Verminderung der Notwendigkeit einer AbwĂ€gung zwischen QualitĂ€tseigenschaften durch den Ansatz per Konstruktion erreicht wird, zeigen wir die Erreichbarkeit der Voraussetzungen und die Vorteile der vorgeschlagenen Sprache in einer empirischen Evaluation mithilfe der Fallstudie aus der komponentenbasierten Softwareentwicklung. Die BeitrĂ€ge dieser Dissertation unterstĂŒtzen sowohl Forscher:innen als auch Transformationsentwickler:innen und Transformationsanwender:innen bei der Analyse und Konstruktion von Netzwerken von Transformationen. Sie stellen fĂŒr Forscher:innen und Transformationsentwickler:innen systematisches Wissen ĂŒber die Korrektheit und weitere QualitĂ€tseigenschaften solcher Netzwerke bereit. Sie zeigen insbesondere welche Teile dieser Eigenschaften per Konstruktion erreicht werden können, welche per Analyse validiert werden können, und welche Fehler unvermeidbar bei der AusfĂŒhrung erwartet werden mĂŒssen. ZusĂ€tzlich zu diesen Einsichten stellen wir konkrete, praktisch nutzbare Verfahren bereit, mit denen Transformationsentwickler:innen und Transformationsanwender:innen korrekte, modular wiederverwendbare Netzwerke konstruieren, analysieren und ausfĂŒhren können

    A Formal Approach to Prove Compatibility in Transformation Networks

    Get PDF
    The increasing complexity of software and cyberphysical systems is handled by dividing the description of the system under construction into different models or views, each with an appropriate abstraction for the needs of specific roles. Since all such models describe the same system, they usually share an overlap of information, which can lead to inconsistencies if overlapping information is not modified uniformly in all models. A well-researched approach to make these overlaps explicit and resolve inconsistencies are incremental, bidirectional model transformations. They specify the constraints between two metamodels and the restoration of consistency between their instances. Relating more than two metamodels can be achieved by combining bidirectional transformations to a network. However, such a network may contain cycles of transformations, whose consistency constraints can be contradictory if they are not aligned with each other and thus cannot be fulfilled at the same time. Such transformations are considered incompatible. In this article, we provide a formal definition of consistency and compatibility of transformations and propose an inductive approach to prove compatibility of a given network of transformations. We prove correctness of the approach based on these formal definitions. Furthermore, we present an operationalization of the approach at the example of QVT-R. It detects contradictions between relations by transforming them into first-order logic formulae and evaluating them with an SMT solver. The approach operates conservatively, i.e., it is not able to prove compatibility in all cases, but it identifies transformations as compatible only if they actually are. We applied the approach to different evaluation networks and found that it operates conservatively and is able to properly prove compatibility in 80% of the cases, indicating its practical applicability. Its limitations especially arise from restricted capabilities of the used SMT solver, but not from conceptual shortcomings. Our approach enables multiple domain experts to define transformations independently and to check their compatibility when combining them to a network, relieving them from the necessity to align the transformations with each other a priori and to ensure compatibility manuall

    Design revolutions: IASDR 2019 Conference Proceedings. Volume 4: Learning, Technology, Thinking

    Get PDF
    In September 2019 Manchester School of Art at Manchester Metropolitan University was honoured to host the bi-annual conference of the International Association of Societies of Design Research (IASDR) under the unifying theme of DESIGN REVOLUTIONS. This was the first time the conference had been held in the UK. Through key research themes across nine conference tracks – Change, Learning, Living, Making, People, Technology, Thinking, Value and Voices – the conference opened up compelling, meaningful and radical dialogue of the role of design in addressing societal and organisational challenges. This Volume 4 includes papers from Learning, Technology and Thinking tracks of the conference

    Ac-counting for carbon emissions: simulating absence through experimental sites of material politics

    Get PDF
    Purpose: Most carbon accounting consists of valuing what has not happened; such absent entities and their materialisation through simulated calculations can enact political participation, however. By using Marres’s (2012) notion of an “experimental site of material politics”, this paper aims to investigate the mediating role of simulated calculations of prevented carbon emissions in deploying environmental politics’ discourses. Here, such calculations become seductive forces for public engagement and help performing engaging spaces for supporting the diffusion of innovation technologies. Design/methodology/approach: The empirical analysis concerns a simulated calculative device developed by Autostrade, a motorway management firm, in its work to translate questions about capacity utilisation, through the fluidity of traffic, into reductions in CO 2 emissions. These reductions took the form of a simulation that required an apparatus to be performed and involved alternative scenarios focussing on hypothetical rather than absolute CO 2 reductions. Findings: The Autostrade case highlights how simulated calculations of absent CO 2 emissions participate in the construction of a collective experience by interfacing concerns that encompass the rationalities of the domestication of technological innovation and make motorway mobility a responsible and ac-countable action. Practical implications: The paper shows how simulated and experimental calculations on absent carbon emissions act as mediators between public engagement and the deployment of environmental politics discourses. They both extend political participation and propagate and reproduce the trials, which, from time to time, challenge the enticement and forcefulness of a technological innovation. Social implications: The paper suggests a different dimension of politics that relies on material politics. Rather than considering human centric discursive acts, it looks at the power of technical objects and their augmented calculative devices in engaging the public in environmental politics. This is where absence, which is made visible and materialised through simulations, deploys affordances that reframe power relationships. Originality/value: This is the first case study that addresses the issue of the role of accounting calculation on absent carbon emissions in enabling innovation and engaging publics in environmental politics

    Ways of engaging. Re-assessing effects of the relationship between landscape architecture and art in community involvement and design practice

    Get PDF
    Doutoramento em Arquitectura Paisagista e Ecologia Urbana - Instituto Superior de Agronomia / Faculdade de CiĂȘncias. Universidade do Porto / faculdade de CiĂȘncias e Tecnologia. Universidade de CoimbraIn 2000, the European Landscape Convention has introduced and highlighted a number of key points which intended to renew the ways of approaching the landscape, also covering the subjects of public participation or the diversity of disciplinary articulations — for example, a greater concern was expressed about the places where people live, such as urban and periurban areas; the public should have an active role and responsibility as well as awareness raising, training and education through an enhanced part in participation actions; crossdisciplinary and more diversity on the approaches related to landscape matters are needed. It was from this context that this investigation was developed, proposing a different perspective of analysis between landscape architecture and art, that is: on the one hand, it was intended to address the current challenges related to the public engagement and participation taking into account the long experience of the art practices in participatory projects; on the other hand, it was intended to contribute to a better clarification on how different disciplines such as landscape architecture and art address similar themes and concerns, and how this can contribute to more efficient design practices and diversified collaborations. Thus, different approaches were analyzed and discussed, produced from temporary projects carried out by artists or by different collaborations between art, landscape architecture and other disciplines, in order to contribute not only to more efficient and inclusive design practices, but also to improve engagement processes between the public, the design team and the project. The aim is to reinforce a more active role of the public that may translate into responsibility as well as in awareness raising, training, and education, mainly referring to the specific context of the urban landscapeN/

    Recovery for sporadic operations on cloud applications

    Full text link
    Cloud-based systems get changed more frequently than traditional systems. These frequent changes involve sporadic operations such as installation and upgrade. Sporadic operations on cloud manipulate cloud resources and they are prone to unpredictable and inevitable failures largely due to cloud uncertainty. To recover from failures in sporadic operations on cloud, we need cloud operational recovery strategies. Existing operational recovery methods on cloud have several drawbacks, such as poor generalizability of the exception handling mechanism and the coarse-grained recovery manner of rollback mechanisms. Hence, this thesis proposes a novel and innovative recovery approach, called POD-Recovery, for sporadic operations on cloud. One novelty of POD-Recovery is that it is based on eight cloud operational recovery requirements formulated by us (e.g. recovery time objective satisfaction and recovery generalizability). Another novelty of POD-Recovery is that it is non-intrusive and does not modify the code which implements the sporadic operation. POD-Recovery works in the following innovative way: it first treats a sporadic operation as a process which provides the workflow of the operation and the contextual information for each operational step. Then, it identifies the recovery points (where failure detection and recovery should be performed) inside the sporadic operation, determines the unified resource space (the resource types required and manipulated by the sporadic operation), and generates the expected resource state templates (the abstraction level of resource states) for all operational steps. For a given recovery point inside the sporadic operation, POD-Recovery first filters the applicable recovery patterns from the eight recovery patterns it supports and then automatically generates the recovery actions for the applicable recovery patterns. Next, it evaluates the generated applicable recovery actions based on the metrics of Recovery Time, Recovery Cost and Recovery Impact. This quantitative evaluation leads to the selection of an acceptable recovery action for execution for a given recovery point. We implement POD-Recovery and evaluate it by recovering from faults injected into five representative types of sporadic operations on cloud. The experimental results show that POD-Recovery is able to perform operational recovery while satisfying all the recovery requirements and it improves on the existing recovery methods for cloud operations
    corecore