#语句 #RDF # #字面量 #节点 #数据集 #对象

field33_rdftk_core_temporary_fork

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

1个不稳定版本

0.3.1 2022年8月23日

#767 in 算法

Download history 32/week @ 2024-03-11 16/week @ 2024-03-18 31/week @ 2024-03-25 58/week @ 2024-04-01 14/week @ 2024-04-08 7/week @ 2024-04-15 19/week @ 2024-04-22 12/week @ 2024-04-29 15/week @ 2024-05-06 15/week @ 2024-05-13 9/week @ 2024-05-20 9/week @ 2024-05-27 13/week @ 2024-06-03 16/week @ 2024-06-10 9/week @ 2024-06-17 15/week @ 2024-06-24

53 每月下载量
用于 5 个crate(4 直接使用)

MIT 协议

380KB
6K SLoC

RDFtk:核心

core 此crate提供了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 field33_rdftk_core_temporary_fork::{Literal, Statement, StatementList, SubjectNode};
use field33_rdftk_iri_temporary_fork::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 trait和GraphFactory上的prefix_mapping_factory方法。

版本 0.3.0

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

版本 0.2.4

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

版本 0.2.3

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

版本 0.2.2

  • 重构API以使用Ref类型,并确保在模块中使用trait对象和类型时保持一致性。
  • 添加了数据集的工厂类型。
  • 在core::graph::mapping模块中将PrefixMappings改为具体类型。
  • 在ErrorKind中添加了InvalidMatch和Io变体。
  • 在Statement中添加了mutators。

版本 0.2.1

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

版本 0.2.0

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

版本 0.1.15

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

版本 0.1.14

  • 移除了独立的命名图。
  • 添加了DataSet作为将名称与图关联的方法。
  • 将CachingGraph重命名为ValueFactory,并使其独立。

版本 0.1.13

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

版本 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
~193K SLoC