sparqlite:SQLite 内的 SPARQL 1.1,使用 Rust 编写

Simon Willison's Blog 工具

摘要

sparqlite 是一个基于 Rust 的 SQLite 可加载扩展,它将 RDF 四元组存储在普通的 SQLite 表中,并原生执行 SPARQL 1.1 查询,速度达到 SQL 转译方式的 3.5 倍,同时通过了 639 项 W3C 评估测试中的 636 项——值得一提的是,它由 Claude Code 的 Ultracode 智能体工作流在一次持续 12 小时的运行中生成。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/10/21 18:21

# 研究:sparqlite:用 Rust 编写、运行于 SQLite 内部的 SPARQL 1.1 来源:https://simonwillison.net/2026/Oct/16/sqlite-sparql-rust/ 研究 (https://simonwillison.net/elsewhere/research/)sparqlite:用 Rust 编写、运行于 SQLite 内部的 SPARQL 1\.1 (https://github.com/simonw/research/tree/main/sqlite-sparql-rust#readme)—— sparqlite 是一个基于 Rust 的 SQLite 可加载扩展,它将 RDF 四元组存储在普通 SQLite 表中,并在 SQLite 进程内部原生执行 SPARQL 1\.1 查询和更新。凭借整数编码的项、覆盖索引、基于成本的规划器、批量连接以及可选的 SQLite B 树直接读取器,与转换为 SQL 的方式相比,它在计数模式下可实现 3\.5 倍加速,在返回完整结果时可实现 2\.8 倍加速,同时通过了 639 项适用的 W3C 评估测试中的 636 项,以及数百万次差分模糊测试…… 这项研究任务实际上是一次实验,尝试以“Ultracode”模式运行网页版 Claude Code,具体介绍见 Claude Code 文档中的通过动态工作流大规模编排子代理 (https://code.claude.com/docs/en/workflows)。 开启 Ultracode 后,Claude Code 会大量使用动态工作流——它会生成 JavaScript,定义并协调一个子代理网络来解决复杂问题。 我最初的提示如下——我本来想说“直接访问行”,“delete”是我在手机上不小心打错的: > `用 Rust 编写一个 SQLite 扩展,实现 SPARQL,并且运行得非常快,因为它可以直接访问 delete 行` 这让网页版 Claude Code 连续忙活了超过 12 个小时。第二天我查看了它的进展,注意到它构建了那么多 Rust crate,于是只发了一条后续提示: > `crates/ 目录中的每个文件夹都需要一个 README` `添加一个 tutorial\.md,教用户如何安装扩展、如何在 SQLite CLI 中运行它,然后除了讲解如何使用 SQLite 扩展之外,还要教他们 SPARQL` `随教程附上一个脚本,用有用且贴近实际的示例数据填充 SQLite 数据库,供教程使用` 这个项目感觉像是更上一层楼的氛围编程——审查这里生成的代码根本不现实,哪怕只是照着文档操作,也需要投入大量精力。我不太确定该拿它怎么办——我现在似乎已经拥有了一个用 Rust 编写、运行于 SQLite 内部的完整 SPARQL 实现,但如果我只是一时兴起创建了它,却无法(或不愿)投入必要的时间去理解它能做什么,那它究竟有多大价值呢?

相似文章

BriskDB

Hacker News Top

BriskDB 是一款处于早期阶段的数据库工具,它将 SQLite 文件转化为一个支持并行写入、兼容 PostgreSQL 并嵌入 Rust/Python API 的分片系统,旨在扩展 SQLite 的同时保持其简洁性。

Witchcraft:基于SQLite的快速本地语义搜索 [P]

Reddit r/MachineLearning

Witchcraft 是一个用 Rust 对斯坦福大学 XTR-Warp 语义搜索引擎进行的开源重新实现,使用 SQLite 实现快速本地搜索。它包含 Pickbrain CLI,用于索引代码会话记录,并为 AI 代理配备全局记忆。