shacl_validation/store/
mod.rs1use shacl_ast::compiled::schema::SchemaIR;
2use shacl_ast::ShaclParser;
3use srdf::RDFFormat;
4use srdf::Rdf;
5use srdf::ReaderMode;
6use srdf::SRDFGraph;
7use std::io::BufRead;
8
9use crate::validate_error::ValidateError;
10
11pub mod graph;
12pub mod sparql;
13
14pub trait Store<S> {
15 fn store(&self) -> &S;
16}
17
18pub struct ShaclDataManager;
19
20impl ShaclDataManager {
21 pub fn load<S: Rdf, R: BufRead>(
22 reader: R,
23 rdf_format: RDFFormat,
24 base: Option<&str>,
25 ) -> Result<SchemaIR<S>, ValidateError> {
26 let rdf = SRDFGraph::from_reader(reader, &rdf_format, base, &ReaderMode::default())?;
27
28 match ShaclParser::new(rdf).parse() {
29 Ok(schema) => Ok(schema.try_into()?),
30 Err(error) => Err(ValidateError::ShaclParser(error)),
31 }
32 }
33}