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无关的核心组件已移至 rdf-store-rs软件包
版本
该软件包的主版本号和副版本号用于确定需要下载和使用的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