#rdf #graph #serialization #triple #statement #representation #reading

rdftk_io

本软件包提供读取和写入语句和图的语言特征,以及这些特征在常见表示形式中的实现。

11 个版本

0.2.1 2021 年 6 月 14 日
0.2.0 2021 年 6 月 8 日
0.1.9 2021 年 5 月 27 日
0.1.6 2021 年 4 月 24 日
0.1.0 2020 年 7 月 28 日

1098网页编程

Download history 6/week @ 2024-04-21 3/week @ 2024-04-28 6/week @ 2024-05-12 14/week @ 2024-05-19 8/week @ 2024-05-26 6/week @ 2024-06-02 7/week @ 2024-06-09 3/week @ 2024-06-16 2/week @ 2024-06-30 60/week @ 2024-07-28

62 每月下载量
用于 3 个软件包2 个直接使用

MIT 许可证

555KB
9K SLoC

Rust 8K SLoC // 0.2% comments Pest 1.5K SLoC // 0.2% comments Shell 5 SLoC

RDFtk: IO

io 本软件包提供读取和写入 StatementGraph 的语言特征,以及这些特征在常见表示形式中的实现。

crates.io docs.rs

以下是一些著名的格式(参见维基百科了解不同序列化的描述),支持情况在最后一列中用R表示读支持,用W表示写支持。还有一个额外的模块 dot,允许创建GraphViz dot文件,用于可视化图的结构。

模块 名称 MIME 类型 R/W
nt RDF 1.1 N-Triples;RDF图的基于行的语法 application/n-三元组 R+W
nq RDF 1.1 N-Quads;RDF数据集的基于行的语法 application/n-四元组 W
turtle RDF 1.1 Turtle;简洁的RDF三元组语言 text/turtle W
trig RDF 1.1 TriG;RDF数据集语言 application/trig
xml RDF 1.1 XML 语法 application/rdf+xml W
json RDF 1.1 JSON 另一种序列化 application/rdf+json R+W
n3 Notation3 (N3):一种可读的RDF语法 text/rdf+n3 W
TBD 用于发布和交换的二进制RDF表示(HDT) N/A
TBD 使用Apache Thrift的RDF二进制 application/x-binary-rdf
TBD JSON-LD 1.1;基于JSON的链接数据序列化 application/ld+json
TBD RDFa 核心第1.1版 - 第三版 text/html

每个模块还将提供公共常量 NAMEFILE_EXTENSIONMIME_TYPE

示例

示例:读取现有的NTriple文件。

use rdftk_io::nt::reader::NTriplesReader;
use rdftk_io::GraphReader;
use rdftk_memgraph::simple::graph_factory;
use std::fs::File;
use std::path::PathBuf;

let file_path = PathBuf::from("tests/w3c/nt/literal.nt");
let mut file = File::open(file_path).unwrap();
let reader = NTriplesReader::default();
let graph = reader.read(&mut file, graph_factory()).unwrap();

变更

版本 0.2.1

  • 添加了JSON读取器。

版本 0.2.0

  • 将rdftk_core依赖更新到0.3.0,这是一个重大的API更改。
  • 现在所有读取操作都需要图工厂。

版本 0.1.9

  • 在IRI解析中添加了Unicode转义处理。
  • 所有NTriples的W3C测试用例现在都通过。
  • 删除了本地错误模块,现在使用核心错误类型。

版本 0.1.8

  • 使用新的样式接口,一致地使用特性和特例引用类型。
  • 有一个工作的NTriple解析器。

版本 0.1.7

  • 使用rdftk_core 0.2,这导致了Graph和DataSet特例签名的更改。
    • 这导致GraphWriter和DataSetWriter特例的更改。
  • 在lib.rs中应用了更多的警告。
  • 修复了结果Clippy建议。

版本 0.1.6

  • 使所有模块都有独立的读取/写入子模块。
  • 将所有模块放在功能之后。
  • 添加了JSON写入器。
  • 重新编写NQuad写入器以写入数据集。
  • 重新编写NTripe写入器以使用NQuad写入器。
  • 修复了Turtle写入器的格式化。
  • 添加了XML写入器。

版本 0.1.5

  • 内部更改,使用StatementRef

版本 0.1.4

  • 核心crate中的API更改
    • PrefixMappings::compressPrefixMappings::expand更改为引用。

版本 0.1.2

  • 将所有IRI转换为IRIRef

版本 0.1.1

  • 将所有本地依赖项仅设置为主要/次要值。

版本 0.1.0

  • 第一个版本。
  • 仅提供N-Triples、N-Quads和GraphViz的写支持。

待办事项

  1. 核心;N-Triples、N-Quads、N3和Turtle需要读取和写入支持。
  2. 扩展核心;RDF/XML、JSON-LD和RDFa需要读取和写入支持。
  3. 其余部分;RDF/JSON、TriG、HDT和BinaryRDF将按需实现。

RDF RDFa

依赖项

~7-10MB
~193K SLoC