Expand description
This crate provides an implementation of the RDF abstract syntax along with a
Resource type
that provides a builder-like experience for models.
From RDF 1.1 Concepts and Abstract Syntax;
The core structure of the abstract syntax is a set of triples, each consisting of a subject, a predicate and an object. A set of such triples is called an RDF graph. An RDF graph can be visualized as a node and directed-arc diagram, in which each triple is represented as a node-arc-node link.
There can be three kinds of nodes in an RDF graph: IRIs, literals, and blank nodes.
In this library the triple, or statement, as well as subject, predicate, and object types are
in the module statement. Literal’s as objects are supported in the
literal module. Traits that describe graphs are provided by the
graph module.
Additional features are provided such as support for data sets (module data_set)
as well as support for extensions to the core RDF abstract model such as
RDF-star.
§Example
use rdftk_core::model::data_set::DataSet;
use rdftk_core::model::graph::Graph;
use rdftk_core::model::literal::Literal;
use rdftk_core::model::statement::{
ObjectNode, Statement, SubjectNode,
};
use rdftk_iri::Iri;
use std::str::FromStr;
let statement = Statement::new(
Iri::from_str("http://en.wikipedia.org/wiki/Tony_Benn").unwrap(),
Iri::from_str("http://purl.org/dc/elements/1.1/title").unwrap(),
Literal::from("Tony Benn"),
);
let graph = Graph::from(statement);
let data_set = DataSet::from(graph);