(Syql) an Abstraction Layer for Querying Software Models

Total Page:16

File Type:pdf, Size:1020Kb

(Syql) an Abstraction Layer for Querying Software Models System Query Language (SyQL) An Abstraction Layer for Querying Software Models By: Dott. Ing. Mirco Bianco Faculty Supervisor: Prof. Werner Nutt External Supervisor: Prof. Ernesto Damiani A thesis submitted for the degree of Doctor of Philosophy Faculty of Computer Science Free University of Bozen-Bolzano April 2012 Dedico questo lavoro a chi per qualsiasi motivo, lo consulterà. E mi auguro che, in queste pagine, riesca a trovare qualcosa di utile. Table of Contents 1 Introduction................................................................................................................1 1.1 Problem Statement..............................................................................................3 1.2 Goals...................................................................................................................4 1.3 Methodology.......................................................................................................5 1.4 Publications.........................................................................................................6 1.5 Thesis Organization............................................................................................7 2 Motivations...............................................................................................................11 2.1 First Motivation – The language aspect............................................................11 2.2 Second Motivation – Object-Oriented Facilities..............................................15 2.3 Third Motivation – Linguistic Variables...........................................................19 2.4 Fourth Motivation – Conciseness.....................................................................21 2.5 Fifth Motivation – Handling Uncertainty Without Affecting the Schema........23 3 Related work.............................................................................................................31 3.1 Software Measurement Theory.........................................................................31 3.2 Automated In-process Software Engineering Measurement and Analysis Systems....................................................................................................................34 3.3 Domain Specific Languages – DSL.................................................................36 3.3.1 DSLs Implementation Patterns.................................................................39 3.4 Software Fault-Proneness Prediction................................................................41 3.5 Similar Tools ....................................................................................................47 3.5.1 Language INtegrated Query – LINQ........................................................49 3.5.2 fuzzySQL..................................................................................................50 3.5.3 SQLf..........................................................................................................51 3.5.4 Semmle – .QL ..........................................................................................52 3.5.5 dmFSQL....................................................................................................53 3.5.6 SCQL ........................................................................................................55 3.5.7 NDepend – CQL.......................................................................................56 3.5.8 COOR – CQL...........................................................................................57 4 The PROM System...................................................................................................59 4.1 The Architecture...............................................................................................59 4.2 Software Metrics Extractors.............................................................................60 i 4.2.1 Code Meta-Model.....................................................................................60 4.2.2 C# Metrics Extractor ................................................................................63 4.2.2.1 Preprocessor...........................................................................................65 4.2.2.2 Parser......................................................................................................65 4.2.3 Java Metrics Extractor..............................................................................67 4.3 Where SyQL is placed......................................................................................70 5 System Query Language – SyQL.............................................................................71 5.1 Language Structure ..........................................................................................72 5.2 Data Model.......................................................................................................78 5.3 Language Semantics.........................................................................................80 5.3.1 Mapping of a relational database schema into a SyQL schema................84 5.4 Architecture.......................................................................................................91 5.5 SyQL Query Planning and Execution...............................................................96 5.5.1 The Main Approach..................................................................................96 5.5.2 Query Data Flow.......................................................................................97 5.5.3 SQL Translation .....................................................................................100 5.6 Support for Linguistic Variables ....................................................................103 5.6.1 Implementation.......................................................................................104 5.6.2 Linguistic Variables and Software Metrics.............................................105 5.7 Optimizations..................................................................................................112 5.7.1 Conditions Sorting..................................................................................112 5.7.2 Parallel Execution...................................................................................114 5.7.3 Concept Tuning.......................................................................................114 5.8 Available Concepts..........................................................................................115 5.8.1 Class........................................................................................................118 5.8.2 Method and TestMethod.........................................................................120 5.8.3 Bug and ClosedBug................................................................................122 5.8.4 User.........................................................................................................123 5.8.5 Chronon...................................................................................................123 5.8.6 Util..........................................................................................................124 6 Extensibility............................................................................................................125 6.1 How to Implement New Concepts..................................................................126 ii 6.1.1 Step 1 – SQL Definition..........................................................................127 6.1.2 Step 2 – Definition of Attributes and Constructors.................................129 6.1.3 Step 3 – Definition of the Materialization Logic....................................131 6.1.4 Step 4 – Definition of the Equivalence and Hashing Properties.............133 6.1.5 Step 5 – Definition of the External Methods..........................................135 6.1.6 Step 6 – Definition of the Internal Methods...........................................136 6.2 How to Implement New Fuzzy Evaluators.....................................................140 6.2.1 Step 1 – Definition of the Measure and of the Evaluation Logic...........140 6.2.2 Step 2 – Definition of the Fuzzy Evaluator.............................................142 7 Performance Evaluation.........................................................................................144 7.1 Abstraction Layer Assessment........................................................................144 7.1.1 Testing Methodology and Infrastructure.................................................144 7.1.2 Number of Concepts...............................................................................146 7.1.3 Number of Cores.....................................................................................151 7.1.4 Discussion...............................................................................................155 7.2 Language Assessment.....................................................................................156 8 Limitations..............................................................................................................158 8.1 Only Domain Specific – Data Manipulation Language.................................158 8.2 No Closure......................................................................................................161 8.3 Query Planning...............................................................................................163 9 Validation................................................................................................................165
Recommended publications
  • A Logical Framework for Temporal Deductive Databases S
    A logical framework for temporal deductive databases S. M. Sripada Departmentof Computing Imperial College of Science& Technology 180 Queen’sGate, London SW7 2BZ Abstract researchers have incorporated time into conventional databasesusing various schemes Temporal deductive databases are deductive providing different capabilities for handling databaseswith an ability to representboth valid temporal information. In particular, work has time and transaction time. The work is basedon been done on adding temporal information to the Event Calculus of Kowalski & Sergot. Event conventionaldatabases to turn them into temporal Calculus is a treatment of time, based on the databases. However, no work is done on notion of events, in first-order classical logic handling both transaction time and valid time in augmentedwith negation as failure. It formalizes deductive databases.In this paper we propose a the semanticsof valid time in deductivedatabases framework for dealing with time in temporal and offers capability for the semantic validation deductivedatabases. of updates and default reasoning. In this paper, the Event Calculus is extended to include the Snodgrass dz Ahn [16,17] describe a concept of transaction time. The resulting classification of databasesdepending on their framework is capable of handling both proactive ability to represent temporal information. They and retroactive updates symmetrically. Error identify three different concepts of time - valid correction is achievedwithout deletionsby means time, transaction time and user-defined time. Of of negation as failure. The semantics of these, user-defined time is temporal transaction time is formalised and the axioms of information of some kind that is of interest to the the Event Calculus are modified to cater for user but does not concern a DBMS.
    [Show full text]
  • Learning About Women and Urban Services N Latin America and the Caribbean
    P w- N :jk)- (,. -2 LEARNING ABOUT WOMEN AND URBAN SERVICES N LATIN AMERICA AND THE CARIBBEAN A Report on the Women, Low-h;come Households and Urban Services Project of The Population Council Wikh Selected Contributions from The International Center for Research on Women The Equity Policy Center The Development Planning Unit of University College LEARNING ABOUT WOMEN AND URBAN SERVICES IN LATIN AMERICA AND THE CARIBBEAN A Report on the Wbmen, Low-income Householdsand UrbanServices Project of The Population Council With Selected Contributions from The InternationalCenter for Research on Women The Equity Policy Cenier The Development Planning Unit of University College Marianne Schmink Judith Bruce and Marilyn Kohn Editors © 1986 The Population Council, Inc. Selections of this volume may be reproduced for teaching purposes in naga7ines and newspapers with acknowledgment to this report, to the authors, and the sponsoring institutions. The majority of the articles in this volume are an outgrowth of working group deliberations, the research and related activities of the Women, Low-Income Households, and Urban Services Project of the Population Council. The first phase of this project was supported by the United States Agency for International Development under Cooperative Agreement No. AID/OTR-0007-A-00-1154-00. The views expressed by the authors are their own. CONTENTS LEARNING ABOUT WOMEN AND URBAN SERVICES IN LATIN AMERICA AND THE CARIBBEAN A Report on the Women, Low-Income Households and Urban Services Project of tho Population Council With Selected Contributions from: The International Center for Research on Women The Equity Policy Center The Development Planning Unit of University College Preface Judith Bruce Part I.
    [Show full text]
  • Temporal Metadata for Discovery
    Temporal Metadata for Discovery A review of current practice Makx Dekkers AMI Consult SARL Massimo Craglia (Editor) European Commission DG JRC Institute for Environment and Sustainability EUR 23209 EN - 2008 The mission of the Institute for Environment and Sustainability is to provide scientific-technical support to the European Union’s Policies for the protection and sustainable development of the European and global environment. European Commission Joint Research Centre Institute for Environment and Sustainability Contact information Makx Dekkers Address: AMI Consult Société à responsabilité limitée B.P. 647 2016 Luxembourg E-mail: [email protected] Massimo Craglia (Editor) Address: European Commission Joint Research Centre Institute for Environment and Sustainability Spatial Data Infrastructures Unit TP262, Via Fermi 2749 I-21027 Ispra (VA) ITALY E-mail: [email protected] Tel.: +39-0332-786269 Fax: +39-0332-786325 http://ies.jrc.ec.europa.eu/ http://www.jrc.ec.europa.eu/ Legal Notice Neither the European Commission nor any person acting on behalf of the Commission is responsible for the use which might be made of this publication. Europe Direct is a service to help you find answers to your questions about the European Union Freephone number (*): 00 800 6 7 8 9 10 11 (*) Certain mobile telephone operators do not allow access to 00 800 numbers or these calls may be billed. A great deal of additional information on the European Union is available on the Internet. It can be accessed through the Europa server http://europa.eu/ JRC 42620 EUR 23209 EN ISSN 1018-5593 Luxembourg: Office for Official Publications of the European Communities © European Communities, 2008 Reproduction is authorised provided the source is acknowledged Printed in Italy Table of contents 1 BACKGROUND AND RATIONALE ....................................................................
    [Show full text]
  • Zhang Xianliang, Samuel Beckett and Albert Camus
    DEATH IN THREE NOVELS BY ZHANG XIANLIANG, SAMUEL BECKETT AND ALBERT CAMUS BY MAK MEI KWAN ALISA B.A., Chinese University of Hong Kong, 1997 THESIS Submitted to the Graduate School of The Chinese University of Hong Kong In partial fulfillment of the requirements for the degree MASTER OF PHILOSOPHY IN ENGLISH Hong Kong 2000 i(njy;! 11 )i UNIVERSITY ^^XLIBRARY Table of Contents Abstract i 摘要 iii Acknowledgements v Chapter One: 1 The Displaced Man Chapter Two: 19 The Fragmented Self in Xiguan siwang Getting Used to Dying Chapter Three: 46 Deatti of the Author: An Abandoned Being in Malofie\ Dies Chapter Four: 67 Death of Sharing: A Man of Authenticity in The Outsider Chapter Five: 94 Conclusion: The Helplessness of Life Works Cited 108 Wor卜 Consulted 115 丨 I 1 I i Abstract This thesis examines the fictional treatment of the topic death in three writers, Zhang Xianliang, Samuel Beckett and Albert Camus, of the century, presenting an age of life-in-death. Their treatments of death are believed to be the result of pressure from the socio-political background in different parts of the world. The first chapter is a brief sketch of the socio-political conditions affecting the three writers. It points out that an individual is by no means trapped in the relationship with the society, which makes them suffer from a deep sense of helplessness. The writers' personal experiences of being exposed to multi-national environment adds complexity to such relationship. r� I • ;Chapter Two examines how political power penetrates into the human mind and causes psychological distortion in the novel Getting Used to Dying 習 1 貫死亡� Itreveals the real power of the Chinese politics.
    [Show full text]
  • Dealing with Granularity of Time in Temporal Databases
    DEALING WITH GRANULARITY OF TIME IN TEMPORAL DATABASES Gio Wiederhold t Department of Computer Science Stanford University, Stanford, CA 94305-2140, U.S.A. Sushil Jajodia Department of Information Systems and Systems Engineering George Mason University, Fairfax, VA 22030-4444, U.S.A. Witold Litwin* I.N.R.I.A. 78153 Le Chesnay, France ABSTRACT A question that always arises when dealing with temporal informa- tion is the granularity of the values in the domain type. Many different approaches have been proposed; however, the community has not yet come to a basic agree- ment. Most published temporal representations simplify the issue which leads to difficulties in practical applications. In this paper, we resolve the issue of temporal representation by requiring two domain types (event times and intervals), formal- ize useful temporal semantics, and extend the relational operations in such a way that temporal extensions fit into a relational representation. Under these considera- tions, a database system that deals with temporal data can not only present con- sistent temporal semantics to users but perform consistent computational sequences on temporal data from diverse sources. 1. Introduction Large databases do not just collect data about the current state of objects but retain infor- marion about past states as well. In the past, when storage was costly, such data was often not retained online. Aggregations of past information might have been kept, and detail data was archived. Certain applications always required that an adequate history be kept. In medical data- base systems a record of past events is necessary to avoid repeating ineffective or inappropriate treatments, and in other applications legal or planning requirements make keeping of a history desirable.
    [Show full text]
  • A Centralized Ledger Database for Universal Audit and Verification
    LedgerDB: A Centralized Ledger Database for Universal Audit and Verification Xinying Yangy, Yuan Zhangy, Sheng Wangx, Benquan Yuy, Feifei Lix, Yize Liy, Wenyuan Yany yAnt Financial Services Group xAlibaba Group fxinying.yang,yuenzhang.zy,sh.wang,benquan.ybq,lifeifei,yize.lyz,[email protected] ABSTRACT certain consensus protocol (e.g., PoW [32], PBFT [14], Hon- The emergence of Blockchain has attracted widespread at- eyBadgerBFT [28]). Decentralization is a fundamental basis tention. However, we observe that in practice, many ap- for blockchain systems, including both permissionless (e.g., plications on permissioned blockchains do not benefit from Bitcoin, Ethereum [21]) and permissioned (e.g., Hyperledger the decentralized architecture. When decentralized architec- Fabric [6], Corda [11], Quorum [31]) systems. ture is used but not required, system performance is often A permissionless blockchain usually offers its cryptocur- restricted, resulting in low throughput, high latency, and rency to incentivize participants, which benefits from the significant storage overhead. Hence, we propose LedgerDB decentralized ecosystem. However, in permissioned block- on Alibaba Cloud, which is a centralized ledger database chains, it has not been shown that the decentralized archi- with tamper-evidence and non-repudiation features similar tecture is indispensable, although they have been adopted to blockchain, and provides strong auditability. LedgerDB in many scenarios (such as IP protection, supply chain, and has much higher throughput compared to blockchains. It merchandise provenance). Interestingly, many applications offers stronger auditability by adopting a TSA two-way peg deploy all their blockchain nodes on a BaaS (Blockchain- protocol, which prevents malicious behaviors from both users as-a-Service) environment maintained by a single service and service providers.
    [Show full text]
  • Time, Points and Space - Towards a Better Analysis of Wildlife Data in GIS
    Time, Points and Space - Towards a Better Analysis of Wildlife Data in GIS Dissertation zur Erlangung der naturwissenschaftlichen Doktorw¨urde (Dr. sc. nat.) vorgelegt der Mathematisch-naturwissenschaftlichen Fakult¨at der Universit¨at Z¨urich von Stephan Imfeld von Lungern OW Begutachtet von Prof. Dr. Kurt Brassel Prof. Dr. Bernhard Nievergelt Dr. Britta Allg¨ower Prof. Dr. Peter Fisher Z¨urich 2000 Die vorliegende Arbeit wurde von der Mathematisch-naturwissenschaftlichen Fakult¨at der Universit¨at Z¨urich auf Antrag von Prof. Dr. Kurt Brassel und Prof. Dr. Robert Weibel als Dissertation angenommen. How to Catch Running Animals with GIS and See What They’re up to i Abstract Geographical Information Systems are powerful instruments to analyse spatial data. Wildlife researchers and managers are always confronted with spatial data analysis and make use of these systems for various tasks. One important characteristic of the animals unter investigation is their locomotion. Thus the temporal aspects are important, but unfortunately GIS are almost ignorant concerning the analysis of the temporal domain. This thesis is trying to provide a new perspective on how to analyse moving point objects within GIS. A conceptual shift is performed from a space centered view to a way of analysing spatial and temporal aspects in an equally balanced way. For this purpose the family of analytical Time Plots was developed. They represent a completely new approach of how to analyse moving point objects. They transform the data originating from an animal’s movements into a repre- sentation with two time axes and one spatial axis that allows for an effective recognition of spatial patterns within the data.
    [Show full text]
  • Fuzzy Querying Based Tool for Building Courses Evaluation Tests
    Fuzzy Querying based Tool for Building Courses Evaluation Tests Livia Borjas1, Josué Ramírez1, Rosseline Rodríguez2 and Leonid Tineo2 1 Departamento de Informática, IUT Federico Rivero Palacios, Caracas, Venezuela 2 Departamento de Computación, Universidad Simón Bolívar, Caracas, Venezuela Keywords: Computer Aided Education, e-Learning, Fuzzy Querying. Abstract: In this paper, we present a tool intended for helping in exam configuration based on the reutilization of questions according to user preferences. It is a real life application of fuzzy querying that fulfils an actual need of academic personal at a high studies institution of Venezuela. This application uses the fuzzy querying language SQLf, on top of an existing relational DBMS by means a logic layer named SQLfi. Final users of our application are professors of any area without knowledge of fuzzy sets and databases. We use criteria for the test preparation that support fuzzy terms. These terms can be adjusted to user preferences. Graphic user interfaces are provided in order to perform such adjusts as well as exam configuration and any other fuzzy querying operation. We present here the Database Design, the process test construction and the management of preferences. 1 INTRODUCTION previous experiences. Consequently, a database storing this information is required. The use of these Professors throughout their carriers have to measure data might require the definition of searches based the performance of their students basically through on preferences including fuzzy terms. the application of written tests. The design of these Another important factor is the consideration of tests might become sometimes a discouraging the grades or results obtained in previous tests (for process given its repetitive nature.
    [Show full text]
  • SQL and Temporal Database Research: Unified Review and Future Directions
    International Research Journal of Engineering and Technology (IRJET) e-ISSN: 2395-0056 Volume: 04 Issue: 09 | Sep -2017 www.irjet.net p-ISSN: 2395-0072 SQL and Temporal Database Research: Unified Review and Future Directions Rose-Mary Owusuaa Mensah1, Vincent Amankona2 1Postgraduate Student, Kwame Nkrumah University of Science and Technology, Kumasi, Ghana 2 Postgraduate Student, Kwame Nkrumah University of Science and Technology, Kumasi, Ghana ---------------------------------------------------------------------***--------------------------------------------------------------------- Abstract - Several attempts to incorporate temporal In the early 1990s, a renowned researcher in the database extensions into the Structured Query Language, SQL, one of community, Richard Snodgrass, proposed that temporal the most popular query languages for databases date back extensions to SQL be developed because few of them to the nineteenth and twentieth century. Although a lot of existed. In response to his proposal [1], a committee was work and research has been done on temporal databases formed to consolidate past research and suggestions from and SQL, there exist very limited literature clearly outlining the research community in order to design temporal the various events which have taken place with regards to extensions to the 1992 edition of the SQL standard. Those temporal extensions of SQL over the years till the present extensions, known as TSQL2, were then developed by this state in a concise document. Consequently, researchers need committee and in 1993, they presented proposals to the to gather several pieces of literature before they can obtain ANSI SQL Technical Committee. Based on responses to the a vivid pictorial timeline of the history and the current state proposals, changes were made to the Language, and the of these temporal extensions for research and software definitive version of the TSQL2 Language Specification development purposes.
    [Show full text]
  • The Multi-Temporal Database of Planetary Image Data (Muted): New Features to Study Dynamic Mars
    50th Lunar and Planetary Science Conference 2019 (LPI Contrib. No. 2132) 1001.pdf THE MULTI-TEMPORAL DATABASE OF PLANETARY IMAGE DATA (MUTED): NEW FEATURES TO STUDY DYNAMIC MARS. T. Heyer1, H. Hiesinger1, D. Reiss1, J. Raack1, and R. Jaumann2, 1Institut für Planetologie, Westfälische Wilhelms-Universität, Wilhelm-Klemm-Str. 10, 48149 Münster, Germany, 2German Aerospace Center (DLR), Berlin, Germany. ([email protected]) Introduction: The Multi-Temporal Database of Structure: MUTED is based on open source Planetary Image Data (MUTED) is a web-based tool to software and standards from the Open Geospatial support the identification of surface changes and time- Consortium (OGC). Metadata of the planetary image critical processes on Mars. The database enables scien- datasets are integrated from the Planetary Data System tists to quickly identify the spatial and multi-temporal (PDS) into a relational database (PostGreSQL). In coverage of orbital image data of all major Mars mis- order to provide the multi-temporal coverage, addi- sions. Since the 1970s, multi-temporal spacecraft tional information, e.g., the geometry, the number and observations have revealed that the martian surface is time span of overlapping images are derived for each very dynamic [e.g., 1-3]. The observation of surface image respectively. A Geoserver translates the metada- changes and processes, including eolian activity [e.g., ta stored in the relational database into web map ser- 5, 6], mass movement activities [e.g., 6, 7, 8], the vices (WMS) and web features services (WFS). Using growth and retreat of the polar caps [e.g., 9, 10], and Common Query Language (CQL), the web services crater-forming impacts [11] became possible by the can be filtered by date, solar longitude, spatial resolu- increasing number of repeated image acquisitions of tion, incidence angle, and spatial extend.
    [Show full text]
  • NLS Second Follow-Up-Questionnaire
    NOTICE-All information which would permit 0.M.B. No. 51-S-74032 Identification of the individual will be held APPROVAL EXPIRES SEPT: 1975 in strict -confidence, will be used only by persons engaged in and for the purposes of the survey, and will not be disclosed or released to others for any purpo513s. OPERATION FOLLOW-UP '·· NATIONAL LONGITUDINAL STUDY OF THE HIGH SCHOOL CLASS OF 1972 Second Follow-Up Questionnaire Prepared fur the DEPART\H:NTOF HEAL TH. EOUCAfl'Ji>J .\\JC• ·,~;f:l.FARt BY AESE:::AHCH TH1ANlilE 1'\lSTITliTt r•E.SE..O.ACH TRIAf~~jlE: PA.HK NOfl rH CAAOLll'lA FALi,,. 1974 National Center for Educational Statistics Education Division Department of Health, Education, and Welfare Washington, D.C. 20202 DIRECTIONS This questionnaire is divided into the following seven sections: A. General Information B. Education & Training C. Work Experience D. Family Status E. Military Service F. Activities and Opinions G. Background Information Start by answering questions in Section A. You will need to answer the first question in each section, but you may not need to answer all the questions in every section. You may be able to skip most of some sections. We have designed the questionnaire with special instructions in red beside responses which allow you to skip one or more questions. Follow these instructions when they apply to you. Read carefully each question you answer. It is important that you follow the directions for responding, which are • (Circle one.) • !Circle as many as apply.) • (Circle one number on each tine.) Sometimes you are asked to fill in a blank-in these cases.
    [Show full text]
  • Self-Organizing Networks and GIS Tools Cases of Use for the Study of Trading Cooperation (1400-1800)
    Journal of Knowledge Management, Economics and Information Technology Self-organizing Networks and GIS Tools Cases of Use for the Study of Trading Cooperation (1400-1800) Ana Crespo Solana and David Alonso García (coords.) Copyright © 2012 by Scientific Papers and individual contributors. All rights reserved. Scientific Papers holds the exclusive copyright of all the contents of this journal. In accordance with the international regulations, no part of this journal may be reproduced or transmitted by any media or publishing organs (including various websites) without the written permission of the copyright holder. Otherwise, any conduct would be considered as the violation of the copyright. The contents of this journal are available for any citation, however, all the citations should be clearly indicated with the title of this journal, serial number and the name of the author. Edited and printed in France by Scientific Papers @ 2012. Editorial Board: Adrian GHENCEA, Claudiu POPA This publication has been sponsored by the Research Project: “Geografía Fiscal y Poder financiero en Castilla” Ref. HAR2010-15168, MICINN, Spain, and GlobalNet, Ref. HAR2011-27694, MICINN, Spain. Self-organizing Networks and GIS Tools Cases of Use for the Study of Trading Cooperation (1400-1800) Summary: 1. J. B. “Jack” Owens, Dynamic Complexity of Cooperation-Based Self-Organizing Commercial Networks in the First Global Age (DynCoopNet): What’s in a name? 2. Monica Wachowicz and J. B. “Jack” Owens, Dynamics of Trade Networks: The main research issues on space-time representations. 3. Adolfo Urrutia Zambrana, María José García Rodríguez, Miguel A. Bernabé Poveda, Marta Guerrero Nieto, Geo-history: Incorporation of geographic information systems into historical event studies.
    [Show full text]