FOUNDATIONS OF DATABASES AND QUERY LANGUAGES

Similar documents
DATABASE THEORY. Lecture 12: Evaluation of Datalog (2) TU Dresden, 30 June Markus Krötzsch

DATABASE THEORY. Lecture 15: Datalog Evaluation (2) TU Dresden, 26th June Markus Krötzsch Knowledge-Based Systems

DATABASE THEORY. Lecture 11: Introduction to Datalog. TU Dresden, 12th June Markus Krötzsch Knowledge-Based Systems

Lecture 1: Conjunctive Queries

KNOWLEDGE GRAPHS. Lecture 4: Introduction to SPARQL. TU Dresden, 6th Nov Markus Krötzsch Knowledge-Based Systems

Relational Databases

DATABASE THEORY. Lecture 18: Dependencies. TU Dresden, 3rd July Markus Krötzsch Knowledge-Based Systems

XML: Extensible Markup Language

One of the main selling points of a database engine is the ability to make declarative queries---like SQL---that specify what should be done while

XML databases. Jan Chomicki. University at Buffalo. Jan Chomicki (University at Buffalo) XML databases 1 / 9

Database Theory VU , SS Introduction: Relational Query Languages. Reinhard Pichler

Range Restriction for General Formulas

Can We Trust SQL as a Data Analytics Tool?

Database Theory: Beyond FO

Part XII. Mapping XML to Databases. Torsten Grust (WSI) Database-Supported XML Processors Winter 2008/09 321

H2 Spring B. We can abstract out the interactions and policy points from DoDAF operational views

Foundations of SPARQL Query Optimization

Announcements. Relational Model & Algebra. Example. Relational data model. Example. Schema versus instance. Lecture notes

A Retrospective on Datalog 1.0

Conjunctive queries. Many computational problems are much easier for conjunctive queries than for general first-order queries.

FOUNDATIONS OF SEMANTIC WEB TECHNOLOGIES

KNOWLEDGE GRAPHS. Lecture 11: Cypher / Knowledge Graph Quality. TU Dresden, 8th Jan Markus Krötzsch Knowledge-Based Systems

XPath with transitive closure

Lecture 16. The Relational Model

Chapter 6: Bottom-Up Evaluation

Relational Model & Algebra. Announcements (Tue. Sep. 3) Relational data model. CompSci 316 Introduction to Database Systems

Datalog Evaluation. Linh Anh Nguyen. Institute of Informatics University of Warsaw

Unit 4 Relational Algebra (Using SQL DML Syntax): Data Manipulation Language For Relations Zvi M. Kedem 1

Semantic Characterizations of XPath

M359 Block5 - Lecture12 Eng/ Waleed Omar

AMAχOS Abstract Machine for Xcerpt

Event Stores (I) [Source: DB-Engines.com, accessed on August 28, 2016]

Copyright 2007 Ramez Elmasri and Shamkant B. Navathe. Slide 27-1

SPARQL: An RDF Query Language

1. Why Study Trees? Trees and Graphs. 2. Binary Trees. CITS2200 Data Structures and Algorithms. Wood... Topic 10. Trees are ubiquitous. Examples...

Semi-structured Data. 8 - XPath

Introduction to Data Management CSE 344. Lecture 14: Relational Calculus

Element Algebra. 1 Introduction. M. G. Manukyan

Index-Driven XQuery Processing in the exist XML Database

Lecture 6: Arithmetic and Threshold Circuits

Unit 4 Relational Algebra (Using SQL DML Syntax): Data Manipulation Language For Relations Zvi M. Kedem 1

Logic As a Query Language. Datalog. A Logical Rule. Anatomy of a Rule. sub-goals Are Atoms. Anatomy of a Rule

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe

Informatics 1: Data & Analysis

CSC 261/461 Database Systems Lecture 13. Fall 2017

Database Theory VU , SS Introduction: Relational Query Languages. Reinhard Pichler

Connecting SMW to RDF Databases: Why, What, and How?

Rewriting Ontology-Mediated Queries. Carsten Lutz University of Bremen

MI-PDB, MIE-PDB: Advanced Database Systems

Lecture 1: Introduction and Motivation Markus Kr otzsch Knowledge-Based Systems

OWL 2 Profiles. An Introduction to Lightweight Ontology Languages. Markus Krötzsch University of Oxford. Reasoning Web 2012

