Skip to content

Commit

Permalink
bump owlapi to 4.0.2, add utf-8 encoding for output, german translation
Browse files Browse the repository at this point in the history
Signed-off-by: Michael Schmitz <[email protected]>
  • Loading branch information
Bl4d3s committed Jun 2, 2020
1 parent a64e42e commit b78ae76
Show file tree
Hide file tree
Showing 3 changed files with 113 additions and 51 deletions.
28 changes: 4 additions & 24 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -39,36 +39,16 @@

<!-- pellet -->
<dependency>
<groupId>com.github.ansell.pellet</groupId>
<artifactId>pellet-core</artifactId>
<version>2.3.6-ansell</version>
</dependency>
<dependency>
<groupId>com.github.ansell.pellet</groupId>
<artifactId>pellet-datatypes</artifactId>
<version>2.3.6-ansell</version>
</dependency>
<dependency>
<groupId>com.github.ansell.pellet</groupId>
<artifactId>pellet-el</artifactId>
<version>2.3.6-ansell</version>
</dependency>
<dependency>
<groupId>com.github.ansell.pellet</groupId>
<artifactId>pellet-owlapiv3</artifactId>
<version>2.3.6-ansell</version>
</dependency>
<dependency>
<groupId>com.github.ansell.pellet</groupId>
<artifactId>pellet-rules</artifactId>
<version>2.3.6-ansell</version>
<groupId>net.sourceforge.owlapi</groupId>
<artifactId>pellet-owlapi-ignazio1977</artifactId>
<version>2.4.0-ignazio1977</version>
</dependency>

<!-- owlapi -->
<dependency>
<groupId>net.sourceforge.owlapi</groupId>
<artifactId>owlapi-distribution</artifactId>
<version>3.5.0</version>
<version>4.0.2</version>
</dependency>

<!-- servlets -->
Expand Down
47 changes: 20 additions & 27 deletions src/main/java/it/essepuntato/lode/LodeServlet.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;
Expand All @@ -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;
Expand Down Expand Up @@ -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()));
}

Expand All @@ -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();
}

Expand Down Expand Up @@ -364,29 +357,29 @@ private OWLOntology parseWithReasoner(OWLOntologyManager manager, OWLOntology on
Set<OWLImportsDeclaration> declarations = ontology.getImportsDeclarations();
Set<OWLAnnotation> annotations = ontology.getAnnotations();

Map<OWLEntity, Set<OWLAnnotationAssertionAxiom>> entityAnnotations = new HashMap<OWLEntity, Set<OWLAnnotationAssertionAxiom>>();
Map<OWLEntity, Collection<OWLAnnotationAssertionAxiom>> 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));
Expand Down Expand Up @@ -425,11 +418,11 @@ private OWLOntology parseWithReasoner(OWLOntologyManager manager, OWLOntology on
}
}

