1 unstable release
new 0.1.0 | Jan 11, 2025 |
---|
#2 in #quad
Used in 12 crates
(2 directly)
1.5MB
29K
SLoC
spareval
spareval is a SPARQL Query evaluator.
It relies on the spargebra and sparopt crates.
This crate is intended to be a building piece for SPARQL implementations like oxigraph.
use oxrdf::{Dataset, GraphName, NamedNode, Quad};
use spareval::{QueryEvaluator, QueryResults};
use spargebra::Query;
let ex = NamedNode::new("http://example.com").unwrap();
let dataset = Dataset::from_iter([Quad::new(
ex.clone(),
ex.clone(),
ex.clone(),
GraphName::DefaultGraph,
)]);
let query = Query::parse("SELECT * WHERE { ?s ?p ?o }", None).unwrap();
let results = QueryEvaluator::new().execute(dataset, &query);
if let QueryResults::Solutions(solutions) = results.unwrap() {
let solutions = solutions.collect::<Result<Vec<_>, _>>().unwrap();
assert_eq!(solutions.len(), 1);
assert_eq!(solutions[0]["s"], ex.into());
}
Cargo features
rdf-star
: enables SPARQL-star.sep-0002
: enables theSEP-0002
(ADJUST
function and a lot of arithmetic onxsd:date
,xsd:time
,xsd:yearMonthDuration
andxsd:dayTimeDuration
).sep-0006
: enables theSEP-0006
(LATERAL
keyword).calendar-ext
: arithmetic onxsd:gYear
,xsd:gYearMonth
,xsd:gMonth
,xsd:gMonthDay
andxsd:gDay
.
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.
Dependencies
~4.5–6.5MB
~113K SLoC