Spargebra
Spargebra is a SPARQL parser.
It supports both SPARQL 1.1 Query and SPARQL 1.1 Update.
The emitted tree is based on SPARQL 1.1 Query Algebra objects.
The API entry point for SPARQL queries is the [Query] struct and the API entry point for SPARQL updates is the [Update] struct.
Support for SPARQL 1.2 is also available behind the sparql-12 feature.
This crate is intended to be a building piece for SPARQL implementations in Rust like Oxigraph.
Note that, opposite to the SPARQL specification, the parser does not allow \uXXXX escape sequences anywhere in the SPARQL syntax but only in IRIs and string literals, just like in Turtle.
To use the standard SPARQL behavior (i.e. allow \uXXXX escape sequences in all strings), enable the standard-unicode-escaping feature.
Usage example:
use SparqlParser;
let query_str = "SELECT ?s ?p ?o WHERE { ?s ?p ?o . }";
let query = new.parse_query.unwrap;
assert_eq!;
License
This project is licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or
<http://www.apache.org/licenses/LICENSE-2.0>) - MIT license (LICENSE-MIT or
<http://opensource.org/licenses/MIT>)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in Oxigraph by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.