private void applyAnnotations(OWLEntity aEntity, Map<OWLEntity, Set<OWLAnnotationAssertionAxiom>> entityAnnotations,
private void applyAnnotations(OWLEntity aEntity, Map<OWLEntity, Collection<OWLAnnotationAssertionAxiom>> entityAnnotations,
OWLOntologyManager manager, OWLOntology ontology) {
Set<OWLAnnotationAssertionAxiom> entitySet = entityAnnotations.get(aEntity);
if (entitySet != null) {
for (OWLAnnotationAssertionAxiom ann : entitySet) {
Collection<OWLAnnotationAssertionAxiom> entityCollection = entityAnnotations.get(aEntity);
if (entityCollection != null) {
for (OWLAnnotationAssertionAxiom ann : entityCollection) {
manager.addAxiom(ontology, ann);
}
}
Expand Down Expand Up @@ -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);
}
}
89 changes: 89 additions & 0 deletions src/main/webapp/de.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
<?xml version="1.0" encoding="UTF-8"?>
<labels>
<ontology>Ontologie</ontology>
<ontologysource>Ontologie Quelle</ontologysource>
<visualisation>Andere Visualisierung</visualisation>
<visualiseitwith>Visualisierung mit:</visualiseitwith>
<date>Datum</date>
<currentversion>Aktuelle Version</currentversion>
<previousversion>Vorherige Version</previousversion>
<backwardcompatiblewith>Abwärtskompatibel mit</backwardcompatiblewith>
<incompatibleWith>Inkompatibel mit</incompatibleWith>
<abstract>Abstract</abstract>
<introduction>Einführung</introduction>
<disjointclasses>Alle disjuncten Klassen</disjointclasses>
<subclassdefinition>Allgemeine Subklassendefinition</subclassdefinition>
<equivalentdefinition>Allgemeine Equivalenz Definition</equivalentdefinition>
<issubclassof>ist Subklasse von</issubclassof>
<isequivalentto>ist äquvivalent zu</isequivalentto>
<functional>funktional</functional>
<inversefunctional>invers funktional</inversefunctional>
<reflexive>reflexiv</reflexive>
<irreflexive>irreflexiv</irreflexive>
<symmetric>symmetrisch</symmetric>
<asymmetric>asymmetrisch</asymmetric>
<transitive>transitiv</transitive>
<isdefinedby>ist definiert durch</isdefinedby>
<belongsto>gehört zu</belongsto>
<issameas>ist gleich wie</issameas>
<isalsodefinedas>ist auch definiert als</isalsodefinedas>
<isdisjointwith>ist disjunkt zu</isdisjointwith>
<haskeys>hat Schlüssel</haskeys>
<hassuperclasses>hat Super-Klassen</hassuperclasses>
<hassubclasses>hat Sub-Klassen</hassubclasses>
<isindomainof>ist in der Domäne von</isindomainof>
<isinrangeof>ist in Range von</isinrangeof>
<hasmembers>hat Member</hasmembers>
<isinverseof>ist inverse zu</isinverseof>
<hassubpropertychains>hat Sub-Eigenschaft Ketten</hassubpropertychains>
<hasequivalentproperties>hat äquivalente Eigenschaften</hasequivalentproperties>
<hassuperproperties>hat Super-Eigenschaften</hassuperproperties>
<hassubproperties>hat Sub-Eigenschaften</hassubproperties>
<hasdomain>hat Domäne</hasdomain>
<hasrange>hat Range</hasrange>
<importedontologies>Importierte Ontologien</importedontologies>
<individualassertions>hat Fakten</individualassertions>
<authors>Authoren</authors>
<contributors>Mitwirkende</contributors>
<publisher>Veröffentlicht bei</publisher>
<toc>Inhaltsverzeichnis</toc>
<tocabbr>Übersicht</tocabbr>
<backto>zurück zur</backto>
<class>Klasse</class>
<classes>Klassen</classes>
<objectproperty>Objekt Eigenschaft</objectproperty>
<objectproperties>Objekt Eigenschaften</objectproperties>
<dataproperty>Daten Eigenschaft</dataproperty>
<dataproperties>Daten Eigenschaften</dataproperties>
<namedindividual>benanntes Individuum</namedindividual>
<namedindividuals>benannte Individuen</namedindividuals>
<annotationproperty>Anmerkungseigenschaft</annotationproperty>
<annotationproperties>Anmerkungseigenschaften</annotationproperties>
<datarange>Datenbereich</datarange>
<dataranges>Datenbereiche</dataranges>
<generalaxioms>Allgemeine Axiome</generalaxioms>
<rule>Regel</rule>
<rules>SWRL Regeln</rules>
<namespace>Standard-Namensraum</namespace>
<namespaces>Namensraumdefinitionen</namespaces>
<endnote>Dieses HTML Dokument wurde durch Verarbeitung einer Ontologie mit Hilfe von</endnote>
<developedby>erzeugt, entwickelt durch</developedby>
<or>oder</or>
<classtoc>Klassenübersicht</classtoc>
<objectpropertytoc>Übersicht der Objekteigenschaften</objectpropertytoc>
<datapropertytoc>Übersicht der Dateneigenschaften</datapropertytoc>
<annotationpropertytoc>Übersicht der Anmerkungseigenschaften</annotationpropertytoc>
<namedindividualtoc>Übersicht der benannten Individuen</namedindividualtoc>
<hascharacteristics>hat Charakteristika</hascharacteristics>
<coversRequirements>deckt Anforderungen</coversRequirements>
<extractedFrom>extrahiert aus</extractedFrom>
<hasComponent>hat Komponente</hasComponent>
<hasConsequences>hat Schlussfolgerungen</hasConsequences>
<hasIntent>hat Intent</hasIntent>
<hasUnitTest>hat Unit Test</hasUnitTest>
<isCloneOf>ist Klon von</isCloneOf>
<isSpecializationOf>ist Spezialisierung von</isSpecializationOf>
<reengineeredFrom>weiterentwicklet auf Basis von</reengineeredFrom>
<relatedCPs>ähnliche Inhaltsmuster</relatedCPs>
<scenarios>Szenarien</scenarios>
</labels>

0 comments on commit b78ae76

Please sign in to comment.