Constructor for the RDF graph.
use rdf::graph::Graph;
let graph = Graph::new(None);
Returns true
if the graph does not contain any triples.
use rdf::graph::Graph;
let graph = Graph::new(None);
assert_eq!(graph.is_empty(), true);
Returns the number of triples that are stored in the graph.
use rdf::graph::Graph;
let graph = Graph::new(None);
assert_eq!(graph.count(), 0);
Returns the base URI of the graph.
use rdf::uri::Uri;
use rdf::graph::Graph;
let base_uri = Uri::new("http://example.org/".to_string());
let graph = Graph::new(Some(&base_uri));
assert_eq!(graph.base_uri(), &Some(base_uri));
Sets the base URI of the graph.
use rdf::uri::Uri;
use rdf::graph::Graph;
let base_uri = Uri::new("http://base.example.org/".to_string());
let mut graph = Graph::new(None);
graph.set_base_uri(&base_uri);
assert_eq!(graph.base_uri(), &Some(base_uri));
Returns a hash map of namespaces and prefixes.
Adds a new namespace with a specific prefix to the graph.
use rdf::uri::Uri;
use rdf::graph::Graph;
use rdf::namespace::Namespace;
let mut graph = Graph::new(None);
graph.add_namespace(&Namespace::new("example".to_string(),
Uri::new("http://example.org/".to_string())));
assert_eq!(graph.namespaces().len(), 1);
Returns the URI of a namespace with the provided prefix.
use rdf::uri::Uri;
use rdf::graph::Graph;
use rdf::namespace::Namespace;
let mut graph = Graph::new(None);
let uri = Uri::new("http://example.org/".to_string());
graph.add_namespace(&Namespace::new("example".to_string(), uri.to_owned()));
assert_eq!(graph.get_namespace_uri_by_prefix("example").unwrap(), &uri);
- No namespace with the provided prefix exists
Returns a literal node of the specified namespace.
use rdf::graph::Graph;
use rdf::node::Node;
let graph = Graph::new(None);
let literal_node = graph.create_literal_node("literal".to_string());
assert_eq!(literal_node, Node::LiteralNode {
literal: "literal".to_string(),
data_type: None,
language: None
});
Returns a literal node with a specified data type.
use rdf::graph::Graph;
use rdf::node::Node;
use rdf::uri::Uri;
let graph = Graph::new(None);
let literal_node = graph.create_literal_node_with_data_type("literal".to_string(), &Uri::new("http://example.org/show/localName".to_string()));
assert_eq!(literal_node, Node::LiteralNode {
literal: "literal".to_string(),
data_type: Some(Uri::new("http://example.org/show/localName".to_string())),
language: None
});
Returns a literal node with a specified language.
use rdf::graph::Graph;
use rdf::node::Node;
let graph = Graph::new(None);
let literal_node = graph.create_literal_node_with_language("literal".to_string(), "en".to_string());
assert_eq!(literal_node, Node::LiteralNode {
literal: "literal".to_string(),
data_type: None,
language: Some("en".to_string())
});
Creates a blank node with a unique ID.
use rdf::graph::Graph;
use rdf::node::Node;
let mut graph = Graph::new(None);
let blank_node = graph.create_blank_node();
assert_eq!(blank_node, Node::BlankNode {
id: "auto0".to_string()
});
Creates a blank node with the specified ID.
use rdf::graph::Graph;
use rdf::node::Node;
let graph = Graph::new(None);
let blank_node = graph.create_blank_node_with_id("foobar".to_string());
assert_eq!(blank_node, Node::BlankNode {
id: "foobar".to_string()
});
Creates a new URI node.
use rdf::graph::Graph;
use rdf::node::Node;
use rdf::uri::Uri;
let graph = Graph::new(None);
let uri_node = graph.create_uri_node(&Uri::new("http://example.org/show/localName".to_string()));
assert_eq!(uri_node, Node::UriNode {
uri: Uri::new("http://example.org/show/localName".to_string())
});
Adds a triple to the graph.
use rdf::graph::Graph;
use rdf::uri::Uri;
use rdf::triple::Triple;
let mut graph = Graph::new(None);
let subject = graph.create_blank_node();
let predicate = graph.create_uri_node(&Uri::new("http://example.org/show/localName".to_string()));
let object = graph.create_blank_node();
let triple = Triple::new(&subject, &predicate, &object);
graph.add_triple(&triple);
assert_eq!(graph.count(), 1);
Adds a vector of triples.
use rdf::graph::Graph;
use rdf::uri::Uri;
use rdf::triple::Triple;
let mut graph = Graph::new(None);
let subject = graph.create_blank_node();
let predicate = graph.create_uri_node(&Uri::new("http://example.org/show/localName".to_string()));
let object = graph.create_blank_node();
let triple1 = Triple::new(&subject, &predicate, &object);
let triple2 = Triple::new(&subject, &predicate, &object);
graph.add_triples(&vec![triple1, triple2]);
assert_eq!(graph.count(), 2);
Deletes the triple from the graph.
use rdf::graph::Graph;
use rdf::uri::Uri;
use rdf::triple::Triple;
let mut graph = Graph::new(None);
let subject = graph.create_blank_node();
let predicate = graph.create_uri_node(&Uri::new("http://example.org/show/localName".to_string()));
let object = graph.create_blank_node();
let triple = Triple::new(&subject, &predicate, &object);
graph.add_triple(&triple);
graph.remove_triple(&triple);
assert_eq!(graph.count(), 0);
Returns all triples from the store that have the specified subject node.
use rdf::graph::Graph;
use rdf::uri::Uri;
use rdf::triple::Triple;
let mut graph = Graph::new(None);
let subject1 = graph.create_blank_node();
let subject2 = graph.create_blank_node();
let predicate = graph.create_uri_node(&Uri::new("http://example.org/show/localName".to_string()));
let object = graph.create_blank_node();
let triple1 = Triple::new(&subject1, &predicate, &object);
let triple2 = Triple::new(&subject2, &predicate, &object);
graph.add_triples(&vec![triple1.to_owned(), triple2]);
assert_eq!(graph.get_triples_with_subject(&subject1), vec![&triple1]);
Returns all triples from the store that have the specified predicate node.
use rdf::graph::Graph;
use rdf::uri::Uri;
use rdf::triple::Triple;
let mut graph = Graph::new(None);
let subject1 = graph.create_blank_node();
let subject2 = graph.create_blank_node();
let predicate = graph.create_uri_node(&Uri::new("http://example.org/show/localName".to_string()));
let object = graph.create_blank_node();
let triple1 = Triple::new(&subject1, &predicate, &object);
let triple2 = Triple::new(&subject2, &predicate, &object);
graph.add_triples(&vec![triple1.to_owned(), triple2.to_owned()]);
assert_eq!(graph.get_triples_with_predicate(&predicate), vec![&triple1, &triple2]);
Returns all triples from the store that have the specified object node.
use rdf::graph::Graph;
use rdf::uri::Uri;
use rdf::triple::Triple;
let mut graph = Graph::new(None);
let subject1 = graph.create_blank_node();
let subject2 = graph.create_blank_node();
let predicate = graph.create_uri_node(&Uri::new("http://example.org/show/localName".to_string()));
let object = graph.create_blank_node();
let triple1 = Triple::new(&subject1, &predicate, &object);
let triple2 = Triple::new(&subject2, &predicate, &object);
graph.add_triples(&vec![triple1.to_owned(), triple2.to_owned()]);
assert_eq!(graph.get_triples_with_object(&object), vec![&triple1, &triple2]);
Returns all triples from the triple store where the subject and object nodes match the provided nodes.
use rdf::graph::Graph;
use rdf::uri::Uri;
use rdf::triple::Triple;
let mut graph = Graph::new(None);
let subject1 = graph.create_blank_node();
let subject2 = graph.create_blank_node();
let predicate = graph.create_uri_node(&Uri::new("http://example.org/show/localName".to_string()));
let object = graph.create_blank_node();
let triple1 = Triple::new(&subject1, &predicate, &object);
let triple2 = Triple::new(&subject2, &predicate, &object);
graph.add_triples(&vec![triple1.to_owned(), triple2]);
assert_eq!(graph.get_triples_with_subject_and_object(&subject1, &object), vec![&triple1]);
Returns all triples from the triple store where the subject and predicate nodes match the provided nodes.
use rdf::graph::Graph;
use rdf::uri::Uri;
use rdf::triple::Triple;
let mut graph = Graph::new(None);
let subject1 = graph.create_blank_node();
let subject2 = graph.create_blank_node();
let predicate = graph.create_uri_node(&Uri::new("http://example.org/show/localName".to_string()));
let object = graph.create_blank_node();
let triple1 = Triple::new(&subject1, &predicate, &object);
let triple2 = Triple::new(&subject2, &predicate, &object);
graph.add_triples(&vec![triple1.to_owned(), triple2]);
assert_eq!(graph.get_triples_with_subject_and_predicate(&subject1, &predicate), vec![&triple1]);
Returns all triples from the triple store where the predicate and object nodes match the provided nodes.
use rdf::graph::Graph;
use rdf::uri::Uri;
use rdf::triple::Triple;
let mut graph = Graph::new(None);
let subject1 = graph.create_blank_node();
let subject2 = graph.create_blank_node();
let predicate = graph.create_uri_node(&Uri::new("http://example.org/show/localName".to_string()));
let object = graph.create_blank_node();
let triple1 = Triple::new(&subject1, &predicate, &object);
let triple2 = Triple::new(&subject2, &predicate, &object);
graph.add_triples(&vec![triple1.to_owned(), triple2.to_owned()]);
assert_eq!(graph.get_triples_with_predicate_and_object(&predicate, &object), vec![&triple1, &triple2]);
Returns an iterator over the triples of the graph.