work on NIHVIVO-205 ontology update

This commit is contained in:
bjl23 2010-03-30 17:53:09 +00:00
parent 82dfc8d0ca
commit d81d007a91

View file

@ -2,15 +2,24 @@
package edu.cornell.mannlib.vitro.webapp.ontology.update; package edu.cornell.mannlib.vitro.webapp.ontology.update;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.util.List; import java.util.List;
import javax.servlet.ServletContext; import javax.servlet.ServletContext;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.hp.hpl.jena.query.Query; import com.hp.hpl.jena.query.Query;
import com.hp.hpl.jena.query.QueryExecution; import com.hp.hpl.jena.query.QueryExecution;
import com.hp.hpl.jena.query.QueryExecutionFactory; import com.hp.hpl.jena.query.QueryExecutionFactory;
import com.hp.hpl.jena.query.QueryFactory; import com.hp.hpl.jena.query.QueryFactory;
import com.hp.hpl.jena.query.Syntax;
import com.hp.hpl.jena.rdf.model.Model; import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.shared.Lock; import com.hp.hpl.jena.shared.Lock;
@ -34,6 +43,8 @@ public class OntologyUpdater {
private final String SUCCESS_RDF_FORMAT = "N3"; private final String SUCCESS_RDF_FORMAT = "N3";
private final String DIFF_FILE = DATA_DIR + "diff.tab.txt"; private final String DIFF_FILE = DATA_DIR + "diff.tab.txt";
private final Log log = LogFactory.getLog(OntologyUpdater.class);
private ServletContext context; private ServletContext context;
private OntModelSelector ontModelSelector; private OntModelSelector ontModelSelector;
@ -43,7 +54,7 @@ public class OntologyUpdater {
this.ontModelSelector = ontModelSelector; this.ontModelSelector = ontModelSelector;
} }
public void update() { public void update() throws IOException {
// Check to see if the update is necessary. // Check to see if the update is necessary.
if (updateRequired()) { if (updateRequired()) {
performUpdate(); performUpdate();
@ -84,7 +95,7 @@ public class OntologyUpdater {
* Executes a SPARQL ASK query to determine whether the knowledge base * Executes a SPARQL ASK query to determine whether the knowledge base
* needs to be updated to conform to a new ontology version * needs to be updated to conform to a new ontology version
*/ */
private boolean updateRequired() { private boolean updateRequired() throws IOException {
String sparqlQueryStr = loadSparqlQuery(ASK_QUERY_FILE); String sparqlQueryStr = loadSparqlQuery(ASK_QUERY_FILE);
if (sparqlQueryStr == null) { if (sparqlQueryStr == null) {
return false; return false;
@ -100,8 +111,18 @@ public class OntologyUpdater {
* @param filePath * @param filePath
* @return the query string or null if file not found * @return the query string or null if file not found
*/ */
private String loadSparqlQuery(String filePath) { private String loadSparqlQuery(String filePath) throws IOException {
return null; // TODO implement me! File file = new File(context.getRealPath(filePath));
if (!file.exists()) {
return null;
}
BufferedReader reader = new BufferedReader(new FileReader(file));
StringBuffer fileContents = new StringBuffer();
String ln;
while ((ln = reader.readLine()) != null) {
fileContents.append(ln).append('\n');
}
return fileContents.toString();
} }
private void assertSuccess() { private void assertSuccess() {