From 9ce65c5a963b03ee97fe9cb6c5aa65a3c04a80a8 Mon Sep 17 00:00:00 2001 From: yzhou Date: Tue, 21 Apr 2015 10:34:27 +0100 Subject: initial version --- src/org/semanticweb/simpleETL/SimpleETL.java | 71 ++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 src/org/semanticweb/simpleETL/SimpleETL.java (limited to 'src/org/semanticweb/simpleETL/SimpleETL.java') diff --git a/src/org/semanticweb/simpleETL/SimpleETL.java b/src/org/semanticweb/simpleETL/SimpleETL.java new file mode 100644 index 0000000..4d4a193 --- /dev/null +++ b/src/org/semanticweb/simpleETL/SimpleETL.java @@ -0,0 +1,71 @@ +package org.semanticweb.simpleETL; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.util.regex.Pattern; + +import org.openrdf.rio.RDFParser; +import org.openrdf.rio.RDFWriter; +import org.openrdf.rio.rdfxml.RDFXMLParser; +import org.openrdf.rio.turtle.TurtleWriter; + +import uk.ac.ox.cs.pagoda.util.Utility; + +public class SimpleETL { + + protected final static String m_prefix_LUBM = "http://www.lehigh.edu/~zhp2/2004/0401/univ-bench.owl#"; + protected final static String m_prefix_UOBM = "http://semantics.crl.ibm.com/univ-bench-dl.owl#"; + protected final static String m_prefix_FLY= "http://www.virtualflybrain.org/ontologies/individual_neurons/FC_neuron_GF_an.owl#"; + + String m_prefix; + String m_fileToImport; + String m_fileToExport; + + public SimpleETL(String prefix, String fileToImport) { + m_prefix = prefix; + m_fileToImport = fileToImport; + m_fileToExport = m_fileToImport.replace(".owl", ".ttl"); + } + + public SimpleETL(String prefix, String fileToImport, String outPath) { + m_prefix = prefix; + m_fileToImport = fileToImport; + File file = new File(outPath); + if (file.exists() && file.isDirectory()) + m_fileToExport = outPath + Utility.FILE_SEPARATOR + "data.ttl"; + else + m_fileToExport = outPath; +// + Utility.FILE_SEPARATOR + m_fileToImport.substring(m_fileToImport.lastIndexOf(Utility.FILE_SEPARATOR), m_fileToImport.lastIndexOf(".")) + ".ttl"; + } + + public void rewrite() throws Exception { +// RDFParser parser = new TurtleParser(); + RDFParser parser = new RDFXMLParser(); + + RDFWriter writer = new TurtleWriter(new FileOutputStream(m_fileToExport)); + +// String m_fileToExport = m_fileToImport.replace(".owl", ".ntriple"); +// RDFWriter writer = new NTriplesWriter(new FileOutputStream(m_fileToExport)); + + RDFHandlerWriter multiHandler = new RDFHandlerWriter(writer); + parser.setRDFHandler(multiHandler); + File fileToImport = new File(m_fileToImport); + if(fileToImport.isDirectory()) { + for(File file : fileToImport.listFiles()) { + if(file.isFile() && (Pattern.matches(".*.owl", file.getName()) || Pattern.matches(".*.rdf", file.getName()))) { + Utility.logDebug("Parsing " + file.getName()); + parser.parse(new FileInputStream(file), m_prefix); + } + } + } + else + parser.parse(new FileInputStream(fileToImport), m_prefix); + writer.endRDF(); + Utility.logInfo("SimpleETL rewriting DONE", + "additional ontology data is saved in " + m_fileToExport + "."); + } + + public String getExportedFile() { + return m_fileToExport; + } +} -- cgit v1.2.3