Skip to content
This repository was archived by the owner on Jan 13, 2025. It is now read-only.

Commit dbd0c42

Browse files
committed
Add OWL 2 datatypes to OWL 2 presets
1 parent d26eb96 commit dbd0c42

5 files changed

Lines changed: 48 additions & 5 deletions

File tree

src/main/java/de/linkvt/bachelor/presets/Owl2ElPreset.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,11 @@
4343
import de.linkvt.bachelor.features.individuals.assertions.OwlSameAsFeature;
4444
import de.linkvt.bachelor.features.keys.OwlHasKeyFeature;
4545

46+
import org.semanticweb.owlapi.vocab.OWL2Datatype;
4647
import org.springframework.stereotype.Component;
4748

4849
@Component
49-
public class Owl2ElPreset extends Preset {
50+
public class Owl2ElPreset extends Owl2Preset {
5051
@Override
5152
protected void initialize() {
5253
addFeatures(OwlObjectSomeValuesFromFeature.class, OwlDataSomeValuesFromFeature.class);
@@ -81,6 +82,7 @@ protected void initialize() {
8182
addFeatures(OwlDeprecatedClassFeature.class, OwlDeprecatedPropertyFeature.class);
8283
addFeatures(OwlPropertyChainAxiomFeature.class);
8384

85+
addCompatibleOwl2DatatypeFeatures(OWL2Datatype.EL_DATATYPES);
8486
// also possible
8587
// addFeatures(OwlVersionInfoFeature.class);
8688
// addFeatures(RdfsLabelOnOntologyFeature.class);
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package de.linkvt.bachelor.presets;
2+
3+
import de.linkvt.bachelor.features.Feature;
4+
5+
import org.semanticweb.owlapi.vocab.OWL2Datatype;
6+
7+
import java.util.List;
8+
import java.util.stream.Collectors;
9+
10+
public abstract class Owl2Preset extends Preset {
11+
12+
protected void addCompatibleOwl2DatatypeFeatures(List<OWL2Datatype> datatypes) {
13+
List<String> datatypeIris = datatypes.stream()
14+
.map(OWL2Datatype::getPrefixedName)
15+
.collect(Collectors.toList());
16+
17+
List<Class<? extends Feature>> datatypeClasses = featureMapping.getAll().stream()
18+
.filter(f -> datatypeIris.contains(f.getName()))
19+
.map(Feature::getClass)
20+
.collect(Collectors.toList());
21+
22+
addFeatures(datatypeClasses);
23+
}
24+
25+
}

src/main/java/de/linkvt/bachelor/presets/Owl2QlPreset.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,11 @@
3838
import de.linkvt.bachelor.features.individuals.NamedIndividualFeature;
3939
import de.linkvt.bachelor.features.individuals.assertions.OwlAllDifferentFeature;
4040

41+
import org.semanticweb.owlapi.vocab.OWL2Datatype;
4142
import org.springframework.stereotype.Component;
4243

4344
@Component
44-
public class Owl2QlPreset extends Preset {
45+
public class Owl2QlPreset extends Owl2Preset {
4546
@Override
4647
protected void initialize() {
4748
addFeatures(NamedIndividualFeature.class);
@@ -82,6 +83,9 @@ protected void initialize() {
8283
addFeatures(RdfsObjectSubPropertyOfFeature.class);
8384
addFeatures(RdfsSubClassOfFeature.class);
8485

86+
// the datatypes of OWL 2 EL and OWL 2 QL are equal
87+
addCompatibleOwl2DatatypeFeatures(OWL2Datatype.EL_DATATYPES);
88+
8589
// also possible
8690
// addFeatures(OwlVersionInfoFeature.class);
8791
// addFeatures(RdfsCommentFeature.class);

src/main/java/de/linkvt/bachelor/presets/Owl2RlPreset.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,11 @@
5959
import de.linkvt.bachelor.features.individuals.assertions.OwlSameAsFeature;
6060
import de.linkvt.bachelor.features.keys.OwlHasKeyFeature;
6161

62+
import org.semanticweb.owlapi.vocab.OWL2Datatype;
6263
import org.springframework.stereotype.Component;
6364

6465
@Component
65-
public class Owl2RlPreset extends Preset {
66+
public class Owl2RlPreset extends Owl2Preset {
6667
@Override
6768
protected void initialize() {
6869
addFeatures(AnonymousIndividualFeature.class);
@@ -124,6 +125,7 @@ protected void initialize() {
124125
addFeatures(UnboundDataPropertyFeature.class);
125126
addFeatures(UnboundObjectPropertyFeature.class);
126127

128+
addCompatibleOwl2DatatypeFeatures(OWL2Datatype.RL_DATATYPES);
127129
// also possible
128130
// addFeatures(OwlVersionInfoFeature.class);
129131
// addFeatures(RdfsCommentFeature.class);

src/main/java/de/linkvt/bachelor/presets/Preset.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package de.linkvt.bachelor.presets;
22

33
import de.linkvt.bachelor.features.Feature;
4+
import de.linkvt.bachelor.web.converters.parameter.FeatureParameterMapping;
45

56
import org.springframework.beans.factory.annotation.Autowired;
67
import org.springframework.context.ApplicationContext;
@@ -16,18 +17,27 @@
1617
* Base class for a preset
1718
*/
1819
public abstract class Preset {
19-
private Set<Feature> features = new HashSet<>();
20+
21+
@Autowired
22+
protected FeatureParameterMapping featureMapping;
2023

2124
@Autowired
2225
private ApplicationContext context;
2326

27+
private Set<Feature> features = new HashSet<>();
28+
2429
public Preset() {
2530

2631
}
2732

2833
@SafeVarargs
2934
protected final Preset addFeatures(Class<? extends Feature>... classes) {
30-
Arrays.asList(classes).stream().map(context::getBean).forEach(this.features::add);
35+
addFeatures(Arrays.asList(classes));
36+
return this;
37+
}
38+
39+
protected final Preset addFeatures(Collection<Class<? extends Feature>> classes) {
40+
classes.stream().map(context::getBean).forEach(this.features::add);
3141
return this;
3242
}
3343

0 commit comments

Comments
 (0)