[4] | 1 | package tudelft.healthpsychology.traumaontologies;
|
---|
| 2 |
|
---|
| 3 | import static org.junit.Assert.assertEquals;
|
---|
| 4 | import static org.junit.Assert.assertFalse;
|
---|
| 5 | import static org.junit.Assert.assertTrue;
|
---|
| 6 |
|
---|
| 7 | import java.io.File;
|
---|
| 8 | import java.io.IOException;
|
---|
| 9 | import java.util.Collection;
|
---|
| 10 | import java.util.LinkedList;
|
---|
| 11 | import java.util.List;
|
---|
| 12 | import java.util.Set;
|
---|
| 13 | import java.util.stream.Collectors;
|
---|
| 14 |
|
---|
| 15 | import org.junit.Before;
|
---|
| 16 | import org.junit.Test;
|
---|
| 17 | import org.semanticweb.owlapi.apibinding.OWLManager;
|
---|
| 18 | import org.semanticweb.owlapi.model.AxiomType;
|
---|
| 19 | import org.semanticweb.owlapi.model.IRI;
|
---|
| 20 | import org.semanticweb.owlapi.model.OWLAnnotationAssertionAxiom;
|
---|
| 21 | import org.semanticweb.owlapi.model.OWLAxiom;
|
---|
| 22 | import org.semanticweb.owlapi.model.OWLClass;
|
---|
| 23 | import org.semanticweb.owlapi.model.OWLDataFactory;
|
---|
| 24 | import org.semanticweb.owlapi.model.OWLDataProperty;
|
---|
| 25 | import org.semanticweb.owlapi.model.OWLDataPropertyAssertionAxiom;
|
---|
| 26 | import org.semanticweb.owlapi.model.OWLDataPropertyDomainAxiom;
|
---|
| 27 | import org.semanticweb.owlapi.model.OWLDataPropertyRangeAxiom;
|
---|
| 28 | import org.semanticweb.owlapi.model.OWLException;
|
---|
| 29 | import org.semanticweb.owlapi.model.OWLLiteral;
|
---|
| 30 | import org.semanticweb.owlapi.model.OWLNamedIndividual;
|
---|
| 31 | import org.semanticweb.owlapi.model.OWLObjectProperty;
|
---|
| 32 | import org.semanticweb.owlapi.model.OWLObjectPropertyDomainAxiom;
|
---|
| 33 | import org.semanticweb.owlapi.model.OWLOntology;
|
---|
| 34 | import org.semanticweb.owlapi.model.OWLOntologyCreationException;
|
---|
| 35 | import org.semanticweb.owlapi.model.OWLOntologyManager;
|
---|
| 36 | import org.semanticweb.owlapi.model.OWLOntologyStorageException;
|
---|
| 37 | import org.semanticweb.owlapi.model.OWLSubClassOfAxiom;
|
---|
| 38 | import org.semanticweb.owlapi.reasoner.InferenceType;
|
---|
| 39 | import org.semanticweb.owlapi.reasoner.NodeSet;
|
---|
| 40 | import org.semanticweb.owlapi.reasoner.OWLReasoner;
|
---|
| 41 | import org.semanticweb.owlapi.reasoner.OWLReasonerConfiguration;
|
---|
| 42 | import org.semanticweb.owlapi.reasoner.OWLReasonerFactory;
|
---|
| 43 | import org.semanticweb.owlapi.reasoner.SimpleConfiguration;
|
---|
| 44 | import org.semanticweb.owlapi.reasoner.structural.StructuralReasonerFactory;
|
---|
| 45 |
|
---|
| 46 | import tudelft.utilities.translator.BasicCsvTranslator;
|
---|
| 47 |
|
---|
| 48 | /**
|
---|
| 49 | * Tests basically to check what OWL is really doing and which functions are
|
---|
| 50 | * actually implemented and returning useful data.
|
---|
| 51 | *
|
---|
| 52 | */
|
---|
| 53 | public class OwlTest {
|
---|
| 54 | private final String base = "http://www.owl-ontologies.com/Ontology1444730995.owl";
|
---|
| 55 |
|
---|
| 56 | private OWLOntology ontology;
|
---|
| 57 | private OWLDataFactory factory;
|
---|
| 58 | final OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
|
---|
| 59 |
|
---|
| 60 | private BasicCsvTranslator translator;
|
---|
| 61 |
|
---|
| 62 | // https://github.com/apache/jena/blob/master/jena-arq/src-examples/arq/examples/riot/ExRIOT1_ReadModel.java
|
---|
| 63 | @Before
|
---|
| 64 | public void before() throws OWLOntologyCreationException, IOException {
|
---|
| 65 |
|
---|
| 66 | ontology = manager.loadOntologyFromOntologyDocument(
|
---|
| 67 | new File("src/main/resources/Child Sexual Abuse.owl"));
|
---|
| 68 | factory = manager.getOWLDataFactory();
|
---|
| 69 |
|
---|
| 70 | translator = new BasicCsvTranslator(
|
---|
| 71 | getClass().getResourceAsStream("/NL.csv"));
|
---|
| 72 |
|
---|
| 73 | }
|
---|
| 74 |
|
---|
| 75 | @Test
|
---|
| 76 | public void smokeTest() {
|
---|
| 77 |
|
---|
| 78 | }
|
---|
| 79 |
|
---|
| 80 | @Test
|
---|
| 81 | public void addAnnotationTest() throws OWLOntologyStorageException {
|
---|
| 82 | OWLClass stringDocuClass = factory.getOWLClass(
|
---|
| 83 | IRI.create("http://mysite.com/my_ontology.owl#StringDocu"));
|
---|
| 84 | System.out.println("got " + stringDocuClass);
|
---|
| 85 |
|
---|
| 86 | // add a annotation
|
---|
| 87 | OWLAnnotationAssertionAxiom axiom = factory
|
---|
| 88 | .getOWLAnnotationAssertionAxiom(factory.getRDFSLabel(),
|
---|
| 89 | IRI.create("http://barf"), factory.getOWLLiteral(true));
|
---|
| 90 | ontology.add(axiom);
|
---|
| 91 | // ontology.saveOntology();
|
---|
| 92 | }
|
---|
| 93 |
|
---|
| 94 | @Test
|
---|
| 95 | public void addIndividual() throws OWLOntologyStorageException {
|
---|
| 96 |
|
---|
| 97 | // add a annotation
|
---|
| 98 | OWLDataPropertyAssertionAxiom axiom = factory
|
---|
| 99 | .getOWLDataPropertyAssertionAxiom(
|
---|
| 100 | factory.getOWLDataProperty(base + "hasName"),
|
---|
| 101 | factory.getOWLNamedIndividual(base + "PersonJohn"),
|
---|
| 102 | factory.getOWLLiteral("John"));
|
---|
| 103 | ontology.add(axiom);
|
---|
| 104 | // ontology.saveOntology();
|
---|
| 105 | }
|
---|
| 106 |
|
---|
| 107 | @Test
|
---|
| 108 | public void testGetApparaatStatusProperties() {
|
---|
| 109 | OWLClass apparaatStatus = factory
|
---|
| 110 | .getOWLClass(IRI.create(base + "#Apparaat"));
|
---|
| 111 | ontology.axioms(AxiomType.DATA_PROPERTY_DOMAIN).forEach(dp -> {
|
---|
| 112 | if (dp.getDomain().equals(apparaatStatus)) {
|
---|
| 113 | dp.dataPropertiesInSignature().forEach(odp -> {
|
---|
| 114 | System.out.println(
|
---|
| 115 | "found property " + odp.getIRI().getShortForm()
|
---|
| 116 | + " with signature " + odp.getSignature());
|
---|
| 117 | });
|
---|
| 118 |
|
---|
| 119 | }
|
---|
| 120 |
|
---|
| 121 | });
|
---|
| 122 |
|
---|
| 123 | }
|
---|
| 124 |
|
---|
| 125 | @Test
|
---|
| 126 | public void testAssertedSuperclasses() throws OWLException {
|
---|
| 127 | // keukenapparaat subclassof apparaat
|
---|
| 128 | OWLClass quokkaCls = factory
|
---|
| 129 | .getOWLClass(IRI.create(base + "#Keukenapparaat"));
|
---|
| 130 | Collection<OWLSubClassOfAxiom> classes = ontology
|
---|
| 131 | .getSubClassAxiomsForSubClass(quokkaCls);
|
---|
| 132 | // for each superclass there will be a corresponding axiom
|
---|
| 133 | // the ontology indexes axioms in a variety of ways
|
---|
| 134 | assertEquals(1, classes.size());
|
---|
| 135 | System.out
|
---|
| 136 | .println(classes.iterator().next().getSuperClass().toString());
|
---|
| 137 | assertTrue(classes.iterator().next().getSuperClass().toString()
|
---|
| 138 | .endsWith("#Apparaat>"));
|
---|
| 139 | }
|
---|
| 140 |
|
---|
| 141 | @Test
|
---|
| 142 | public void testGetAllClasses() {
|
---|
| 143 |
|
---|
| 144 | Set<OWLClass> classes = ontology.classesInSignature()
|
---|
| 145 | .collect(Collectors.toSet());
|
---|
| 146 |
|
---|
| 147 | System.out.println("Classes");
|
---|
| 148 | System.out.println("--------------------------------");
|
---|
| 149 | for (OWLClass cls : classes) {
|
---|
| 150 | System.out.println("+: " + cls.getIRI().getShortForm());
|
---|
| 151 |
|
---|
| 152 | System.out.println("\tObject Property Domain");
|
---|
| 153 | ontology.axioms(AxiomType.OBJECT_PROPERTY_DOMAIN).forEach(op -> {
|
---|
| 154 | if (op.getDomain().equals(cls)) {
|
---|
| 155 | System.out.println("\tComments:"
|
---|
| 156 | + op.getAnnotations(factory.getRDFSComment()));
|
---|
| 157 | op.objectPropertiesInSignature().forEach(oop -> {
|
---|
| 158 | System.out.println(
|
---|
| 159 | "\t\t-: " + oop.getIRI().getShortForm());
|
---|
| 160 | });
|
---|
| 161 | }
|
---|
| 162 | });
|
---|
| 163 |
|
---|
| 164 | System.out.println("\tData Property Domain");
|
---|
| 165 | ontology.axioms(AxiomType.DATA_PROPERTY_DOMAIN).forEach(dp -> {
|
---|
| 166 | if (dp.getDomain().equals(cls)) {
|
---|
| 167 | dp.dataPropertiesInSignature().forEach(odp -> {
|
---|
| 168 | System.out
|
---|
| 169 | .println("\t\t-: " + odp.getIRI().getShortForm()
|
---|
| 170 | + " " + odp.getSignature());
|
---|
| 171 |
|
---|
| 172 | });
|
---|
| 173 |
|
---|
| 174 | }
|
---|
| 175 | System.out.println(dp);
|
---|
| 176 |
|
---|
| 177 | });
|
---|
| 178 |
|
---|
| 179 | }
|
---|
| 180 | System.out.println("\tAnnotation Property Range");
|
---|
| 181 | ontology.axioms(AxiomType.ANNOTATION_PROPERTY_RANGE).forEach(dp -> {
|
---|
| 182 | System.out.println("\t\t" + dp);
|
---|
| 183 | });
|
---|
| 184 |
|
---|
| 185 | System.out.println("\tAnnotation Assertion");
|
---|
| 186 | ontology.axioms(AxiomType.ANNOTATION_ASSERTION).forEach(dp -> {
|
---|
| 187 | System.out.println("\t\t" + dp);
|
---|
| 188 | });
|
---|
| 189 |
|
---|
| 190 | System.out.println("\tAnnotation Property Range");
|
---|
| 191 | ontology.axioms(AxiomType.ANNOTATION_PROPERTY_RANGE).forEach(dp -> {
|
---|
| 192 | System.out.println("\t\t" + dp);
|
---|
| 193 | });
|
---|
| 194 |
|
---|
| 195 | System.out.println("\tRDFS Comments(subset of annotations)");
|
---|
| 196 | ontology.axioms(AxiomType.ANNOTATION_ASSERTION).forEach(aa -> {
|
---|
| 197 | if (aa.getSubject().equals(factory.getRDFSComment())) {
|
---|
| 198 | System.out.println(aa);
|
---|
| 199 | }
|
---|
| 200 | });
|
---|
| 201 | System.out.println("\tSubclass of");
|
---|
| 202 | ontology.axioms(AxiomType.SUBCLASS_OF).forEach(aa -> {
|
---|
| 203 | System.out.println("\t\t" + aa);
|
---|
| 204 | });
|
---|
| 205 | System.out.println("-------------");
|
---|
| 206 |
|
---|
| 207 | }
|
---|
| 208 |
|
---|
| 209 | @Test
|
---|
| 210 | public void testGetIndividuals() {
|
---|
| 211 | System.out.println("Individuals");
|
---|
| 212 | System.out.println("--------------------------------");
|
---|
| 213 | ontology.individualsInSignature().forEach(
|
---|
| 214 | indiv -> System.out.println(indiv.getIRI().getShortForm()));
|
---|
| 215 |
|
---|
| 216 | }
|
---|
| 217 |
|
---|
| 218 | @Test
|
---|
| 219 | public void getAllSubclasses() {
|
---|
| 220 | ontology.axioms(AxiomType.SUBCLASS_OF).forEach(dp -> {
|
---|
| 221 | System.out.println("\t\t" + dp);
|
---|
| 222 | });
|
---|
| 223 | }
|
---|
| 224 |
|
---|
| 225 | @Test
|
---|
| 226 | public void getAllSuperClasses() {
|
---|
| 227 |
|
---|
| 228 | List<OWLClass> superClasses = getSuperclasses("Fornuis");
|
---|
| 229 | // fornuis ISA keukenapparaat ISA apparaat ISA object ISA Thing
|
---|
| 230 | System.out.println("superclases of fornuis:" + superClasses);
|
---|
| 231 | // fornuis ISA keukenapparaat ISA apparaat ISA object ISA Thing
|
---|
| 232 | assertEquals(5, superClasses.size());
|
---|
| 233 | }
|
---|
| 234 |
|
---|
| 235 | List<OWLClass> getSuperclasses(String classname) {
|
---|
| 236 | IRI iri = IRI
|
---|
| 237 | .create("http://www.owl-ontologies.com/Ontology1444730995.owl#"
|
---|
| 238 | + classname);
|
---|
| 239 | OWLClass fornuis = manager.getOWLDataFactory().getOWLClass(iri);
|
---|
| 240 |
|
---|
| 241 | // use reasoner, to do class hierarchy the inference stuff
|
---|
| 242 | OWLReasonerFactory reasonerFactory = new StructuralReasonerFactory();
|
---|
| 243 | OWLReasonerConfiguration config = new SimpleConfiguration();
|
---|
| 244 | OWLReasoner reasoner = reasonerFactory.createReasoner(ontology, config);
|
---|
| 245 | reasoner.precomputeInferences(InferenceType.CLASS_HIERARCHY);
|
---|
| 246 | assertTrue(reasoner.isConsistent());
|
---|
| 247 |
|
---|
| 248 | NodeSet<OWLClass> superClasses = reasoner.getSuperClasses(fornuis,
|
---|
| 249 | false);
|
---|
| 250 |
|
---|
| 251 | LinkedList<OWLClass> all = new LinkedList<OWLClass>(
|
---|
| 252 | superClasses.getFlattened());
|
---|
| 253 | all.add(fornuis);
|
---|
| 254 | return all;
|
---|
| 255 |
|
---|
| 256 | }
|
---|
| 257 |
|
---|
| 258 | @Test
|
---|
| 259 | public void getAllPropertiesOfFornuis() {
|
---|
| 260 | System.out.println(
|
---|
| 261 | "Found the following properties for fornuis and superclasses");
|
---|
| 262 | for (OWLClass clas : getSuperclasses("Fornuis")) {
|
---|
| 263 | // System.out.println(clas);
|
---|
| 264 | for (OWLDataPropertyDomainAxiom dp : ontology
|
---|
| 265 | .getAxioms(AxiomType.DATA_PROPERTY_DOMAIN)) {
|
---|
| 266 | if (dp.getDomain().equals(clas)) {
|
---|
| 267 | System.out.println(dp);
|
---|
| 268 | dp.dataPropertiesInSignature().forEach(odp -> {
|
---|
| 269 | System.out.println("odp=" + odp);
|
---|
| 270 | System.out.println(odp.getIRI() + "\n comment="
|
---|
| 271 | + getCommentAnnotation(odp));
|
---|
| 272 | });
|
---|
| 273 |
|
---|
| 274 | }
|
---|
| 275 | }
|
---|
| 276 | }
|
---|
| 277 |
|
---|
| 278 | }
|
---|
| 279 |
|
---|
| 280 | @Test
|
---|
| 281 | public void getAllPropertiesOfBed() {
|
---|
| 282 | System.out.println(
|
---|
| 283 | "Found the following properties for bed and superclasses");
|
---|
| 284 | for (OWLClass clas : getSuperclasses("Bed")) {
|
---|
| 285 | System.out.println("superclass: " + clas);
|
---|
| 286 | for (OWLDataPropertyDomainAxiom dp : ontology
|
---|
| 287 | .getAxioms(AxiomType.DATA_PROPERTY_DOMAIN)) {
|
---|
| 288 | if (dp.getDomain().equals(clas)) {
|
---|
| 289 | System.out.println("data property " + dp);
|
---|
| 290 |
|
---|
| 291 | System.out.println("\n comments=" + getCommentAnnotation(
|
---|
| 292 | dp.dataPropertiesInSignature().findFirst().get()));
|
---|
| 293 |
|
---|
| 294 | // why do we need a cast here? And, isIri returns FALSE???
|
---|
| 295 | IRI property = (IRI) dp.getProperty().components()
|
---|
| 296 | .findFirst().get();
|
---|
| 297 | List<OWLDataPropertyRangeAxiom> varf = ontology
|
---|
| 298 | .axioms(AxiomType.DATA_PROPERTY_RANGE)
|
---|
| 299 | .filter(p -> property.equals(p.getProperty()
|
---|
| 300 | .components().findFirst().get()))
|
---|
| 301 | .collect(Collectors.toList());
|
---|
| 302 | System.out.println(" range:" + varf.get(0).getRange());
|
---|
| 303 |
|
---|
| 304 | }
|
---|
| 305 | }
|
---|
| 306 |
|
---|
| 307 | }
|
---|
| 308 |
|
---|
| 309 | }
|
---|
| 310 |
|
---|
| 311 | @Test
|
---|
| 312 | public void rangeOfAllDataPropRangeObjects() {
|
---|
| 313 |
|
---|
| 314 | for (OWLDataPropertyRangeAxiom range : ontology
|
---|
| 315 | .getAxioms(AxiomType.DATA_PROPERTY_RANGE)) {
|
---|
| 316 | System.out.println("property2="
|
---|
| 317 | + range.getProperty().components().findFirst().get());
|
---|
| 318 | System.out.println("range=" + range.getRange());
|
---|
| 319 |
|
---|
| 320 | }
|
---|
| 321 |
|
---|
| 322 | }
|
---|
| 323 |
|
---|
| 324 | @Test
|
---|
| 325 | public void rangeOfLocatieMeubel() {
|
---|
| 326 | IRI iri = IRI.create(getBaseName() + "#Locatie_meubel");
|
---|
| 327 | ontology.axioms(AxiomType.DATA_PROPERTY_RANGE)
|
---|
| 328 | .filter(range -> iri.equals(
|
---|
| 329 | range.getProperty().components().findFirst().get()))
|
---|
| 330 | .forEach(range -> System.out.println(range.getRange()));
|
---|
| 331 |
|
---|
| 332 | }
|
---|
| 333 |
|
---|
| 334 | private String getCommentAnnotation(OWLDataProperty odp) {
|
---|
| 335 | return ontology.annotationAssertionAxioms(odp.getIRI()).findFirst()
|
---|
| 336 | .get().getAnnotation().annotationValue().toString();
|
---|
| 337 |
|
---|
| 338 | }
|
---|
| 339 |
|
---|
| 340 | @Test
|
---|
| 341 | public void getAllPropertiesOfAllClasses() {
|
---|
| 342 |
|
---|
| 343 | Set<OWLClass> classes;
|
---|
| 344 | Set<OWLObjectProperty> prop;
|
---|
| 345 | Set<OWLDataProperty> dataProp;
|
---|
| 346 | Set<OWLNamedIndividual> individuals;
|
---|
| 347 |
|
---|
| 348 | classes = ontology.getClassesInSignature();
|
---|
| 349 | prop = ontology.getObjectPropertiesInSignature();
|
---|
| 350 | dataProp = ontology.getDataPropertiesInSignature();
|
---|
| 351 | individuals = ontology.getIndividualsInSignature();
|
---|
| 352 |
|
---|
| 353 | System.out.println("Classes");
|
---|
| 354 | System.out.println("--------------------------------");
|
---|
| 355 | for (OWLClass cls : classes) {
|
---|
| 356 | System.out.println("+: " + cls.getIRI().getShortForm());
|
---|
| 357 |
|
---|
| 358 | System.out.println(" \tObject Property Domain");
|
---|
| 359 | for (OWLObjectPropertyDomainAxiom op : ontology
|
---|
| 360 | .getAxioms(AxiomType.OBJECT_PROPERTY_DOMAIN)) {
|
---|
| 361 | if (op.getDomain().equals(cls)) {
|
---|
| 362 | for (OWLObjectProperty oop : op
|
---|
| 363 | .getObjectPropertiesInSignature()) {
|
---|
| 364 | System.out.println(
|
---|
| 365 | "\t\t +: " + oop.getIRI().getShortForm());
|
---|
| 366 | }
|
---|
| 367 | }
|
---|
| 368 | }
|
---|
| 369 |
|
---|
| 370 | System.out.println(" \tData Property Domain");
|
---|
| 371 | for (OWLDataPropertyDomainAxiom dp : ontology
|
---|
| 372 | .getAxioms(AxiomType.DATA_PROPERTY_DOMAIN)) {
|
---|
| 373 | if (dp.getDomain().equals(cls)) {
|
---|
| 374 | for (OWLDataProperty odp : dp
|
---|
| 375 | .getDataPropertiesInSignature()) {
|
---|
| 376 | System.out.println(
|
---|
| 377 | "\t\t +: " + odp.getIRI().getShortForm());
|
---|
| 378 | }
|
---|
| 379 | }
|
---|
| 380 | }
|
---|
| 381 |
|
---|
| 382 | }
|
---|
| 383 |
|
---|
| 384 | }
|
---|
| 385 |
|
---|
| 386 | @Test
|
---|
| 387 | public void getSubclassesOfApparaatNotWorking() {
|
---|
| 388 | IRI iri = IRI.create(
|
---|
| 389 | "<http://www.owl-ontologies.com/Ontology1444730995.owl#Apparaat");
|
---|
| 390 | OWLClass apparaat = manager.getOWLDataFactory().getOWLClass(iri);
|
---|
| 391 | System.out.println("apparaat class=" + apparaat);
|
---|
| 392 |
|
---|
| 393 | OWLReasonerFactory reasonerFactory = new StructuralReasonerFactory();
|
---|
| 394 | OWLReasoner reasoner = reasonerFactory.createReasoner(ontology);
|
---|
| 395 |
|
---|
| 396 | System.out.println(
|
---|
| 397 | "subclasses:" + reasoner.getSubClasses(apparaat, false));
|
---|
| 398 | }
|
---|
| 399 |
|
---|
| 400 | @Test
|
---|
| 401 | public void getInstancesOfApparaatNotWorking() {
|
---|
| 402 | IRI iri = IRI.create(
|
---|
| 403 | "<http://www.owl-ontologies.com/Ontology1444730995.owl#Apparaat");
|
---|
| 404 | OWLClass apparaat = manager.getOWLDataFactory().getOWLClass(iri);
|
---|
| 405 |
|
---|
| 406 | // reasoner seems not powerful enough?
|
---|
| 407 | OWLReasonerFactory reasonerFactory = new StructuralReasonerFactory();
|
---|
| 408 | OWLReasoner reasoner = reasonerFactory.createReasoner(ontology);
|
---|
| 409 |
|
---|
| 410 | System.out.println("instances:" + reasoner.getInstances(apparaat));
|
---|
| 411 | }
|
---|
| 412 |
|
---|
| 413 | @Test
|
---|
| 414 | public void getInstancesOfApparaat() {
|
---|
| 415 | IRI iri = IRI.create(
|
---|
| 416 | "http://www.owl-ontologies.com/Ontology1444730995.owl#Apparaat");
|
---|
| 417 | OWLClass apparaat = manager.getOWLDataFactory().getOWLClass(iri);
|
---|
| 418 | System.out.println("Subclasses of " + apparaat);
|
---|
| 419 |
|
---|
| 420 | boolean hasSubclasses = false;
|
---|
| 421 | List<OWLSubClassOfAxiom> axioms = ontology.axioms(AxiomType.SUBCLASS_OF)
|
---|
| 422 | .filter(aa -> aa.getSuperClass().equals(apparaat))
|
---|
| 423 | .collect(Collectors.toList());
|
---|
| 424 |
|
---|
| 425 | System.out.println(axioms);
|
---|
| 426 | assertFalse(axioms.isEmpty());
|
---|
| 427 |
|
---|
| 428 | }
|
---|
| 429 |
|
---|
| 430 | @Test
|
---|
| 431 | public void getInstancesOfShortApparaat() {
|
---|
| 432 | IRI iri = IRI.create(getBaseName() + "#Apparaat");
|
---|
| 433 | OWLClass apparaat = manager.getOWLDataFactory().getOWLClass(iri);
|
---|
| 434 | System.out.println("Subclasses of " + apparaat);
|
---|
| 435 |
|
---|
| 436 | boolean hasSubclasses = false;
|
---|
| 437 | List<OWLSubClassOfAxiom> axioms = ontology.axioms(AxiomType.SUBCLASS_OF)
|
---|
| 438 | .filter(aa -> aa.getSuperClass().equals(apparaat))
|
---|
| 439 | .collect(Collectors.toList());
|
---|
| 440 |
|
---|
| 441 | System.out.println(axioms);
|
---|
| 442 | assertFalse(axioms.isEmpty());
|
---|
| 443 | }
|
---|
| 444 |
|
---|
| 445 | private String getBaseName() {
|
---|
| 446 | return ontology.getOntologyID().getOntologyIRI().get().toString();
|
---|
| 447 | }
|
---|
| 448 |
|
---|
| 449 | @Test
|
---|
| 450 | public void getAllFormulasTest() {
|
---|
| 451 | System.out.println("Total axioms:" + ontology.getAxiomCount());
|
---|
| 452 | System.out.println(
|
---|
| 453 | "axioms:" + ontology.axioms().collect(Collectors.toList()));
|
---|
| 454 | assertTrue(ontology.getAxiomCount() > 100);
|
---|
| 455 | }
|
---|
| 456 |
|
---|
| 457 | @Test
|
---|
| 458 | public void addAxiomTest() {
|
---|
| 459 | int naxioms = ontology.getAxiomCount();
|
---|
| 460 | OWLDataFactory df = manager.getOWLDataFactory();
|
---|
| 461 | IRI geneSetIRI = IRI.create("prefix:fdsfds");
|
---|
| 462 | OWLLiteral literal = df.getOWLLiteral(12);
|
---|
| 463 | OWLAxiom ax = df.getOWLAnnotationAssertionAxiom(df.getRDFSLabel(),
|
---|
| 464 | geneSetIRI, literal);
|
---|
| 465 | ontology.add(ax);
|
---|
| 466 | assertEquals(naxioms + 1, ontology.getAxiomCount());
|
---|
| 467 | }
|
---|
| 468 |
|
---|
| 469 | @Test
|
---|
| 470 | public void toStringIdTest() {
|
---|
| 471 | OWLClass apparaatStatus = factory
|
---|
| 472 | .getOWLClass(IRI.create(base + "#Apparaat"));
|
---|
| 473 | System.out.println(apparaatStatus.toStringID());
|
---|
| 474 | System.out.println(apparaatStatus.getIRI().getShortForm());
|
---|
| 475 | }
|
---|
| 476 |
|
---|
| 477 | }
|
---|