field33 / rust-rdftk

The RDF toolkit for Rust is a set of crates providing the ability to work with RDF data

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

RDFtk: An RDF Toolkit for Rust

The RDF toolkit for Rust is a set of crates providing the ability to work with RDF data. The goal is to provide a consistent set of tools for reading and writing files, manipulating models programmatically, and working with graph (triple) stores.

MIT License Minimum Rust Version Build Audit mdbook to pages GitHub stars

Note that, in terms of implementation, the primary goals of the RDFtk project is to provide a consistent and complete set of crates for handling RDF data. To this end the crates will value readability and usability over runtime optimization (either memory, or speed) at this time. Getting the right interface will be the primary aim with those optimizations coming as necessary.

More documentation may be found in the RDFtk Book

Crates

The following set of crates are included in this repository (and Rust workspace), they are not yet complete and will probably be joined by others over time.

core This crate provides the core RDF data model; concrete implementations for Statements and Literals, along with a Resource type that provides a builder-like experience for models.

io This crate provides traits for reading and writing Statements and Graphs as well as implementations of these for common representations.

iri This crate provides an implementation of the IRI and URI specifications.

names This crate provides a set of modules that contain the IRIs and QName strings for commonly used vocabularies. It also provides macro support for defining new namespaces in the same style as this library.

ontology This crate provides a data model for creating ontologies using RDF Schema and OWL 2 Web Ontology Language (OWL).

query This crate provides a placeholder for a query APIs and the SPARQL Query Language for RDF support.

skos A data model with RDF support for the Simple Knowledge Organization System (SKOS) vocabulary.

The following diagram shows the crate dependencies.

           ┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─            
                     ┌─────────────────────────────────────────┐        │           
           │         │                                         │                    
                     ▼                                         │        │           
           │ ┌──────────────┐     ┌──────────────┐     ┌───────┴──────┐             
             │              │     │              │     │              │ │           
           │ │     iri      │◀────│     core     │────▶│    names     │             
             │              │     │              │     │              │ │           
           │ └──────────────┘     └──────────────┘     └──────────────┘             
            ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┘           
                     ▲   ▲                ▲                ▲   ▲                    
        ┌────────────┘   │                │                │   └────────────┐       
┌───────┴──────┐ ┌───────┴──────┐ ┌───────┴──────┐ ┌───────┴──────┐ ┌───────┴──────┐
│              │ │              │ │              │ │              │ │              │
│      io      │ │              │ │   ontology   │ │    query     │ │     skos     │
│              │ │              │ │              │ │              │ │              │
└──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘ └───────┬──────┘
        ▲                ▲                                                  │       
        │                │                                                  │       
        └────────────────┴──────────────────────────────────────────────────┘       

RDF OWL RDFa SKOS PROV SPARQL

All usage of the W3C Semantic Web Technology Buttons are in accordance with https://www.w3.org/2007/10/sw-logos.html.

About

The RDF toolkit for Rust is a set of crates providing the ability to work with RDF data

License:MIT License


Languages

Language:Rust 97.5%Language:ANTLR 1.7%Language:Ruby 0.4%Language:JavaScript 0.3%Language:CSS 0.1%Language:Shell 0.0%