linked_data_sparql/
lib.rs

1//! SPARQL query generation for linked data.
2//!
3//! ```rust
4//! use linked_data_sparql::{Sparql, SparqlQuery};
5//!
6//! #[derive(Sparql, Debug, PartialEq)]
7//! #[ld(prefix("ex" = "http://example.org/"))]
8//! struct Person {
9//!   #[ld("ex:name")]
10//!   name: String,
11//!
12//!   #[ld("ex:age")]
13//!   age: u32,
14//! }
15//!
16//! let _string_sparql_query = Person::sparql_query();
17//! ```
18
19mod construct_query;
20pub mod sparql_graph_store;
21mod sparql_query;
22mod to_construct_query;
23
24pub mod rdf_type_conversions;
25
26pub use crate::construct_query::ConstructQuery;
27pub use crate::sparql_query::SparqlQuery;
28pub use crate::to_construct_query::ToConstructQuery;
29pub use construct_query::and::And;
30pub use construct_query::join::Join;
31pub use construct_query::union::Union;
32pub use linked_data_sparql_derive::Sparql;
33use spargebra::Query;
34
35pub mod reexport {
36  pub use spargebra;
37}
38
39impl<T> SparqlQuery for T
40where
41  T: ToConstructQuery,
42{
43  fn sparql_query_algebra() -> Query {
44    Self::to_query().into()
45  }
46}