Skip to main content

owl_structural_model/
kind.rs

1//! Shared structural kind catalogs for visitors, diagnostics and dispatch.
2
3/// A standard OWL 2 structural category, without backend-specific policy.
4#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, serde::Serialize, serde::Deserialize)]
5pub enum AxiomKind {
6    /// The `Declaration` category.
7    Declaration,
8    /// The `SubClassOf` category.
9    SubClassOf,
10    /// The `EquivalentClasses` category.
11    EquivalentClasses,
12    /// The `DisjointClasses` category.
13    DisjointClasses,
14    /// The `DisjointUnion` category.
15    DisjointUnion,
16    /// The `SubObjectPropertyOf` category.
17    SubObjectPropertyOf,
18    /// The `FunctionalObjectProperty` category.
19    FunctionalObjectProperty,
20    /// The `InverseFunctionalObjectProperty` category.
21    InverseFunctionalObjectProperty,
22    /// The `ReflexiveObjectProperty` category.
23    ReflexiveObjectProperty,
24    /// The `IrreflexiveObjectProperty` category.
25    IrreflexiveObjectProperty,
26    /// The `SymmetricObjectProperty` category.
27    SymmetricObjectProperty,
28    /// The `AsymmetricObjectProperty` category.
29    AsymmetricObjectProperty,
30    /// The `TransitiveObjectProperty` category.
31    TransitiveObjectProperty,
32    /// The `EquivalentObjectProperties` category.
33    EquivalentObjectProperties,
34    /// The `DisjointObjectProperties` category.
35    DisjointObjectProperties,
36    /// The `InverseObjectProperties` category.
37    InverseObjectProperties,
38    /// The `ObjectPropertyDomain` category.
39    ObjectPropertyDomain,
40    /// The `ObjectPropertyRange` category.
41    ObjectPropertyRange,
42    /// The `SubDataPropertyOf` category.
43    SubDataPropertyOf,
44    /// The `EquivalentDataProperties` category.
45    EquivalentDataProperties,
46    /// The `DisjointDataProperties` category.
47    DisjointDataProperties,
48    /// The `DataPropertyDomain` category.
49    DataPropertyDomain,
50    /// The `DataPropertyRange` category.
51    DataPropertyRange,
52    /// The `FunctionalDataProperty` category.
53    FunctionalDataProperty,
54    /// The `DatatypeDefinition` category.
55    DatatypeDefinition,
56    /// The `HasKey` category.
57    HasKey,
58    /// The `SameIndividual` category.
59    SameIndividual,
60    /// The `DifferentIndividuals` category.
61    DifferentIndividuals,
62    /// The `ClassAssertion` category.
63    ClassAssertion,
64    /// The `ObjectPropertyAssertion` category.
65    ObjectPropertyAssertion,
66    /// The `NegativeObjectPropertyAssertion` category.
67    NegativeObjectPropertyAssertion,
68    /// The `DataPropertyAssertion` category.
69    DataPropertyAssertion,
70    /// The `NegativeDataPropertyAssertion` category.
71    NegativeDataPropertyAssertion,
72    /// The `AnnotationAssertion` category.
73    AnnotationAssertion,
74    /// The `SubAnnotationPropertyOf` category.
75    SubAnnotationPropertyOf,
76    /// The `AnnotationPropertyDomain` category.
77    AnnotationPropertyDomain,
78    /// The `AnnotationPropertyRange` category.
79    AnnotationPropertyRange,
80}
81
82/// A standard OWL 2 structural category, without backend-specific policy.
83#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, serde::Serialize, serde::Deserialize)]
84pub enum ClassExpressionKind {
85    /// The `Named` category.
86    Named,
87    /// The `ObjectIntersectionOf` category.
88    ObjectIntersectionOf,
89    /// The `ObjectUnionOf` category.
90    ObjectUnionOf,
91    /// The `ObjectComplementOf` category.
92    ObjectComplementOf,
93    /// The `ObjectOneOf` category.
94    ObjectOneOf,
95    /// The `ObjectSomeValuesFrom` category.
96    ObjectSomeValuesFrom,
97    /// The `ObjectAllValuesFrom` category.
98    ObjectAllValuesFrom,
99    /// The `ObjectHasValue` category.
100    ObjectHasValue,
101    /// The `ObjectHasSelf` category.
102    ObjectHasSelf,
103    /// The `ObjectMinCardinality` category.
104    ObjectMinCardinality,
105    /// The `ObjectMaxCardinality` category.
106    ObjectMaxCardinality,
107    /// The `ObjectExactCardinality` category.
108    ObjectExactCardinality,
109    /// The `DataSomeValuesFrom` category.
110    DataSomeValuesFrom,
111    /// The `DataAllValuesFrom` category.
112    DataAllValuesFrom,
113    /// The `DataHasValue` category.
114    DataHasValue,
115    /// The `DataMinCardinality` category.
116    DataMinCardinality,
117    /// The `DataMaxCardinality` category.
118    DataMaxCardinality,
119    /// The `DataExactCardinality` category.
120    DataExactCardinality,
121}
122
123/// A standard OWL 2 structural category, without backend-specific policy.
124#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, serde::Serialize, serde::Deserialize)]
125pub enum DataRangeKind {
126    /// The `Datatype` category.
127    Datatype,
128    /// The `DataIntersectionOf` category.
129    DataIntersectionOf,
130    /// The `DataUnionOf` category.
131    DataUnionOf,
132    /// The `DataComplementOf` category.
133    DataComplementOf,
134    /// The `DataOneOf` category.
135    DataOneOf,
136    /// The `DatatypeRestriction` category.
137    DatatypeRestriction,
138}