CQL: un lenguaje open source de teoría de categorías para datos

Fuentes: CQL: An Open-Source Category Theory Language for Data

CQL (Categorical Query Language) es un lenguaje de programación funcional de código abierto y su entorno integrado de desarrollo (IDE) que aplica la teoría de categorías —una rama de las matemáticas que ha transformado varias áreas de la informática— a tareas de datos como consultas, combinación, migración y evolución de bases de datos. El proyecto, comercializado por Conexus AI y con Ryan Wisnesky como contacto principal, se distribuye en GitHub bajo licencia abierta y está listo para producción en cargas de trabajo de procesamiento de datos en memoria sobre un único nodo, como la integración de datos para ciencia de datos.

La iniciativa parte de la premisa de que las matemáticas pueden ofrecer una base más rigurosa que SQL para manipular datos relacionales. CQL generaliza las consultas select-from-where de SQL: en lugar de devolver una sola tabla, una consulta CQL puede devolver varias tablas relacionadas mediante claves foráneas. Además, incorpora un demostrador automático de teoremas integrado que garantiza la corrección de los programas; por ejemplo, un programa CQL no puede materializar una instancia que viole una restricción de integridad, ya que estos errores se detectan en tiempo de compilación.

Entre sus rasgos diferenciales destaca la preservación de la calidad de los datos: los programas evolucionan y migran datos de forma matemáticamente universal, sin degradación, y cada fila de salida incluye una trazabilidad completa que describe cómo se obtuvo a partir de los datos de entrada. El sistema permite importar y exportar datos mediante JDBC-SQL, CSV y otros formatos, visualizar esquemas y bases de datos de forma gráfica, y definir restricciones de integridad que combinan entidades, atributos, claves foráneas y ecuaciones entre ellas —útiles, por ejemplo, para desnormalizar sin perder consistencia.

CQL también admite esquemas computacionales con funciones definidas por el usuario en Java, JavaScript o de forma puramente ecuacional, y su demostrador puede razonar sobre cómo se relacionan esas funciones con las restricciones de integridad. Está implementado al 100% en Java, no almacena ni actualiza datos por sí mismo (no es un sistema de gestión de bases de datos) y ofrece una escalabilidad comparable a la de SQL y los motores de chase. Constituye una implementación de referencia de los ologs (ontology logs) de David Spivak y se apoya en Kan extensions y la plataforma Silmarils, con una integración profunda en Haskell en colaboración con Statebox actualmente en desarrollo.

En la práctica, CQL resulta útil para equipos de ingeniería y ciencia de datos que necesitan integrar fuentes heterogéneas, mantener la trazabilidad completa de los datos y aplicar migraciones de esquema con garantías formales. Su orientación a un único nodo en memoria y su modelo sin estado lo posicionan como una capa de transformación con base matemática, más que como un sustituto directo de un DBMS tradicional.