Cached at:
06/02/26, 03:33 PM
# CQL
Source: [https://categoricaldata.net/](https://categoricaldata.net/)
## Categorical Databases
[Home](https://categoricaldata.net/)\|[Download](https://categoricaldata.net/download.html)\|[Getting Started](https://categoricaldata.net/examples.html)\|[Manual](https://categoricaldata.net/help/index.html)\|[Wiki](https://github.com/CategoricalData/CQL/wiki)\|[Papers](https://categoricaldata.net/papers.html)\|[Screen Shots](https://categoricaldata.net/screens.html)\|[Github](https://github.com/categoricalData)\|[Google Group](https://groups.google.com/forum/#!forum/categoricaldata)\|[Conexus AI](https://conexus.com/)\|[Contact](mailto:
[email protected])
---
## A principled way to transform data
Open\-source CQL and its integrated development environment \(IDE\) performs data\-related tasks — such as querying, combining, migrating, and evolving databases — using[category theory](https://en.wikipedia.org/wiki/Applied_category_theory), a branch of mathematics that has revolutionized several areas of computer science\. Open\-source CQL is production\-ready for single\-node in\-memory data processing workloads, such as[integrating data for data science](http://arxiv.org/abs/1903.10579)\. It is being commercialized by[Conexus AI](https://conexus.com/); for inquiries, contact[Ryan Wisnesky](https://wisnesky.net/)\.
## Value Proposition
- **Reduce risk of failure through artificial intelligence**\. CQL contains an embedded automated theorem prover that guarantees the correctness of CQL programs\. For example,[a CQL program cannot materialize an instance that violates a data integrity constraint](https://categoricaldata.net/fk.html)\. Such errors are detected at compile time, when they are easiest to fix\.
- **Preserve data quality**\. High\-quality data is expensive to obtain, so it is important to preserve that quality throughout the data life\-cycle\. CQL programs evolve and migrate data in a mathematically universal way, with zero degradation\. As such, data integrated by CQL has many advantages, including perfect provenance:[every row in the output of an CQL program contains a lineage that describes exactly how that row was obtained from input data](https://categoricaldata.net/joinless.html)\.
- **Increased developer productivity through higher\-level abstractions**\. CQL generalizes concepts from SQL using powerful principles from category theory\. For example,[CQL generalizes SQL's select\-from\-where queries from returning single tables to returning many tables related by foreign keys](https://categoricaldata.net/fk.html)\. Such higher\-level abstractions enable developers to be more productive\.
---
## Key Features
- **Flexible I/O:**data can be imported into and exported out of CQL[by JDBC\-SQL](https://categoricaldata.net/jdbc.html), CSV, and more\.
- **Visualization:**CQL[schemas](https://categoricaldata.net/images/shot2.png),[databases](https://categoricaldata.net/images/shot3.png), etc\. can be displayed graphically\.
- **Rich data integrity constraints:**CQL schemas contain entities, attributes, and foreign keys \- as well as[equations between them](https://categoricaldata.net/eqs.html)\. One use of equations is for[denormalization without the need to manually enforce the consistency of redundant data](https://categoricaldata.net/denorm.html)\.
- **Computational schemas:**[user\-defined functions are part of CQL schemas](https://categoricaldata.net/unitconv.html)and can be specified using java, javascript, or purely equationally\. CQL's theorem prover can reason about user\-defined functions and how they relate to data integrity constraints\.
- **More principled than SQL:**relational concepts such as[foreign keys re\-appear, in a more principled form, in CQL](https://categoricaldata.net/joinless.html)\. And[CQL provides primitives that SQL lacks](https://categoricaldata.net/quotient.html)\.
- **100% java**\. User\-defined functions can be written in java or javascript, and a deep embedding of CQL into Haskell, in collaboration with[Statebox](https://statebox.org/), is under development\.
- **Stateless**\. CQL is not a database management system: it neither stores nor updates data\. It is a[canonical functional programming language](https://categoricaldata.net/cql/fql_def.pdf)and IDE whose scalability is similar to that of SQL and[chase engines](https://www.cs.ox.ac.uk/boris.motik/pubs/bkmmpst17becnhmarking-chase.pdf)\.
Powered by[Kan extensions / Silmarils / applied category theory](https://silmarils.tech/)\. CQL provides a reference implementation of David Spivak's[ologs \(ontology logs\)](https://arxiv.org/abs/1102.1889)\. [](https://categoricaldata.net/Morgoth.png)
[Sigma Delta Pi Schwag Store](https://www.bystadium.com/us/en/stores/cql-merch2-93792/S038133016)