NIHVIVO-1980 rdf export bugfixes
This commit is contained in:
parent
fa7aa763fa
commit
61812f7a1e
2 changed files with 44 additions and 22 deletions
|
@ -4,32 +4,24 @@ package edu.cornell.mannlib.vitro.webapp.controller.jena;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import javax.servlet.RequestDispatcher;
|
import javax.servlet.RequestDispatcher;
|
||||||
import javax.servlet.ServletContext;
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
import com.hp.hpl.jena.ontology.OntModel;
|
import com.hp.hpl.jena.ontology.OntModel;
|
||||||
import com.hp.hpl.jena.ontology.OntModelSpec;
|
|
||||||
import com.hp.hpl.jena.query.Dataset;
|
import com.hp.hpl.jena.query.Dataset;
|
||||||
import com.hp.hpl.jena.query.DatasetFactory;
|
import com.hp.hpl.jena.query.DatasetFactory;
|
||||||
import com.hp.hpl.jena.query.QueryExecutionFactory;
|
|
||||||
import com.hp.hpl.jena.query.QueryFactory;
|
|
||||||
import com.hp.hpl.jena.rdf.model.Model;
|
import com.hp.hpl.jena.rdf.model.Model;
|
||||||
import com.hp.hpl.jena.rdf.model.ModelFactory;
|
import com.hp.hpl.jena.rdf.model.ModelFactory;
|
||||||
import com.hp.hpl.jena.shared.Lock;
|
import com.hp.hpl.jena.shared.Lock;
|
||||||
import com.hp.hpl.jena.vocabulary.RDFS;
|
|
||||||
|
|
||||||
import edu.cornell.mannlib.vedit.controller.BaseEditController;
|
import edu.cornell.mannlib.vedit.controller.BaseEditController;
|
||||||
import edu.cornell.mannlib.vitro.webapp.ConfigurationProperties;
|
import edu.cornell.mannlib.vitro.webapp.ConfigurationProperties;
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.Controllers;
|
import edu.cornell.mannlib.vitro.webapp.controller.Controllers;
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroHttpServlet;
|
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
|
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.JenaModelUtils;
|
import edu.cornell.mannlib.vitro.webapp.dao.jena.JenaModelUtils;
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.ModelContext;
|
import edu.cornell.mannlib.vitro.webapp.dao.jena.ModelContext;
|
||||||
|
|
||||||
|
@ -94,8 +86,6 @@ public class JenaExportController extends BaseEditController {
|
||||||
|
|
||||||
Model model = null;
|
Model model = null;
|
||||||
OntModel ontModel = ModelFactory.createOntologyModel();
|
OntModel ontModel = ModelFactory.createOntologyModel();
|
||||||
boolean limitToInferred = false;
|
|
||||||
Model inferenceModel = null;
|
|
||||||
|
|
||||||
if(!subgraphParam.equalsIgnoreCase("tbox") && !subgraphParam.equalsIgnoreCase("abox") && !subgraphParam.equalsIgnoreCase("full")){
|
if(!subgraphParam.equalsIgnoreCase("tbox") && !subgraphParam.equalsIgnoreCase("abox") && !subgraphParam.equalsIgnoreCase("full")){
|
||||||
ontologyURI = subgraphParam;
|
ontologyURI = subgraphParam;
|
||||||
|
@ -108,7 +98,6 @@ public class JenaExportController extends BaseEditController {
|
||||||
|
|
||||||
|
|
||||||
String mode = ConfigurationProperties.getProperty("VitroConnection.DataSource.tripleStoreType");
|
String mode = ConfigurationProperties.getProperty("VitroConnection.DataSource.tripleStoreType");
|
||||||
ModelContext modelContext = new ModelContext();
|
|
||||||
if( "abox".equals(subgraphParam)){
|
if( "abox".equals(subgraphParam)){
|
||||||
model = ModelFactory.createDefaultModel();
|
model = ModelFactory.createDefaultModel();
|
||||||
if("inferred".equals(assertedOrInferredParam)){
|
if("inferred".equals(assertedOrInferredParam)){
|
||||||
|
@ -141,15 +130,39 @@ public class JenaExportController extends BaseEditController {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if("tbox".equals(subgraphParam)){
|
else if("tbox".equals(subgraphParam)){
|
||||||
if("inferred".equals(assertedOrInferredParam)){
|
if ("inferred".equals(assertedOrInferredParam)) {
|
||||||
model = xutil.extractTBox(dataset, ontologyURI,INFERENCE_GRAPH);
|
// the extraction won't work on just the inferred graph,
|
||||||
}
|
// so we'll extract the whole ontology and then include
|
||||||
else if("full".equals(assertedOrInferredParam)){
|
// only those statements that are in the inferred graph
|
||||||
model = xutil.extractTBox(dataset, ontologyURI, FULL_GRAPH);
|
Model tempModel = xutil.extractTBox(
|
||||||
}
|
ModelContext.getUnionOntModelSelector(
|
||||||
else{
|
getServletContext()).getTBoxModel(), ontologyURI);
|
||||||
model = xutil.extractTBox(dataset, ontologyURI, ASSERTIONS_GRAPH);
|
Model inferenceModel = ModelContext.getInferenceOntModelSelector(
|
||||||
}
|
getServletContext()).getTBoxModel();
|
||||||
|
inferenceModel.enterCriticalSection(Lock.READ);
|
||||||
|
try {
|
||||||
|
model = tempModel.intersection(inferenceModel);
|
||||||
|
} finally {
|
||||||
|
inferenceModel.leaveCriticalSection();
|
||||||
|
}
|
||||||
|
} else if ("full".equals(assertedOrInferredParam)) {
|
||||||
|
model = xutil.extractTBox(
|
||||||
|
ModelContext.getUnionOntModelSelector(
|
||||||
|
getServletContext()).getTBoxModel(), ontologyURI);
|
||||||
|
} else {
|
||||||
|
model = xutil.extractTBox(
|
||||||
|
ModelContext.getBaseOntModelSelector(
|
||||||
|
getServletContext()).getTBoxModel(), ontologyURI);
|
||||||
|
}
|
||||||
|
// if("inferred".equals(assertedOrInferredParam)){
|
||||||
|
// model = xutil.extractTBox(dataset, ontologyURI,INFERENCE_GRAPH);
|
||||||
|
// }
|
||||||
|
// else if("full".equals(assertedOrInferredParam)){
|
||||||
|
// model = xutil.extractTBox(dataset, ontologyURI, FULL_GRAPH);
|
||||||
|
// }
|
||||||
|
// else{
|
||||||
|
// model = xutil.extractTBox(dataset, ontologyURI, ASSERTIONS_GRAPH);
|
||||||
|
// }
|
||||||
|
|
||||||
}
|
}
|
||||||
else if("full".equals(subgraphParam)){
|
else if("full".equals(subgraphParam)){
|
||||||
|
@ -162,6 +175,7 @@ public class JenaExportController extends BaseEditController {
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
ontModel.addSubModel(ModelContext.getInferenceOntModelSelector(getServletContext()).getABoxModel());
|
ontModel.addSubModel(ModelContext.getInferenceOntModelSelector(getServletContext()).getABoxModel());
|
||||||
|
ontModel.addSubModel(ModelContext.getInferenceOntModelSelector(getServletContext()).getTBoxModel());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if("full".equals(assertedOrInferredParam)){
|
else if("full".equals(assertedOrInferredParam)){
|
||||||
|
@ -171,6 +185,8 @@ public class JenaExportController extends BaseEditController {
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
ontModel.addSubModel(ModelContext.getUnionOntModelSelector(getServletContext()).getABoxModel());
|
ontModel.addSubModel(ModelContext.getUnionOntModelSelector(getServletContext()).getABoxModel());
|
||||||
|
ontModel.addSubModel(ModelContext.getUnionOntModelSelector(getServletContext()).getTBoxModel());
|
||||||
|
ontModel.addSubModel(ModelContext.getUnionOntModelSelector(getServletContext()).getApplicationMetadataModel());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
@ -182,6 +198,8 @@ public class JenaExportController extends BaseEditController {
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
ontModel.addSubModel(ModelContext.getBaseOntModelSelector(getServletContext()).getABoxModel());
|
ontModel.addSubModel(ModelContext.getBaseOntModelSelector(getServletContext()).getABoxModel());
|
||||||
|
ontModel.addSubModel(ModelContext.getBaseOntModelSelector(getServletContext()).getTBoxModel());
|
||||||
|
ontModel.addSubModel(ModelContext.getBaseOntModelSelector(getServletContext()).getApplicationMetadataModel());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -148,8 +148,12 @@ public class JenaModelUtils {
|
||||||
private final OntModelSpec DEFAULT_ONT_MODEL_SPEC = OntModelSpec.OWL_MEM;
|
private final OntModelSpec DEFAULT_ONT_MODEL_SPEC = OntModelSpec.OWL_MEM;
|
||||||
|
|
||||||
public OntModel extractTBox( Model inputModel) {
|
public OntModel extractTBox( Model inputModel) {
|
||||||
Dataset dataset = DatasetFactory.create(inputModel);
|
return extractTBox(inputModel, null);
|
||||||
return extractTBox( dataset,null,null );
|
}
|
||||||
|
|
||||||
|
public OntModel extractTBox( Model inputModel, String namespace ) {
|
||||||
|
Dataset dataset = DatasetFactory.create(inputModel);
|
||||||
|
return extractTBox( dataset, namespace, null );
|
||||||
}
|
}
|
||||||
|
|
||||||
public OntModel extractTBox( Dataset dataset, String namespace, String graphURI ) {
|
public OntModel extractTBox( Dataset dataset, String namespace, String graphURI ) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue