
de.uni_stuttgart.vis.vowl.owl2vowl.server.Owl2VowlController Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of OWL2VOWL Show documentation
Show all versions of OWL2VOWL Show documentation
Owl2Vowl is an ontology converter used to convert the given ontology to a json
format that is used in the WebVOWL visualization. See
https://github.com/VisualDataWeb/WebVOWL or http://vowl.visualdataweb.org/.
The newest version!
package de.uni_stuttgart.vis.vowl.owl2vowl.server;
import de.uni_stuttgart.vis.vowl.owl2vowl.Owl2Vowl;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.apache.commons.io.IOUtils;
import org.semanticweb.owlapi.model.IRI;
import org.semanticweb.owlapi.model.OWLOntologyCreationException;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.net.URL;
import java.io.StringWriter;
@RestController
public class Owl2VowlController {
private static final Logger conversionLogger = LogManager.getLogger("conversion");
private static final String СONVERT_MAPPING = "/convert";
private static final String READ_JSON = "/read";
@ResponseStatus(value = HttpStatus.BAD_REQUEST, reason = "Parameter not correct")
@ExceptionHandler(IllegalArgumentException.class)
public void parameterExceptionHandler(Exception e) {
System.out.println("--- Parameter exception: " + e.getMessage());
conversionLogger.error("Problems with parameters: " + e.getMessage());
}
@ResponseStatus(value = HttpStatus.BAD_REQUEST, reason = "Ontology could not be created")
@ExceptionHandler(OWLOntologyCreationException.class)
public void ontologyCreationExceptionHandler(Exception e) {
System.out.println("--- Ontology creation exception: " + e.getMessage());
conversionLogger.error("Problems in ontology creation process: " + e.getMessage());
}
@ResponseStatus(value = HttpStatus.BAD_REQUEST, reason = "Problems while generating uploaded file on server.")
@ExceptionHandler(IOException.class)
public void fileExceptionHandler(Exception e) {
System.out.println("--- IO exception: " + e.getMessage());
conversionLogger.error("IO exception while generating file on server: " + e.getMessage());
}
@RequestMapping(value = СONVERT_MAPPING, method = RequestMethod.POST)
public String uploadOntology(@RequestParam("ontology") MultipartFile[] files) throws IOException,
OWLOntologyCreationException {
if (files == null || files.length == 0) {
throw new IllegalArgumentException("No file uploaded!");
}
if (files.length > 1) {
throw new IllegalArgumentException("Please upload only the main ontology!");
}
List inputStreams = new ArrayList<>();
for (MultipartFile file : files) {
inputStreams.add(file.getInputStream());
}
String jsonAsString;
try {
Owl2Vowl owl2Vowl = new Owl2Vowl(inputStreams.get(0));
jsonAsString = owl2Vowl.getJsonAsString();
} catch (Exception e) {
conversionLogger.info("Uploaded files " + files[0].getName() + ": " + 0);
throw e;
}
return jsonAsString;
}
@RequestMapping(value = СONVERT_MAPPING, method = RequestMethod.GET)
public String convertIRI(@RequestParam("iri") String iri) throws IOException, OWLOntologyCreationException {
String jsonAsString;
String out=iri.replace(" ","%20");
try {
Owl2Vowl owl2Vowl = new Owl2Vowl(IRI.create(out));
jsonAsString = owl2Vowl.getJsonAsString();
} catch (Exception e) {
conversionLogger.info(out + " " + 1);
throw e;
}
conversionLogger.info(iri + " " + 0);
return jsonAsString;
}
// adding some proxy functionallity
@RequestMapping(value = READ_JSON, method = RequestMethod.POST)
public String uploadJSON(@RequestParam("ontology") MultipartFile[] files) throws IOException,
OWLOntologyCreationException {
if (files == null || files.length == 0) {
throw new IllegalArgumentException("No file uploaded!");
}
if (files.length > 1) {
throw new IllegalArgumentException("Please upload only the main ontology!");
}
List inputStreams = new ArrayList<>();
String jsonAsString="";
for (MultipartFile file : files) {
inputStreams.add(file.getInputStream());
}
try {
jsonAsString=IOUtils.toString(inputStreams.get(0));
}
catch (Exception e){
System.out.println("Something went wrong");
conversionLogger.error("Something went wrong " + e.getMessage());
}
return jsonAsString;
}
@RequestMapping(value = READ_JSON, method = RequestMethod.GET)
public String readJsons(@RequestParam("json") String json) throws IOException, OWLOntologyCreationException {
String jsonAsString="";
try {
InputStream input = new URL(json).openStream();
try {
jsonAsString=IOUtils.toString(input);
} finally {
IOUtils.closeQuietly(input);
}
}
catch (Exception e){
System.out.println("Something went wrong");
conversionLogger.error("Something went wrong " + e.getMessage());
}
return jsonAsString;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy