All Downloads are FREE. Search and download functionalities are using the official Maven repository.

prerna.util.CSVToOwlMaker Maven / Gradle / Ivy

The newest version!
package prerna.util;

import java.io.IOException;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import prerna.engine.api.IDatabaseEngine;
import prerna.engine.impl.owl.WriteOWLEngine;
import prerna.poi.main.helper.CSVFileHelper;
import prerna.reactor.database.upload.rdbms.RDBMSEngineCreationHelper;

public class CSVToOwlMaker {

	private static final Logger classLogger = LogManager.getLogger(CSVToOwlMaker.class);
	
	/**
	 * Create OWL from CSV
	 * OWLEngine will be released at end of method
	 * @param owlEngine
	 * @param csvFile
	 * @param owlFileLocation
	 * @param dbType
	 * @param addUniqueId
	 * @throws Exception
	 */
	public void makeFlatOwl(WriteOWLEngine owlEngine, String csvFile, String owlFileLocation, IDatabaseEngine.DATABASE_TYPE dbType, boolean addUniqueId) throws Exception {
		try {
			// get the headers + types + additional types
			// based on the csv parsing
			// and then generate a new OWL file
	
			CSVFileHelper helper = new CSVFileHelper();
			// parse and collect headers
			helper.parse(csvFile);
			helper.collectHeaders();
	
			String [] headers = helper.getHeaders();
			Object [][] typePredictions = helper.predictTypes();
	
			String fileName = Utility.getOriginalFileName(csvFile);
			String cleanTableName = RDBMSEngineCreationHelper.cleanTableName(fileName).toUpperCase();
	
			owlEngine.addConcept(cleanTableName, null, null);
			if(addUniqueId) {
				String identityColumn = cleanTableName + "_UNIQUE_ROW_ID";
				owlEngine.addProp(cleanTableName, identityColumn, "LONG", null);
			}
			
			for(int headerIndex = 0; headerIndex < headers.length; headerIndex++) {
				String cleanHeader = RDBMSEngineCreationHelper.cleanTableName(headers[headerIndex]);
				owlEngine.addProp(cleanTableName, cleanHeader, typePredictions[headerIndex][0].toString(), (String) typePredictions[headerIndex][1]);
			}
			
			try {
				owlEngine.commit();
				owlEngine.export();
			} catch (IOException e) {
				classLogger.error(Constants.STACKTRACE, e);
			}
		} finally {
			owlEngine.close();
		}
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy