
prerna.rdf.main.ModForms2 Maven / Gradle / Ivy
The newest version!
package prerna.rdf.main;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.openrdf.model.vocabulary.RDF;
import prerna.engine.api.IDatabaseEngine;
import prerna.engine.api.IDatabaseEngine.ACTION_TYPE;
import prerna.engine.api.IRawSelectWrapper;
import prerna.poi.main.helper.CSVFileHelper;
import prerna.rdf.engine.wrappers.WrapperManager;
import prerna.util.Constants;
import prerna.util.Utility;
public class ModForms2 {
private static final Logger classLogger = LogManager.getLogger(ModForms2.class);
// public static void main(String[] args) throws Exception {
// TestUtilityMethods.loadDIHelper();
//
// String engineProp = "C:\\workspace\\Semoss_Dev\\db\\Forms_TAP_Core_Data.smss";
// BigDataEngine formsEngine = new BigDataEngine();
// formsEngine.open(engineProp);
// formsEngine.setEngineId("Forms_TAP_Core_Data");
// DIHelper.getInstance().setLocalProperty("Forms_TAP_Core_Data", formsEngine);
//
// // 1) remove availability actual
// String query = "SELECT DISTINCT ?system ?avail WHERE {"
// + "{?system a }"
// + "{?system ?avail}"
// + "}";
// removeExistingProperties(formsEngine, query, "http://semoss.org/ontologies/Relation/Contains/AvailabilityActual");
//
// // 2) remove availability required
// query = "SELECT DISTINCT ?system ?avail WHERE {"
// + "{?system a }"
// + "{?system ?avail}"
// + "}";
// removeExistingProperties(formsEngine, query, "http://semoss.org/ontologies/Relation/Contains/AvailabilityRequired");
//
// // add in the new data from the csv files
// String start = "C:\\Users\\SEMOSS\\Desktop\\Mod\\";
// String[] fileLocations = new String[]{
// start + "Availability Actual edits.csv",
// start + "Availability Required edits.csv",
// };
//
// String[] dataTypes = new String[]{
// "NUMBER",
// "NUMBER",
// };
//
// int size = fileLocations.length;
// for(int i = 0; i < size; i++) {
// processFile(formsEngine, fileLocations[i], dataTypes[i]);
// }
//
// // now remove the relationship
// query = "SELECT DISTINCT ?system ?relationship ?portfolio WHERE {"
// + "{?system a }"
// + "{?portfolio a }"
// + "{?relationship ?anything }"
// + "{?system ?relationship ?portfolio}"
// + "}";
// removeExistingRelationship(formsEngine, query);
//
// fileLocations = new String[]{start + "Portfolio Board Mappings.csv"};
// String[] rels = new String[]{"BelongsTo"};
// size = fileLocations.length;
// for(int i = 0; i < size; i++) {
// processRelationFile(formsEngine, fileLocations[i], rels[i]);
// }
//
// formsEngine.commit();
//
// System.out.println("Done");
// }
private static void processRelationFile(IDatabaseEngine eng, String fileLoc, String relationship) {
CSVFileHelper helper = new CSVFileHelper();
helper.setDelimiter(',');
helper.parse(fileLoc);
String[] headers = helper.getHeaders();
final String subprefix = "http://health.mil/ontologies/Concept/" + headers[0] + "/";
final String objprefix = "http://health.mil/ontologies/Concept/" + headers[1] + "/";
final String objType = "http://semoss.org/ontologies/Concept/" + headers[1];
final String basePred = "http://semoss.org/ontologies/Relation";
final String relPred = "http://semoss.org/ontologies/Relation/" + relationship;
final String instancePred = "http://health.mil/ontologies/Relation/" + relationship + "/";
Object[] row = null;
while((row = helper.getNextRow()) != null) {
String system = row[0].toString();
String portfolio = Utility.cleanString(row[1].toString(), true);
String sub = subprefix + system;
String obj = objprefix + portfolio;
eng.doAction(ACTION_TYPE.ADD_STATEMENT, new Object[]{sub, basePred, obj, true});
eng.doAction(ACTION_TYPE.ADD_STATEMENT, new Object[]{sub, relPred, obj, true});
eng.doAction(ACTION_TYPE.ADD_STATEMENT, new Object[]{sub, instancePred + system + ":" + portfolio, obj, true});
eng.doAction(ACTION_TYPE.ADD_STATEMENT, new Object[]{obj, RDF.TYPE.toString(), objType, true});
}
}
private static void removeExistingRelationship(IDatabaseEngine eng, String query) {
List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy