Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/navicore/triples
Experimental Rust lib to store any data as RDF
https://github.com/navicore/triples
csv rdf triples
Last synced: 2 months ago
JSON representation
Experimental Rust lib to store any data as RDF
- Host: GitHub
- URL: https://github.com/navicore/triples
- Owner: navicore
- License: mit
- Created: 2023-09-10T15:40:44.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-10-28T12:34:04.000Z (3 months ago)
- Last Synced: 2024-10-28T16:16:53.575Z (3 months ago)
- Topics: csv, rdf, triples
- Language: Rust
- Homepage:
- Size: 579 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
README
# triples
Experimental Rust lib to store any data in triple format.
## Features
* embedded
* async
* cli db maintenance tool
* RDF / Turtle
* import / export of non-RDF data## Overview
* Rust API
* see [crate](https://crates.io/crates/triples)
* stores subject, predicate, and object where
* subject is always an RDF name
* predicate is always an RDF name
* object is always a UTF string## Install
```bash
cargo install triples
```
orsee [crate](https://crates.io/crates/triples)
## Usage
For API usage, see the unit tests in [db_api]("./src/db_api.rs") for now.
For cli usage:
```bash
triples -h
``````bash
A lib and cli for storing data triplesUsage: triples [OPTIONS]
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 [default: /tmp/triples.db]
-h, --help Print help
-V, --version Print version
```import csv and prepend NS prefixes
```bash
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
```export ttl
```bash
triples --db-location /tmp/vss.db export-turtle
``````bash
@prefix ns1: .@prefix ns2: .
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" ; .
```## TODO
* ~~bulk loading and exporting via cli~~
* ~~normalizes RDF names~~
* ~~normalizing object values~~
* ~~import / export of RDF Turtle `*.tll` format~~
* ~~import / export of triple csv `*.csv` format~~
* ~~meaningful prefix names on export~~
* better export tests
* import of arbitrary column csv `*.csv` format
* import of arbitrary json `*.json` format
* import of arbitrary jsonl `*.jsonl` format
* txn control via api
* insert performance
* SparkQL----------
__PRs welcome__