Datalog. Susan B. Davidson. CIS 700: Advanced Topics in Databases MW 1:30-3 Towne 309

CMPS 277 Principles of Database Systems. Lecture #11

Ian Kenny. November 28, 2017

Flat triples approach to RDF graphs in JSON

Finite Automata Theory and Formal Languages TMV027/DIT321 LP4 2016

XML publishing. Querying and storing XML. From relations to XML Views. From relations to XML Views

KNOWLEDGE GRAPHS. Lecture 1: Introduction and Motivation. TU Dresden, 16th Oct Markus Krötzsch Knowledge-Based Systems

10/24/12. What We Have Learned So Far. XML Outline. Where We are Going Next. XML vs Relational. What is XML? Introduction to Data Management CSE 344

Foundations of Databases

Graph Databases. Advanced Topics in Foundations of Databases, University of Edinburgh, 2017/18

Semantics in RDF and SPARQL Some Considerations

Exercises Computational Complexity

Database Fundamentals Chapter 1

Informatics 1: Data & Analysis

CSE 344 JANUARY 5 TH INTRO TO THE RELATIONAL DATABASE

Schema Mappings and Data Exchange

Advances in Data Management Beyond records and objects A.Poulovassilis

A TriAL: A navigational algebra for RDF triplestores

1. true / false By a compiler we mean a program that translates to code that will run natively on some machine.

KNOWLEDGE GRAPHS. Lecture 2: Encoding Graphs with RDF. TU Dresden, 23th Oct Markus Krötzsch Knowledge-Based Systems

The Relational Model

Query Minimization. CSE 544: Lecture 11 Theory. Query Minimization In Practice. Query Minimization. Query Minimization for Views

Review for Exam 1 CS474 (Norton)

Arbori Starter Manual Eugene Perkov

The Logic of the Semantic Web. Enrico Franconi Free University of Bozen-Bolzano, Italy

CSE 344 MAY 7 TH EXAM REVIEW

TMQL issues. October 14, slide 1

THE RELATIONAL MODEL. University of Waterloo

Midterm. Database Systems CSE 414. What is Datalog? Datalog. Why Do We Learn Datalog? Why Do We Learn Datalog?

Midterm. Introduction to Data Management CSE 344. Datalog. What is Datalog? Why Do We Learn Datalog? Why Do We Learn Datalog? Lecture 13: Datalog

Chapter 6 The Relational Algebra and Relational Calculus

Agenda. Database Systems. Session 5 Main Theme. Relational Algebra, Relational Calculus, and SQL. Dr. Jean-Claude Franchitti

