What You Always Wanted to Know About Datalog (And Never Dared to Ask)

Total Page:16

File Type:pdf, Size:1020Kb

What You Always Wanted to Know About Datalog (And Never Dared to Ask) 146 IEEE TRANSACTIONS ON KNOWLEDGE AND DATA ENGINEERING, VOL. I, NO. I, MARCH 1989 What You Always Wanted to Know About Datalog (And Never Dared to Ask) STEFANO CERI, GEORG GOTTLOB, AND LETIZIA TANCA Abstract-Datalog is a database query language based on the logic temal databases typically do not allow data sharing and programming paradigm; it has been designed and intensively studied over the last five years. We present the syntax and semantics of Datalog recovery, thus do not properly belong to current database and its use for querying a relational database. Then, we classify opti- technology [26]. The spread and success of such en- mization methods for achieving efficient evaluations of Datalog que- hanced AI systems, however, indicate that there is a great ries, and present the most relevant methods. Finally, we discuss var- need for them. ious exhancements of Datalog, currently under study, and indicate what Loose coupling has been attempted in the area of Logic is still needed in order to extend Datalog’s applicability to the solution of real-life problems. The aim of this paper is to provide a survey of Programming and databases as well, by interconnecting research performed on Datalog, also addressed to those members of Prolog systems to relational databases [42], [25], [46], the database community who are not too familiar with logic program- [W, [331, [971. ming concepts. Although interesting results have been achieved, most Zndex Terms-Deductive databases, logic programming, recursive studies indicate that simple interfaces are too inefficient; queries, relational databases, query optimization. an enhancement in efficiency is achieved by intelligent interfaces [64], [33]. This indicates that loose coupling might in fact solve today’s problems, but on the long I. INTRODUCTION range, strong integration is required. More generally, we ecent years have seen substantial efforts in the direc- expect that knowledge base management systems will R tion of merging artificial intelligence and database provide direct access to data and will support rule-based technologies for the development of large and persistent interaction as one of the programming paradigms. Da- knowledge bases. An important contribution towards this talog is a first step in this direction. goal comes from the integration of logic programming and The reaction of the database community to Datalog has databases. The focus has been mostly concentrated by the often been marked by skepticism; in particular, the im- database theory community on well-formalized issues, mediate or even future practical use of research on so- like the definition of a new rule-based language, called phisticated rule-based interactions has been questioned Datalog, specifically designed for interacting with large [94]. Nevertheless, we do expect that Datalog’s experi- databases; and the definition of optimization methods for ence, properly filtered, will teach important lessons to re- various types of Datalog rules, together with the study of searchers involved in the development of knowledge base their efficiency [ 1201, [ 151, [ 161. In parallel, various ex- systems. The purpose of this paper is to give a self-con- perimental projects have shown the feasibility of Datalog tained survey of the research that has been performed re- programming environments [ 1191, [24], [88]. ’ cently on Datalog. More exhaustive treatments can be Present efforts in the integration of artificial intelligence found in the books [34], [ 1221, and [92]. Other interesting and databases take a much more basic and pragmatic ap- survey papers, approaching the subject from different per- proach; in particular, several attempts fall in the category spectives, are [53] and [loo]. of “loose coupling,” where existing AI and DB environ- This paper is organized as follows. In Section II we ments are interconnected through ad-hoc interfaces. In present the foundations of Datalog: the syntactic structure other cases, AI systems have solved persistency issues by and the semantics of Datalog programs. In Section III we developing internal databases for their tools; but these in- explain how Datalog is used as a query language over re- lational databases; in particular, we indicate how Datalog can be immediately translated to equations of relational Manuscript received March 1, 1989. This paper is based on Parts II and III of the book by S. Ceri, G. Gottlob, and L. Tanca, Logic Programming algebra. In Section IV we present a taxonomy of the var- and Databases (New York: Springer-Verlag. to be published). ious optimization methods, emphasizing the distinction S. Ceri is with the Dipartimento di Matematica, Universita di Modena, between program transformation and evaluation methods. Modena, Italy. G. Gottlob is with the Institut fur Angenwandte Informatik, TU, Wien, In Section V, we present a survey of evaluation methods Austria. and program transformation techniques, selecting the most L. Tanca is with the Dipartimento di Elettronica, Politecnico di Milano, representative ones within the classes outlined in Section Milano, Italy, IEEE Log Number 8928 155. IV. In Section VI, we present several formal extensions ‘The term “Datalog” was also used by Maier and Warren in [82] to given to the Datalog language to enhance its expressive- denote a subset of Prolog. ness, and we survey some of the current research projects 1041-4347/89/0300-0146$01 .OO 0 1989 IEEE CERI ef al.: DATALOG 147 in this area. Finally, in Section VII we attempt an evalu- of the same arity, i.e., that they have the same number of ation of what will be required in Datalog in order to be- arguments. A literal, fact, rule, or clause which does not come more attractive and usable. contain any variables is called ground. Any Datalog program P must satisfy the following II. DATALOG: SEMANTICS AND EVALUATION safety conditions. PARADIGMS l Each fact of P is ground. In this section we define the syntax of the Datalog query l Each variable which occurs in the head of a rule of language and explain its logical semantics. We give a P must also occur in the body of the same rule. model-theoretic characterization of Datalog programs and These conditions guarantee that the set of all facts that show how they can be evaluated in a bottom-up fashion. can be derived from a Datalog program is finite. This evaluation corresponds to computing a least fixpoint. Finally, we briefly mention another evaluation paradigm B. Datalog and Relational Databases called “top-down evaluation,” and compare Datalog to In the context of general Logic Programming it is usu- the well-known logic programming language Prolog. ally assumed that all the knowledge (facts and rules) rel- evant to a particular application is contained within a sin- A. The Syntax of Datalog Programs gle logic program P. Datalog, on the other hand, has been Datalog is in many respects a simplified version of gen- developed for applications which use a large number of eral Logic Programming 1781. A logic program consists facts stored in a relational database. Therefore, we will of a finite set offacts and rules. Facts are assertions about always consider two sets of clauses: a set of ground facts, a relevant piece of the world, such as: “John is the father called the Extensional Database (EDB), physically stored of Harry”. Rules are sentences which allow us to deduce in a relational database, and a Datalog program P called facts from other facts. An example of a rule is: “If X is the Znt$zsional Database (ZDB).3 The predicates occur- a parent of Y and if Y is a parent of 2, then X is a grand- ring in the EDB and in P are divided into two disjoint sets: parent of Z”. Note that rules, in order to be general, usu- the EDB-predicates, which are all those occurring in the ally contain variables (in our case, X, Y, and Z ). Both extensional database and the IDB-predicates, which occur facts and rules are particular forms of knowledge. in P but not in the EDB. We require that the head predi- In the formalism of Datalog both facts and rules are cate of each clause in P be an IDB-predicate. EDB-pred- represented as Horn clauses of the general shape icates may occur in P, but only in clause bodies. Ground facts are stored in a relational database; we as- Lo :- L,, . ) L, sume that each EDB-predicate r corresponds to exactly where each Li is a literal of the form pi (t,, . , tk,) such one relation R of our database such that each fact r ( cl, that pi is a predicate symbol and the t, are terms. A term . ) ck) of the EDB is stored as a tuple < cl, . , c, > is either a constant or a variable.* The left-hand side of R. (LHS) of a Datalog clause is called its head and the right- Also the IDB-predicates of P can be identified with re- hand side (RHS) is called its body. The body of a clause lations, called ZDB-relations, or also derived relations, may be empty. Clauses with an empty body represent defined through the program P and the EDB. IDB rela- facts; clauses with at least one literal in the body represent tions are not stored explicitly, and correspond to rela- rules. tional views. The materialization of these views, i.e., their The fact “John is the father of Bob”, for example, can effective (and efficient) computation, is the main task of be represented as father (bob, john). The rule “If X is a a Datalog compiler or interpreter. parent of Y and if Y is a parent of Z, then X is a grand- As an example of a relational EDB, consider a database parent of Z” can be represented as Et consisting of two relations with respective schemes PERSON(NAME) and PAR(CHILD, PARENT).
Recommended publications
  • Dedalus: Datalog in Time and Space
    Dedalus: Datalog in Time and Space Peter Alvaro1, William R. Marczak1, Neil Conway1, Joseph M. Hellerstein1, David Maier2, and Russell Sears3 1 University of California, Berkeley {palvaro,wrm,nrc,hellerstein}@cs.berkeley.edu 2 Portland State University [email protected] 3 Yahoo! Research [email protected] Abstract. Recent research has explored using Datalog-based languages to ex- press a distributed system as a set of logical invariants. Two properties of dis- tributed systems proved difficult to model in Datalog. First, the state of any such system evolves with its execution. Second, deductions in these systems may be arbitrarily delayed, dropped, or reordered by the unreliable network links they must traverse. Previous efforts addressed the former by extending Datalog to in- clude updates, key constraints, persistence and events, and the latter by assuming ordered and reliable delivery while ignoring delay. These details have a semantics outside Datalog, which increases the complexity of the language and its interpre- tation, and forces programmers to think operationally. We argue that the missing component from these previous languages is a notion of time. In this paper we present Dedalus, a foundation language for programming and reasoning about distributed systems. Dedalus reduces to a subset of Datalog with negation, aggregate functions, successor and choice, and adds an explicit notion of logical time to the language. We show that Dedalus provides a declarative foundation for the two signature features of distributed systems: mutable state, and asynchronous processing and communication. Given these two features, we address two important properties of programs in a domain-specific manner: a no- tion of safety appropriate to non-terminating computations, and stratified mono- tonic reasoning with negation over time.
    [Show full text]
  • GRAPH DATABASE THEORY Comparing Graph and Relational Data Models
    GRAPH DATABASE THEORY Comparing Graph and Relational Data Models Sridhar Ramachandran LambdaZen © 2015 Contents Introduction .................................................................................................................................................. 3 Relational Data Model .............................................................................................................................. 3 Graph databases ....................................................................................................................................... 3 Graph Schemas ............................................................................................................................................. 4 Selecting vertex labels .............................................................................................................................. 4 Examples of label selection ....................................................................................................................... 4 Drawing a graph schema ........................................................................................................................... 6 Summary ................................................................................................................................................... 7 Converting ER models to graph schemas...................................................................................................... 9 ER models and diagrams ..........................................................................................................................
    [Show full text]
  • A Deductive Database with Datalog and SQL Query Languages
    A Deductive Database with Datalog and SQL Query Languages FernandoFernando SSááenzenz PPéérez,rez, RafaelRafael CaballeroCaballero andand YolandaYolanda GarcGarcííaa--RuizRuiz GrupoGrupo dede ProgramaciProgramacióónn DeclarativaDeclarativa (GPD)(GPD) UniversidadUniversidad ComplutenseComplutense dede MadridMadrid (Spain)(Spain) 12/5/2011 APLAS 2011 1 ~ ContentsContents 1.1. IntroductionIntroduction 2.2. QueryQuery LanguagesLanguages 3.3. IntegrityIntegrity ConstraintsConstraints 4.4. DuplicatesDuplicates 5.5. OuterOuter JoinsJoins 6.6. AggregatesAggregates 7.7. DebuggersDebuggers andand TracersTracers 8.8. SQLSQL TestTest CaseCase GeneratorGenerator 9.9. ConclusionsConclusions 12/5/2011 APLAS 2011 2 ~ 1.1. IntroductionIntroduction SomeSome concepts:concepts: DatabaseDatabase (DB)(DB) DatabaseDatabase ManagementManagement SystemSystem (DBMS)(DBMS) DataData modelmodel (Abstract) data structures Operations Constraints 12/5/2011 APLAS 2011 3 ~ IntroductionIntroduction DeDe--factofacto standardstandard technologiestechnologies inin databases:databases: “Relational” model SQL But,But, aa currentcurrent trendtrend towardstowards deductivedeductive databases:databases: Datalog 2.0 Conference The resurgence of Datalog inin academiaacademia andand industryindustry Ontologies Semantic Web Social networks Policy languages 12/5/2011 APLAS 2011 4 ~ Introduction.Introduction. SystemsSystems Classic academic deductive systems: LDL++ (UCLA) CORAL (Univ. of Wisconsin) NAIL! (Stanford University) Ongoing developments Recent commercial
    [Show full text]
  • DATALOG and Constraints
    7. DATALOG and Constraints Peter Z. Revesz 7.1 Introduction Recursion is an important feature to express many natural queries. The most studied recursive query language for databases is called DATALOG, an ab- breviation for "Database logic programs." In Section 2.8 we gave the basic definitions for DATALOG, and we also saw that the language is not closed for important constraint classes such as linear equalities. We have also seen some results on restricting the language, and the resulting expressive power, in Section 4.4.1. In this chapter, we study the evaluation of DATALOG with constraints in more detail , focusing on classes of constraints for which the language is closed. In Section 7.2, we present a general evaluation method for DATALOG with constraints. In Section 7.3, we consider termination of query evaluation and define safety and data complexity. In the subsequent sections, we discuss the evaluation of DATALOG queries with particular types of constraints, and their applications. 7.2 Evaluation of DATALOG with Constraints The original definitions of recursion in Section 2.8 discussed unrestricted relations. We now consider constraint relations, and first show how DATALOG queries with constraints can be evaluated. Assume that we have a rule of the form Ro(xl, · · · , Xk) :- R1 (xl,l, · · ·, Xl ,k 1 ), • • ·, Rn(Xn,l, .. ·, Xn ,kn), '¢ , as well as, for i = 1, ... , n , facts (in the database, or derived) of the form where 'if;; is a conjunction of constraints. A constraint rule application of the above rule with these facts as input produces the following derived fact: Ro(x1 , ..
    [Show full text]
  • Data Definition Language (Ddl)
    DATA DEFINITION LANGUAGE (DDL) CREATE CREATE SCHEMA AUTHORISATION Authentication: process the DBMS uses to verify that only registered users access the database - If using an enterprise RDBMS, you must be authenticated by the RDBMS - To be authenticated, you must log on to the RDBMS using an ID and password created by the database administrator - Every user ID is associated with a database schema Schema: a logical group of database objects that are related to each other - A schema belongs to a single user or application - A single database can hold multiple schemas that belong to different users or applications - Enforce a level of security by allowing each user to only see the tables that belong to them Syntax: CREATE SCHEMA AUTHORIZATION {creator}; - Command must be issued by the user who owns the schema o Eg. If you log on as JONES, you can only use CREATE SCHEMA AUTHORIZATION JONES; CREATE TABLE Syntax: CREATE TABLE table_name ( column1 data type [constraint], column2 data type [constraint], PRIMARY KEY(column1, column2), FOREIGN KEY(column2) REFERENCES table_name2; ); CREATE TABLE AS You can create a new table based on selected columns and rows of an existing table. The new table will copy the attribute names, data characteristics and rows of the original table. Example of creating a new table from components of another table: CREATE TABLE project AS SELECT emp_proj_code AS proj_code emp_proj_name AS proj_name emp_proj_desc AS proj_description emp_proj_date AS proj_start_date emp_proj_man AS proj_manager FROM employee; 3 CONSTRAINTS There are 2 types of constraints: - Column constraint – created with the column definition o Applies to a single column o Syntactically clearer and more meaningful o Can be expressed as a table constraint - Table constraint – created when you use the CONTRAINT keyword o Can apply to multiple columns in a table o Can be given a meaningful name and therefore modified by referencing its name o Cannot be expressed as a column constraint NOT NULL This constraint can only be a column constraint and cannot be named.
    [Show full text]
  • Constraint-Based Synthesis of Datalog Programs
    Constraint-Based Synthesis of Datalog Programs B Aws Albarghouthi1( ), Paraschos Koutris1, Mayur Naik2, and Calvin Smith1 1 University of Wisconsin–Madison, Madison, USA [email protected] 2 Unviersity of Pennsylvania, Philadelphia, USA Abstract. We study the problem of synthesizing recursive Datalog pro- grams from examples. We propose a constraint-based synthesis approach that uses an smt solver to efficiently navigate the space of Datalog pro- grams and their corresponding derivation trees. We demonstrate our technique’s ability to synthesize a range of graph-manipulating recursive programs from a small number of examples. In addition, we demonstrate our technique’s potential for use in automatic construction of program analyses from example programs and desired analysis output. 1 Introduction The program synthesis problem—as studied in verification and AI—involves con- structing an executable program that satisfies a specification. Recently, there has been a surge of interest in programming by example (pbe), where the specification is a set of input–output examples that the program should satisfy [2,7,11,14,22]. The primary motivations behind pbe have been to (i) allow end users with no programming knowledge to automatically construct desired computations by supplying examples, and (ii) enable automatic construction and repair of pro- grams from tests, e.g., in test-driven development [23]. In this paper, we present a constraint-based approach to synthesizing Data- log programs from examples. A Datalog program is comprised of a set of Horn clauses encoding monotone, recursive constraints between relations. Our pri- mary motivation in targeting Datalog is to expand the range of synthesizable programs to the new domains addressed by Datalog.
    [Show full text]
  • Datalog Logic As a Query Language a Logical Rule Anatomy of a Rule Anatomy of a Rule Sub-Goals Are Atoms
    Logic As a Query Language If-then logical rules have been used in Datalog many systems. Most important today: EII (Enterprise Information Integration). Logical Rules Nonrecursive rules are equivalent to the core relational algebra. Recursion Recursive rules extend relational SQL-99 Recursion algebra --- have been used to add recursion to SQL-99. 1 2 A Logical Rule Anatomy of a Rule Our first example of a rule uses the Happy(d) <- Frequents(d,rest) AND relations: Likes(d,soda) AND Sells(rest,soda,p) Frequents(customer,rest), Likes(customer,soda), and Sells(rest,soda,price). The rule is a query asking for “happy” customers --- those that frequent a rest that serves a soda that they like. 3 4 Anatomy of a Rule sub-goals Are Atoms Happy(d) <- Frequents(d,rest) AND An atom is a predicate, or relation Likes(d,soda) AND Sells(rest,soda,p) name with variables or constants as arguments. Head = “consequent,” Body = “antecedent” = The head is an atom; the body is the a single sub-goal AND of sub-goals. AND of one or more atoms. Read this Convention: Predicates begin with a symbol “if” capital, variables begin with lower-case. 5 6 1 Example: Atom Example: Atom Sells(rest, soda, p) Sells(rest, soda, p) The predicate Arguments are = name of a variables relation 7 8 Interpreting Rules Interpreting Rules A variable appearing in the head is Rule meaning: called distinguished ; The head is true of the distinguished otherwise it is nondistinguished. variables if there exist values of the nondistinguished variables that make all sub-goals of the body true.
    [Show full text]
  • A Dictionary of DBMS Terms
    A Dictionary of DBMS Terms Access Plan Access plans are generated by the optimization component to implement queries submitted by users. ACID Properties ACID properties are transaction properties supported by DBMSs. ACID is an acronym for atomic, consistent, isolated, and durable. Address A location in memory where data are stored and can be retrieved. Aggregation Aggregation is the process of compiling information on an object, thereby abstracting a higher-level object. Aggregate Function A function that produces a single result based on the contents of an entire set of table rows. Alias Alias refers to the process of renaming a record. It is alternative name used for an attribute. 700 A Dictionary of DBMS Terms Anomaly The inconsistency that may result when a user attempts to update a table that contains redundant data. ANSI American National Standards Institute, one of the groups responsible for SQL standards. Application Program Interface (API) A set of functions in a particular programming language is used by a client that interfaces to a software system. ARIES ARIES is a recovery algorithm used by the recovery manager which is invoked after a crash. Armstrong’s Axioms Set of inference rules based on set of axioms that permit the algebraic mani- pulation of dependencies. Armstrong’s axioms enable the discovery of minimal cover of a set of functional dependencies. Associative Entity Type A weak entity type that depends on two or more entity types for its primary key. Attribute The differing data items within a relation. An attribute is a named column of a relation. Authorization The operation that verifies the permissions and access rights granted to a user.
    [Show full text]
  • Logical Query Languages
    Logical Query Languages Motivatio n: 1. Logical rules extend more naturally to recursive queries than do es relational algebra. ✦ Used in SQL recursion. 2. Logical rules form the basis for many information-integration systems and applications. 1 Datalog Example , beer Likesdrinker Sellsbar , beer , price Frequentsdrinker , bar Happyd <- Frequentsd,bar AND Likesd,beer AND Sellsbar,beer,p Ab oveisarule. Left side = head. Right side = body = AND of subgoals. Head and subgoals are atoms. ✦ Atom = predicate and arguments. ✦ Predicate = relation name or arithmetic predicate, e.g. <. ✦ Arguments are variables or constants. Subgoals not head may optionally b e negated by NOT. 2 Meaning of Rules Head is true of its arguments if there exist values for local variables those in b o dy, not in head that make all of the subgoals true. If no negation or arithmetic comparisons, just natural join the subgoals and pro ject onto the head variables. Example Ab ove rule equivalenttoHappyd = Frequents ./ Likes ./ Sells dr ink er 3 Evaluation of Rules Two, dual, approaches: 1. Variable-based : Consider all p ossible assignments of values to variables. If all subgoals are true, add the head to the result relation. 2. Tuple-based : Consider all assignments of tuples to subgoals that make each subgoal true. If the variables are assigned consistent values, add the head to the result. Example: Variable-Based Assignment Sx,y <- Rx,z AND Rz,y AND NOT Rx,y R = B A 1 2 2 3 4 Only assignments that make rst subgoal true: 1. x ! 1, z ! 2. 2. x ! 2, z ! 3. In case 1, y ! 3 makes second subgoal true.
    [Show full text]
  • Shadow Theory: Data Model Design for Data Integration
    Shadow Theory: Data Model Design for Data Integration Jason T. Liu* (Draft. Date:9/12/2012) ABSTRACT In information ecosystems, semantic heterogeneity is known as General Terms Algorithms, Design, Human Factors, Theory. the root issue for the difficulties of data integration, and the Relational Model is not designed for addressing such challenges, i.e. to re-use data that is modeled from other sources in the local Keywords data model design. Although researchers have proposed many Data integration, information ecosystems, shadows, meanings, different approaches, and software vendors have designed tools to mental entity, semantic heterogeneity, tags, help the data integration task, it remains an art relying on human labors. Due to lacks of a comprehensive theory to guide the overall modeling process, the quality of the integrated data heavily depends on the data integrators’ experiences. 1. Introduction Based on observations of practical issues for enterprise customer Data integration is essential for most enterprise systems that rely data integration, we believe that the needed solution is a new data on data from multiple sources. Lenzerini defined data integration model. This new data model needs to manage the difficulties of as to combine data residing at different sources in order to provide semantic heterogeneity: different data collected from different users with a unified view of these data [1]. Specifically, the goal perspectives about the same subject matter can naturally be of Enterprise Information Integration (EII) is to provide a uniform inconsistencies or even in conflicts. In other words, existing data access to multiple data sources without having to load the data models are designed to support single version of the truth, and into a central place [2].
    [Show full text]
  • Datalog on Infinite Structures
    Datalog on Infinite Structures DISSERTATION zur Erlangung des akademischen Grades doctor rerum naturalium (Dr. rer. nat.) im Fach Informatik eingereicht an der Mathematisch-Naturwissenschaftlichen Fakultät II Humboldt-Universität zu Berlin von Herr Dipl.-Math. Goetz Schwandtner geboren am 10.09.1976 in Mainz Präsident der Humboldt-Universität zu Berlin: Prof. Dr. Christoph Markschies Dekan der Mathematisch-Naturwissenschaftlichen Fakultät II: Prof. Dr. Wolfgang Coy Gutachter: 1. Prof. Dr. Martin Grohe 2. Prof. Dr. Nicole Schweikardt 3. Prof. Dr. Thomas Schwentick Tag der mündlichen Prüfung: 24. Oktober 2008 Abstract Datalog is the relational variant of logic programming and has become a standard query language in database theory. The (program) complexity of datalog in its main context so far, on finite databases, is well known to be in EXPTIME. We research the complexity of datalog on infinite databases, motivated by possible applications of datalog to infinite structures (e.g. linear orders) in temporal and spatial reasoning on one hand and the upcoming interest in infinite structures in problems related to datalog, like constraint satisfaction problems: Unlike datalog on finite databases, on infinite structures the computations may take infinitely long, leading to the undecidability of datalog on some infinite struc- tures. But even in the decidable cases datalog on infinite structures may have ar- bitrarily high complexity, and because of this result, we research some structures with the lowest complexity of datalog on infinite structures: Datalog on linear orders (also dense or discrete, with and without constants, even colored) and tree orders has EXPTIME-complete complexity. To achieve the upper bound on these structures, we introduce a tool set specialized for datalog on orders: Order types, distance types and type disjoint programs.
    [Show full text]
  • Mapping OCL As a Query and Constraint Language Traduciendo OCL Como Lenguaje De Consultas Y Restricciones
    UNIVERSIDAD COMPLUTENSE DE MADRID FACULTAD DE INFORMÁTICA Departamento de Sistemas Informáticos y Computación TESIS DOCTORAL Mapping OCL as a Query and Constraint Language Traduciendo OCL como lenguaje de consultas y restricciones MEMORIA PARA OPTAR AL GRADO DE DOCTOR PRESENTADA POR Carolina Inés Dania Flores Directores Manuel García Clavel Marina Egea González Madrid, 2018 © Carolina Inés Dania Flores, 2017 Tesis Doctoral Mapping OCL as a Query and Constraint Language Traduciendo OCL como Lenguaje de Consultas y Restricciones Carolina Inés Dania Flores Supervisors: Manuel García Clavel Marina Egea González Facultad de Informática Universidad Complutense de Madrid © Joaquín S. Lavado, QUINO. Toda Mafalda, Penguin Random House, España. Mapping OCL as a Query and Constraint Language Traduciendo OCL como Lenguaje de Consultas y Restricciones PhD Thesis Carolina In´es Dania Flores Advisors Manuel Garc´ıa Clavel Marina Egea Gonz´alez Departamento de Sistemas Inform´aticos y Computaci´on Facultad de Inform´atica Universidad Complutense de Madrid 2017 Amifamiliadeall´a. Mi mam´aEstela, mi pap´aH´ector y mis hermanos Flor, Marcos y Leila. A mi familia de ac´a. Mi esposo Israel, mi perro Yiyo y mis suegros Marinieves y Jacinto. A mi gran amigo de all´a, mi querido Julio. A mi gran amigo de ac´a, mi querido Juli. Acknowledgments Undertaking this PhD has been a truly life-changing experience for me, and it would not have been possible without the support and guidance that I received from many people. I would like to express my sincere gratitude to my supervisors, Manuel Garc´ıa Clavel and Marina Egea, for their support during these years.
    [Show full text]