From b78ae760b529b475f06458aa38472a550c2f1118 Mon Sep 17 00:00:00 2001 From: Michael Schmitz Date: Tue, 2 Jun 2020 09:16:39 +0200 Subject: [PATCH] bump owlapi to 4.0.2, add utf-8 encoding for output, german translation Signed-off-by: Michael Schmitz --- pom.xml | 28 +----- .../java/it/essepuntato/lode/LodeServlet.java | 47 +++++----- src/main/webapp/de.xml | 89 +++++++++++++++++++ 3 files changed, 113 insertions(+), 51 deletions(-) create mode 100644 src/main/webapp/de.xml diff --git a/pom.xml b/pom.xml index 86e2a4d..843d54c 100644 --- a/pom.xml +++ b/pom.xml @@ -39,36 +39,16 @@ - com.github.ansell.pellet - pellet-core - 2.3.6-ansell - - - com.github.ansell.pellet - pellet-datatypes - 2.3.6-ansell - - - com.github.ansell.pellet - pellet-el - 2.3.6-ansell - - - com.github.ansell.pellet - pellet-owlapiv3 - 2.3.6-ansell - - - com.github.ansell.pellet - pellet-rules - 2.3.6-ansell + net.sourceforge.owlapi + pellet-owlapi-ignazio1977 + 2.4.0-ignazio1977 net.sourceforge.owlapi owlapi-distribution - 3.5.0 + 4.0.2 diff --git a/src/main/java/it/essepuntato/lode/LodeServlet.java b/src/main/java/it/essepuntato/lode/LodeServlet.java index 6b4cb61..9bb1124 100644 --- a/src/main/java/it/essepuntato/lode/LodeServlet.java +++ b/src/main/java/it/essepuntato/lode/LodeServlet.java @@ -27,12 +27,8 @@ import java.net.MalformedURLException; import java.net.URISyntaxException; import java.net.URL; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.nio.charset.StandardCharsets; +import java.util.*; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; @@ -41,18 +37,14 @@ import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; -import javax.xml.transform.Transformer; -import javax.xml.transform.TransformerConfigurationException; -import javax.xml.transform.TransformerException; -import javax.xml.transform.TransformerFactory; -import javax.xml.transform.TransformerFactoryConfigurationError; +import javax.xml.transform.*; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import javax.xml.transform.stream.StreamSource; import org.mindswap.pellet.PelletOptions; import org.semanticweb.owlapi.apibinding.OWLManager; -import org.semanticweb.owlapi.io.RDFXMLOntologyFormat; +import org.semanticweb.owlapi.formats.RDFXMLDocumentFormat; import org.semanticweb.owlapi.io.StringDocumentTarget; import org.semanticweb.owlapi.model.AddImport; import org.semanticweb.owlapi.model.AddOntologyAnnotation; @@ -73,6 +65,7 @@ import org.semanticweb.owlapi.model.OWLOntologyID; import org.semanticweb.owlapi.model.OWLOntologyManager; import org.semanticweb.owlapi.model.OWLOntologyStorageException; +import org.semanticweb.owlapi.search.EntitySearcher; import org.semanticweb.owlapi.util.InferredAxiomGenerator; import org.semanticweb.owlapi.util.InferredClassAssertionAxiomGenerator; import org.semanticweb.owlapi.util.InferredDisjointClassesAxiomGenerator; @@ -248,7 +241,7 @@ private String parseWithOWLAPI(URL ontologyURL, boolean useOWLAPI, boolean consi manager.addAxioms(ontology, importedOntology.getAxioms()); } } else { - manager.setSilentMissingImportsHandling(true); + //manager.setSilentMissingImportsHandling(true); ontology = manager.loadOntology(IRI.create(ontologyURL.toString())); } @@ -258,7 +251,7 @@ private String parseWithOWLAPI(URL ontologyURL, boolean useOWLAPI, boolean consi StringDocumentTarget parsedOntology = new StringDocumentTarget(); - manager.saveOntology(ontology, new RDFXMLOntologyFormat(), parsedOntology); + manager.saveOntology(ontology, new RDFXMLDocumentFormat(), parsedOntology); result = parsedOntology.toString(); } @@ -364,29 +357,29 @@ private OWLOntology parseWithReasoner(OWLOntologyManager manager, OWLOntology on Set declarations = ontology.getImportsDeclarations(); Set annotations = ontology.getAnnotations(); - Map> entityAnnotations = new HashMap>(); + Map> entityAnnotations = new HashMap<>(); for (OWLClass aEntity : ontology.getClassesInSignature()) { - entityAnnotations.put(aEntity, aEntity.getAnnotationAssertionAxioms(ontology)); + entityAnnotations.put(aEntity, EntitySearcher.getAnnotationAssertionAxioms(aEntity, ontology)); } for (OWLObjectProperty aEntity : ontology.getObjectPropertiesInSignature()) { - entityAnnotations.put(aEntity, aEntity.getAnnotationAssertionAxioms(ontology)); + entityAnnotations.put(aEntity, EntitySearcher.getAnnotationAssertionAxioms(aEntity, ontology)); } for (OWLDataProperty aEntity : ontology.getDataPropertiesInSignature()) { - entityAnnotations.put(aEntity, aEntity.getAnnotationAssertionAxioms(ontology)); + entityAnnotations.put(aEntity, EntitySearcher.getAnnotationAssertionAxioms(aEntity, ontology)); } for (OWLNamedIndividual aEntity : ontology.getIndividualsInSignature()) { - entityAnnotations.put(aEntity, aEntity.getAnnotationAssertionAxioms(ontology)); + entityAnnotations.put(aEntity, EntitySearcher.getAnnotationAssertionAxioms(aEntity, ontology)); } for (OWLAnnotationProperty aEntity : ontology.getAnnotationPropertiesInSignature()) { - entityAnnotations.put(aEntity, aEntity.getAnnotationAssertionAxioms(ontology)); + entityAnnotations.put(aEntity, EntitySearcher.getAnnotationAssertionAxioms(aEntity, ontology)); } for (OWLDatatype aEntity : ontology.getDatatypesInSignature()) { - entityAnnotations.put(aEntity, aEntity.getAnnotationAssertionAxioms(ontology)); + entityAnnotations.put(aEntity, EntitySearcher.getAnnotationAssertionAxioms(aEntity, ontology)); } manager.removeOntology(ontology); OWLOntology inferred = manager.createOntology(id); - iog.fillOntology(manager, inferred); + iog.fillOntology(manager.getOWLDataFactory(), inferred); for (OWLImportsDeclaration decl : declarations) { manager.applyChange(new AddImport(inferred, decl)); @@ -425,11 +418,11 @@ private OWLOntology parseWithReasoner(OWLOntologyManager manager, OWLOntology on } } - private void applyAnnotations(OWLEntity aEntity, Map> entityAnnotations, + private void applyAnnotations(OWLEntity aEntity, Map> entityAnnotations, OWLOntologyManager manager, OWLOntology ontology) { - Set entitySet = entityAnnotations.get(aEntity); - if (entitySet != null) { - for (OWLAnnotationAssertionAxiom ann : entitySet) { + Collection entityCollection = entityAnnotations.get(aEntity); + if (entityCollection != null) { + for (OWLAnnotationAssertionAxiom ann : entityCollection) { manager.addAxiom(ontology, ann); } } @@ -462,6 +455,6 @@ private String applyXSLTTransformation(String source, String ontologyUrl, String transformer.transform(inputSource, new StreamResult(output)); - return output.toString(); + return new String(output.toByteArray(), StandardCharsets.UTF_8); } } diff --git a/src/main/webapp/de.xml b/src/main/webapp/de.xml new file mode 100644 index 0000000..504e174 --- /dev/null +++ b/src/main/webapp/de.xml @@ -0,0 +1,89 @@ + + + Ontologie + Ontologie Quelle + Andere Visualisierung + Visualisierung mit: + Datum + Aktuelle Version + Vorherige Version + Abwärtskompatibel mit + Inkompatibel mit + Abstract + Einführung + Alle disjuncten Klassen + Allgemeine Subklassendefinition + Allgemeine Equivalenz Definition + ist Subklasse von + ist äquvivalent zu + funktional + invers funktional + reflexiv + irreflexiv + symmetrisch + asymmetrisch + transitiv + ist definiert durch + gehört zu + ist gleich wie + ist auch definiert als + ist disjunkt zu + hat Schlüssel + hat Super-Klassen + hat Sub-Klassen + ist in der Domäne von + ist in Range von + hat Member + ist inverse zu + hat Sub-Eigenschaft Ketten + hat äquivalente Eigenschaften + hat Super-Eigenschaften + hat Sub-Eigenschaften + hat Domäne + hat Range + Importierte Ontologien + hat Fakten + Authoren + Mitwirkende + Veröffentlicht bei + Inhaltsverzeichnis + Übersicht + zurück zur + Klasse + Klassen + Objekt Eigenschaft + Objekt Eigenschaften + Daten Eigenschaft + Daten Eigenschaften + benanntes Individuum + benannte Individuen + Anmerkungseigenschaft + Anmerkungseigenschaften + Datenbereich + Datenbereiche + Allgemeine Axiome + Regel + SWRL Regeln + Standard-Namensraum + Namensraumdefinitionen + Dieses HTML Dokument wurde durch Verarbeitung einer Ontologie mit Hilfe von + erzeugt, entwickelt durch + oder + Klassenübersicht + Übersicht der Objekteigenschaften + Übersicht der Dateneigenschaften + Übersicht der Anmerkungseigenschaften + Übersicht der benannten Individuen + hat Charakteristika + deckt Anforderungen + extrahiert aus + hat Komponente + hat Schlussfolgerungen + hat Intent + hat Unit Test + ist Klon von + ist Spezialisierung von + weiterentwicklet auf Basis von + ähnliche Inhaltsmuster + Szenarien +