pub type Iri = String;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum PathDirection {
Forward,
Backward,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum NpsItem {
Forward(Iri),
Inverse(Iri),
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum PropertyPath {
Link(Iri),
Inverse(Box<PropertyPath>),
Sequence(Box<PropertyPath>, Box<PropertyPath>),
Alternative(Box<PropertyPath>, Box<PropertyPath>),
ZeroOrMore(Box<PropertyPath>),
OneOrMore(Box<PropertyPath>),
Optional(Box<PropertyPath>),
NegatedPropertySet(Vec<NpsItem>),
}