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 双重许可;欢迎贡献。

如何开始

  1. 安装 – 从发布页面获取预编译二进制文件,或使用 cargo build -r 从源码构建(Linux 需要 Rust 和 OpenSSL 开发库)。
  2. 运行 – nmo --help 显示 CLI 选项。示例程序和数据集位于独立的 nemo-examples 仓库中。
  3. 探索 – 访问 https://tools.iccl.inf.tu-dresden.de/nemo/ 体验在线演示,引擎在您的浏览器中直接运行。
  4. 了解更多 – 完整文档、教程和 API 参考请访问 https://knowsys.github.io/nemo-doc/。

典型用例

  • 对 RDF 知识图谱进行推理(例如,从现有数据推断新三元组)。
  • 复杂的数据集成流水线,其中规则将 CSV/TSV 源与语义数据结合。
  • 逻辑编程、规则推理或知识表示领域的学术研究。

项目状态

  • README 指出 Nemo 正在积极开发中,当前版本为 不稳定 —— 请预期频繁更新和可能的破坏性变更。

社区

  • GitHub 上的讨论、Gitter/Matrix 聊天室,以及活跃的文档网站。

总结 Nemo 提供了一个快速、基于 Rust 的 Datalog 引擎,将传统逻辑编程与现代 RDF/SPARQL 生态系统相连接,适用于任何需要在结构化数据上进行高性能规则推理的用户。

相关

  • 项目
  • 项目
  • 项目
  • 项目