#graph #statement #rdf #data-set #literals #data-model #node

rdftk_core

这个包提供了核心的 RDF 数据模型;语句和字面量的具体实现,以及一个提供类似构建器体验的资源类型

21 个版本

0.3.1 2021 年 6 月 14 日
0.3.0 2021 年 6 月 8 日
0.2.4 2021 年 5 月 28 日
0.1.14 2021 年 4 月 24 日
0.1.0 2020 年 7 月 28 日

#data-set 中排名 3

Download history 16/week @ 2024-04-22 5/week @ 2024-04-29 9/week @ 2024-05-06 23/week @ 2024-05-13 26/week @ 2024-05-20 27/week @ 2024-05-27 14/week @ 2024-06-03 19/week @ 2024-06-10 11/week @ 2024-06-17 15/week @ 2024-06-24 3/week @ 2024-07-08 23/week @ 2024-07-15 4/week @ 2024-07-22 31/week @ 2024-07-29 18/week @ 2024-08-05

每月下载量 76
10 包使用(8 个直接使用)

MIT 许可证

380KB
6K SLoC

RDFtk: 核心部分

core 这个包提供了 RDF 抽象语法的实现,以及一个提供类似构建器体验的 Resource 类型。

crates.io docs.rs

来自 RDF 1.1 概念和抽象语法

抽象语法的核心结构是一组三元组,每个三元组由一个主题、一个谓词和一个对象组成。这样的一组三元组被称为 RDF 图。RDF 图可以可视化为节点和有向弧图,其中每个三元组表示为节点-弧-节点链接。

rdf-graph

RDF 图中可以有三种类型的节点:IRI、字面量和空白节点。

在这个库中,三元组或陈述以及主题、谓词和对象类型都在模块 statement 中。字面量作为对象在模块 literal 中得到支持。由模块 graph 提供描述图的特质。

还提供了其他功能,例如支持数据集(模块 model.data_set)以及支持对核心 RDF 抽象模型的扩展,如 RDF-star

示例

use rdftk_core::{Literal, Statement, StatementList, SubjectNode};
use rdftk_iri::IRI;
use std::rc::Rc;
use std::str::FromStr;

pub fn make_statements() -> StatementList {
    let mut statements: StatementList = Default::default();
    
    statements.push(Statement::new(
        SubjectNode::named(IRI::from_str("http://en.wikipedia.org/wiki/Tony_Benn").unwrap()),
        IRI::from_str("http://purl.org/dc/elements/1.1/title").unwrap(),
        Literal::new("Tony Benn").into(),
    ).into());
    // ...
    statements
}

变更

版本 0.3.1

  • 添加了 PrefixMappingFactory 特质和 GraphFactory 上的 prefix_mapping_factory 方法。

版本 0.3.0

  • 在模块 'model' 中描述的抽象 RDF API 现在完全是基于特质的。
  • 模块 'simple' 中的实现提供了具体的内存类型。
  • 添加了新的类型 LanguageTag 以更完整地表示这些值。
  • 添加了功能的概念,表示数据集、图和陈述实现所支持的能力。

版本 0.2.4

  • 创建了新的 Featured 特质,由许多类型实现,允许客户端查询各种可选功能。这也包括 has_index/has_all_indices 功能,因为所有索引查询现在都是功能查询。

版本 0.2.3

  • 从 rdftk_io 复制了一些错误。
  • 将 Io 变体重命名为 ReadWrite。

版本 0.2.2

  • 重写了 API,以使用 Ref 类型,并在整个库中保持特质对象和类型的用法一致。
  • 添加了数据集的工厂类型。
  • 将 PrefixMappings 在 core::graph::mapping 模块中实现为具体类型。
  • 向 ErrorKind 添加了 InvalidMatch 和 Io 变体。
  • 向 Statement 添加了突变器。

版本 0.2.1

  • 更改了 API,移除了 Graph 和 DataSet 的可变特质,将方法移动到它们的基特质中。
  • 添加了图的工厂类型。
  • 为图添加了 Skolemization 函数。

版本 0.2.0

  • API 的更改,所有 Statement 和陈述组件现在都作为 Rc 引用传递。
    • 添加了额外的 _ref 构造函数,以允许更干净的客户端代码。
  • API 的更改,GraphDataSet 现在使用类型参数来描述 query 方法返回的迭代器。
  • API 的更改,QName 构造函数现在在无效值上返回错误而不是恐慌。
  • 为字面量值添加了更多构造函数。
  • 在字面量中添加了对 chrono::Duration 的支持,以及 std 版本,因为 chrono 支持正确的输出格式。
  • SubjectNodeObjectNode 上添加了 eq_ 方法,以简单测试内部值。
  • 在库的各个部分添加了文档和示例。

版本 0.1.15

  • 修复了 Clippy 建议。
  • 从语句中移除了 Context。
  • 向 Graph 添加了 value_factory 方法。
  • 将所有单元测试放置在 tests 文件夹中。

版本 0.1.14

  • 移除了独立的命名图。
  • 添加数据集作为关联名称和图表的方式。
  • 将CachingGraph重命名为ValueFactory,并使其独立。

版本 0.1.13

  • 错误:修复了文字构造函数,以生成字符串的转义安全文字形式。

版本 0.1.12

  • 修复:cargo fmt错误。

版本 0.1.11

  • 添加:公开类型StatementRefStatementList,而不是在所有API中显然使用Rc

版本 0.1.10

  • 已弃用 通过向Statement添加上下文(类型ContextNode)来支持数据集和Quads。

版本 0.1.9

  • Statement中支持RDF*
  • Statement添加了额外的构造函数。
  • 将资源方法rdf_type重命名为instance_of以与RDF模式使用兼容。
  • QName添加了关联函数is_valid

版本 0.1.8

  • 显式导出pub use *

版本 0.1.7

  • Graph拆分为GraphMutableGraph
  • NamedGraph拆分为NamedGraphMutableNamedGraph
  • get_default_namespace添加到PrefixMappings特质中作为辅助函数。
  • 修改了PrefixMappings::compressPrefixMappings::expand以使用引用。

版本 0.1.6

  • 显式版本管理。

版本 0.1.5

  • 为rdftk_memgraph构建更新。

版本 0.1.4

  • 将所有本地依赖项仅限制为主/次版本值。

版本 0.1.3

  • 将所有IRI移动到接口上的IRIRef
  • Graph和相关类型移入核心,并弃用rdftk_graph

版本 0.1.2

  • 清理更改。

版本 0.1.1

  • 添加了From以允许从IRI直接构建SubjectNode
  • 修复了QName中的一个错误,该错误丢失了非前缀值中的":"。

版本 0.1.0

  • 首次发布。

待办事项

待定

RDF

依赖关系

~7–10MB
~191K SLoC