Announcements. What is Datalog? Why Do We Learn Datalog? Database Systems CSE 414. Midterm. Datalog. Lecture 13: Datalog (Ch

Three Query Language Formalisms

Semantic Errors in Database Queries

Introduction to Data Management CSE 344. Lecture 14: Datalog (guest lecturer Dan Suciu)

Introduction to Database Systems CSE 414

Conceptual modeling of entities and relationships using Alloy

Semantics. KR4SW Winter 2011 Pascal Hitzler 1

Automata Theory for Reasoning about Actions

Plan of the lecture. G53RDB: Theory of Relational Databases Lecture 14. Example. Datalog syntax: rules. Datalog query. Meaning of Datalog rules

1. Introduction; Selection, Projection. 2. Cartesian Product, Join. 5. Formal Definitions, A Bit of Theory

CSE 544: Principles of Database Systems

Categorical databases

Introduction to Graph Data Management

XML Query Processing. Announcements (March 31) Overview. CPS 216 Advanced Database Systems. Course project milestone 2 due today

Pre-Discussion. XQuery: An XML Query Language. Outline. 1. The story, in brief is. Other query languages. XML vs. Relational Data

Dynamic Logic David Harel, The Weizmann Institute Dexter Kozen, Cornell University Jerzy Tiuryn, University of Warsaw The MIT Press, Cambridge, Massac

Week 4. COMP62342 Sean Bechhofer, Uli Sattler

Transcription:

FOUNDATIONS OF DATABASES AND QUERY LANGUAGES Lecture 14: Database Theory in Practice Markus Krötzsch TU Dresden, 20 July 2015

Overview 1. Introduction Relational data model 2. First-order queries 3. Complexity of query answering 4. Complexity of FO query answering 5. Conjunctive queries 6. Tree-like conjunctive queries 7. Query optimisation 8. Conjunctive Query Optimisation / First-Order Expressiveness 9. First-Order Expressiveness / Introduction to Datalog 10. Expressive Power and Complexity of Datalog 11. Optimisation and Evaluation of Datalog 12. Evaluation of Datalog (2) 13. Graph Databases and Path Queries 14. Outlook: database theory in practice See course homepage [ link] for more information and materials Markus Krötzsch, 20 July 2015 Foundations of Databases and Query Languages slide 2 of 32

Database Theory in Practice? We have seen many query languages: CQ, FO, (2)RPQ, C(2)RPQ, Datalog, linear Datalog, semipositive Datalog,...... and many optimisation techniques: optimisation of tree-like queries CQ containment and equivalence Datalog implementation techniques Is any of this relevant in practice? Markus Krötzsch, 20 July 2015 Foundations of Databases and Query Languages slide 3 of 32

Review: FO, relational algebra, and SQL The following are essentially equivalent: First-order queries Relational algebra queries Basic SQL queries where different applications may use slightly different variants (named vs. unnamed perspective; tuple-relational calculus; domain independent vs. active domain semantics;... ) We get CQs when restricting to SELECT-PROJECT-JOIN queries. All RDBMSs implement FO queries, and CQs as special case Markus Krötzsch, 20 July 2015 Foundations of Databases and Query Languages slide 4 of 32

Recursive Queries in SQL The SQL 99 standard supports recursive queries through the WITH RECURSIVE construct. IDB pred s are called common table expressions (CTE) in SQL A CTE is defined by a single SQL query, which can use the CTE recursively The standard defines a fixed point semantics, similar to Datalog Widely supported today (IBM DB2, PostgreSQL, Oracle 11g R2, MS SQL Server,... ), but implementations vary and don t conform to a common standard so far Markus Krötzsch, 20 July 2015 Foundations of Databases and Query Languages slide 5 of 32

Recursive Queries in SQL: Example Find all ancestors of Alice: WITH RECURSIVE ancestor(young, old) AS ( SELECT parent.young, parent.old FROM parent UNION ALL SELECT ancestor.young, parent.old FROM ancestor, parent WHERE ancestor.old = parent.young ) SELECT * FROM ancestor WHERE ancestor.young = alice ; Notes: UNION ALL keeps duplicates, which leads to a multiset (bag) semantics that may cause termination problems. Many RDBMSs will fail to push the selection ancestor.young = alice into the recursion; modifying the CTE definition to start from alice would help them. Markus Krötzsch, 20 July 2015 Foundations of Databases and Query Languages slide 6 of 32

Expressive Power of Recursive SQL The expressive power of recursive SQL is not easy to determine: A CTE uses only a single IDB predicate, but it can use unions UNION ALL enforces a multiset semantics SQL subsumes FO queries (including negation!) SQL has other features, e.g., adding numbers Specific RDBMSs have own extensions or restrictions Markus Krötzsch, 20 July 2015 Foundations of Databases and Query Languages slide 7 of 32

Expressive Power of Recursive SQL The expressive power of recursive SQL is not easy to determine: A CTE uses only a single IDB predicate, but it can use unions UNION ALL enforces a multiset semantics SQL subsumes FO queries (including negation!) SQL has other features, e.g., adding numbers Specific RDBMSs have own extensions or restrictions Some relevant questions: Can I use negation to filter duplicates during recursion? SQL allows this, but implementations like MS SQL Server return wrong results when trying this (unsuitable implementation approach that operates depth-first tuple-by-tuple using separate stacks ). Can I use the CTE more than once in a recursive term? SQL allows this, but not all RDBMSs support it. Many RDBMSs that allow it do not seem to implement it correctly (e.g., PostgreSQL 8.4, according to online documentation). Markus Krötzsch, 20 July 2015 Foundations of Databases and Query Languages slide 8 of 32

Expressive Power of Recursive SQL (2) SQL is too powerful for a declarative recursive query language: Combination of negation and recursion is hard to define and implement. Functions such as addition can extend the active domain. non-declarative approach to recursion (Turing complete) all implementations allow non-terminating queries With care, one can still formulate sane queries. Expressive power in terms of Datalog: Minimal: linear Datalog with bounded recursion depth (can still be useful, e.g., for navigating hierarchies) Maximal: arbitrary semi-positive Datalog with successor order, and beyond Markus Krötzsch, 20 July 2015 Foundations of Databases and Query Languages slide 9 of 32

Recursion in SQL: Conclusions Mixed picture of recursion in SQL: SQL 99 supports arbitrary Datalog Practical implementations are ad hoc and rather limited No simple & terminating queries with unbounded recursion Some implementations seem to support at least linear Datalog in a clean way (e.g., PostgreSQL supports UNION and duplicate elimination in recursive CTEs, using a special case of semi-naive evaluation) Online documentation mostly fails to clarify restrictions Markus Krötzsch, 20 July 2015 Foundations of Databases and Query Languages slide 10 of 32

Recursion in SQL: Conclusions Mixed picture of recursion in SQL: SQL 99 supports arbitrary Datalog Practical implementations are ad hoc and rather limited No simple & terminating queries with unbounded recursion Some implementations seem to support at least linear Datalog in a clean way (e.g., PostgreSQL supports UNION and duplicate elimination in recursive CTEs, using a special case of semi-naive evaluation) Online documentation mostly fails to clarify restrictions Recursive CTEs are not the only option: Oracle has a proprietary SQL extension CONNECT BY similar to Transitive Closure operator in FO queries designed for linear recursion Oracle speaks of subquery factoring when using CTEs. Markus Krötzsch, 20 July 2015 Foundations of Databases and Query Languages slide 11 of 32

Practical Recursion Beyond SQL SQL support for recursion is a bit shaky how about other types of DBMSs? Recursion plays a role in a number of distinct areas, including: Datalog implementations XQuery and XPath query languages for XML SPARQL query language for RDF Graph query languages Markus Krötzsch, 20 July 2015 Foundations of Databases and Query Languages slide 12 of 32

Review: Datalog Implementation in Practice Dedicated Datalog engines as of 2015: DLV Answer set programming engine with good performance on Datalog programs (commercial) LogicBlox Big data analytics platform that uses Datalog rules (commercial) Datomic Distributed, versioned database using Datalog as main query language (commercial) Several RDF (graph data model) DBMS also support Datalog-like rules, usually with limited IDB arity, e.g.: OWLIM Disk-backed RDF database with materialisation at load time (commercial) RDFox Fast in-memory RDF database with runtime materialisation and updates (academic) Extremely diverse tools for very different requirements Markus Krötzsch, 20 July 2015 Foundations of Databases and Query Languages slide 13 of 32

Querying RDF Graphs with SPARQL SPARQL Protocol and RDF Query Language Query language for RDF graphs (roughly labelled, directed graphs) W3C standard, currently in version 1.1 (2013) Widely used for accessing RDF databases Markus Krötzsch, 20 July 2015 Foundations of Databases and Query Languages slide 14 of 32

Querying RDF Graphs with SPARQL SPARQL Protocol and RDF Query Language Query language for RDF graphs (roughly labelled, directed graphs) W3C standard, currently in version 1.1 (2013) Widely used for accessing RDF databases Structure of a simple SPARQL query: SELECT <variable list> WHERE { <pattern> } <pattern> is a basic graph pattern: a list of triples of the form subject predicate object. (denoting an edge from subject to object labelled by predicate) Patterns may contain variables (marked by prefix?) that can be selected Many other features (more complex conditions in queries, limit & offset, grouping & aggregation,... ) Markus Krötzsch, 20 July 2015 Foundations of Databases and Query Languages slide 15 of 32

SPARQL Query Example Find people whose parents were born in the same city in Saxony, and return them together with that city: PREFIX ex: <http://example.org/> SELECT?person?city WHERE {?person ex:hasmother?mother.?person ex:hasfather?father.?mother ex:bornin?city.?father ex:bornin?city.?city ex:locatedin ex:saxony. } Essentially a conjunctive query with ternary EDB predicates written in a simple text-based syntax Markus Krötzsch, 20 July 2015 Foundations of Databases and Query Languages slide 16 of 32

SPARQL and Recursion Since version 1.1, SPARQL supports C2RPQs: Property Path Expressions Regular expression syntax: Single letter: name (URI) of a property (predicate) in RDF Inverse l of letter l: ˆl Sequence ( ) is /, alternative (+) is, zero-or-more is * Other features: optional?, one-or-more +, atomic negation! Example: PREFIX ex: <http://example.org/> SELECT?person?ancestor WHERE {?person ( (ex:hasmother ex:hasfather)+ )?ancestor. } Markus Krötzsch, 20 July 2015 Foundations of Databases and Query Languages slide 17 of 32

Recursion in SPARQL: Conclusions Widely supported feature of most modern RDF databases Set-based semantics that agrees with C2RPQs Typically implemented in a declarative way (no operational extensions) Guaranteed to terminate, given sufficient resources Performance depends on implementation and data (not all implementations have a good optimiser for property paths) Example implementations: BlazeGraph, OpenLink Virtuoso,... Markus Krötzsch, 20 July 2015 Foundations of Databases and Query Languages slide 18 of 32

Recursion in other Graph Databases Graph databases support recursive queries, but there is no standard query language sometimes not fully clear what is supported/moving target Example: Cypher query language in Neo4J MATCH (p)-[r:hasmother HasFather*]->(a) WHERE p.name= Alice RETURN p,r,a Support for retrieving matched paths (r in example) Additional graph search features (shortest path, limited recursion, etc.) It s not obvious from the documentation that this suffices to get arbitrary RPQs Markus Krötzsch, 20 July 2015 Foundations of Databases and Query Languages slide 19 of 32

Recursion in XML Document Processing XML a W3C standard for a document markup language XML is used for markup and data representation XML documents can be interpreted under a tree-shaped Document Object Model (DOM) DOM tree is an ordered tree where each node has a type, and optionally also attribute values The XML query language XPath defines ways to query XML DOMs W3C standard now in version 3.0 (2014); many practical implementations based on XPath 1.0 Key concept: expressions to select (query) nodes and attributes in a DOM tree Recursion is important for navigating trees Markus Krötzsch, 20 July 2015 Foundations of Databases and Query Languages slide 20 of 32

XPath Expression Examples XPath expressions navigate the DOM tree by using natural binary relations among nodes, called axes, such as child and descendant. Example XPath expressions: /A/B nodes of type B that are children of a node of type A that is the root of the DOM tree A//C arbitrary descendants of the a node of type A that is the start node (context node) for the query //C[./D/E]/F nodes of type F that are the child of a node of type C anywhere in the DOM, where the C-node has a D child that has an E child. There are many further features related to attribute selection and use of other axes Markus Krötzsch, 20 July 2015 Foundations of Databases and Query Languages slide 21 of 32

XPath: Expressive Power XPath is related to 2RPQs There are some differences between DOM trees and words Many XPath location steps could be written in 2RPQ Predicates in square brackets are used to test additional path-like conditions for a node Example: A[.//B] only matches A-type nodes that have a descendant of type B Corresponds to unary sub-2rpqs of the form y.e(x, y) that test if a node x has an E-path to some other node not expressible in (C)2RPQs without further extensions Markus Krötzsch, 20 July 2015 Foundations of Databases and Query Languages slide 22 of 32

Recursion in XPath: Conclusions XPath: XML navigation base on path queries Declarative, set-based semantics Standardised in several versions Many implementations (program libraries, some DBMS) Large number of features hard to analyse theoretically Related approaches: XQuery: extension of XPath with computational features CSS Selectors: simple query language for navigating HTML documents Markus Krötzsch, 20 July 2015 Foundations of Databases and Query Languages slide 23 of 32

Summary and Outlook Markus Krötzsch, 20 July 2015 Foundations of Databases and Query Languages slide 24 of 32

Summary We have covered three main topics: first-order queries Datalog path query languages looking at the following main aspects: expressive power complexity of query answering complexity/feasibility of perfect query optimisation some algorithmic approaches Equal focus on results and methods understanding why something holds Markus Krötzsch, 20 July 2015 Foundations of Databases and Query Languages slide 25 of 32

The Ultimate Big Picture Arbitrary Query Mappings undecidable/-/-/- Polynomial Time Query Mappings = semipositive Datalog with a successor ordering P/Exp/ undecidable/ undecidable Datalog P/Exp/undecidable/P Linear Datalog NL/PSpace/undecidable/NL C2RPQs NL/NP/ExpSpace/trivial First-Order Queries AC 0 /PSpace/ undecidable/ undecidable Conjunctive Queries AC 0 /NP/NP/trivial k-bounded Hypertree Width AC 0 /LOGCFL/LOGCFL/trivial Tree CQs 1-atom CQs 2RPQs NL/NL/PSpace/trivial Legend: Data compl./comb. & Query compl./equivalence & containment/emptiness Markus Krötzsch, 20 July 2015 Foundations of Databases and Query Languages slide 26 of 32

The Big Picture: Notes for Offline Reading Given complexities usually are upper and lower bounds ( complete ), though AC 0 is just an upper bound Linear Datalog refers to the strict definition from the previous lecture. Some authors consider a final CQ on top of linear Datalog programs, in which case they extend C2RPQs. The - for arbitrary query mappings mean that these problems are not defined (we have no query expressions that could be the input of an algorithm, just mappings). Some complexities given were not shown, including P-completeness of Datalog emptiness (left as exercise). Most complexities for semipositive Datalog with a successor ordering are easily obtained from Datalog using the fact that the required negated EDB predicates and ordering facts can be added to a given database in polynomial time. Markus Krötzsch, 20 July 2015 Foundations of Databases and Query Languages slide 27 of 32

The Big Picture: Notes for Offline Reading Emptiness of semipositive Datalog with a successor ordering is not quite so obvious... Proof sketch: Emptiness of the intersection of two context-free grammars G 1 and G 2 is undecidable. The word problem of context-free grammars is in P. A database can encode a word if it is a linear chain using binary letter predicates. This can be checked in P. Semipositive Datalog with successor captures P, so there is a Boolean query P G1,G 2 in this language that decides if the database encodes a word that is in G 1 and G 2. The emptiness problem of P G1,G 2 is equivalent to the emptiness problem for G 1 G 2. Markus Krötzsch, 20 July 2015 Foundations of Databases and Query Languages slide 28 of 32

The Big Picture: Notes for Offline Reading The fact that linear Datalog extends C2RPQ is not obvious either: how can we express conjunctions over IDBs there? Proof sketch: 1 The C2RPQ can be viewed as a CQ over IDBs that are defined by linear Datalog programs obtained for 2RPQs Without loss of generality, we assume that each of these linear Datalog programs uses differently named IDB predicates We transform this CQ over IDB atoms step by step In each step, process two IDB atoms Q(x 1,..., x n ) and R(y 1,..., y m ) Replace them by a single new atom R (x 1,..., x n, y 1,..., y m ) Use linear rules that consist of all rules used for defining Q together with modified versions of the rules for R that remember a binding for Q while deriving facts about R. Continue until only one IDB is left in the conjunction. 1 For details on a similar proof, see Theorem 3 in P. Bourhis, M. Krötzsch, S. Rudolph: Reasonable Highly Expressive Query Languages, Proc. IJCAI 2015. Markus Krötzsch, 20 July 2015 Foundations of Databases and Query Languages slide 29 of 32

Conclusions The relational data model remains the most widely used general data model, but alternative data models are now also relevant: nosql data models (graphs, trees, documents, map,... ) All major RDBMS vendors have products in this space, sometimes based on their RDBMSs, sometimes not Revival of specialised stores and data models The same basic theory applies to relational and non-relational DBMSs: all data models can be viewed as relational fundamental query types re-appear in many settings (CQs, path queries,... ) non-relational DBMS are taking the lead in realising more advanced concepts (recursive queries, clean set-based semantics) Markus Krötzsch, 20 July 2015 Foundations of Databases and Query Languages slide 30 of 32

What s next? Current data management landscape is extremely dynamic and hard to predict interesting times! Many further topics not covered here (data stream processing, distributed models of computation, analytical queries,... ) Many theoretical questions remain open (further query languages, constraints/ontologies, algorithms,... ) A wider view is key to success: Practitioners need to know their tools and be ready to combine them into custom solutions Theoreticians need to combine methods from distinct areas and re-integrate practical developments Markus Krötzsch, 20 July 2015 Foundations of Databases and Query Languages slide 31 of 32

What s next? Current data management landscape is extremely dynamic and hard to predict interesting times! Many further topics not covered here (data stream processing, distributed models of computation, analytical queries,... ) Many theoretical questions remain open (further query languages, constraints/ontologies, algorithms,... ) A wider view is key to success: Practitioners need to know their tools and be ready to combine them into custom solutions Theoreticians need to combine methods from distinct areas and re-integrate practical developments Basic principles are more important than short-lived technology trends, but the best theoretical insights also feed back into practice. Markus Krötzsch, 20 July 2015 Foundations of Databases and Query Languages slide 32 of 32