paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Algebraic data integration

代数数据集成
JFP vol.272017匹配度 1/10 · 论文用范畴论和代数理论做数据集成与查询语言,属于数据库理论/形式语义方向,与用户关注的静态分析、Agentic 程序分析、浮点程序分析、贝叶斯程序分析及 LLM 交叉均无直接关系。引用 30 inbox
PATRICK SCHULTZ, RYAN WISNESKY
dblp: 2026-09-10crossref: 2026-09-10arxiv: 2026-09-10

AI 速览

一句话:提出基于多排序等式代数理论与伴随迁移函子的数据集成框架,并实现查询语言 AQL。

论文为数据集成提出一种代数化方法,融合函数式编程、范畴论与数据库理论。其核心是将数据库模式与实例视为特定形式的多排序等式代数理论:模式表示范畴,实例表示其初始(项)代数;某个模式 S 上的实例构成范畴 S-Inst。模式态射 F:S→T 诱导三个伴随的数据迁移函子:Σ_F 沿 F 做代换,Δ_F 为其右伴随,Π_F 又为 Δ_F 的右伴随。作者给出基于 for/where/return 语法的查询语言,使每个查询对应一串数据迁移函子,并提出基于 pushout 的数据集成设计模式。最后描述该形式化在 AQL(Algebraic Query Language)工具中的实现。

问题
如何以统一的代数与范畴论框架形式化数据库模式、实例及数据迁移,并支持实际的数据集成查询。
方法
将模式与实例编码为多排序等式代数理论,模式表示范畴、实例表示初始代数;由模式态射诱导 Σ⊣Δ⊣Π 伴随迁移函子,并设计 for/where/return 查询语言与 pushout 集成模式。
评估
通过实现 AQL 工具来展示该形式化与查询语言;摘要未给出实验评估或基准测试。
原文摘要(Abstract)

Abstract In this paper, we develop an algebraic approach to data integration by combining techniques from functional programming, category theory, and database theory. In our formalism, database schemas and instances are algebraic (multi-sorted equational) theories of a certain form. Schemas denote categories, and instances denote their initial (term) algebras. The instances on a schema S form a category, S – Inst , and a morphism of schemas F : S → T induces three adjoint data migration functors: Σ F : S – Inst → T – Inst , defined by substitution along F , which has a right adjoint Δ F : T – Inst → S – Inst , which in turn has a right adjoint Π F : S – Inst → T – Inst . We present a query language based on for/where/return syntax where each query denotes a sequence of data migration functors; a pushout-based design pattern for performing data integration using our formalism; and describe the implementation of our formalism in a tool we call AQL (Algebraic Query Language).

链接与引用

DOI 原文 · arXiv · PDF(开放获取) · DBLP

BibTeX
@article{SchultzW17,
  title = {Algebraic data integration},
  author = {PATRICK SCHULTZ and RYAN WISNESKY},
  journal = {Journal of Functional Programming},
  volume = {27},
  year = {2017},
  doi = {10.1017/s0956796817000168}
}