#graph-database #rdf #sparql #datalog #api-bindings

nightly sys rdfox-rs

RDFox for Rust,一个高性能的内存 ACID 事务语义图数据库

23 个版本

0.1.16 2024 年 1 月 29 日
0.1.15 2024 年 1 月 29 日
0.1.9 2023 年 8 月 27 日
0.0.9 2023 年 5 月 24 日

#1714数据库接口

每月 31 次下载

自定义许可

125KB
3K SLoC

rdfox-rs

RDFox 是 Oxford Semantic Technologies RDFox 的产品。

RDFox 是一个高性能、可扩展且轻量级的知识图谱和语义推理引擎。它支持在 RDF 三元组表示的大规模本体中进行存储、查询和推理。

此 crate 提供了 Rust 接口到 RDFox 数据库,允许您将 RDFox 用作程序中的数据库引擎,无需运行单独的 RDFox 服务器(尽管这也是可能的)。

此 crate 的工作原理

  • 在构建过程中,它从供应商的网站直接将 RDFox 发行版 zip 文件下载到您的目标目录。
  • 然后使用 bindgen 从 CRDFox.h 生成绑定(需要安装 llvm)
  • 如果使用功能 rdfox-dylib,则链接到动态链接库 libRDFox.dylib
  • 默认情况下,它链接到静态 RDFox 库 libRDFox-static.a
  • 需要 RDFox 许可证(见 https://www.oxfordsemantic.tech/product
    • 将许可证文件复制到 ~/.RDFox/RDFox.lic
  • 它提供了一种更高级的 Rust 友好型接口,用于 RDFox C-API

状态

  • 所有基本功能都正常工作
  • 适当的文档仍然缺失,请检查 tests/load.rs 源代码以获取示例
  • 目前仅支持 RDFox 6.2 和 RDFox 6.3
  • RDFox 本身是一个 C++ 程序,具有 C API,作为动态链接库或静态库提供,这两个都受此 Rust crate 支持。
    • 如果想要使用动态链接库,请使用功能 rdfox-dylib
    • 目前,静态链接库在运行测试时会导致 SIGSEGV 信号
      • 目前正在调查此问题。
      • 当与静态库链接时,RDFox API 记录功能不起作用(正在进行中的问题)
    • 因此,**此 crate 还未准备好用于生产**。
  • 目前仅作为嵌入式数据库进行了测试(意思是在Rust进程中运行整个RDFox数据库引擎),然而,从理论上讲,通过添加一些必要的调整,也应该可以将其作为一个客户端运行在RDFox的远程实例上。

计划

  • 获取静态链接库,确保不会产生 SIGSEGV 信号
  • 使高级接口更加抽象,以便它也可以用于使用REST调用的远程端点,以及可能的其他三店产品。

版本

该软件包的主版本号和副版本号用于确定需要下载和使用的RDFox版本。

如何运行测试

RUST_LOG=info cargo test 

或者,如果您想查看所有输出

RUST_LOG=trace cargo test --package rdfox-rs --test load load_rdfox -- --exact --nocapture

如果您想使用RDFox的动态链接库运行测试,请运行此命令

RUST_LOG=trace cargo test --package rdfox-rs --features rdfox-dylib --test load load_rdfox -- --exact --nocapture

发布在哪里?

依赖项

~18–32MB
~484K SLoC