fixed error in display model migration - was referencing pageList instead of pageListPage as the resource to be ported over from the new menu.n3
This commit is contained in:
parent
473680c3d2
commit
c25e0af384
1 changed files with 124 additions and 8 deletions
|
@ -168,7 +168,7 @@ public class UpdateKnowledgeBase implements ServletContextListener {
|
||||||
//Multiple changes from 1.4 to 1.5 will occur
|
//Multiple changes from 1.4 to 1.5 will occur
|
||||||
//update migration model
|
//update migration model
|
||||||
public void migrateDisplayModel(UpdateSettings settings) throws Exception {
|
public void migrateDisplayModel(UpdateSettings settings) throws Exception {
|
||||||
|
log.debug("Beginning migration of display model");
|
||||||
OntModel displayModel = settings.getDisplayModel();
|
OntModel displayModel = settings.getDisplayModel();
|
||||||
Model addStatements = ModelFactory.createDefaultModel();
|
Model addStatements = ModelFactory.createDefaultModel();
|
||||||
Model removeStatements = ModelFactory.createDefaultModel();
|
Model removeStatements = ModelFactory.createDefaultModel();
|
||||||
|
@ -189,12 +189,12 @@ public class UpdateKnowledgeBase implements ServletContextListener {
|
||||||
try {
|
try {
|
||||||
if(log.isDebugEnabled()) {
|
if(log.isDebugEnabled()) {
|
||||||
StringWriter sw = new StringWriter();
|
StringWriter sw = new StringWriter();
|
||||||
addStatements.write(sw);
|
addStatements.write(sw,"N3");
|
||||||
log.debug("Statements to be added are: ");
|
log.debug("Statements to be added are: ");
|
||||||
log.debug(sw.toString());
|
log.debug(sw.toString());
|
||||||
sw.close();
|
sw.close();
|
||||||
sw = new StringWriter();
|
sw = new StringWriter();
|
||||||
removeStatements.write(sw);
|
removeStatements.write(sw, "N3");
|
||||||
log.debug("Statements to be removed are: ");
|
log.debug("Statements to be removed are: ");
|
||||||
log.debug(sw.toString());
|
log.debug(sw.toString());
|
||||||
sw.close();
|
sw.close();
|
||||||
|
@ -220,11 +220,32 @@ public class UpdateKnowledgeBase implements ServletContextListener {
|
||||||
removeStatements.add(oldDisplayModelDisplayMetadataModel);
|
removeStatements.add(oldDisplayModelDisplayMetadataModel);
|
||||||
//the old startup folder only contained by oldVivoListView
|
//the old startup folder only contained by oldVivoListView
|
||||||
removeStatements.add(oldVivoListView);
|
removeStatements.add(oldVivoListView);
|
||||||
|
StringWriter sw = new StringWriter();
|
||||||
|
|
||||||
|
try {
|
||||||
|
log.debug("Adding old display tbox model, display metadata model, and oldVivoListView to remove statements. Remove statements now include:");
|
||||||
|
removeStatements.write(sw, "N3");
|
||||||
|
log.debug(sw.toString());
|
||||||
|
sw.close();
|
||||||
|
}
|
||||||
|
catch(Exception ex) {
|
||||||
|
log.error("Exception occurred", ex);
|
||||||
|
}
|
||||||
//Add statements from new tbox and display metadata
|
//Add statements from new tbox and display metadata
|
||||||
addStatements.add(newDisplayModelTboxModel);
|
addStatements.add(newDisplayModelTboxModel);
|
||||||
addStatements.add(newDisplayModelDisplayMetadataModel);
|
addStatements.add(newDisplayModelDisplayMetadataModel);
|
||||||
//this should include the list view in addition to other files
|
//this should include the list view in addition to other files
|
||||||
addStatements.add(loadedAtStartup);
|
addStatements.add(loadedAtStartup);
|
||||||
|
try {
|
||||||
|
sw = new StringWriter();
|
||||||
|
log.debug("Adding new display tbox model, display metadata model, and loaded at startup to add statements. Add statements now include:");
|
||||||
|
addStatements.write(sw, "N3");
|
||||||
|
log.debug(sw.toString());
|
||||||
|
sw.close();
|
||||||
|
} catch(Exception ex) {
|
||||||
|
log.error("Exception occurred in adding new display model tbox/metadata info to add statements ", ex);
|
||||||
|
}
|
||||||
|
log.debug("Adding new display tbox model, display metadata model, and all models loaded at startup");
|
||||||
}
|
}
|
||||||
|
|
||||||
//update statements for data getter classes
|
//update statements for data getter classes
|
||||||
|
@ -251,12 +272,28 @@ public class UpdateKnowledgeBase implements ServletContextListener {
|
||||||
private void updateAddRemoveDataGetterStatements(OntModel displayModel,
|
private void updateAddRemoveDataGetterStatements(OntModel displayModel,
|
||||||
Model removeStatements, Model addStatements,
|
Model removeStatements, Model addStatements,
|
||||||
Resource oldType, Resource newType) {
|
Resource oldType, Resource newType) {
|
||||||
|
log.debug("Old type: " + oldType.getURI() + " - newType: " + newType.getURI());
|
||||||
removeStatements.add(displayModel.listStatements(null, RDF.type, oldType));
|
removeStatements.add(displayModel.listStatements(null, RDF.type, oldType));
|
||||||
StmtIterator oldStatements = displayModel.listStatements(null, RDF.type, oldType);
|
StmtIterator oldStatements = displayModel.listStatements(null, RDF.type, oldType);
|
||||||
while(oldStatements.hasNext()) {
|
while(oldStatements.hasNext()) {
|
||||||
Statement stmt = oldStatements.nextStatement();
|
Statement stmt = oldStatements.nextStatement();
|
||||||
addStatements.add(stmt.getSubject(), RDF.type, newType);
|
addStatements.add(stmt.getSubject(), RDF.type, newType);
|
||||||
}
|
}
|
||||||
|
//Print out remove and add statements here
|
||||||
|
StringWriter sw = new StringWriter();
|
||||||
|
try {
|
||||||
|
log.debug("Adding statements with old data getter types to remove statements, remove statements is now");
|
||||||
|
removeStatements.write(sw,"N3");
|
||||||
|
log.debug(sw.toString());
|
||||||
|
sw.close();
|
||||||
|
sw = new StringWriter();
|
||||||
|
log.debug("Adding statements with new data getter types to add statements, add statements is now");
|
||||||
|
addStatements.write(sw, "N3");
|
||||||
|
log.debug(sw.toString());
|
||||||
|
sw.close();
|
||||||
|
} catch(Exception ex) {
|
||||||
|
log.error("Error occurred in writing out remove and statements for data getter types", ex);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//add cannotDeleteFlag to display model
|
//add cannotDeleteFlag to display model
|
||||||
|
@ -274,21 +311,75 @@ public class UpdateKnowledgeBase implements ServletContextListener {
|
||||||
removeStatements.add(peoplePage, DisplayVocabulary.REQUIRES_BODY_TEMPLATE,
|
removeStatements.add(peoplePage, DisplayVocabulary.REQUIRES_BODY_TEMPLATE,
|
||||||
ResourceFactory.createPlainLiteral("menupage--classgroup-people.ftl"));
|
ResourceFactory.createPlainLiteral("menupage--classgroup-people.ftl"));
|
||||||
}
|
}
|
||||||
|
log.debug("Will remove body template from people page so added that to remove statements ");
|
||||||
}
|
}
|
||||||
|
|
||||||
//add page list sparql query
|
//add page list sparql query
|
||||||
private void addPageListDisplayModel(OntModel displayModel, Model addStatements, Model removeStatements, UpdateSettings settings) {
|
private void addPageListDisplayModel(OntModel displayModel, Model addStatements, Model removeStatements, UpdateSettings settings) {
|
||||||
OntModel newDisplayModel = settings.getNewDisplayModelFromFile();
|
OntModel newDisplayModel = settings.getNewDisplayModelFromFile();
|
||||||
//Get all statements about pageList and pageListData
|
//Get all statements about pageListPage and pageListData
|
||||||
Resource pageList = newDisplayModel.getResource(DisplayVocabulary.DISPLAY_NS + "pageList");
|
Resource pageList = newDisplayModel.getResource(DisplayVocabulary.DISPLAY_NS + "pageListPage");
|
||||||
Resource pageListData = newDisplayModel.getResource(DisplayVocabulary.DISPLAY_NS + "pageListData");
|
Resource pageListData = newDisplayModel.getResource(DisplayVocabulary.DISPLAY_NS + "pageListData");
|
||||||
|
|
||||||
addStatements.add(newDisplayModel.listStatements(pageList, null, (RDFNode) null));
|
addStatements.add(newDisplayModel.listStatements(pageList, null, (RDFNode) null));
|
||||||
addStatements.add(newDisplayModel.listStatements(pageListData, null, (RDFNode) null));
|
addStatements.add(newDisplayModel.listStatements(pageListData, null, (RDFNode) null));
|
||||||
|
StringWriter sw = new StringWriter();
|
||||||
|
try {
|
||||||
|
if(pageList != null) {
|
||||||
|
log.debug("Page list uri is " + pageList.getURI());
|
||||||
|
} else {
|
||||||
|
log.debug("Page list uri is null for some reason");
|
||||||
|
}
|
||||||
|
log.debug("New Display model from file is ");
|
||||||
|
newDisplayModel.write(sw, "N3");
|
||||||
|
log.debug(sw.toString());
|
||||||
|
sw.close();
|
||||||
|
sw = new StringWriter();
|
||||||
|
log.debug("Added statements now include ");
|
||||||
|
addStatements.write(sw, "N3");
|
||||||
|
log.debug(sw.toString());
|
||||||
|
sw.close();
|
||||||
|
}catch(Exception ex) {
|
||||||
|
log.error("Exception occurred in writing out new display model", ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
log.debug("Checking: AFTER adding pageList resource, what do we have for pageList page");
|
||||||
|
Resource testResource = ResourceFactory.createResource(DisplayVocabulary.DISPLAY_NS + "pageListPage");
|
||||||
|
StmtIterator testIt = addStatements.listStatements(testResource, null, (RDFNode) null);
|
||||||
|
if(!testIt.hasNext()) {
|
||||||
|
log.debug("Add statements does not have the page list page resource " + testResource.getURI());
|
||||||
|
}
|
||||||
|
|
||||||
|
while(testIt.hasNext()) {
|
||||||
|
log.debug("Statement for page list resource: " + testIt.nextStatement().toString());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//update any new labels
|
//update any new labels
|
||||||
private void updateDataGetterLabels(OntModel displayModel, Model addStatements, Model removeStatements, UpdateSettings settings) {
|
private void updateDataGetterLabels(OntModel displayModel, Model addStatements, Model removeStatements, UpdateSettings settings) {
|
||||||
|
log.debug("Checking: BEFORE adding any statements, what do we have for pageList page");
|
||||||
|
Resource testResource = ResourceFactory.createResource(DisplayVocabulary.DISPLAY_NS + "pageListPage");
|
||||||
|
StmtIterator testIt = addStatements.listStatements(testResource, null, (RDFNode) null);
|
||||||
|
if(!testIt.hasNext()) {
|
||||||
|
log.debug("Add statements does not have the page list page resource " + testResource.getURI());
|
||||||
|
}
|
||||||
|
|
||||||
|
while(testIt.hasNext()) {
|
||||||
|
log.debug("Statement for page list resource: " + testIt.nextStatement().toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
log.debug("Triple checking -- before this method, the add statements model contains");
|
||||||
|
StringWriter sw = new StringWriter();
|
||||||
|
try {
|
||||||
|
addStatements.write(sw, "N3");
|
||||||
|
log.debug(sw.toString());
|
||||||
|
sw.close();
|
||||||
|
}catch(Exception ex)
|
||||||
|
{
|
||||||
|
log.error("Error occurred in adding resource labels ", ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
OntModel newDisplayModel = settings.getNewDisplayModelFromFile();
|
OntModel newDisplayModel = settings.getNewDisplayModelFromFile();
|
||||||
List<Resource> resourcesForLabels = new ArrayList<Resource>();
|
List<Resource> resourcesForLabels = new ArrayList<Resource>();
|
||||||
resourcesForLabels.add(ResourceFactory.createResource("java:edu.cornell.mannlib.vitro.webapp.utils.dataGetter.ClassGroupPageData"));
|
resourcesForLabels.add(ResourceFactory.createResource("java:edu.cornell.mannlib.vitro.webapp.utils.dataGetter.ClassGroupPageData"));
|
||||||
|
@ -297,13 +388,38 @@ public class UpdateKnowledgeBase implements ServletContextListener {
|
||||||
resourcesForLabels.add(ResourceFactory.createResource("java:edu.cornell.mannlib.vitro.webapp.utils.dataGetter.InternalClassesDataGetter"));
|
resourcesForLabels.add(ResourceFactory.createResource("java:edu.cornell.mannlib.vitro.webapp.utils.dataGetter.InternalClassesDataGetter"));
|
||||||
resourcesForLabels.add(ResourceFactory.createResource("java:edu.cornell.mannlib.vitro.webapp.utils.dataGetter.SparqlQueryDataGetter"));
|
resourcesForLabels.add(ResourceFactory.createResource("java:edu.cornell.mannlib.vitro.webapp.utils.dataGetter.SparqlQueryDataGetter"));
|
||||||
for(Resource r: resourcesForLabels) {
|
for(Resource r: resourcesForLabels) {
|
||||||
|
log.debug("Adding the following for " + r.getURI());
|
||||||
|
log.debug(newDisplayModel.listStatements(r, RDFS.label, (RDFNode)null).toList().toString());
|
||||||
addStatements.add(newDisplayModel.listStatements(r, RDFS.label, (RDFNode)null));
|
addStatements.add(newDisplayModel.listStatements(r, RDFS.label, (RDFNode)null));
|
||||||
|
log.debug("After adding statements, we now have the following in addStatements:::");
|
||||||
|
sw = new StringWriter();
|
||||||
|
try {
|
||||||
|
addStatements.write(sw, "N3");
|
||||||
|
log.debug(sw.toString());
|
||||||
|
sw.close();
|
||||||
|
}catch(Exception ex)
|
||||||
|
{
|
||||||
|
log.error("Error occurred in adding resource labels ", ex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
//Add statements now includes
|
||||||
|
log.debug("AFTER all resources added, Add statements now includes ");
|
||||||
|
sw = new StringWriter();
|
||||||
|
try {
|
||||||
|
addStatements.write(sw, "N3");
|
||||||
|
log.debug(sw.toString());
|
||||||
|
sw.close();
|
||||||
|
}catch(Exception ex)
|
||||||
|
{
|
||||||
|
log.error("Error occurred in adding resource labels ", ex);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private OntModel loadModelFromDirectory(String directoryPath) {
|
private OntModel loadModelFromDirectory(String directoryPath) {
|
||||||
|
log.debug("Loading model from directory " + directoryPath);
|
||||||
OntModel om = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM);
|
OntModel om = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM);
|
||||||
File directory = new File(directoryPath);
|
File directory = new File(directoryPath);
|
||||||
if (!directory.isDirectory()) {
|
if (!directory.isDirectory()) {
|
||||||
|
@ -319,7 +435,7 @@ public class UpdateKnowledgeBase implements ServletContextListener {
|
||||||
|
|
||||||
//load file from file path
|
//load file from file path
|
||||||
private OntModel loadModelFromFile(String filePath) {
|
private OntModel loadModelFromFile(String filePath) {
|
||||||
|
log.debug("Load model from file " + filePath);
|
||||||
OntModel om = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM);
|
OntModel om = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM);
|
||||||
File file = new File(filePath);
|
File file = new File(filePath);
|
||||||
if (!file.isFile()) {
|
if (!file.isFile()) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue