This commit is contained in:
2026-08-12 14:11:47 -04:00
parent 79894f654d
commit f852da4f4e
48 changed files with 4379 additions and 779 deletions
+43
View File
@@ -0,0 +1,43 @@
use oxigraph::model::NamedNodeRef;
use crate::vocab;
pub enum Class {
RdfProperty = 0,
RdfsClass = 1,
SkosConcept = 2,
Work = 10001,
Person = 10004,
CorporateBody = 10005,
Expression = 10006,
Manifestation = 10007,
}
impl Class {
pub fn to_named_node(&self) -> NamedNodeRef<'_> {
match self {
Class::RdfProperty => vocab::rdf::PROPERTY,
Class::RdfsClass => vocab::rdfs::CLASS,
Class::SkosConcept => vocab::skos::CONCEPT,
Class::Work => vocab::rdac::WORK,
Class::Person => vocab::rdac::PERSON,
Class::CorporateBody => vocab::rdac::CORPORATE_BODY,
Class::Expression => vocab::rdac::EXPRESSION,
Class::Manifestation => vocab::rdac::MANIFESTATION,
}
}
pub fn try_from_named_node<'a>(node: impl Into<NamedNodeRef<'a>>) -> Option<Self> {
let node = node.into();
match node {
vocab::rdf::PROPERTY => Some(Class::RdfProperty),
vocab::rdfs::CLASS => Some(Class::RdfsClass),
vocab::skos::CONCEPT => Some(Class::SkosConcept),
vocab::rdac::WORK => Some(Class::Work),
vocab::rdac::PERSON => Some(Class::Person),
vocab::rdac::CORPORATE_BODY => Some(Class::CorporateBody),
vocab::rdac::EXPRESSION => Some(Class::Expression),
vocab::rdac::MANIFESTATION => Some(Class::Manifestation),
_ => None,
}
}
}