001package org.dllearner.utilities.owl;
002
003import org.dllearner.core.AbstractComponent;
004import org.dllearner.core.ComponentAnn;
005import org.dllearner.core.config.ConfigOption;
006
007/**
008 * Generic configurable length metric for class expression length calculation
009 */
010@ComponentAnn(name = "OWL Class Expression Length Metric", shortName = "cel_metric", version = 0.1)
011public class OWLClassExpressionLengthMetric extends AbstractComponent {
012        @ConfigOption(defaultValue = "1", description = "Class: \"C\"")
013        public int classLength = 1;
014        @ConfigOption(defaultValue = "1", description = "Intersection: A\"⨅\"B")
015        public int objectIntersectionLength = 1;
016        @ConfigOption(defaultValue = "1", description = "Union: A\"⨆\"B")
017        public int objectUnionLength = 1;
018        @ConfigOption(defaultValue = "1", description = "Complement: \"¬\"C")
019        public int objectComplementLength = 1;
020        @ConfigOption(defaultValue = "1", description = "Obj. Some Values: \"∃\" r.C")
021        public int objectSomeValuesLength = 1;
022        @ConfigOption(defaultValue = "1", description = "Obj. All Values: \"∀\" r.C")
023        public int objectAllValuesLength = 1;
024        @ConfigOption(defaultValue = "2", description = "Obj. Has Value: \"∃\" r.\"{I}\"")
025        public int objectHasValueLength = 2;
026        @ConfigOption(defaultValue = "2", description = "Obj. Cardinality restriction: \"≤n\" r.C")
027        public int objectCardinalityLength = 2;
028        @ConfigOption(defaultValue = "2", description = "Obj. Self restriction: \"∃\" r.Self")
029        public int objectHasSelfLength = 1;
030        @ConfigOption(defaultValue = "1", description = "Obj. One of: ∃ r.\"{X,Y,Z}\"")
031        public int objectOneOfLength = 1;
032        @ConfigOption(defaultValue = "1", description = "Data Some Values: \"∃\" p.t")
033        public int dataSomeValuesLength = 1;
034        @ConfigOption(defaultValue = "1", description = "Data All Values: \"∀\" p.t")
035        public int dataAllValuesLength = 1;
036        @ConfigOption(defaultValue = "2", description = "Data Has Value: \"∃\" p.\"{V}\"")
037        public int dataHasValueLength = 2;
038        @ConfigOption(defaultValue = "2", description = "Data Cardinality restriction: \"≤n\" r.t")
039        public int dataCardinalityLength = 2;
040        @ConfigOption(defaultValue = "1", description = "Obj. Property: ∃ \"r\".C")
041        public int objectProperyLength = 1;
042        @ConfigOption(defaultValue = "2", description = "Inverse property: ∃ \"r⁻\".C")
043        public int objectInverseLength = 2;
044        @ConfigOption(defaultValue = "1", description = "Data Property: ∃ \"p\".t")
045        public int dataProperyLength = 1;
046        @ConfigOption(defaultValue = "1", description = "Datatype: \"^^datatype\"")
047        public int datatypeLength = 1;
048        @ConfigOption(defaultValue = "1", description = "Data One of: ∃ p.\"{U,V,W}\"")
049        public int dataOneOfLength = 1;
050        @ConfigOption(defaultValue = "1", description = "Data Complement: \"¬\"datatype")
051        public int dataComplementLength = 1;
052        @ConfigOption(defaultValue = "1", description = "Data Intersection: datatype\"⨅\"datatype")
053        public int dataIntersectionLength = 1;
054        @ConfigOption(defaultValue = "1", description = "Data Union: datatype\"<u>⨆</u>\"datatype")
055        public int dataUnionLength = 1;
056
057        public static OWLClassExpressionLengthMetric getDefaultMetric() {
058                OWLClassExpressionLengthMetric metric = new OWLClassExpressionLengthMetric();
059                return metric;
060        }
061
062        public static OWLClassExpressionLengthMetric getOCELMetric() {
063                OWLClassExpressionLengthMetric metric = new OWLClassExpressionLengthMetric();
064                metric.dataHasValueLength = 1;
065                metric.objectHasValueLength = 1;
066                metric.dataSomeValuesLength = 0;
067                metric.objectSomeValuesLength = 0;
068                return metric;
069        }
070
071        public int getClassLength() {
072                return classLength;
073        }
074
075        public void setClassLength(int classLength) {
076                this.classLength = classLength;
077        }
078
079        public int getObjectIntersectionLength() {
080                return objectIntersectionLength;
081        }
082
083        public void setObjectIntersectionLength(int objectIntersectionLength) {
084                this.objectIntersectionLength = objectIntersectionLength;
085        }
086
087        public int getObjectUnionLength() {
088                return objectUnionLength;
089        }
090
091        public void setObjectUnionLength(int objectUnionLength) {
092                this.objectUnionLength = objectUnionLength;
093        }
094
095        public int getObjectComplementLength() {
096                return objectComplementLength;
097        }
098
099        public void setObjectComplementLength(int objectComplementLength) {
100                this.objectComplementLength = objectComplementLength;
101        }
102
103        public int getObjectSomeValuesLength() {
104                return objectSomeValuesLength;
105        }
106
107        public void setObjectSomeValuesLength(int objectSomeValuesLength) {
108                this.objectSomeValuesLength = objectSomeValuesLength;
109        }
110
111        public int getObjectAllValuesLength() {
112                return objectAllValuesLength;
113        }
114
115        public void setObjectAllValuesLength(int objectAllValuesLength) {
116                this.objectAllValuesLength = objectAllValuesLength;
117        }
118
119        public int getObjectHasValueLength() {
120                return objectHasValueLength;
121        }
122
123        public void setObjectHasValueLength(int objectHasValueLength) {
124                this.objectHasValueLength = objectHasValueLength;
125        }
126
127        public int getObjectCardinalityLength() {
128                return objectCardinalityLength;
129        }
130
131        public void setObjectCardinalityLength(int objectCardinalityLength) {
132                this.objectCardinalityLength = objectCardinalityLength;
133        }
134
135        public int getObjectOneOfLength() {
136                return objectOneOfLength;
137        }
138
139        public void setObjectOneOfLength(int objectOneOfLength) {
140                this.objectOneOfLength = objectOneOfLength;
141        }
142
143        public int getDataSomeValuesLength() {
144                return dataSomeValuesLength;
145        }
146
147        public void setDataSomeValuesLength(int dataSomeValuesLength) {
148                this.dataSomeValuesLength = dataSomeValuesLength;
149        }
150
151        public int getDataAllValuesLength() {
152                return dataAllValuesLength;
153        }
154
155        public void setDataAllValuesLength(int dataAllValuesLength) {
156                this.dataAllValuesLength = dataAllValuesLength;
157        }
158
159        public int getDataHasValueLength() {
160                return dataHasValueLength;
161        }
162
163        public void setDataHasValueLength(int dataHasValueLength) {
164                this.dataHasValueLength = dataHasValueLength;
165        }
166
167        public int getDataCardinalityLength() {
168                return dataCardinalityLength;
169        }
170
171        public void setDataCardinalityLength(int dataCardinalityLength) {
172                this.dataCardinalityLength = dataCardinalityLength;
173        }
174
175        public int getObjectProperyLength() {
176                return objectProperyLength;
177        }
178
179        public void setObjectProperyLength(int objectProperyLength) {
180                this.objectProperyLength = objectProperyLength;
181        }
182
183        public int getObjectInverseLength() {
184                return objectInverseLength;
185        }
186
187        public void setObjectInverseLength(int objectInverseLength) {
188                this.objectInverseLength = objectInverseLength;
189        }
190
191        public int getDataProperyLength() {
192                return dataProperyLength;
193        }
194
195        public void setDataProperyLength(int dataProperyLength) {
196                this.dataProperyLength = dataProperyLength;
197        }
198
199        public int getDatatypeLength() {
200                return datatypeLength;
201        }
202
203        public void setDatatypeLength(int datatypeLength) {
204                this.datatypeLength = datatypeLength;
205        }
206
207        public int getDataOneOfLength() {
208                return dataOneOfLength;
209        }
210
211        public void setDataOneOfLength(int dataOneOfLength) {
212                this.dataOneOfLength = dataOneOfLength;
213        }
214
215        public int getDataComplementLength() {
216                return dataComplementLength;
217        }
218
219        public void setDataComplementLength(int dataComplementLength) {
220                this.dataComplementLength = dataComplementLength;
221        }
222
223        public int getDataIntersectionLength() {
224                return dataIntersectionLength;
225        }
226
227        public void setDataIntersectionLength(int dataIntersectionLength) {
228                this.dataIntersectionLength = dataIntersectionLength;
229        }
230
231        public int getDataUnionLength() {
232                return dataUnionLength;
233        }
234
235        public void setDataUnionLength(int dataUnionLength) {
236                this.dataUnionLength = dataUnionLength;
237        }
238
239        @Override
240        public void init() {
241                initialized = true;
242        }
243
244}