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}