use ontologos_core::{Error as CoreError, Profile, Reasoner};
use crate::engine::RdfsEngine;
use crate::report::MaterializationReport;
pub fn materialize_reasoner(reasoner: &mut Reasoner) -> crate::Result<MaterializationReport> {
if reasoner.profile() != Profile::Rdfs {
return Err(crate::Error::WrongProfile {
expected: Profile::Rdfs,
actual: reasoner.profile(),
});
}
let record_traces = reasoner.config().explanations;
RdfsEngine::new()
.with_traces(record_traces)
.materialize_with_reasoner(reasoner)
}
pub fn classify_reasoner(reasoner: &mut Reasoner) -> crate::Result<()> {
match reasoner.profile() {
Profile::Rdfs => materialize_reasoner(reasoner).map(|_| ()),
_ => Err(crate::Error::Core(CoreError::NotImplemented)),
}
}