A Rust toolkit for RDF and Linked Data.
It comprises the following crates:
sophia_api
defines a generic API for RDF and linked data, as a set of core traits and types; more precisely, it provides traits for describing- terms, triples and quads,
- graphs and datasets,
- parsers and serializers
sophia_iri
provides functions, types and traits for validating and resolving IRIs.sophia_inmem
defines in-memory implementations of theGraph
andDataset
traits fromsophia_api
.sophia_term
defines various implementations of theTerm
trait fromsophia_api
.sophia_turtle
provides parsers and serializers for the Turtle-family of concrete syntaxes.sophia_xml
provides parsers and serializers for RDF/XML.sophia_jsonld
provides preliminary support for JSON-LD.sophia_c14n
implements RDF canonicalization.sophia_resource
provides a resource-centric API.sophia_rio
is a lower-level crate, used by the ones above.
and finally:
sophia
is the “all-inclusive” crate, re-exporting symbols from all the crates above. (actually,sophia_xml
is only available if thexml
feature is enabled)
In addition to the API documentation, a high-level user documentation is available (although not quite complete yet).
CECILL-B (compatible with BSD)
When using Sophia, please use the following citation:
Champin, P.-A. (2020) ‘Sophia: A Linked Data and Semantic Web toolkit for Rust’, in Wilde, E. and Amundsen, M. (eds). The Web Conference 2020: Developers Track, Taipei, TW. Available at: https://www2020devtrack.github.io/site/schedule.
Bibtex:
@misc{champin_sophia_2020,
title = {{Sophia: A Linked Data and Semantic Web toolkit for Rust},
author = {Champin, Pierre-Antoine},
howpublished = {{The Web Conference 2020: Developers Track}},
address = {Taipei, TW},
editor = {Wilde, Erik and Amundsen, Mike},
month = apr,
year = {2020},
language = {en},
url = {https://www2020devtrack.github.io/site/schedule}
}
The following third-party crates are using or extending Sophia
hdt
provides an implementation of Sophia's traits based on the HDT format.manas
is a modular framework for implementing Solid compatible serversnanopub
is a toolkit for managing [nanopublications(https://nanopub.net/)
An outdated comparison of Sophia with other RDF libraries is still available here.