knowsys/nemo
A fast in-memory rule engine
Nemo – 一个快速的内存内 Datalog 引擎
是什么
- Nemo 是一个规则引擎,允许您编写 Datalog 程序(逻辑规则)来查询和转换数据。它完全在内存中运行,专为速度而设计。
- 使用 Rust 实现,提供命令行工具(
nmo)、语言绑定和浏览器端 UI。
为何重要
- Datalog 是一种常用于知识图谱推理、数据集成和静态分析的声明式语言。Nemo 的目标是结合低级系统的性能与高级逻辑查询语言的易用性。
- 其数据模型与 RDF 和 SPARQL 兼容,因此可作为语义网数据集的轻量级推理引擎使用。
主要功能(如 README 所述)
| 类别 | 详情 |
|---|---|
| 性能与可扩展性 | 内存中执行,使用 Rust 编写,支持大规模分析工作负载。 |
| 声明式规则语言 | 支持分层否定、算术、聚合和存在规则(TGD)的 Datalog 语法。 |
| 数据格式支持 | 输入/输出:CSV、TSV、通用 DSV、N-Triples、Turtle、RDF/XML、N-Quads、TriG,以及直接访问 SPARQL 端点。 |
| 互操作性 | 命令行客户端(nmo)、语言绑定和在浏览器中完全运行的 Web UI。 |
| 兼容性 | 专为与 RDF/SPARQL 数据模型兼容而设计,同时保持经典逻辑编程语义。 |
| 开源 | 采用 Apache-2.0 和 MIT 双重许可;欢迎贡献。 |
如何开始
- 安装 – 从发布页面获取预编译二进制文件,或使用
cargo build -r从源码构建(Linux 需要 Rust 和 OpenSSL 开发库)。 - 运行 –
nmo --help显示 CLI 选项。示例程序和数据集位于独立的 nemo-examples 仓库中。 - 探索 – 访问 https://tools.iccl.inf.tu-dresden.de/nemo/ 体验在线演示,引擎在您的浏览器中直接运行。
- 了解更多 – 完整文档、教程和 API 参考请访问 https://knowsys.github.io/nemo-doc/。
典型用例
- 对 RDF 知识图谱进行推理(例如,从现有数据推断新三元组)。
- 复杂的数据集成流水线,其中规则将 CSV/TSV 源与语义数据结合。
- 逻辑编程、规则推理或知识表示领域的学术研究。
项目状态
- README 指出 Nemo 正在积极开发中,当前版本为 不稳定 —— 请预期频繁更新和可能的破坏性变更。
社区
- GitHub 上的讨论、Gitter/Matrix 聊天室,以及活跃的文档网站。
总结 Nemo 提供了一个快速、基于 Rust 的 Datalog 引擎,将传统逻辑编程与现代 RDF/SPARQL 生态系统相连接,适用于任何需要在结构化数据上进行高性能规则推理的用户。
相关
- 项目
- 项目
- 项目
- 项目