ldp 0.1.0

A library to assist with the creation and maintenance of remote RDF data via LDP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use crate::RdfSource;
use oxigraph::model::vocab::rdf;
use oxigraph::model::{Dataset, NamedNodeRef, NamedOrBlankNodeRef, TermRef};

impl RdfSource<Dataset> {
    /// Return all the classes associated with this document.
    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,
            })
    }
}