34 个版本 (21 个重大更新)

0.22.1 2023 年 11 月 21 日
0.21.0 2023 年 10 月 18 日
0.19.0 2023 年 6 月 6 日
0.18.0 2023 年 2 月 28 日
0.2.0-beta2020 年 7 月 12 日

#485数据结构

Download history 445/week @ 2024-03-14 556/week @ 2024-03-21 723/week @ 2024-03-28 695/week @ 2024-04-04 858/week @ 2024-04-11 890/week @ 2024-04-18 994/week @ 2024-04-25 1034/week @ 2024-05-02 1115/week @ 2024-05-09 1028/week @ 2024-05-16 589/week @ 2024-05-23 796/week @ 2024-05-30 776/week @ 2024-06-06 931/week @ 2024-06-13 1172/week @ 2024-06-20 602/week @ 2024-06-27

每月 3,606 次下载
用于 28 个 crate(直接使用 3 个)

MIT/Apache

155KB
5K SLoC

通用 RDF 数据集。

CI Crate informations License Documentation

资源描述框架 (RDF) 是由 万维网联盟 (W3C) 定义的一种强大的数据建模和知识建模方法。RDF 数据集由连接节点、值和谓词的图集合组成。此crate提供了通用 RDF (gRDF) 的特性和实现,其中节点、值和谓词具有相同的表示。

请注意,需要 Rust 编译器版本 1.65 或更高版本。它需要泛型关联类型 (GAT) 才能正常工作。

基本用法

探索数据集

每个 Dataset 实现都提供了许多迭代器来探索数据。一种简单的方法是迭代数据集的四元组

for Quad(subject, predicate, object, graph) in dataset.quads() {
	// do something
}

另一种方法是使用 Dataset::graph 逐个访问图。对于给定的图,可以迭代图的三元组

let graph = dataset.graph(id).unwrap();

for Triple(subject, predicate, object) in graph.triples() {
	// do something
}

也可以按逻辑顺序探索图,即按主题、谓词和对象逐个访问

// for each subject of the graph...
for (subject, predicates) in graph.subjects() {
	// for each predicate it is subject...
	for (predicate, objects) in predicates {
		// for each triple (subject, predicate, object)...
		for object in objects {
			// do something
		}
	}
}

插入新数据

可以在 MutableDataset 实现中使用 MutableDataset::insert 进行插入

let mut dataset: HashDataset<Term> = HashDataset::new();
dataset.insert(Quad(subject, predicate, object, graph));

同样,也可以以可变方式访问数据集的每个图

let mut graph = dataset.graph_mut(id).unwrap();
graph.insert(Triple(subject, predicate, object));

自定义节点类型

用于表示 RDF 节点(主题、谓词和对象)的类型是数据集的参数。可以使用任何类型,尽管此 crate 提供了一个默认的 Term 类型,它表示通用的 RDF 节点(空白节点、IRI 命名节点和字面值)。

许可协议

许可协议为以下之一

任选其一。

贡献

除非您明确声明,否则根据Apache-2.0许可证定义的您有意提交的任何贡献,均应作为上述双重许可使用,不附加任何额外条款或条件。

依赖项

~7MB
~138K SLoC