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);