NIHVIVO-2215 preparatory refactoring of JenaIngestController

This commit is contained in:
brianjlowe 2011-07-08 20:36:19 +00:00
parent c492a4c397
commit 53d6dc7019

View file

@ -74,7 +74,6 @@ import edu.cornell.mannlib.vitro.webapp.dao.jena.VitroJenaSDBModelMaker;
import edu.cornell.mannlib.vitro.webapp.dao.jena.VitroJenaSpecialModelMaker;
import edu.cornell.mannlib.vitro.webapp.dao.jena.event.EditEvent;
import edu.cornell.mannlib.vitro.webapp.servlet.setup.JenaDataSourceSetup;
import edu.cornell.mannlib.vitro.webapp.servlet.setup.JenaDataSourceSetupBase;
import edu.cornell.mannlib.vitro.webapp.utils.jena.JenaIngestUtils;
import edu.cornell.mannlib.vitro.webapp.utils.jena.JenaIngestWorkflowProcessor;
import edu.cornell.mannlib.vitro.webapp.utils.jena.WorkflowOntology;
@ -83,8 +82,6 @@ public class JenaIngestController extends BaseEditController {
private static final Log log = LogFactory.getLog(JenaIngestController.class);
private OntModelSpec ONT_MODEL_SPEC = OntModelSpec.OWL_MEM;
private static final String INGEST_MENU_JSP = "/jenaIngest/ingestMenu.jsp";
private static final String LIST_MODELS_JSP = "/jenaIngest/listModels.jsp";
private static final String CREATE_MODEL_JSP = "/jenaIngest/createModel.jsp";
@ -110,8 +107,9 @@ public class JenaIngestController extends BaseEditController {
private static final String RENAME_RESULT = "/jenaIngest/renameResult.jsp";
@Override
public void doGet (HttpServletRequest request, HttpServletResponse response) {
if (!isAuthorizedToDisplayPage(request, response, new Actions(new UseAdvancedDataToolsPages()))) {
public void doGet(HttpServletRequest request, HttpServletResponse response){
if (!isAuthorizedToDisplayPage(request, response, new Actions(
new UseAdvancedDataToolsPages()))) {
return;
}
@ -122,9 +120,84 @@ public class JenaIngestController extends BaseEditController {
String actionStr = vreq.getParameter("action");
actionStr = (actionStr != null) ? actionStr : "";
String modelType = vreq.getParameter("modelType");
if ("listModels".equals(actionStr)) {
if("listModels".equals(actionStr)) {
processListModelsRequest(vreq, maker, modelType);
} else if("rdbModels".equals(actionStr)){
processRDBModelsRequest(vreq, maker, modelType);
} else if("sdbModels".equals(actionStr)){
processSDBModelsRequest(vreq, maker, modelType);
} else if("createModel".equals(actionStr)) {
processCreateModelRequest(vreq, maker, modelType);
} else if("removeModel".equals(actionStr)) {
processRemoveModelRequest(vreq, maker, modelType);
} else if("loadRDFData".equals(actionStr)) {
processLoadRDFDataRequest(vreq, maker, modelType);
} else if("cleanLiterals".equals(actionStr)) {
processCleanLiteralsRequest(vreq, maker, modelType);
} else if("outputModel".equals(actionStr)) {
processOutputModelRequest(vreq, response, maker, modelType);
} else if("clearModel".equals(actionStr)) {
processClearModelRequest(vreq, maker, modelType);
} else if("setWriteLayer".equals(actionStr)) {
processSetWriteLayerRequest(vreq, maker, modelType);
} else if("attachModel".equals(actionStr)) {
processAttachModelRequest(vreq, maker, modelType);
} else if("detachModel".equals(actionStr)) {
processDetachModelRequest(vreq, maker, modelType);
} else if("renameBNodes".equals(actionStr)) {
processRenameBNodesRequest(vreq, maker, modelType);
} else if("renameBNodesURISelect".equals(actionStr)){
processRenameBNodesURISelectRequest(vreq, maker, modelType);
} else if("smushSingleModel".equals(actionStr)) {
processSmushSingleModelRequest(vreq, maker, modelType);
} else if("connectDB".equals(actionStr)) {
processConnectDBRequest(vreq, maker, modelType);
} else if("csv2rdf".equals(actionStr)) {
processCsv2rdfRequest(vreq, maker, modelType);
} else if("processStrings".equals(actionStr)) {
processProcessStringsRequest(vreq, maker, modelType);
} else if("splitPropertyValues".equals(actionStr)) {
processSplitPropertyValuesRequest(vreq, maker, modelType);
} else if("subtractModels".equals(actionStr)) {
processSubtractModelRequest(vreq, maker, modelType);
} else if("executeWorkflow".equals(actionStr)) {
processExecuteWorkflowRequest(vreq, maker, modelType);
} else if("executeSparql".equals(actionStr)) {
processExecuteSparqlRequest(vreq, maker, modelType);
} else if ("generateTBox".equals(actionStr)) {
processGenerateTBoxRequest(vreq, maker, modelType);
} else if("permanentURI".equals(actionStr)){
processPermanentURIRequest(vreq, maker, modelType);
} else if("mergeIndividuals".equals(actionStr)){
processMergeIndividualRequest(vreq, maker, modelType);
} else if("renameResource".equals(actionStr)){
processRenameResourceRequest(vreq, response, maker, modelType);
} else if("mergeResult".equals(actionStr)){
processMergeResultRequest(vreq, response, maker, modelType);
}
else {
request.setAttribute("title","Ingest Menu");
request.setAttribute("bodyJsp",INGEST_MENU_JSP);
}
RequestDispatcher rd = request.getRequestDispatcher(
Controllers.BASIC_JSP);
request.setAttribute("css",
"<link rel=\"stylesheet\" type=\"text/css\" href=\"" +
vreq.getAppBean().getThemeDir() + "css/edit.css\"/>");
try {
rd.forward(request, response);
} catch (Exception e) {
log.error(e,e);
}
}
private void processListModelsRequest(VitroRequest vreq, ModelMaker maker, String modelType ) {
String modelT = (String)getServletContext().getAttribute("modelT");
String info = (String)getServletContext().getAttribute("info");
if(modelT == null){
boolean initialSwitch = true; // SDB mode initially
if(initialSwitch){
@ -137,69 +210,94 @@ public class JenaIngestController extends BaseEditController {
}
}
if(modelT.equals("rdb")){
request.setAttribute("modelType", "rdb");
request.setAttribute("infoLine", "RDB models");
vreq.setAttribute("modelType", "rdb");
vreq.setAttribute("infoLine", "RDB models");
}
else{
request.setAttribute("modelType", "sdb");
request.setAttribute("infoLine", "SDB models");
vreq.setAttribute("modelType", "sdb");
vreq.setAttribute("infoLine", "SDB models");
}
request.setAttribute("title","Available Models");
request.setAttribute("bodyJsp",LIST_MODELS_JSP);
}else if("rdbModels".equals(actionStr)){
vreq.setAttribute("title","Available Models");
vreq.setAttribute("bodyJsp",LIST_MODELS_JSP);
}
private void processRDBModelsRequest(VitroRequest vreq, ModelMaker maker, String modelType) {
VitroJenaModelMaker vjmm = (VitroJenaModelMaker) getServletContext().getAttribute("vitroJenaModelMaker");
vreq.getSession().setAttribute("vitroJenaModelMaker", vjmm);
getServletContext().setAttribute("modelT", "rdb");
getServletContext().setAttribute("info", "RDB models");
request.setAttribute("modelType", "rdb");
request.setAttribute("infoLine", "RDB models");
request.setAttribute("title","Available Models");
request.setAttribute("bodyJsp",LIST_MODELS_JSP);
}else if("sdbModels".equals(actionStr)){
vreq.setAttribute("modelType", "rdb");
vreq.setAttribute("infoLine", "RDB models");
vreq.setAttribute("title","Available Models");
vreq.setAttribute("bodyJsp",LIST_MODELS_JSP);
}
private void processSDBModelsRequest(VitroRequest vreq, ModelMaker maker, String modelType) {
VitroJenaSDBModelMaker vsmm = (VitroJenaSDBModelMaker) getServletContext().getAttribute("vitroJenaSDBModelMaker");
vreq.getSession().setAttribute("vitroJenaModelMaker", vsmm);
getServletContext().setAttribute("modelT", "sdb");
getServletContext().setAttribute("info", "SDB models");
request.setAttribute("modelType", "sdb");
request.setAttribute("infoLine", "SDB models");
request.setAttribute("title","Available Models");
request.setAttribute("bodyJsp",LIST_MODELS_JSP);
} else if ("createModel".equals(actionStr)) {
vreq.setAttribute("modelType", "sdb");
vreq.setAttribute("infoLine", "SDB models");
vreq.setAttribute("title","Available Models");
vreq.setAttribute("bodyJsp",LIST_MODELS_JSP);
}
private void processCreateModelRequest(VitroRequest vreq, ModelMaker maker, String modelType) {
String modelName = vreq.getParameter("modelName");
if (modelName != null) {
if(modelType.equals("sdb")){
maker = (VitroJenaSDBModelMaker) getServletContext().getAttribute("vitroJenaSDBModelMaker");
request.setAttribute("modelType", "sdb");
request.setAttribute("infoLine", "SDB models");
vreq.setAttribute("modelType", "sdb");
vreq.setAttribute("infoLine", "SDB models");
}
else{
request.setAttribute("modelType", "rdb");
request.setAttribute("infoLine", "RDB models");
vreq.setAttribute("modelType", "rdb");
vreq.setAttribute("infoLine", "RDB models");
}
doCreateModel(modelName, maker);
request.setAttribute("title","Available Models");
request.setAttribute("bodyJsp",LIST_MODELS_JSP);
vreq.setAttribute("title","Available Models");
vreq.setAttribute("bodyJsp",LIST_MODELS_JSP);
} else {
request.setAttribute("modelType", modelType);
request.setAttribute("title","Create New Model");
request.setAttribute("bodyJsp",CREATE_MODEL_JSP);
vreq.setAttribute("modelType", modelType);
vreq.setAttribute("title","Create New Model");
vreq.setAttribute("bodyJsp",CREATE_MODEL_JSP);
}
} else if ("removeModel".equals(actionStr)) {
}
private void processRemoveModelRequest(VitroRequest vreq, ModelMaker maker, String modelType) {
if(modelType.equals("sdb")){
request.setAttribute("modelType", "sdb");
request.setAttribute("infoLine", "SDB models");
vreq.setAttribute("modelType", "sdb");
vreq.setAttribute("infoLine", "SDB models");
}
else{
request.setAttribute("modelType", "rdb");
request.setAttribute("infoLine", "RDB models");
vreq.setAttribute("modelType", "rdb");
vreq.setAttribute("infoLine", "RDB models");
}
String modelName = vreq.getParameter("modelName");
if (modelName!=null) {
doRemoveModel(modelName, maker);
}
request.setAttribute("title","Available Models");
request.setAttribute("bodyJsp",LIST_MODELS_JSP);
} else if ("loadRDFData".equals(actionStr)) {
vreq.setAttribute("title","Available Models");
vreq.setAttribute("bodyJsp",LIST_MODELS_JSP);
}
private void processClearModelRequest(VitroRequest vreq, ModelMaker maker, String modelType) {
if(modelType.equals("sdb")){
vreq.setAttribute("infoLine", "SDB models");
}
else{
vreq.setAttribute("infoLine", "RDB models");
}
String modelName = vreq.getParameter("modelName");
if (modelName != null) {
doClearModel(modelName,maker);
}
vreq.setAttribute("title","Available Models");
vreq.setAttribute("bodyJsp",LIST_MODELS_JSP);
}
private void processLoadRDFDataRequest(VitroRequest vreq, ModelMaker maker, String modelType) {
String docLoc = vreq.getParameter("docLoc");
String filePath = vreq.getParameter("filePath");
String modelName = vreq.getParameter("modelName");
@ -207,19 +305,18 @@ public class JenaIngestController extends BaseEditController {
String language = ( (languageParam = vreq.getParameter("language")) != null) ? languageParam : "RDF/XML";
if (docLoc!=null && modelName != null) {
doLoadRDFData(modelName,docLoc,filePath,language,maker);
request.setAttribute("title","Ingest Menu");
request.setAttribute("bodyJsp",INGEST_MENU_JSP);
vreq.setAttribute("title","Ingest Menu");
vreq.setAttribute("bodyJsp",INGEST_MENU_JSP);
} else {
request.setAttribute("title","Load RDF Data");
request.setAttribute("bodyJsp",LOAD_RDF_DATA_JSP);
vreq.setAttribute("title","Load RDF Data");
vreq.setAttribute("bodyJsp",LOAD_RDF_DATA_JSP);
}
} else if ("cleanLiterals".equals(actionStr)) {
String modelNameStr = vreq.getParameter("modelName");
Model model = getModel(modelNameStr,vreq);
doCleanLiterals(model);
request.setAttribute("title","Ingest Menu");
request.setAttribute("bodyJsp",INGEST_MENU_JSP);
} else if ("outputModel".equals(actionStr)) {
}
private void processOutputModelRequest(VitroRequest vreq,
HttpServletResponse response,
ModelMaker maker,
String modelType) {
String modelNameStr = vreq.getParameter("modelName");
Model model = getModel(modelNameStr,vreq);
model.enterCriticalSection(Lock.READ);
@ -244,74 +341,77 @@ public class JenaIngestController extends BaseEditController {
model.leaveCriticalSection();
}
return;
} else if ("clearModel".equals(actionStr)) {
if(modelType.equals("sdb")){
request.setAttribute("infoLine", "SDB models");
}
else{
request.setAttribute("infoLine", "RDB models");
private void processCleanLiteralsRequest(VitroRequest vreq, ModelMaker maker, String modelType) {
String modelNameStr = vreq.getParameter("modelName");
Model model = getModel(modelNameStr,vreq);
doCleanLiterals(model);
vreq.setAttribute("title","Ingest Menu");
vreq.setAttribute("bodyJsp",INGEST_MENU_JSP);
}
String modelName = vreq.getParameter("modelName");
if (modelName != null) {
doClearModel(modelName,maker);
private void processSetWriteLayerRequest(VitroRequest vreq, ModelMaker maker, String modelType) {
// String modelName = vreq.getParameter("modelName");
// if (modelName != null) {
// OntModel mainModel = (OntModel) getServletContext().getAttribute("jenaOntModel");
// WebappDaoFactoryJena existingDaoFactory = null;
// try {
// existingDaoFactory = (WebappDaoFactoryJena) getServletContext().getAttribute("webappDaoFactory");
// } catch (Exception e) {}
// Model writeModel = maker.getModel(modelName);
// Model dynamicUnion = ModelFactory.createUnion(writeModel,mainModel);
// OntModel ontModelForDaos = ModelFactory.createOntologyModel(ONT_MODEL_SPEC, dynamicUnion);
// WebappDaoFactory wadf = new WebappDaoFactoryJena(new SimpleOntModelSelector(ontModelForDaos), (existingDaoFactory != null) ? existingDaoFactory.getDefaultNamespace() : null, null, null);
// request.getSession().setAttribute("webappDaoFactory", wadf);
// request.getSession().setAttribute("jenaOntModel",ontModelForDaos);
// System.out.println("Setting jenaOntModel session attribute");
// Model baseModel = (OntModel) getServletContext().getAttribute("baseOntModel");
// OntModel ontModelForAssertions = ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM,ModelFactory.createUnion(writeModel,baseModel));
// request.getSession().setAttribute("assertionsWebappDaoFactory", new WebappDaoFactoryJena(new SimpleOntModelSelector(ontModelForAssertions)));
// request.getSession().setAttribute("baseOntModel", ontModelForAssertions);
// }
// request.setAttribute("title","Ingest Menu");
// request.setAttribute("bodyJsp",INGEST_MENU_JSP);
}
request.setAttribute("title","Available Models");
request.setAttribute("bodyJsp",LIST_MODELS_JSP);
}
/*else if ("setWriteLayer".equals(actionStr)) {
String modelName = vreq.getParameter("modelName");
if (modelName != null) {
OntModel mainModel = (OntModel) getServletContext().getAttribute("jenaOntModel");
WebappDaoFactoryJena existingDaoFactory = null;
try {
existingDaoFactory = (WebappDaoFactoryJena) getServletContext().getAttribute("webappDaoFactory");
} catch (Exception e) {}
Model writeModel = maker.getModel(modelName);
Model dynamicUnion = ModelFactory.createUnion(writeModel,mainModel);
OntModel ontModelForDaos = ModelFactory.createOntologyModel(ONT_MODEL_SPEC, dynamicUnion);
WebappDaoFactory wadf = new WebappDaoFactoryJena(new SimpleOntModelSelector(ontModelForDaos), (existingDaoFactory != null) ? existingDaoFactory.getDefaultNamespace() : null, null, null);
request.getSession().setAttribute("webappDaoFactory", wadf);
request.getSession().setAttribute("jenaOntModel",ontModelForDaos);
System.out.println("Setting jenaOntModel session attribute");
Model baseModel = (OntModel) getServletContext().getAttribute("baseOntModel");
OntModel ontModelForAssertions = ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM,ModelFactory.createUnion(writeModel,baseModel));
request.getSession().setAttribute("assertionsWebappDaoFactory", new WebappDaoFactoryJena(new SimpleOntModelSelector(ontModelForAssertions)));
request.getSession().setAttribute("baseOntModel", ontModelForAssertions);
}
request.setAttribute("title","Ingest Menu");
request.setAttribute("bodyJsp",INGEST_MENU_JSP);
} */
else if ("attachModel".equals(actionStr)) {
private void processAttachModelRequest(VitroRequest vreq, ModelMaker maker, String modelType) {
String modelName = vreq.getParameter("modelName");
if (modelName != null) {
doAttachModel(modelName,maker);
}
request.setAttribute("title","Available Models");
request.setAttribute("bodyJsp",LIST_MODELS_JSP);
} else if ("detachModel".equals(actionStr)) {
vreq.setAttribute("title","Available Models");
vreq.setAttribute("bodyJsp",LIST_MODELS_JSP);
}
private void processDetachModelRequest(VitroRequest vreq, ModelMaker maker, String modelType) {
String modelName = vreq.getParameter("modelName");
if (modelName != null) {
doDetachModel(modelName,maker);
}
//request.setAttribute("title","Ingest Menu");
//request.setAttribute("bodyJsp",INGEST_MENU_JSP);
request.setAttribute("title","Available Models");
request.setAttribute("bodyJsp",LIST_MODELS_JSP);
} else if ("renameBNodes".equals(actionStr)) {
vreq.setAttribute("title","Available Models");
vreq.setAttribute("bodyJsp",LIST_MODELS_JSP);
}
private void processRenameBNodesRequest(VitroRequest vreq, ModelMaker maker, String modelType) {
String[] sourceModel = vreq.getParameterValues("sourceModelName");
Model model = ModelFactory.createDefaultModel();
JenaIngestUtils utils = new JenaIngestUtils();
if(sourceModel!=null && sourceModel.length!=0){
Map<String,LinkedList<String>> propertyMap = utils.generatePropertyMap(sourceModel, model, maker);
getServletContext().setAttribute("sourceModel",sourceModel);
request.setAttribute("propertyMap", propertyMap);
request.setAttribute("title","URI Select");
request.setAttribute("bodyJsp",RENAME_BNODES_URI_SELECT_JSP);
vreq.setAttribute("propertyMap", propertyMap);
vreq.setAttribute("title","URI Select");
vreq.setAttribute("bodyJsp",RENAME_BNODES_URI_SELECT_JSP);
} else {
request.setAttribute("title","Rename Blank Nodes");
request.setAttribute("bodyJsp",RENAME_BNODES_JSP);
vreq.setAttribute("title","Rename Blank Nodes");
vreq.setAttribute("bodyJsp",RENAME_BNODES_JSP);
}
}else if("renameBNodesURISelect".equals(actionStr)){
}
private void processRenameBNodesURISelectRequest(VitroRequest vreq, ModelMaker maker, String modelType) {
String namespaceEtcStr = vreq.getParameter("namespaceEtcStr");
String pattern = vreq.getParameter("pattern");
String concatenate = vreq.getParameter("concatenate");
@ -324,25 +424,28 @@ public class JenaIngestController extends BaseEditController {
pattern = pattern.trim();
doRenameBNodes(vreq,namespaceEtcStr, true, pattern, sourceModel);
}
request.setAttribute("title", "Ingest Menu");
request.setAttribute("bodyJsp", INGEST_MENU_JSP);
vreq.setAttribute("title", "Ingest Menu");
vreq.setAttribute("bodyJsp", INGEST_MENU_JSP);
}
else{
request.setAttribute("title", "URI Select");
request.setAttribute("bodyJsp", RENAME_BNODES_URI_SELECT_JSP);
vreq.setAttribute("title", "URI Select");
vreq.setAttribute("bodyJsp", RENAME_BNODES_URI_SELECT_JSP);
}
}
}else if ("smushSingleModel".equals(actionStr)) {
private void processSmushSingleModelRequest(VitroRequest vreq, ModelMaker maker, String modelType) {
String propertyURIStr = vreq.getParameter("propertyURI");
if (propertyURIStr != null) {
doSmushSingleModel(vreq);
request.setAttribute("title","Ingest Menu");
request.setAttribute("bodyJsp",INGEST_MENU_JSP);
vreq.setAttribute("title","Ingest Menu");
vreq.setAttribute("bodyJsp",INGEST_MENU_JSP);
} else {
request.setAttribute("title","Smush Resources");
request.setAttribute("bodyJsp",SMUSH_JSP);
vreq.setAttribute("title","Smush Resources");
vreq.setAttribute("bodyJsp",SMUSH_JSP);
}
} else if ("connectDB".equals(actionStr)) {
}
private void processConnectDBRequest(VitroRequest vreq, ModelMaker maker, String modelType) {
String jdbcUrl = vreq.getParameter("jdbcUrl");
String tripleStore = vreq.getParameter("tripleStore");
if (jdbcUrl != null) {
@ -354,76 +457,88 @@ public class JenaIngestController extends BaseEditController {
if ("SDB".equals(tripleStore)) {
getServletContext().setAttribute("modelT", "sdb");
getServletContext().setAttribute("info", "SDB models");
request.setAttribute("modelType", "sdb");
request.setAttribute("infoLine", "SDB models");
vreq.setAttribute("modelType", "sdb");
vreq.setAttribute("infoLine", "SDB models");
} else {
getServletContext().setAttribute("modelT", "rdb");
getServletContext().setAttribute("info", "RDB models");
request.setAttribute("modelType", "rdb");
request.setAttribute("infoLine", "RDB models");
vreq.setAttribute("modelType", "rdb");
vreq.setAttribute("infoLine", "RDB models");
}
request.setAttribute("title","Ingest Menu");
request.setAttribute("bodyJsp",INGEST_MENU_JSP);
vreq.setAttribute("title","Ingest Menu");
vreq.setAttribute("bodyJsp",INGEST_MENU_JSP);
} else {
List<String> dbTypes = DatabaseType.allNames();
Collections.sort(dbTypes, new CollationSort());
request.setAttribute("dbTypes", dbTypes);
request.setAttribute("title", "Connect Jena Database");
request.setAttribute("bodyJsp",CONNECT_DB_JSP);
vreq.setAttribute("dbTypes", dbTypes);
vreq.setAttribute("title", "Connect Jena Database");
vreq.setAttribute("bodyJsp",CONNECT_DB_JSP);
}
} else if ("csv2rdf".equals(actionStr)) {
}
private void processCsv2rdfRequest(VitroRequest vreq, ModelMaker maker, String modelType) {
String csvUrl = vreq.getParameter("csvUrl");
if (csvUrl != null) {
/*doExecuteCsv2Rdf(vreq);*/
request.setAttribute("title","IngestMenu");
request.setAttribute("bodyJsp", INGEST_MENU_JSP);
vreq.setAttribute("title","IngestMenu");
vreq.setAttribute("bodyJsp", INGEST_MENU_JSP);
} else {
request.setAttribute("title","Convert CSV to RDF");
request.setAttribute("bodyJsp",CSV2RDF_JSP);
vreq.setAttribute("title","Convert CSV to RDF");
vreq.setAttribute("bodyJsp",CSV2RDF_JSP);
}
}else if ("processStrings".equals(actionStr)) {
}
private void processProcessStringsRequest(VitroRequest vreq, ModelMaker maker, String modelType) {
String className = vreq.getParameter("className");
if (className != null) {
doProcessStrings(vreq);
request.setAttribute("title","IngestMenu");
request.setAttribute("bodyJsp", INGEST_MENU_JSP);
vreq.setAttribute("title","IngestMenu");
vreq.setAttribute("bodyJsp", INGEST_MENU_JSP);
} else {
request.setAttribute("title","Process Strings");
request.setAttribute("bodyJsp",PROCESS_STRINGS_JSP);
vreq.setAttribute("title","Process Strings");
vreq.setAttribute("bodyJsp",PROCESS_STRINGS_JSP);
}
} else if ("splitPropertyValues".equals(actionStr)) {
}
private void processSplitPropertyValuesRequest(VitroRequest vreq, ModelMaker maker, String modelType) {
String splitRegex = vreq.getParameter("splitRegex");
if (splitRegex != null) {
doSplitPropertyValues(vreq);
request.setAttribute("title","IngestMenu");
request.setAttribute("bodyJsp", INGEST_MENU_JSP);
vreq.setAttribute("title","IngestMenu");
vreq.setAttribute("bodyJsp", INGEST_MENU_JSP);
} else {
request.setAttribute("title","Split PropertyValues");
request.setAttribute("bodyJsp",SPLIT_PROPERTY_VALUES_JSP);
vreq.setAttribute("title","Split PropertyValues");
vreq.setAttribute("bodyJsp",SPLIT_PROPERTY_VALUES_JSP);
}
} else if ("subtractModels".equals(actionStr)) {
}
private void processSubtractModelRequest(VitroRequest vreq, ModelMaker maker, String modelType) {
String modela = vreq.getParameter("modela");
if (modela != null) {
doSubtractModels(vreq);
request.setAttribute("title","IngestMenu");
request.setAttribute("bodyJsp", INGEST_MENU_JSP);
vreq.setAttribute("title","IngestMenu");
vreq.setAttribute("bodyJsp", INGEST_MENU_JSP);
} else {
request.setAttribute("title", "Subtract Models");
request.setAttribute("bodyJsp",SUBTRACT_MODELS_JSP);
vreq.setAttribute("title", "Subtract Models");
vreq.setAttribute("bodyJsp",SUBTRACT_MODELS_JSP);
}
} else if ("executeWorkflow".equals(actionStr)) {
}
private void processExecuteWorkflowRequest(VitroRequest vreq, ModelMaker maker, String modelType) {
String workflowURIStr = vreq.getParameter("workflowURI");
String workflowStepURIStr = vreq.getParameter("workflowStepURI");
if (workflowURIStr != null && workflowStepURIStr != null) {
doExecuteWorkflow(vreq);
request.setAttribute("title","IngestMenu");
request.setAttribute("bodyJsp", INGEST_MENU_JSP);
vreq.setAttribute("title","IngestMenu");
vreq.setAttribute("bodyJsp", INGEST_MENU_JSP);
} else if (workflowURIStr != null) {
// Select the workflow step at which to start
OntModel jenaOntModel = (OntModel) getModel("vitro:jenaOntModel",vreq);
request.setAttribute("workflowSteps", new JenaIngestWorkflowProcessor(jenaOntModel.getIndividual(workflowURIStr),getVitroJenaModelMaker(vreq)).getWorkflowSteps(null));
request.setAttribute("title", "Choose Workflow Step");
request.setAttribute("bodyJsp", WORKFLOW_STEP_JSP);
vreq.setAttribute("workflowSteps", new JenaIngestWorkflowProcessor(
jenaOntModel.getIndividual(workflowURIStr),
getVitroJenaModelMaker(vreq)).getWorkflowSteps(null));
vreq.setAttribute("title", "Choose Workflow Step");
vreq.setAttribute("bodyJsp", WORKFLOW_STEP_JSP);
} else {
OntModel jenaOntModel = (OntModel) getServletContext().getAttribute("jenaOntModel");
jenaOntModel.enterCriticalSection(Lock.READ);
@ -434,11 +549,13 @@ public class JenaIngestController extends BaseEditController {
} finally {
jenaOntModel.leaveCriticalSection();
}
request.setAttribute("workflows",savedQueryList);
request.setAttribute("title", "Execute Workflow");
request.setAttribute("bodyJsp", EXECUTE_WORKFLOW_JSP);
vreq.setAttribute("workflows",savedQueryList);
vreq.setAttribute("title", "Execute Workflow");
vreq.setAttribute("bodyJsp", EXECUTE_WORKFLOW_JSP);
}
} else if ("executeSparql".equals(actionStr)) {
}
private void processExecuteSparqlRequest(VitroRequest vreq, ModelMaker maker, String modelType) {
String sparqlQueryStr = vreq.getParameter("sparqlQueryStr");
OntModel jenaOntModel = (OntModel) getServletContext().getAttribute("jenaOntModel");
jenaOntModel.enterCriticalSection(Lock.READ);
@ -453,34 +570,30 @@ public class JenaIngestController extends BaseEditController {
OntologyDao daoObj = vreq.getFullWebappDaoFactory().getOntologyDao();
List ontologiesObj = daoObj.getAllOntologies();
ArrayList prefixList = new ArrayList();
if(ontologiesObj !=null && ontologiesObj.size()>0){
Iterator ontItr = ontologiesObj.iterator();
while(ontItr.hasNext()){
Ontology ont = (Ontology) ontItr.next();
prefixList.add(ont.getPrefix() == null ? "(not yet specified)" : ont.getPrefix());
prefixList.add(ont.getURI() == null ? "" : ont.getURI());
}
}
else{
prefixList.add("<strong>" + "No Ontologies added" + "</strong>");
prefixList.add("<strong>" + "Load Ontologies" + "</strong>");
}
request.setAttribute("prefixList", prefixList);
vreq.setAttribute("prefixList", prefixList);
/*complete*/
if (sparqlQueryStr != null) {
String validationMessage = "";
if (request.getParameterValues("sourceModelName") == null) {
if (vreq.getParameterValues("sourceModelName") == null) {
validationMessage += "<p>Please select one or more source models.</p>";
}
if (request.getParameter("destinationModelName") == null) {
if (vreq.getParameter("destinationModelName") == null) {
validationMessage += "<p>Please select a destination model</p>";
}
if (validationMessage.length() > 0) {
request.setAttribute("validationMessage", validationMessage);
vreq.setAttribute("validationMessage", validationMessage);
} else {
long constructedStmtCount = 0;
try {
@ -490,47 +603,49 @@ public class JenaIngestController extends BaseEditController {
if (qpe.getMessage() != null) {
errorMsg += "<p>" + qpe.getMessage() + "</p>";
}
request.setAttribute("errorMsg", errorMsg);
vreq.setAttribute("errorMsg", errorMsg);
} catch (InconsistentOntologyException ioe) {
String errorMsg = "<p>Inconsistent source ontology:</p>";
if (ioe.getMessage() != null) {
errorMsg += "<p>" + ioe.getMessage() + "</p>";
}
request.setAttribute("errorMsg", errorMsg);
vreq.setAttribute("errorMsg", errorMsg);
}
request.setAttribute("constructedStmtCount", constructedStmtCount);
vreq.setAttribute("constructedStmtCount", constructedStmtCount);
}
request.setAttribute("savedQueries",savedQueryList);
request.setAttribute("title","SPARQL CONSTRUCT result");
request.setAttribute("bodyJsp",EXECUTE_SPARQL_JSP);
vreq.setAttribute("savedQueries",savedQueryList);
vreq.setAttribute("title","SPARQL CONSTRUCT result");
vreq.setAttribute("bodyJsp",EXECUTE_SPARQL_JSP);
} else {
request.setAttribute("savedQueries",savedQueryList);
request.setAttribute("title","Execute SPARQL Construct");
request.setAttribute("bodyJsp",EXECUTE_SPARQL_JSP);
vreq.setAttribute("savedQueries",savedQueryList);
vreq.setAttribute("title","Execute SPARQL Construct");
vreq.setAttribute("bodyJsp",EXECUTE_SPARQL_JSP);
}
} else if ("generateTBox".equals(actionStr)) {
}
private void processGenerateTBoxRequest(VitroRequest vreq, ModelMaker maker, String modelType) {
String testParam = vreq.getParameter("sourceModelName");
if (testParam != null) {
doGenerateTBox(vreq);
request.setAttribute("title","Ingest Menu");
request.setAttribute("bodyJsp",INGEST_MENU_JSP);
vreq.setAttribute("title","Ingest Menu");
vreq.setAttribute("bodyJsp",INGEST_MENU_JSP);
} else {
request.setAttribute("title","Generate TBox from Assertions Data");
request.setAttribute("bodyJsp",GENERATE_TBOX_JSP);
vreq.setAttribute("title","Generate TBox from Assertions Data");
vreq.setAttribute("bodyJsp",GENERATE_TBOX_JSP);
}
}else if("permanentURI".equals(actionStr)){
}
private void processPermanentURIRequest(VitroRequest vreq, ModelMaker maker, String modelType) {
String modelName = vreq.getParameter("modelName");
String oldModel = vreq.getParameter("oldModel");
String newModel = vreq.getParameter("newModel");
String oldNamespace = vreq.getParameter("oldNamespace");
String newNamespace = vreq.getParameter("newNamespace");
String dNamespace = vreq.getParameter("defaultNamespace");
if(modelName!=null){
Model m = maker.getModel(modelName);
ArrayList namespaceList = new ArrayList();
ResIterator resItr = m.listResourcesWithProperty((Property)null);
if(resItr!=null){
while(resItr.hasNext()){
String namespace = resItr.nextResource().getNameSpace();
@ -538,27 +653,24 @@ public class JenaIngestController extends BaseEditController {
namespaceList.add(namespace);
}
}
}
else {
} else {
namespaceList.add("no resources present");
}
String defaultNamespace = vreq.getFullWebappDaoFactory().getDefaultNamespace();
request.setAttribute("modelName", modelName);
request.setAttribute("defaultNamespace", defaultNamespace);
request.setAttribute("namespaceList", namespaceList);
request.setAttribute("title","Permanent URI");
request.setAttribute("bodyJsp",PERMANENT_URI);
}
else if(oldModel!=null){
vreq.setAttribute("modelName", modelName);
vreq.setAttribute("defaultNamespace", defaultNamespace);
vreq.setAttribute("namespaceList", namespaceList);
vreq.setAttribute("title","Permanent URI");
vreq.setAttribute("bodyJsp",PERMANENT_URI);
} else if(oldModel != null) {
JenaIngestUtils utils = new JenaIngestUtils();
utils.doPermanentURI(oldModel,newModel,oldNamespace,newNamespace,dNamespace,maker,vreq);
request.setAttribute("title","Ingest Menu");
request.setAttribute("bodyJsp",INGEST_MENU_JSP);
vreq.setAttribute("title","Ingest Menu");
vreq.setAttribute("bodyJsp",INGEST_MENU_JSP);
}
}
}
else if("mergeIndividuals".equals(actionStr)){
private void processMergeIndividualRequest(VitroRequest vreq, ModelMaker maker, String modelType) {
String uri1 = vreq.getParameter("uri1");
String uri2 = vreq.getParameter("uri2");
if(uri1!=null){
@ -569,40 +681,44 @@ public class JenaIngestController extends BaseEditController {
OntModel infOntModel = (OntModel)
getServletContext().getAttribute(JenaBaseDao.INFERENCE_ONT_MODEL_ATTRIBUTE_NAME);
String result = utils.doMerge(uri1,uri2,baseOntModel,ontModel,infOntModel);
// request.getSession().setAttribute("leftoverModel", utils.getLeftOverModel());
// vreq.getSession().setAttribute("leftoverModel", utils.getLeftOverModel());
getServletContext().setAttribute("leftoverModel", utils.getLeftOverModel());
request.setAttribute("result",result);
request.setAttribute("title","Merge Individuals");
request.setAttribute("bodyJsp",MERGE_RESULT);
vreq.setAttribute("result",result);
vreq.setAttribute("title","Merge Individuals");
vreq.setAttribute("bodyJsp",MERGE_RESULT);
}
else{
request.setAttribute("title","Merge Individuals");
request.setAttribute("bodyJsp",MERGE_INDIVIDUALS);
vreq.setAttribute("title","Merge Individuals");
vreq.setAttribute("bodyJsp",MERGE_INDIVIDUALS);
}
}
}
else if("renameResource".equals(actionStr)){
private void processRenameResourceRequest(VitroRequest vreq,
HttpServletResponse response,
ModelMaker maker,
String modelType) {
String uri1 = vreq.getParameter("uri1");
String uri2 = vreq.getParameter("uri2");
if(uri1!=null){
String result = doRename(uri1,uri2,response);
request.setAttribute("result",result);
request.setAttribute("title","Rename Resources");
request.setAttribute("bodyJsp",RENAME_RESULT);
vreq.setAttribute("result",result);
vreq.setAttribute("title","Rename Resources");
vreq.setAttribute("bodyJsp",RENAME_RESULT);
}
else{
request.setAttribute("title","Rename Resource");
request.setAttribute("bodyJsp",RENAME_RESOURCE);
vreq.setAttribute("title","Rename Resource");
vreq.setAttribute("bodyJsp",RENAME_RESOURCE);
}
}
}
else if("mergeResult".equals(actionStr)){
private void processMergeResultRequest(VitroRequest vreq,
HttpServletResponse response,
ModelMaker maker,
String modelType) {
//Model lmodel = (Model)request.getSession().getAttribute("leftoverModel");
Model lmodel = (Model)getServletContext().getAttribute("leftoverModel");
response.setContentType("RDF/XML-ABBREV");
try{
try {
OutputStream outStream = response.getOutputStream();
outStream.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>".getBytes());
lmodel.write( outStream,"RDF/XML-ABBREV");
@ -614,24 +730,6 @@ public class JenaIngestController extends BaseEditController {
}
}
else {
request.setAttribute("title","Ingest Menu");
request.setAttribute("bodyJsp",INGEST_MENU_JSP);
}
RequestDispatcher rd = request.getRequestDispatcher(Controllers.BASIC_JSP);
request.setAttribute("css", "<link rel=\"stylesheet\" type=\"text/css\" href=\""+vreq.getAppBean().getThemeDir()+"css/edit.css\"/>");
try {
rd.forward(request, response);
} catch (Exception e) {
System.out.println(this.getClass().getName()+" could not forward to view.");
System.out.println(e.getMessage());
System.out.println(e.getStackTrace());
}
}
private ModelMaker getVitroJenaModelMaker(HttpServletRequest request) {
ModelMaker myVjmm = (ModelMaker) request.getSession().getAttribute("vitroJenaModelMaker");
myVjmm = (myVjmm == null) ? (ModelMaker) getServletContext().getAttribute("vitroJenaModelMaker") : myVjmm;
@ -921,76 +1019,8 @@ public class JenaIngestController extends BaseEditController {
String driverName = JDBC.getDriver(dbType);
JDBC.loadDriver(driverName);
return driverName;
// if (DatabaseType.MySQL.equals(dbType)) {
// JDBC.loadDriverMySQL();
// } else if (DatabaseType.DB2.equals(dbType)) {
// JDBC.loadDriverDB2();
// } else if (DatabaseType.Derby.equals(dbType)) {
// JDBC.loadDriverDerby();
// } else if (DatabaseType.H2.equals(dbType)) {
// JDBC.loadDriverH2();
// } else if (DatabaseType.HSQLDB.equals(dbType)) {
// JDBC.loadDriverHSQL();
// } else if (DatabaseType.Oracle.equals(dbType)) {
// JDBC.loadDriverOracle();
// } else if (DatabaseType.PostgreSQL.equals(dbType)) {
// JDBC.loadDriverPGSQL();
// } else if (DatabaseType.SQLServer.equals(dbType)) {
// JDBC.loadDriverSQLServer();
// }
}
/*public void doExecuteCsv2Rdf(VitroRequest vreq) {
char[] quoteChars = {'"'};
String namespace = vreq.getParameter("namespace");
String tboxNamespace = vreq.getParameter("tboxNamespace");
String typeName = vreq.getParameter("typeName");
String csvUrl = vreq.getParameter("csvUrl");
Model destination = null;
String destinationModelNameStr = vreq.getParameter("destinationModelName");
if (destinationModelNameStr != null && destinationModelNameStr.length()>0) {
destination = getModel(destinationModelNameStr, vreq);
}
Model tboxDestination = null;
String tboxDestinationModelNameStr = vreq.getParameter("tboxDestinationModelName");
if (tboxDestinationModelNameStr != null && tboxDestinationModelNameStr.length()>0) {
tboxDestination = getModel(tboxDestinationModelNameStr, vreq);
}
char separatorChar = ',';
if ("tab".equalsIgnoreCase(vreq.getParameter("separatorChar"))) {
separatorChar = '\t';
}
Csv2Rdf c2r = new Csv2Rdf(separatorChar, quoteChars,namespace,tboxNamespace,typeName);
InputStream is = null;
try {
is = new URL(csvUrl).openStream();
} catch (IOException e) {
System.out.println("IOException opening URL "+csvUrl);
return;
}
Model[] models = null;
try {
models = c2r.convertToRdf(is,vreq,destination);
} catch (IOException e) {
System.out.println("IOException converting "+csvUrl+" to RDF");
}
if (destination != null) {
destination.add(models[0]);
}
if (tboxDestination != null) {
tboxDestination.add(models[1]);
}
}*/
public void doSubtractModels(VitroRequest vreq) {
String modela = vreq.getParameter("modela");
String modelb = vreq.getParameter("modelb");
@ -1161,13 +1191,12 @@ public class JenaIngestController extends BaseEditController {
String workflowURI = vreq.getParameter("workflowURI");
String workflowStepURI = vreq.getParameter("workflowStepURI");
OntModel jenaOntModel = (OntModel) getModel("vitro:jenaOntModel",vreq);
new JenaIngestWorkflowProcessor(jenaOntModel.getIndividual(workflowURI),getVitroJenaModelMaker(vreq)).run(jenaOntModel.getIndividual(workflowStepURI));
new JenaIngestWorkflowProcessor(
jenaOntModel.getIndividual(workflowURI),getVitroJenaModelMaker(
vreq)).run(jenaOntModel.getIndividual(workflowStepURI));
}
private String doRename(String oldNamespace,String newNamespace,HttpServletResponse response){
private String doRename(String oldNamespace,String newNamespace,HttpServletResponse response){
String userURI = null;
String uri = null;
String result = null;
@ -1182,7 +1211,6 @@ private String doRename(String oldNamespace,String newNamespace,HttpServletRespo
WebappDaoFactory wdf =
(WebappDaoFactory)getServletContext().getAttribute("webappDaoFactory");
List<String> urisToChange = new LinkedList<String>();
ontModel.enterCriticalSection(Lock.READ);
try {
Iterator<Individual> indIter = ontModel.listIndividuals();
@ -1197,15 +1225,13 @@ private String doRename(String oldNamespace,String newNamespace,HttpServletRespo
}
}
}
}finally {
} finally {
ontModel.leaveCriticalSection();
}
if(!namespacePresent){
result = "0 resource renamed";
return result;
}
for( String oldURIStr : urisToChange){
baseOntModel.enterCriticalSection(Lock.WRITE);
ontModel.enterCriticalSection(Lock.WRITE);
@ -1221,15 +1247,15 @@ private String doRename(String oldNamespace,String newNamespace,HttpServletRespo
Matcher matcher = p.matcher(candidateString);
newURIStr = matcher.replaceFirst(newNamespace);
long time3 = System.currentTimeMillis();
System.out.println("time to get new uri: " + Long.toString(time3 - time2)
);
System.out.println("Renaming "+ oldURIStr + " to " + newURIStr);
log.info("time to get new uri: " +
Long.toString(time3 - time2));
log.info("Renaming "+ oldURIStr + " to " + newURIStr);
ResourceUtils.renameResource(res,newURIStr);
ResourceUtils.renameResource(infRes,newURIStr);
long time4 = System.currentTimeMillis();
System.out.println(" time to rename : " + Long.toString( time4 - time3));
System.out.println(" time for one resource: " + Long.toString( time4 -
time1));
log.info(" time to rename : " + Long.toString( time4 - time3));
log.info(" time for one resource: " +
Long.toString( time4 -time1));
} finally {
infOntModel.leaveCriticalSection();
ontModel.leaveCriticalSection();
@ -1243,7 +1269,6 @@ private String doRename(String oldNamespace,String newNamespace,HttpServletRespo
}
counter++;
}
/*baseOntModel.enterCriticalSection(Lock.WRITE);
ontModel.enterCriticalSection(Lock.WRITE);
try{
@ -1255,7 +1280,6 @@ private String doRename(String oldNamespace,String newNamespace,HttpServletRespo
}*/
result = counter.toString() + " resources renamed";
return result;
}
private class CollationSort implements Comparator<String> {