# Categorical Query Language

Home | Download | Getting Started | Manual | Wiki | Papers | Screen Shots | Github | Google Group | YouTube | Conexus | Contact## Introductory course of study

The suggested introductory course of study includes an introductory paper about CQL for computer scientists, introductory slides and video about CQL from a functional programming perspective, introductory slides and video about CQL from a mathematical perspective, introductory slides about category theory from a knowledge management perspective, a paper from NIST arguing that category theory is critical for IT interoperability, and an introductory textbook on category theory, as well as a data science case study.

## Papers

- Ologs: A Categorical Framework for Knowledge Representation (2011) [Pre-print]
Describes how to use categories as database/ontology schemas.

- Functorial Data Migration (2013) [Pre-print]
- Database Queries and Constraints via Lifting Problems (2013) [Pre-print]
- Definition of CQL as a context-free grammar with equations (2015)
- Relational Foundations for Functorial Data Migration (2015) [Pre-print] [slides]
- QINL: Query-Integrated Languages (2015)
- Algebraic Model Management: A Survey (2016) [Pre-print]
- Algebraic Databases (2017) [Pre-print]
- Algebraic Data Integration (2017) [Pre-print] [slides] [Aggregation supplement] [video]
- Fast Left Kan Extensions Using the Chase (2019) [slides]

Describes how to migrate data between categorical databases.

Describes how certain common database queries and constraints can be encoded as topological lifts.

Describes a canonical syntax associated with CQL, as well as an axiomatic semantics.

Describes how to implement a fragment of CQL using SELECT/FROM/WHERE/UNION and a fresh-ID generator, and vice versa.

Describes the relationship between CQL and comprehension/monad syntax.

Describes CQL entirely in terms of multi-sorted equational logic, and contrasts it with existing tools.

Describes CQL in detail, and in particular, user-defined functions.

Describes CQL in detail, and in particular, how to implement it using automated theorem proving techniques and how to use it to integrate data.

Describes CQL's sigma operation in detail, and in particular, how to implement it using a chase engine.

## Case Studies

- Using Category Theory to Facilitate Multiple Manufacturing Service Database Integration (2017) [Pre-print] [Companion Report]
- Categorical Data Integration for Computational Science (2019) [Pre-print] [Code]
- Compositional Models for Power Systems (2019) [Video] [Slides]

Describes how CQL can be used for ontology-driven semantic search, and applied to commercial supply chains. Joint work with NIST, it extends the RDF-based approach previously pursued by NIST.

Describes how CQL can be used to integrate scientific data sets, such as those in quantum chemistry. Joint work with Stanford.

Describes how CQL can be used to integrate mathematical models of power grids in a modular way. Independent work by NIST.

## Presentations

- Boston Haskell (2011) [videos 1 2 3 4 5]
- Oracle (2014)
- Boston Haskell (2014) [video]
- Lambda Conf (2017) [video]
- The Broad Institute (2017) [video]
- Kensho (2019) [video]

Gives an introduction to the math behind CQL.

Gives an introduction to the math behind CQL, tailored to database-centric audiences.

Gives an introduction to the math behind CQL, tailored to functional-programming audiences.

Gives an introduction to CQL for computer scientists.

Gives an introduction to the math behind CQL, and lessons learned from applying it in practice.

Gives an introduction CQL and the math behind it, and describes how it enables universal semantic IT inter-operability.

## Related

- A Categorical Manifesto (1991)
- A Model Theory for Generic Schema Management (2003)
- Allegories for Database Modeling (2013)
- Sketches as a Framework for Knowledge Management (2014)
- Entity-Attribute Sketches (2015)
- Knowledge Representation in Bicategories of Relations (2017)

Describes why category theory matters: how it is useful in computer science.

Describes how category theory can be used to study schema mappings in the sense of traditional database theory.

Describes a relational variation of the math behind CQL based on allegories rather than categories.

Describes how CQL and related Sketch-based formalisms can be used to integrate knowledge representations.

Describes EASIK, a category-theoretic predecessor to CQL that now ships within, and interoperates with, CQL.

Describes the math behind the allegorical approach to database modeling.