7 个版本

0.2.4 2023年11月11日
0.2.3 2023年10月14日
0.2.0 2023年9月18日
0.1.1 2023年9月17日

测试 类别中排名第 162

MIT 许可证

62KB
1.5K SLoC

triples

实验性的 Rust 库,用于以三元组格式存储任何数据。

功能

  • 嵌入式
  • 异步
  • CLI 数据库维护工具
  • RDF / Turtle
  • 非 RDF 数据的导入/导出

概述

  • Rust API
  • 存储主语、谓语和宾语,其中
    • 主语始终是 RDF 名称
    • 谓语始终是 RDF 名称
    • 宾语始终是 UTF 字符串

安装

cargo install triples

参见 crate

用法

目前,有关 API 用法的说明,请参阅 db_api 中的单元测试。

有关 CLI 用法

triples -h
A lib and cli for storing data triples

Usage: triples [OPTIONS] <COMMAND>

Commands:
  import-turtle
  export-turtle
  import-csv
  export-csv
  help           Print this message or the help of the given subcommand(s)

Options:
  -d, --db-location <DB_LOCATION>  [default: /tmp/triples.db]
  -h, --help                       Print help
  -V, --version                    Print version

导入 CSV 并添加 NS 前缀

cat ../vssgen/vss_sm.csv | triples -d /tmp/vss.db import-csv --subject-default-ns https://myvss.com/id --predicate-default-ns https://myvss.com/data --skip-headers

导出 ttl

triples --db-location /tmp/vss.db export-turtle
@prefix ns1: <https://myvss.com/id/> .

@prefix ns2: <https://myvss.com/data/> .

ns1:d654c9bc-37d7-425e-945b-41a4440da236
    ns2:has_chassis "1ad84bfb-2017-4c42-b28f-de938755cb00" ;
    ns2:timestamp "2023-09-17 21:07:36" ;
    ns2:type "vehicle" ;
    ns2:has_drivetrain "8db9fa98-5017-43d3-accd-bebe822a4066" ;
    ns2:vehicle_id "0" ; .

ns1:1ad84bfb-2017-4c42-b28f-de938755cb00
    ns2:brake_status "False" ;
    ns2:type "chassis" ;
    ns2:speed "79" ; .

ns1:8db9fa98-5017-43d3-accd-bebe822a4066
    ns2:engine_temperature "106" ;
    ns2:fuel_level "56" ;
    ns2:type "drivetrain" ;
    ns2:battery_level "3" ; .

待办事项

  • 通过 CLI 批量加载和导出
  • 标准化 RDF 名称
  • 标准化对象值
  • 导入/导出 RDF Turtle *.tll 格式
  • 导入/导出三元组 CSV *.csv 格式
  • 导出时具有有意义的名称前缀
  • 更好的导出测试
  • 导入任意列 CSV *.csv 格式
  • 导入任意 JSON *.json 格式
  • 导入任意 jsonl *.jsonl 格式
  • 通过 API 进行事务控制
  • 插入性能
  • SparkQL

欢迎 PR

依赖关系

~18–35MB
~556K SLoC