From 9e09da9871d8d085a7c67e46223f53f9de98e4b9 Mon Sep 17 00:00:00 2001 From: brianjlowe Date: Mon, 14 Oct 2013 15:28:59 -0400 Subject: [PATCH] various migration improvements --- .../ontology/update/KnowledgeBaseUpdater.java | 41 +------------------ .../webapp/ontology/update/TBoxUpdater.java | 7 +--- .../servlet/setup/SimpleReasonerSetup.java | 4 +- .../servlet/setup/UpdateKnowledgeBase.java | 5 +-- 4 files changed, 8 insertions(+), 49 deletions(-) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/ontology/update/KnowledgeBaseUpdater.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/ontology/update/KnowledgeBaseUpdater.java index 2561f1f9d..b4f211c97 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/ontology/update/KnowledgeBaseUpdater.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/ontology/update/KnowledgeBaseUpdater.java @@ -64,7 +64,7 @@ public class KnowledgeBaseUpdater { } long startTime = System.currentTimeMillis(); - log.info("Migrating the knowledge base"); + log.info("Performing any necessary data migration"); logger.log("Started knowledge base migration"); try { @@ -104,12 +104,6 @@ public class KnowledgeBaseUpdater { log.error(e,e); } - try { - migrateMigrationMetadata(servletContext); - logger.log("Migrated migration metadata"); - } catch (Exception e) { - log.error("unable to migrate migration metadata " + e.getMessage()); - } } // update ABox data any time @@ -264,39 +258,6 @@ public class KnowledgeBaseUpdater { aboxUpdater.processClassChanges(changes.getAtomicClassChanges()); } - // special for 1.5 - temporary code - // migrate past migration indicators to not use blank nodes and move them to app metadata model - // changing structure for pre 1.5 ones in the process - private void migrateMigrationMetadata(ServletContext servletContext) throws Exception { - - String baseResourceURI = "http://vitro.mannlib.cornell.edu/ns/vitro/metadata/migration/"; - String queryFile = "MigrationData.sparql"; - - RDFService rdfService = RDFServiceUtils.getRDFServiceFactory(servletContext).getRDFService(); - - String fmQuery = FileUtils.readFileToString(new File(settings.getSparqlConstructDeletionsDir() + "/" + queryFile)); - Model toRemove = ModelFactory.createDefaultModel(); - toRemove.read(rdfService.sparqlConstructQuery(fmQuery, RDFService.ModelSerializationFormat.RDFXML), null); - - String cmQuery = FileUtils.readFileToString(new File(settings.getSparqlConstructAdditionsDir() + "/" + queryFile)); - Model toAdd = ModelFactory.createDefaultModel(); - toAdd.read(rdfService.sparqlConstructQuery(cmQuery, RDFService.ModelSerializationFormat.RDFXML), null); - - ByteArrayOutputStream outAdd = new ByteArrayOutputStream(); - toAdd.write(outAdd); - InputStream inAdd = new ByteArrayInputStream(outAdd.toByteArray()); - ChangeSet addChangeSet = rdfService.manufactureChangeSet(); - addChangeSet.addAddition(inAdd, RDFService.ModelSerializationFormat.RDFXML, JenaDataSourceSetupBase.JENA_APPLICATION_METADATA_MODEL); - rdfService.changeSetUpdate(addChangeSet); - - ByteArrayOutputStream outRemove = new ByteArrayOutputStream(); - toRemove.write(outRemove); - InputStream inRemove = new ByteArrayInputStream(outRemove.toByteArray()); - ChangeSet removeChangeSet = rdfService.manufactureChangeSet(); - removeChangeSet.addRemoval(inRemove, RDFService.ModelSerializationFormat.RDFXML, JenaDataSourceSetupBase.JENA_DB_MODEL); - rdfService.changeSetUpdate(removeChangeSet); - } - private void updateTBoxAnnotations() { TBoxUpdater tboxUpdater = new TBoxUpdater(settings, logger, record); try { diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/ontology/update/TBoxUpdater.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/ontology/update/TBoxUpdater.java index a9616cefa..cf81d4092 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/ontology/update/TBoxUpdater.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/ontology/update/TBoxUpdater.java @@ -88,10 +88,6 @@ public class TBoxUpdater { public void modifyPropertyQualifications() throws IOException { } - - private Model mergeConfigurations(Model oldConfig, Model newConfig) { - return null; - } public void updateDefaultAnnotationValues() throws IOException { updateDefaultAnnotationValues(null); @@ -528,7 +524,8 @@ public class TBoxUpdater { " OPTIONAL { <" + oldPropertyURI + "> vitro:inPropertyGroupAnnot ?group . \n" + " ?configuration config:propertyGroup ?rgroup } \n" + " OPTIONAL { <" + oldPropertyURI + "> <" + RDFS.label.getURI() + "> ?label . \n" + - " ?configuration config:displayName ?rlabel } \n " + + " ?configuration config:displayName ?rlabel . \n " + + " FILTER(?rlabel != ?label) } \n " + " OPTIONAL { <" + oldPropertyURI + "> vitro:displayRankAnnot ?displayRank . \n" + " ?configuration vitro:displayRantAnnot ?rdisplayRank } \n " + " OPTIONAL { <" + oldPropertyURI + "> vitro:customEntryFormAnnot ?customForm . \n" + diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/SimpleReasonerSetup.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/SimpleReasonerSetup.java index c5b6cbf3d..43f6fa7d2 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/SimpleReasonerSetup.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/SimpleReasonerSetup.java @@ -81,6 +81,8 @@ public class SimpleReasonerSetup implements ServletContextListener { log.info("Pellet reasoner connected for the TBox"); + waitForTBoxReasoning(sce); + // set up simple reasoning for the ABox RDFService rdfService = RDFServiceUtils.getRDFServiceFactory(ctx).getRDFService(); @@ -131,7 +133,7 @@ public class SimpleReasonerSetup implements ServletContextListener { int sleeps = 0; // sleep at least once to make sure the TBox reasoning gets started while ((0 == sleeps) || ((sleeps < 1000) && pelletListener.isReasoning())) { - if ((sleeps % 10) == 0) { // print message at 10 second intervals + if (((sleeps - 1) % 10) == 0) { // print message at 10 second intervals log.info("Waiting for initial TBox reasoning to complete"); } Thread.sleep(1000); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/UpdateKnowledgeBase.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/UpdateKnowledgeBase.java index d68ca6433..817ce52db 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/UpdateKnowledgeBase.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/servlet/setup/UpdateKnowledgeBase.java @@ -141,7 +141,6 @@ public class UpdateKnowledgeBase implements ServletContextListener { if(!JenaDataSourceSetupBase.isFirstStartup()) { try { ctx.setAttribute(KBM_REQURIED_AT_STARTUP, Boolean.TRUE); - log.info("Data migration required"); migrationChangesMade = ontologyUpdater.update(ctx); if (tryMigrateDisplay) { try { @@ -221,8 +220,8 @@ public class UpdateKnowledgeBase implements ServletContextListener { StartupStatus.getBean(ctx).info(this, "Updating knowledge base: reports are in '" + dataDir + "'"); Path changedDir = createDirectory(dataDir, "changedData"); - settings.setAddedDataFile(changedDir.resolve("addedData.n3").toString()); - settings.setRemovedDataFile(changedDir.resolve("removedData.n3").toString()); + settings.setAddedDataFile(changedDir.resolve(timestampedFileName("addedData", "n3")).toString()); + settings.setRemovedDataFile(changedDir.resolve(timestampedFileName("removedData", "n3")).toString()); Path logDir = createDirectory(dataDir, "logs"); settings.setLogFile(logDir.resolve(timestampedFileName("knowledgeBaseUpdate", "log")).toString());