Expand description
This meta-crate aims to provide a comprehensive toolkit for working with RDF and Linked Data in Rust.
RDF is a data model designed to exchange knowledge on the Web in an interoperable way. Each piece of knowledge in RDF (a statement) is represented by a triple, made of three terms. A set of triples forms an RDF graph. Finally, several graphs can be grouped in a collection called a dataset, where each graph is identified by a unique name.
Generalized vs. Strict RDF model
The data model supported by this crate is in fact a superset of the RDF data model as defined by the W3C. When the distinction matters, they will be called, respectively, the generalized RDF model, and the strict RDF model.
Getting Started
Following a short example how to build a graph, mutate it and serialize it back.
use sophia::graph::{*, inmem::FastGraph};
use sophia::ns::Namespace;
use sophia::parser::turtle;
use sophia::serializer::*;
use sophia::serializer::nt::NtSerializer;
use sophia::triple::stream::TripleSource;
let example = r#"
@prefix : <http://example.org/>.
@prefix foaf: <http://xmlns.com/foaf/0.1/>.
:alice foaf:name "Alice";
foaf:mbox <mailto:alice@work.example> .
:bob foaf:name "Bob".
"#;
let mut graph: FastGraph = turtle::parse_str(example).collect_triples()?;
let ex = Namespace::new("http://example.org/")?;
let foaf = Namespace::new("http://xmlns.com/foaf/0.1/")?;
graph.insert(
&ex.get("bob")?,
&foaf.get("knows")?,
&ex.get("alice")?,
)?;
let mut nt_stringifier = NtSerializer::new_stringifier();
let example2 = nt_stringifier.serialize_graph(&mut graph)?.as_str();
println!("The resulting graph\n{}", example2);
Modules
This module re-exports symbols from
sophia_api::dataset
, sophia_indexed::dataset
and sophia_inmem::dataset
.
This module re-exports symbols from
sophia_api::graph
, sophia_indexed::graph
and sophia_inmem::graph
.
This module re-exports symbols from
sophia_iri
.
This module re-exports symbols from
sophia_api::ns
.
This module re-exports symbols from
sophia_api::parser
and sophia_turtle::parser
.
If the xml
feature is enabled, it also re-exports
sophia_xml::parser
as xml
.
This module re-exports symbols from
sophia_api::prefix
.
This module re-exports symbols from
sophia_api::quad
.
Query processing over RDF graphs and datasets.
This module re-exports symbols from
sophia_api::serializer
and sophia_turtle::serializer
.
If the xml
feature is enabled, it also re-exports
sophia_xml::serializer
as xml
.
This module re-exports symbols from
sophia_api::sparql
.
This module re-exports symbols from
This module re-exports symbols from
sophia_api::term
and
sophia_term
.
This module re-exports symbols from
sophia_api::triple
.