
prerna.engine.impl.MetaHelper Maven / Gradle / Ivy
The newest version!
//package prerna.engine.impl;
//
//import java.io.File;
//import java.io.IOException;
//import java.io.StringWriter;
//import java.util.Hashtable;
//import java.util.List;
//import java.util.Map;
//import java.util.Set;
//import java.util.TreeMap;
//import java.util.TreeSet;
//import java.util.Vector;
//
//import org.apache.logging.log4j.LogManager;
//import org.apache.logging.log4j.Logger;
//import org.openrdf.model.vocabulary.RDFS;
//import org.openrdf.repository.RepositoryException;
//import org.openrdf.rio.RDFHandlerException;
//import org.openrdf.rio.rdfxml.RDFXMLWriter;
//
//import com.hp.hpl.jena.vocabulary.OWL;
//
//import prerna.engine.api.IDatabaseEngine;
//import prerna.engine.api.IExplorable;
//import prerna.engine.api.IHeadersDataRow;
//import prerna.engine.api.IRawSelectWrapper;
//import prerna.engine.api.impl.util.AbstractOwler;
//import prerna.engine.api.impl.util.Owler;
//import prerna.engine.impl.rdf.RDFFileSesameEngine;
//import prerna.nameserver.utility.MetamodelVertex;
//import prerna.query.interpreters.IQueryInterpreter;
//import prerna.query.querystruct.AbstractQueryStruct;
//import prerna.rdf.engine.wrappers.WrapperManager;
//import prerna.util.Constants;
//import prerna.util.Utility;
//
//public class MetaHelper implements IExplorable {
//
// private static final Logger classLogger = LogManager.getLogger(MetaHelper.class);
//
// private static final String SEMOSS_URI = "http://semoss.org/ontologies/";
// private static final String CONTAINS_BASE_URI = SEMOSS_URI + Constants.DEFAULT_RELATION_CLASS + "/Contains";
// private static final String GET_BASE_URI_FROM_OWL = "SELECT DISTINCT ?entity WHERE { { ?entity } } LIMIT 1";
//
// public RDFFileSesameEngine baseDataEngine = null;
// IDatabaseEngine.DATABASE_TYPE dbType = IDatabaseEngine.DATABASE_TYPE.RDBMS;
// String engineName = null;
//
// private static final String FROM_SPARQL = "SELECT DISTINCT ?entity WHERE { "
// + "{?rel } "
// + "{?entity } "
// + "{?x ?rel ?y} "
// + "{?entity * ?x}"
// + "{<@nodeType@> * ?y}"
// + "}";
//
// private static final String TO_SPARQL = "SELECT DISTINCT ?entity WHERE { "
// + "{?rel } "
// + "{?entity } "
// + "{?x ?rel ?y} "
// + "{<@nodeType@> * ?x}"
// + "{?entity * ?y}"
// + "}";
//
//
// public MetaHelper(RDFFileSesameEngine baseDataEngine, IDatabaseEngine.DATABASE_TYPE dbType, String engineName)
// {
// this.baseDataEngine = baseDataEngine;
// if(dbType != null)
// this.dbType = dbType;
// if(engineName != null)
// this.engineName = engineName;
// else
// this.engineName = "Unassigned";
// }
//
// @Override
// public Vector getFromNeighbors(String physicalNodeType, int neighborHood) {
// // this is where this node is the from node
// //String physicalNodeType = getTransformedNodeName(Constants.DISPLAY_URI + Utility.getInstanceName(nodeType), false);
// String query = "SELECT DISTINCT ?node WHERE { BIND(<" + physicalNodeType + "> AS ?start) {?rel <" + RDFS.SUBPROPERTYOF + "> } "
// + "{?node ?rel ?start}}";
// return Utility.getVectorOfReturn(query, baseDataEngine, true);
// }
//
// public Vector getFromNeighborsWithRelation(String physicalNodeType, int neighborHood) {
// // this is where this node is the from node
// //String physicalNodeType = getTransformedNodeName(Constants.DISPLAY_URI + Utility.getInstanceName(nodeType), false);
// String query = "SELECT DISTINCT ?node ?rel WHERE { BIND(<" + physicalNodeType + "> AS ?start) {?rel <" + RDFS.SUBPROPERTYOF + "> } "
// + "{?node ?rel ?start}}";
// return Utility.getVectorArrayOfReturn(query, baseDataEngine, true);
// }
//
// // gets the to nodes
// public Vector getToNeighbors(String physicalNodeType, int neighborHood) {
// // this is where this node is the to node
// String query = "SELECT DISTINCT ?node WHERE { BIND(<" + physicalNodeType + "> AS ?start) {?rel <" + RDFS.SUBPROPERTYOF + "> } "
// + "{?start ?rel ?node}}";
// return Utility.getVectorOfReturn(query, baseDataEngine, true);
// }
//
// // gets the from and to nodes
// public Vector getNeighbors(String nodeType, int neighborHood) {
// Vector from = getFromNeighbors(nodeType, 0);
// Vector to = getToNeighbors(nodeType, 0);
// from.addAll(to);
// return from;
// }
//
// @Override
// public String getOWLDefinition() {
// StringWriter output = new StringWriter();
// try {
// baseDataEngine.getRc().export(new RDFXMLWriter(output));
// } catch (RepositoryException re) {
// classLogger.error(Constants.STACKTRACE, re);
// } catch (RDFHandlerException e) {
// classLogger.error(Constants.STACKTRACE, e);
// }
// return output.toString();
// }
//
// @Override
// public String getOwlFilePath() {
// // TODO Auto-generated method stub
// return null;
// }
//
// @Override
// public void setOwlFilePath(String owlFilePath) {
// // TODO Auto-generated method stub
//
// }
//
// @Override
// public void commitOWL() {
// // TODO Auto-generated method stub
//
// }
//
// @Override
// public void addProperty(String key, String value) {
// // TODO Auto-generated method stub
//
// }
//
// @Override
// public String getProperty(String key) {
// return null;
// }
//
// @Override
// public Vector executeInsightQuery(String sparqlQuery,
// boolean isDbQuery) {
// return null;
// }
//
// @Override
// public String getNodeBaseUri() {
// String baseUri = null;
// IRawSelectWrapper wrapper = null;
// try {
// wrapper = WrapperManager.getInstance().getRawWrapper(this.baseDataEngine, GET_BASE_URI_FROM_OWL);
// if(wrapper.hasNext()) {
// IHeadersDataRow data = wrapper.next();
// baseUri = data.getRawValues()[0] + "";
// }
// } catch (Exception e) {
// classLogger.error(Constants.STACKTRACE, e);
// } finally {
// if(wrapper != null) {
// try {
// wrapper.close();
// } catch (IOException e) {
// classLogger.error(Constants.STACKTRACE, e);
// }
// }
// }
//
// if(baseUri == null){
// baseUri = Constants.CONCEPT_URI;
// }
// return baseUri;
// }
//
// public Vector getConcepts() {
// String query = "SELECT ?concept WHERE { {?concept }"
// + " Filter(?concept != ) }";
// return Utility.getVectorOfReturn(query, baseDataEngine, true);
// }
//
// /**
// * Runs a select query on the base data engine of this engine
// */
// public Object execOntoSelectQuery(String query) {
// classLogger.debug("Running select query on base data engine of " + this.engineName);
// classLogger.debug("Query is " + query);
// return this.baseDataEngine.execQuery(query);
// }
//
// /**
// * Runs insert query on base data engine of this engine
// */
// public void ontoInsertData(String query) {
// classLogger.debug("Running insert query on base data engine of " + this.engineName);
// classLogger.debug("Query is " + query);
// baseDataEngine.insertData(query);
// }
//
// /**
// * This method runs an update query on the base data engine which contains all owl and metamodel information
// */
// public void ontoRemoveData(String query) {
// classLogger.debug("Running update query on base data engine of " + this.engineName);
// classLogger.debug("Query is " + query);
// baseDataEngine.removeData(query);
// }
//
// @Override
// public String getDataTypes(String uri) {
// String query = "SELECT DISTINCT ?TYPE WHERE { {<" + uri + "> <" + RDFS.CLASS.toString() + "> ?TYPE} }";
// IRawSelectWrapper wrapper = null;
// try {
// wrapper = WrapperManager.getInstance().getRawWrapper(baseDataEngine, query);
// if(wrapper.hasNext()) {
// return wrapper.next().getValues()[0].toString();
// }
// } catch (Exception e) {
// classLogger.error(Constants.STACKTRACE, e);
// } finally {
// if(wrapper != null) {
// try {
// wrapper.close();
// } catch (IOException e) {
// classLogger.error(Constants.STACKTRACE, e);
// }
// }
// }
//
// return null;
// }
//
// @Override
// public Map getDataTypes(String... uris) {
// StringBuilder bindBuilder = new StringBuilder();
// for(String uri : uris) {
// bindBuilder.append("(<").append(uri).append(">)");
// }
// String query = "SELECT DISTINCT ?NODE ?TYPE WHERE { {?NODE <" + RDFS.CLASS.toString() + "> ?TYPE} } ";
// String bindings = bindBuilder.toString();
// if(!bindings.isEmpty()) {
// query += "BINDINGS ?NODE {" + bindings + "}";
// }
// // results to be stored
// Map retMap = new Hashtable<>();
//
// IRawSelectWrapper wrapper = null;
// try {
// wrapper = WrapperManager.getInstance().getRawWrapper(baseDataEngine, query);
// while(wrapper.hasNext()) {
// Object[] row = wrapper.next().getValues();
// String node = row[0].toString();
// String type = row[1].toString();
// retMap.put(node, type);
// }
// } catch (Exception e) {
// classLogger.error(Constants.STACKTRACE, e);
// } finally {
// if(wrapper != null) {
// try {
// wrapper.close();
// } catch (IOException e) {
// classLogger.error(Constants.STACKTRACE, e);
// }
// }
// }
//
// return retMap;
// }
//
// @Override
// public String getAdtlDataTypes(String uri){
// String query = "SELECT DISTINCT ?ADTLTYPE WHERE { {<" + uri + "> <" + Owler.ADDITIONAL_DATATYPE_RELATION_URI + "> ?ADTLTYPE} }";
//
// IRawSelectWrapper wrapper = null;
// try {
// wrapper = WrapperManager.getInstance().getRawWrapper(baseDataEngine, query);
// if(wrapper.hasNext()) {
// IHeadersDataRow row = wrapper.next();
// String adtlType = row.getValues()[0].toString().replace("ADTLTYPE:", "");
// return adtlType;
// }
// } catch (Exception e) {
// classLogger.error(Constants.STACKTRACE, e);
// } finally {
// if(wrapper != null) {
// try {
// wrapper.close();
// } catch (IOException e) {
// classLogger.error(Constants.STACKTRACE, e);
// }
// }
// }
//
// return null;
// }
//
// @Override
// public Map getAdtlDataTypes(String... uris){
// StringBuilder bindBuilder = new StringBuilder();
// for(String uri : uris) {
// bindBuilder.append("(<").append(uri).append(">)");
// }
// String query = "SELECT DISTINCT ?NODE ?ADTLTYPE WHERE { {?NODE <" + Owler.ADDITIONAL_DATATYPE_RELATION_URI + "> ?ADTLTYPE} } ";
// String bindings = bindBuilder.toString();
// if(!bindings.isEmpty()) {
// query += "BINDINGS ?NODE {" + bindings + "}";
// }
// // results to be stored
// Map retMap = new Hashtable<>();
//
// IRawSelectWrapper wrapper = null;
// try {
// wrapper = WrapperManager.getInstance().getRawWrapper(baseDataEngine, query);
// while(wrapper.hasNext()) {
// Object[] row = wrapper.next().getValues();
// String node = row[0].toString();
// String type = row[1].toString();
// if (type != null && !type.equals("")) {
// type = type.replace("ADTLTYPE:", "");
// retMap.put(node, type);
// }
// retMap.put(node, type);
// }
// } catch (Exception e) {
// classLogger.error(Constants.STACKTRACE, e);
// } finally {
// if(wrapper != null) {
// try {
// wrapper.close();
// } catch (IOException e) {
// classLogger.error(Constants.STACKTRACE, e);
// }
// }
// }
//
// return retMap;
// }
//
// @Override
// public Map getMetamodel() {
// // create this from the query struct
// Map tableToVert = new TreeMap<>();
//
// String getSelectorsInformation = "SELECT DISTINCT ?concept ?property WHERE { "
// + "{?concept }"
// + "OPTIONAL {"
// + "{?property <" + CONTAINS_BASE_URI + "> } "
// + "{?concept <" + OWL.DatatypeProperty.toString() + "> ?property } "
// + "}" // END OPTIONAL
// + "}"; // END WHERE
//
// // execute the query and loop through and add the nodes and props
// IRawSelectWrapper wrapper = null;
// try {
// wrapper = WrapperManager.getInstance().getRawWrapper(baseDataEngine, getSelectorsInformation);
// while(wrapper.hasNext()) {
// IHeadersDataRow hrow = wrapper.next();
// Object[] raw = hrow.getRawValues();
// if(raw[0].toString().equals("http://semoss.org/ontologies/Concept")) {
// continue;
// }
//
// String concept = Utility.getInstanceName(raw[0].toString());
// Object property = raw[1];
//
// if(!tableToVert.containsKey(concept)) {
// MetamodelVertex vert = new MetamodelVertex(concept);
// tableToVert.put(concept, vert);
// }
//
// if(property != null && !property.toString().isEmpty()) {
// tableToVert.get(concept).addProperty(Utility.getClassName(property.toString()));
// }
// }
// } catch (Exception e) {
// classLogger.error(Constants.STACKTRACE, e);
// } finally {
// if(wrapper != null) {
// try {
// wrapper.close();
// } catch (IOException e) {
// classLogger.error(Constants.STACKTRACE, e);
// }
// }
// }
//
// List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy