pub enum Axiom<L = OwlLiteral, B = BlankNodeId> {
Show 26 variants
Declaration {
entity: Entity,
annotations: AxiomAnnotations<L, B>,
},
SubClassOf {
sub_class: ClassExpression,
super_class: ClassExpression,
annotations: AxiomAnnotations<L, B>,
},
EquivalentClasses {
classes: Vec<ClassExpression>,
annotations: AxiomAnnotations<L, B>,
},
DisjointClasses {
classes: Vec<ClassExpression>,
annotations: AxiomAnnotations<L, B>,
},
ObjectPropertyDomain {
property: ObjectPropertyExpression,
domain: ClassExpression,
annotations: AxiomAnnotations<L, B>,
},
SubObjectPropertyOf {
sub_property: SubObjectPropertyExpression,
super_property: ObjectPropertyExpression,
annotations: AxiomAnnotations<L, B>,
},
FunctionalObjectProperty {
property: ObjectPropertyExpression,
annotations: AxiomAnnotations<L, B>,
},
InverseFunctionalObjectProperty {
property: ObjectPropertyExpression,
annotations: AxiomAnnotations<L, B>,
},
ReflexiveObjectProperty {
property: ObjectPropertyExpression,
annotations: AxiomAnnotations<L, B>,
},
IrreflexiveObjectProperty {
property: ObjectPropertyExpression,
annotations: AxiomAnnotations<L, B>,
},
SymmetricObjectProperty {
property: ObjectPropertyExpression,
annotations: AxiomAnnotations<L, B>,
},
AsymmetricObjectProperty {
property: ObjectPropertyExpression,
annotations: AxiomAnnotations<L, B>,
},
TransitiveObjectProperty {
property: ObjectPropertyExpression,
annotations: AxiomAnnotations<L, B>,
},
FunctionalDataProperty {
property: Iri<String>,
annotations: AxiomAnnotations<L, B>,
},
EquivalentObjectProperties {
properties: Vec<ObjectPropertyExpression>,
annotations: AxiomAnnotations<L, B>,
},
DisjointObjectProperties {
properties: Vec<ObjectPropertyExpression>,
annotations: AxiomAnnotations<L, B>,
},
InverseObjectProperties {
first: ObjectPropertyExpression,
second: ObjectPropertyExpression,
annotations: AxiomAnnotations<L, B>,
},
ObjectPropertyRange {
property: ObjectPropertyExpression,
range: ClassExpression,
annotations: AxiomAnnotations<L, B>,
},
SubDataPropertyOf {
sub_property: Iri<String>,
super_property: Iri<String>,
annotations: AxiomAnnotations<L, B>,
},
EquivalentDataProperties {
properties: Vec<Iri<String>>,
annotations: AxiomAnnotations<L, B>,
},
DisjointDataProperties {
properties: Vec<Iri<String>>,
annotations: AxiomAnnotations<L, B>,
},
DataPropertyDomain {
property: Iri<String>,
domain: ClassExpression,
annotations: AxiomAnnotations<L, B>,
},
DataPropertyRange {
property: Iri<String>,
range: DataRange<L>,
annotations: AxiomAnnotations<L, B>,
},
DatatypeDefinition {
datatype: Iri<String>,
range: DataRange<L>,
annotations: AxiomAnnotations<L, B>,
},
HasKey {
class: ClassExpression,
properties: KeyProperties,
annotations: AxiomAnnotations<L, B>,
},
AnnotationAssertion {
property: Iri<String>,
subject: AnnotationSubject<B>,
value: AnnotationValue<L, B>,
annotations: AxiomAnnotations<L, B>,
},
}Expand description
An OWL structural axiom.
Variants§
Declaration
An entity declaration.
Fields
annotations: AxiomAnnotations<L, B>Axiom<L, B> annotations.
SubClassOf
A subclass axiom.
Fields
sub_class: ClassExpressionSubclass expression.
super_class: ClassExpressionSuperclass expression.
annotations: AxiomAnnotations<L, B>Axiom<L, B> annotations.
EquivalentClasses
An equivalent-classes axiom.
Fields
classes: Vec<ClassExpression>Equivalent class expressions.
annotations: AxiomAnnotations<L, B>Axiom<L, B> annotations.
DisjointClasses
A disjoint-classes axiom.
Fields
classes: Vec<ClassExpression>Disjoint class expressions.
annotations: AxiomAnnotations<L, B>Axiom<L, B> annotations.
ObjectPropertyDomain
An object-property domain axiom.
Fields
property: ObjectPropertyExpressionObject property expression.
domain: ClassExpressionDomain class expression.
annotations: AxiomAnnotations<L, B>Axiom<L, B> annotations.
SubObjectPropertyOf
Object subproperty inclusion, including ordered property-chain inclusion.
Fields
sub_property: SubObjectPropertyExpressionA single property expression or an ordered chain.
super_property: ObjectPropertyExpressionThe superproperty expression.
annotations: AxiomAnnotations<L, B>Axiom<L, B> annotations.
FunctionalObjectProperty
An object property expression is functional.
Fields
property: ObjectPropertyExpressionThe characterized object property expression.
annotations: AxiomAnnotations<L, B>Axiom<L, B> annotations.
InverseFunctionalObjectProperty
An object property expression is inverse-functional.
Fields
property: ObjectPropertyExpressionThe characterized object property expression.
annotations: AxiomAnnotations<L, B>Axiom<L, B> annotations.
ReflexiveObjectProperty
An object property expression is reflexive.
Fields
property: ObjectPropertyExpressionThe characterized object property expression.
annotations: AxiomAnnotations<L, B>Axiom<L, B> annotations.
IrreflexiveObjectProperty
An object property expression is irreflexive.
Fields
property: ObjectPropertyExpressionThe characterized object property expression.
annotations: AxiomAnnotations<L, B>Axiom<L, B> annotations.
SymmetricObjectProperty
An object property expression is symmetric.
Fields
property: ObjectPropertyExpressionThe characterized object property expression.
annotations: AxiomAnnotations<L, B>Axiom<L, B> annotations.
AsymmetricObjectProperty
An object property expression is asymmetric.
Fields
property: ObjectPropertyExpressionThe characterized object property expression.
annotations: AxiomAnnotations<L, B>Axiom<L, B> annotations.
TransitiveObjectProperty
An object property expression is transitive.
Fields
property: ObjectPropertyExpressionThe characterized object property expression.
annotations: AxiomAnnotations<L, B>Axiom<L, B> annotations.
FunctionalDataProperty
A data property has at most one distinct data value per individual.
Fields
annotations: AxiomAnnotations<L, B>Axiom<L, B> annotations.
EquivalentObjectProperties
Equivalent object property expressions.
Fields
properties: Vec<ObjectPropertyExpression>Equivalent object property expressions.
annotations: AxiomAnnotations<L, B>Axiom<L, B> annotations.
DisjointObjectProperties
Pairwise disjoint object property expressions.
Fields
properties: Vec<ObjectPropertyExpression>Pairwise disjoint object property expressions.
annotations: AxiomAnnotations<L, B>Axiom<L, B> annotations.
InverseObjectProperties
Two inverse object property expressions.
Fields
first: ObjectPropertyExpressionFirst object property expression.
second: ObjectPropertyExpressionIts inverse object property expression.
annotations: AxiomAnnotations<L, B>Axiom<L, B> annotations.
ObjectPropertyRange
An object property range.
Fields
property: ObjectPropertyExpressionThe restricted object property expression.
range: ClassExpressionThe range class expression.
annotations: AxiomAnnotations<L, B>Axiom<L, B> annotations.
SubDataPropertyOf
A data subproperty inclusion.
Fields
annotations: AxiomAnnotations<L, B>Axiom<L, B> annotations.
EquivalentDataProperties
Equivalent data properties.
Fields
annotations: AxiomAnnotations<L, B>Axiom<L, B> annotations.
DisjointDataProperties
Pairwise disjoint data properties.
Fields
annotations: AxiomAnnotations<L, B>Axiom<L, B> annotations.
DataPropertyDomain
A data property domain.
Fields
domain: ClassExpressionThe domain class expression.
annotations: AxiomAnnotations<L, B>Axiom<L, B> annotations.
DataPropertyRange
A data property range.
Fields
annotations: AxiomAnnotations<L, B>Axiom<L, B> annotations.
DatatypeDefinition
A datatype definition.
Fields
annotations: AxiomAnnotations<L, B>Axiom<L, B> annotations.
HasKey
An object/data property key for instances of a class expression.
Fields
class: ClassExpressionThe class expression identified by the key.
properties: KeyPropertiesAt least one object or data key property.
annotations: AxiomAnnotations<L, B>Axiom<L, B> annotations.
AnnotationAssertion
An annotation assertion axiom.
Fields
subject: AnnotationSubject<B>Annotation<L, B> assertion subject.
value: AnnotationValue<L, B>Annotation<L, B> assertion value.
annotations: AxiomAnnotations<L, B>Axiom<L, B> annotations.
Implementations§
Source§impl<L, B> Axiom<L, B>
impl<L, B> Axiom<L, B>
Sourcepub fn declaration(entity: Entity) -> Self
pub fn declaration(entity: Entity) -> Self
Create a declaration axiom without axiom annotations.
Sourcepub fn sub_class_of(
sub_class: ClassExpression,
super_class: ClassExpression,
) -> Self
pub fn sub_class_of( sub_class: ClassExpression, super_class: ClassExpression, ) -> Self
Create a subclass axiom without axiom annotations.
Sourcepub fn equivalent_classes(
classes: Vec<ClassExpression>,
) -> Result<Self, StructuralModelError>
pub fn equivalent_classes( classes: Vec<ClassExpression>, ) -> Result<Self, StructuralModelError>
Create an equivalent-classes axiom without axiom annotations.
§Errors
Returns StructuralModelError::InvalidFormat when fewer than two
class expressions are supplied.
Sourcepub fn disjoint_classes(
classes: Vec<ClassExpression>,
) -> Result<Self, StructuralModelError>
pub fn disjoint_classes( classes: Vec<ClassExpression>, ) -> Result<Self, StructuralModelError>
Create a disjoint-classes axiom without axiom annotations.
§Errors
Returns StructuralModelError::InvalidFormat when fewer than two
class expressions are supplied.
Source§impl<L, B> Axiom<L, B>
impl<L, B> Axiom<L, B>
Sourcepub fn sub_object_property_of(
sub_property: SubObjectPropertyExpression,
super_property: ObjectPropertyExpression,
) -> Self
pub fn sub_object_property_of( sub_property: SubObjectPropertyExpression, super_property: ObjectPropertyExpression, ) -> Self
Create an object subproperty or property-chain inclusion without annotations.
Sourcepub fn functional_object_property(property: ObjectPropertyExpression) -> Self
pub fn functional_object_property(property: ObjectPropertyExpression) -> Self
Create a functional object property axiom without annotations.
Sourcepub fn inverse_functional_object_property(
property: ObjectPropertyExpression,
) -> Self
pub fn inverse_functional_object_property( property: ObjectPropertyExpression, ) -> Self
Create a inverse-functional object property axiom without annotations.
Sourcepub fn reflexive_object_property(property: ObjectPropertyExpression) -> Self
pub fn reflexive_object_property(property: ObjectPropertyExpression) -> Self
Create a reflexive object property axiom without annotations.
Sourcepub fn irreflexive_object_property(property: ObjectPropertyExpression) -> Self
pub fn irreflexive_object_property(property: ObjectPropertyExpression) -> Self
Create a irreflexive object property axiom without annotations.
Sourcepub fn symmetric_object_property(property: ObjectPropertyExpression) -> Self
pub fn symmetric_object_property(property: ObjectPropertyExpression) -> Self
Create a symmetric object property axiom without annotations.
Sourcepub fn asymmetric_object_property(property: ObjectPropertyExpression) -> Self
pub fn asymmetric_object_property(property: ObjectPropertyExpression) -> Self
Create a asymmetric object property axiom without annotations.
Sourcepub fn transitive_object_property(property: ObjectPropertyExpression) -> Self
pub fn transitive_object_property(property: ObjectPropertyExpression) -> Self
Create a transitive object property axiom without annotations.
Sourcepub fn functional_data_property(property: Iri<String>) -> Self
pub fn functional_data_property(property: Iri<String>) -> Self
Create a functional data property axiom without annotations.
Sourcepub fn annotations(&self) -> &AxiomAnnotations<L, B>
pub fn annotations(&self) -> &AxiomAnnotations<L, B>
Return this axiom’s annotations.
Sourcepub fn with_annotations(self, new_annotations: AxiomAnnotations<L, B>) -> Self
pub fn with_annotations(self, new_annotations: AxiomAnnotations<L, B>) -> Self
Replace this axiom’s annotations, preserving its structural operands.
Source§impl<L, B> Axiom<L, B>
impl<L, B> Axiom<L, B>
Sourcepub fn object_property_domain(
property: ObjectPropertyExpression,
domain: ClassExpression,
) -> Self
pub fn object_property_domain( property: ObjectPropertyExpression, domain: ClassExpression, ) -> Self
Create an object property domain axiom without annotations.
Sourcepub fn equivalent_object_properties(
properties: Vec<ObjectPropertyExpression>,
) -> Result<Self, StructuralModelError>
pub fn equivalent_object_properties( properties: Vec<ObjectPropertyExpression>, ) -> Result<Self, StructuralModelError>
Create equivalent object property expressions without annotations.
§Errors
Returns StructuralModelError::InvalidFormat for fewer than two properties.
Sourcepub fn disjoint_object_properties(
properties: Vec<ObjectPropertyExpression>,
) -> Result<Self, StructuralModelError>
pub fn disjoint_object_properties( properties: Vec<ObjectPropertyExpression>, ) -> Result<Self, StructuralModelError>
Create pairwise disjoint object property expressions without annotations.
§Errors
Returns StructuralModelError::InvalidFormat for fewer than two properties.
Sourcepub fn inverse_object_properties(
first: ObjectPropertyExpression,
second: ObjectPropertyExpression,
) -> Self
pub fn inverse_object_properties( first: ObjectPropertyExpression, second: ObjectPropertyExpression, ) -> Self
Create two inverse object property expressions without annotations.
Sourcepub fn object_property_range(
property: ObjectPropertyExpression,
range: ClassExpression,
) -> Self
pub fn object_property_range( property: ObjectPropertyExpression, range: ClassExpression, ) -> Self
Create an object property range without annotations.
Sourcepub fn sub_data_property_of(
sub_property: Iri<String>,
super_property: Iri<String>,
) -> Self
pub fn sub_data_property_of( sub_property: Iri<String>, super_property: Iri<String>, ) -> Self
Create a data subproperty inclusion without annotations.
Sourcepub fn equivalent_data_properties(
properties: Vec<Iri<String>>,
) -> Result<Self, StructuralModelError>
pub fn equivalent_data_properties( properties: Vec<Iri<String>>, ) -> Result<Self, StructuralModelError>
Create equivalent data properties without annotations.
§Errors
Returns StructuralModelError::InvalidFormat for fewer than two properties.
Sourcepub fn disjoint_data_properties(
properties: Vec<Iri<String>>,
) -> Result<Self, StructuralModelError>
pub fn disjoint_data_properties( properties: Vec<Iri<String>>, ) -> Result<Self, StructuralModelError>
Create pairwise disjoint data properties without annotations.
§Errors
Returns StructuralModelError::InvalidFormat for fewer than two properties.
Sourcepub fn data_property_domain(
property: Iri<String>,
domain: ClassExpression,
) -> Self
pub fn data_property_domain( property: Iri<String>, domain: ClassExpression, ) -> Self
Create a data property domain without annotations.
Sourcepub fn data_property_range(property: Iri<String>, range: DataRange<L>) -> Self
pub fn data_property_range(property: Iri<String>, range: DataRange<L>) -> Self
Create a data property range without annotations.
Sourcepub fn datatype_definition(datatype: Iri<String>, range: DataRange<L>) -> Self
pub fn datatype_definition(datatype: Iri<String>, range: DataRange<L>) -> Self
Create a datatype definition without annotations.
Sourcepub fn has_key(class: ClassExpression, properties: KeyProperties) -> Self
pub fn has_key(class: ClassExpression, properties: KeyProperties) -> Self
Create an object/data property key for instances of a class expression without annotations.