pub enum Axiom<L = OwlLiteral, B = BlankNodeId> {
Show 37 variants
Declaration {
entity: Entity,
annotations: AxiomAnnotations<L, B>,
},
SubClassOf {
sub_class: ClassExpression<L, B>,
super_class: ClassExpression<L, B>,
annotations: AxiomAnnotations<L, B>,
},
EquivalentClasses {
classes: OperandSet<ClassExpression<L, B>, 2>,
annotations: AxiomAnnotations<L, B>,
},
DisjointClasses {
classes: OperandSet<ClassExpression<L, B>, 2>,
annotations: AxiomAnnotations<L, B>,
},
DisjointUnion {
class: Iri<String>,
classes: OperandSet<ClassExpression<L, B>, 2>,
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>,
},
EquivalentObjectProperties {
properties: OperandSet<ObjectPropertyExpression, 2>,
annotations: AxiomAnnotations<L, B>,
},
DisjointObjectProperties {
properties: OperandSet<ObjectPropertyExpression, 2>,
annotations: AxiomAnnotations<L, B>,
},
InverseObjectProperties {
properties: UnorderedPair<ObjectPropertyExpression>,
annotations: AxiomAnnotations<L, B>,
},
ObjectPropertyDomain {
property: ObjectPropertyExpression,
domain: ClassExpression<L, B>,
annotations: AxiomAnnotations<L, B>,
},
ObjectPropertyRange {
property: ObjectPropertyExpression,
range: ClassExpression<L, B>,
annotations: AxiomAnnotations<L, B>,
},
SubDataPropertyOf {
sub_property: Iri<String>,
super_property: Iri<String>,
annotations: AxiomAnnotations<L, B>,
},
EquivalentDataProperties {
properties: OperandSet<Iri<String>, 2>,
annotations: AxiomAnnotations<L, B>,
},
DisjointDataProperties {
properties: OperandSet<Iri<String>, 2>,
annotations: AxiomAnnotations<L, B>,
},
DataPropertyDomain {
property: Iri<String>,
domain: ClassExpression<L, B>,
annotations: AxiomAnnotations<L, B>,
},
DataPropertyRange {
property: Iri<String>,
range: DataRange<L>,
annotations: AxiomAnnotations<L, B>,
},
FunctionalDataProperty {
property: Iri<String>,
annotations: AxiomAnnotations<L, B>,
},
DatatypeDefinition {
datatype: Iri<String>,
range: DataRange<L>,
annotations: AxiomAnnotations<L, B>,
},
HasKey {
class: ClassExpression<L, B>,
properties: KeyProperties,
annotations: AxiomAnnotations<L, B>,
},
SameIndividual {
individuals: OperandSet<Individual<B>, 2>,
annotations: AxiomAnnotations<L, B>,
},
DifferentIndividuals {
individuals: OperandSet<Individual<B>, 2>,
annotations: AxiomAnnotations<L, B>,
},
ClassAssertion {
class: ClassExpression<L, B>,
individual: Individual<B>,
annotations: AxiomAnnotations<L, B>,
},
ObjectPropertyAssertion {
property: ObjectPropertyExpression,
source: Individual<B>,
target: Individual<B>,
annotations: AxiomAnnotations<L, B>,
},
NegativeObjectPropertyAssertion {
property: ObjectPropertyExpression,
source: Individual<B>,
target: Individual<B>,
annotations: AxiomAnnotations<L, B>,
},
DataPropertyAssertion {
property: Iri<String>,
source: Individual<B>,
value: L,
annotations: AxiomAnnotations<L, B>,
},
NegativeDataPropertyAssertion {
property: Iri<String>,
source: Individual<B>,
value: L,
annotations: AxiomAnnotations<L, B>,
},
AnnotationAssertion {
property: Iri<String>,
subject: AnnotationSubject<B>,
value: AnnotationValue<L, B>,
annotations: AxiomAnnotations<L, B>,
},
SubAnnotationPropertyOf {
sub_property: Iri<String>,
super_property: Iri<String>,
annotations: AxiomAnnotations<L, B>,
},
AnnotationPropertyDomain {
property: Iri<String>,
domain: Iri<String>,
annotations: AxiomAnnotations<L, B>,
},
AnnotationPropertyRange {
property: Iri<String>,
range: Iri<String>,
annotations: AxiomAnnotations<L, B>,
},
}Expand description
A structural OWL 2 axiom, independent of a backend or reasoner.
Variants§
Declaration
The Declaration axiom family.
Fields
annotations: AxiomAnnotations<L, B>Unordered, recursively nested axiom annotations.
SubClassOf
The SubClassOf axiom family.
Fields
sub_class: ClassExpression<L, B>The sub class operand.
super_class: ClassExpression<L, B>The super class operand.
annotations: AxiomAnnotations<L, B>Unordered, recursively nested axiom annotations.
EquivalentClasses
The EquivalentClasses axiom family.
Fields
classes: OperandSet<ClassExpression<L, B>, 2>The classes operand.
annotations: AxiomAnnotations<L, B>Unordered, recursively nested axiom annotations.
DisjointClasses
The DisjointClasses axiom family.
Fields
classes: OperandSet<ClassExpression<L, B>, 2>The classes operand.
annotations: AxiomAnnotations<L, B>Unordered, recursively nested axiom annotations.
DisjointUnion
The DisjointUnion axiom family.
Fields
classes: OperandSet<ClassExpression<L, B>, 2>The classes operand.
annotations: AxiomAnnotations<L, B>Unordered, recursively nested axiom annotations.
SubObjectPropertyOf
The SubObjectPropertyOf axiom family.
Fields
sub_property: SubObjectPropertyExpressionThe sub property operand.
super_property: ObjectPropertyExpressionThe super property operand.
annotations: AxiomAnnotations<L, B>Unordered, recursively nested axiom annotations.
FunctionalObjectProperty
The FunctionalObjectProperty axiom family.
Fields
property: ObjectPropertyExpressionThe property operand.
annotations: AxiomAnnotations<L, B>Unordered, recursively nested axiom annotations.
InverseFunctionalObjectProperty
The InverseFunctionalObjectProperty axiom family.
Fields
property: ObjectPropertyExpressionThe property operand.
annotations: AxiomAnnotations<L, B>Unordered, recursively nested axiom annotations.
ReflexiveObjectProperty
The ReflexiveObjectProperty axiom family.
Fields
property: ObjectPropertyExpressionThe property operand.
annotations: AxiomAnnotations<L, B>Unordered, recursively nested axiom annotations.
IrreflexiveObjectProperty
The IrreflexiveObjectProperty axiom family.
Fields
property: ObjectPropertyExpressionThe property operand.
annotations: AxiomAnnotations<L, B>Unordered, recursively nested axiom annotations.
SymmetricObjectProperty
The SymmetricObjectProperty axiom family.
Fields
property: ObjectPropertyExpressionThe property operand.
annotations: AxiomAnnotations<L, B>Unordered, recursively nested axiom annotations.
AsymmetricObjectProperty
The AsymmetricObjectProperty axiom family.
Fields
property: ObjectPropertyExpressionThe property operand.
annotations: AxiomAnnotations<L, B>Unordered, recursively nested axiom annotations.
TransitiveObjectProperty
The TransitiveObjectProperty axiom family.
Fields
property: ObjectPropertyExpressionThe property operand.
annotations: AxiomAnnotations<L, B>Unordered, recursively nested axiom annotations.
EquivalentObjectProperties
The EquivalentObjectProperties axiom family.
Fields
properties: OperandSet<ObjectPropertyExpression, 2>The properties operand.
annotations: AxiomAnnotations<L, B>Unordered, recursively nested axiom annotations.
DisjointObjectProperties
The DisjointObjectProperties axiom family.
Fields
properties: OperandSet<ObjectPropertyExpression, 2>The properties operand.
annotations: AxiomAnnotations<L, B>Unordered, recursively nested axiom annotations.
InverseObjectProperties
The InverseObjectProperties axiom family.
Fields
properties: UnorderedPair<ObjectPropertyExpression>The properties operand.
annotations: AxiomAnnotations<L, B>Unordered, recursively nested axiom annotations.
ObjectPropertyDomain
The ObjectPropertyDomain axiom family.
Fields
property: ObjectPropertyExpressionThe property operand.
domain: ClassExpression<L, B>The domain operand.
annotations: AxiomAnnotations<L, B>Unordered, recursively nested axiom annotations.
ObjectPropertyRange
The ObjectPropertyRange axiom family.
Fields
property: ObjectPropertyExpressionThe property operand.
range: ClassExpression<L, B>The range operand.
annotations: AxiomAnnotations<L, B>Unordered, recursively nested axiom annotations.
SubDataPropertyOf
The SubDataPropertyOf axiom family.
Fields
annotations: AxiomAnnotations<L, B>Unordered, recursively nested axiom annotations.
EquivalentDataProperties
The EquivalentDataProperties axiom family.
Fields
properties: OperandSet<Iri<String>, 2>The properties operand.
annotations: AxiomAnnotations<L, B>Unordered, recursively nested axiom annotations.
DisjointDataProperties
The DisjointDataProperties axiom family.
Fields
properties: OperandSet<Iri<String>, 2>The properties operand.
annotations: AxiomAnnotations<L, B>Unordered, recursively nested axiom annotations.
DataPropertyDomain
The DataPropertyDomain axiom family.
Fields
domain: ClassExpression<L, B>The domain operand.
annotations: AxiomAnnotations<L, B>Unordered, recursively nested axiom annotations.
DataPropertyRange
The DataPropertyRange axiom family.
Fields
annotations: AxiomAnnotations<L, B>Unordered, recursively nested axiom annotations.
FunctionalDataProperty
The FunctionalDataProperty axiom family.
Fields
annotations: AxiomAnnotations<L, B>Unordered, recursively nested axiom annotations.
DatatypeDefinition
The DatatypeDefinition axiom family.
Fields
annotations: AxiomAnnotations<L, B>Unordered, recursively nested axiom annotations.
HasKey
The HasKey axiom family.
Fields
class: ClassExpression<L, B>The class operand.
properties: KeyPropertiesThe properties operand.
annotations: AxiomAnnotations<L, B>Unordered, recursively nested axiom annotations.
SameIndividual
The SameIndividual axiom family.
Fields
individuals: OperandSet<Individual<B>, 2>The individuals operand.
annotations: AxiomAnnotations<L, B>Unordered, recursively nested axiom annotations.
DifferentIndividuals
The DifferentIndividuals axiom family.
Fields
individuals: OperandSet<Individual<B>, 2>The individuals operand.
annotations: AxiomAnnotations<L, B>Unordered, recursively nested axiom annotations.
ClassAssertion
The ClassAssertion axiom family.
Fields
class: ClassExpression<L, B>The class operand.
individual: Individual<B>The individual operand.
annotations: AxiomAnnotations<L, B>Unordered, recursively nested axiom annotations.
ObjectPropertyAssertion
The ObjectPropertyAssertion axiom family.
Fields
property: ObjectPropertyExpressionThe property operand.
source: Individual<B>The source operand.
target: Individual<B>The target operand.
annotations: AxiomAnnotations<L, B>Unordered, recursively nested axiom annotations.
NegativeObjectPropertyAssertion
The NegativeObjectPropertyAssertion axiom family.
Fields
property: ObjectPropertyExpressionThe property operand.
source: Individual<B>The source operand.
target: Individual<B>The target operand.
annotations: AxiomAnnotations<L, B>Unordered, recursively nested axiom annotations.
DataPropertyAssertion
The DataPropertyAssertion axiom family.
Fields
source: Individual<B>The source operand.
value: LThe value operand.
annotations: AxiomAnnotations<L, B>Unordered, recursively nested axiom annotations.
NegativeDataPropertyAssertion
The NegativeDataPropertyAssertion axiom family.
Fields
source: Individual<B>The source operand.
value: LThe value operand.
annotations: AxiomAnnotations<L, B>Unordered, recursively nested axiom annotations.
AnnotationAssertion
The AnnotationAssertion axiom family.
Fields
subject: AnnotationSubject<B>The subject operand.
value: AnnotationValue<L, B>The value operand.
annotations: AxiomAnnotations<L, B>Unordered, recursively nested axiom annotations.
SubAnnotationPropertyOf
The SubAnnotationPropertyOf axiom family.
Fields
annotations: AxiomAnnotations<L, B>Unordered, recursively nested axiom annotations.
AnnotationPropertyDomain
The AnnotationPropertyDomain axiom family.
Fields
annotations: AxiomAnnotations<L, B>Unordered, recursively nested axiom annotations.
AnnotationPropertyRange
The AnnotationPropertyRange axiom family.
Implementations§
Source§impl<L, B> Axiom<L, B>
impl<L, B> Axiom<L, B>
Sourcepub fn annotation_assertion(
property: Iri<String>,
subject: AnnotationSubject<B>,
value: AnnotationValue<L, B>,
) -> Self
pub fn annotation_assertion( property: Iri<String>, subject: AnnotationSubject<B>, value: AnnotationValue<L, B>, ) -> Self
Construct AnnotationAssertion without axiom annotations.
Sourcepub fn sub_annotation_property_of(
sub_property: Iri<String>,
super_property: Iri<String>,
) -> Self
pub fn sub_annotation_property_of( sub_property: Iri<String>, super_property: Iri<String>, ) -> Self
Construct SubAnnotationPropertyOf without axiom annotations.
Source§impl<L, B> Axiom<L, B>
impl<L, B> Axiom<L, B>
Sourcepub fn same_individual(
individuals: Vec<Individual<B>>,
) -> Result<Self, StructuralModelError>
pub fn same_individual( individuals: Vec<Individual<B>>, ) -> Result<Self, StructuralModelError>
Construct SameIndividual without axiom annotations.
§Errors
Rejects fewer than the structural minimum number of source occurrences.
Sourcepub fn different_individuals(
individuals: Vec<Individual<B>>,
) -> Result<Self, StructuralModelError>
pub fn different_individuals( individuals: Vec<Individual<B>>, ) -> Result<Self, StructuralModelError>
Construct DifferentIndividuals without axiom annotations.
§Errors
Rejects fewer than the structural minimum number of source occurrences.
Sourcepub fn class_assertion(
class: ClassExpression<L, B>,
individual: Individual<B>,
) -> Self
pub fn class_assertion( class: ClassExpression<L, B>, individual: Individual<B>, ) -> Self
Construct ClassAssertion without axiom annotations.
Sourcepub fn object_property_assertion(
property: ObjectPropertyExpression,
source: Individual<B>,
target: Individual<B>,
) -> Self
pub fn object_property_assertion( property: ObjectPropertyExpression, source: Individual<B>, target: Individual<B>, ) -> Self
Construct ObjectPropertyAssertion without axiom annotations.
Sourcepub fn negative_object_property_assertion(
property: ObjectPropertyExpression,
source: Individual<B>,
target: Individual<B>,
) -> Self
pub fn negative_object_property_assertion( property: ObjectPropertyExpression, source: Individual<B>, target: Individual<B>, ) -> Self
Construct NegativeObjectPropertyAssertion without axiom annotations.
Sourcepub fn data_property_assertion(
property: Iri<String>,
source: Individual<B>,
value: L,
) -> Self
pub fn data_property_assertion( property: Iri<String>, source: Individual<B>, value: L, ) -> Self
Construct DataPropertyAssertion without axiom annotations.
Sourcepub fn negative_data_property_assertion(
property: Iri<String>,
source: Individual<B>,
value: L,
) -> Self
pub fn negative_data_property_assertion( property: Iri<String>, source: Individual<B>, value: L, ) -> Self
Construct NegativeDataPropertyAssertion without axiom annotations.
Source§impl<L, B> Axiom<L, B>
impl<L, B> Axiom<L, B>
Sourcepub fn annotations(&self) -> &AxiomAnnotations<L, B>
pub fn annotations(&self) -> &AxiomAnnotations<L, B>
Return axiom annotations.
Sourcepub fn with_annotations(self, new_annotations: AxiomAnnotations<L, B>) -> Self
pub fn with_annotations(self, new_annotations: AxiomAnnotations<L, B>) -> Self
Replace axiom annotations while preserving all logical operands.
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
Construct Declaration without axiom annotations.
Sourcepub fn sub_class_of(
sub_class: ClassExpression<L, B>,
super_class: ClassExpression<L, B>,
) -> Self
pub fn sub_class_of( sub_class: ClassExpression<L, B>, super_class: ClassExpression<L, B>, ) -> Self
Construct SubClassOf without axiom annotations.
Sourcepub fn equivalent_classes(
classes: Vec<ClassExpression<L, B>>,
) -> Result<Self, StructuralModelError>
pub fn equivalent_classes( classes: Vec<ClassExpression<L, B>>, ) -> Result<Self, StructuralModelError>
Construct EquivalentClasses without axiom annotations.
§Errors
Rejects fewer than the structural minimum number of source occurrences.
Sourcepub fn disjoint_classes(
classes: Vec<ClassExpression<L, B>>,
) -> Result<Self, StructuralModelError>
pub fn disjoint_classes( classes: Vec<ClassExpression<L, B>>, ) -> Result<Self, StructuralModelError>
Construct DisjointClasses without axiom annotations.
§Errors
Rejects fewer than the structural minimum number of source occurrences.
Sourcepub fn disjoint_union(
class: Iri<String>,
classes: Vec<ClassExpression<L, B>>,
) -> Result<Self, StructuralModelError>
pub fn disjoint_union( class: Iri<String>, classes: Vec<ClassExpression<L, B>>, ) -> Result<Self, StructuralModelError>
Construct DisjointUnion without axiom annotations.
§Errors
Rejects fewer than the structural minimum number of source occurrences.
Source§impl<L, B> Axiom<L, B>
impl<L, B> Axiom<L, B>
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
Construct SubDataPropertyOf without axiom 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>
Construct EquivalentDataProperties without axiom annotations.
§Errors
Rejects fewer than the structural minimum number of source occurrences.
Sourcepub fn disjoint_data_properties(
properties: Vec<Iri<String>>,
) -> Result<Self, StructuralModelError>
pub fn disjoint_data_properties( properties: Vec<Iri<String>>, ) -> Result<Self, StructuralModelError>
Construct DisjointDataProperties without axiom annotations.
§Errors
Rejects fewer than the structural minimum number of source occurrences.
Sourcepub fn data_property_domain(
property: Iri<String>,
domain: ClassExpression<L, B>,
) -> Self
pub fn data_property_domain( property: Iri<String>, domain: ClassExpression<L, B>, ) -> Self
Construct DataPropertyDomain without axiom 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
Construct DataPropertyRange without axiom annotations.
Sourcepub fn functional_data_property(property: Iri<String>) -> Self
pub fn functional_data_property(property: Iri<String>) -> Self
Construct FunctionalDataProperty without axiom annotations.
Sourcepub fn datatype_definition(datatype: Iri<String>, range: DataRange<L>) -> Self
pub fn datatype_definition(datatype: Iri<String>, range: DataRange<L>) -> Self
Construct DatatypeDefinition without axiom annotations.
Sourcepub fn has_key(class: ClassExpression<L, B>, properties: KeyProperties) -> Self
pub fn has_key(class: ClassExpression<L, B>, properties: KeyProperties) -> Self
Construct HasKey without axiom annotations.
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
Construct SubObjectPropertyOf without axiom annotations.
Sourcepub fn functional_object_property(property: ObjectPropertyExpression) -> Self
pub fn functional_object_property(property: ObjectPropertyExpression) -> Self
Construct FunctionalObjectProperty without axiom annotations.
Sourcepub fn inverse_functional_object_property(
property: ObjectPropertyExpression,
) -> Self
pub fn inverse_functional_object_property( property: ObjectPropertyExpression, ) -> Self
Construct InverseFunctionalObjectProperty without axiom annotations.
Sourcepub fn reflexive_object_property(property: ObjectPropertyExpression) -> Self
pub fn reflexive_object_property(property: ObjectPropertyExpression) -> Self
Construct ReflexiveObjectProperty without axiom annotations.
Sourcepub fn irreflexive_object_property(property: ObjectPropertyExpression) -> Self
pub fn irreflexive_object_property(property: ObjectPropertyExpression) -> Self
Construct IrreflexiveObjectProperty without axiom annotations.
Sourcepub fn symmetric_object_property(property: ObjectPropertyExpression) -> Self
pub fn symmetric_object_property(property: ObjectPropertyExpression) -> Self
Construct SymmetricObjectProperty without axiom annotations.
Sourcepub fn asymmetric_object_property(property: ObjectPropertyExpression) -> Self
pub fn asymmetric_object_property(property: ObjectPropertyExpression) -> Self
Construct AsymmetricObjectProperty without axiom annotations.
Sourcepub fn transitive_object_property(property: ObjectPropertyExpression) -> Self
pub fn transitive_object_property(property: ObjectPropertyExpression) -> Self
Construct TransitiveObjectProperty without axiom annotations.
Source§impl<L, B> Axiom<L, B>
impl<L, B> Axiom<L, B>
Sourcepub fn equivalent_object_properties(
properties: Vec<ObjectPropertyExpression>,
) -> Result<Self, StructuralModelError>
pub fn equivalent_object_properties( properties: Vec<ObjectPropertyExpression>, ) -> Result<Self, StructuralModelError>
Construct EquivalentObjectProperties without axiom annotations.
§Errors
Rejects fewer than the structural minimum number of source occurrences.
Sourcepub fn disjoint_object_properties(
properties: Vec<ObjectPropertyExpression>,
) -> Result<Self, StructuralModelError>
pub fn disjoint_object_properties( properties: Vec<ObjectPropertyExpression>, ) -> Result<Self, StructuralModelError>
Construct DisjointObjectProperties without axiom annotations.
§Errors
Rejects fewer than the structural minimum number of source occurrences.
Sourcepub fn inverse_object_properties(
first: ObjectPropertyExpression,
second: ObjectPropertyExpression,
) -> Self
pub fn inverse_object_properties( first: ObjectPropertyExpression, second: ObjectPropertyExpression, ) -> Self
Construct InverseObjectProperties without axiom annotations.
Sourcepub fn object_property_domain(
property: ObjectPropertyExpression,
domain: ClassExpression<L, B>,
) -> Self
pub fn object_property_domain( property: ObjectPropertyExpression, domain: ClassExpression<L, B>, ) -> Self
Construct ObjectPropertyDomain without axiom annotations.
Sourcepub fn object_property_range(
property: ObjectPropertyExpression,
range: ClassExpression<L, B>,
) -> Self
pub fn object_property_range( property: ObjectPropertyExpression, range: ClassExpression<L, B>, ) -> Self
Construct ObjectPropertyRange without axiom annotations.