Crate ntriple [−] [src]
ntriple, a library to parse N-Triples on a per string basis.
# Examples
Here's a typical example. It sends an input string (can be a line from a
file for example) to the triple_line()
method of the parser
,
which returns an Option<Triple>
if the input is valid, or a None
or ParseError
if the input is a comment or an invalid triple respectively.
If you are sure that the input should be a triple and no comment, white space,
or other rubbish, you can just use the triple
method, which omits the
Option
and directly returns a ParseResult<Triple>
.
use ntriple::parser::triple_line; use ntriple::{Subject, Predicate, Object}; fn main() { // Here's some input in n-triples format. Unicode escape sequences are resolved // so \u30AA becomes オ. let input = "_:subject <http://example.org/predicate> \"\\u30AAオブジェクト\"."; // parse the input: let parse_result = triple_line(&input); // The result contains an option, or an error when parsing the input failed. match parse_result { // Ok if the input is a triple, a comment, an empty string or whitespace(s). Ok(triple_option) => { match triple_option { Some(triple) => { // a valid triple is found. match triple.subject { // In this case we expect a blank node label Subject::BNode(subject) => println!("Subject: blank node: {}", subject), _ => println!("Weird, a blank node is expected here.") }; match triple.predicate { Predicate::IriRef(iri) => println!("Predicate: {}", iri) }; match triple.object { Object::Lit(literal) => println!("Object: literal: {} ", literal.data), _ => println!("Weird, a literal is expected here.") } }, None => { println!("Skipped [{}]", input); } }; }, // a parse error: the input is no valid triple, comment, empty string or whitespace(s) Err(error) => println!("{}\n{}", input, error), }; }
Modules
parser |
Generated code. |
Structs
Literal |
Represents an RDF literal. |
Triple |
Represents an RDF statement in the form of a triple. |
Enums
Object |
Represents the object part of a triple. |
Predicate |
Represents the predicate part of a triple. |
Subject |
Represents the subject part of a triple. |
TypeLang |
Represents either a type or a language. |