use crate::RdfSource;
use oxigraph::model::vocab::rdf;
use oxigraph::model::{Dataset, NamedNodeRef, NamedOrBlankNodeRef, TermRef};
impl RdfSource<Dataset> {
pub fn classes(&self) -> impl Iterator<Item = NamedNodeRef<'_>> {
let subject =
NamedOrBlankNodeRef::NamedNode(NamedNodeRef::new_unchecked(self.origin.as_str()));
self.dataset
.quads_for_pattern(Some(subject), Some(rdf::TYPE), None, None)
.filter_map(|quad| match quad.object {
TermRef::NamedNode(node) => Some(node),
_ => None,
})
}
}