1pub mod sparql;
11mod sparql_update;
12pub mod sql;
13
14pub use sparql::{run_sparql, SparqlResult};
15pub use sql::{run_sql, QueryResult};
16
17use ontocore_catalog::OntologyCatalog;
18use thiserror::Error;
19
20#[derive(Debug, Error)]
21pub enum QueryError {
22 #[error("SQL error: {0}")]
23 Sql(String),
24
25 #[error("SPARQL error: {0}")]
26 Sparql(String),
27
28 #[error("export error: {0}")]
29 Export(String),
30}
31
32pub type Result<T> = std::result::Result<T, QueryError>;
33
34pub trait QueryableCatalog {
35 fn catalog(&self) -> &OntologyCatalog;
36}
37
38impl QueryableCatalog for OntologyCatalog {
39 fn catalog(&self) -> &OntologyCatalog {
40 self
41 }
42}
43
44pub fn query_catalog(catalog: &OntologyCatalog, sql: &str) -> Result<QueryResult> {
45 run_sql(catalog, sql)
46}
47
48pub fn sparql_catalog(catalog: &OntologyCatalog, sparql: &str) -> Result<SparqlResult> {
49 run_sparql(catalog, sparql)
50}