package org.bbaw.wsp.cms.mdsystem.metadata.rdfmanager;
import java.util.ArrayList;
import java.util.List;
import com.hp.hpl.jena.query.Dataset;
import com.hp.hpl.jena.query.ReadWrite;
import com.hp.hpl.jena.rdf.model.InfModel;
import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.rdf.model.ModelFactory;
import com.hp.hpl.jena.rdf.model.ModelMaker;
import com.hp.hpl.jena.tdb.TDB;
import com.hp.hpl.jena.tdb.TDBFactory;
import com.hp.hpl.jena.tdb.store.DatasetGraphTDB;
public class WspRdfStore {
final String directory = "C:/Dokumente und Einstellungen/wsp-shk1/Eigene Dateien/Apache Jena/store";
private Dataset dataset;
private Model defaultModel;
private InfModel rdfsModel;
ModelMaker modelmaker;
private List<String> modelList;
DatasetGraphTDB dsdt;
public WspRdfStore(){
}
public void createStore(){
System.out.println("cretae Store");
// Location loc = new Location(directory);
// StoreConnection sc = StoreConnection.make(loc);
// GraphTDB graphTdb = sc.begin(ReadWrite.WRITE).getDefaultGraphTDB();
// dataset = sc.begin(ReadWrite.WRITE).toDataset();
// dsdt = sc.getBaseDataset();
// dataset = dsdt.toDataset();
dataset = TDBFactory.createDataset(directory);
defaultModel = dataset.getDefaultModel();
// defaultModel.removeAll();
modelList = new ArrayList<String>();
TDB.getContext().set(TDB.symUnionDefaultGraph, true);
// System.out.println("namedModel : ");
// StmtIterator iter = namedModel.listStatements();
// while (iter.hasNext()) {
// System.out.println(" " + iter.nextStatement());
// }
// model.removeAll();
}
public void createModelFactory(){
modelmaker = ModelFactory.createMemModelMaker();
}
public Model getFreshModel(){
Model model = modelmaker.createFreshModel();
return model;
}
public void addNamedModelToWspStore(String name, Model model){
if (!this.dataset.containsNamedModel(name)) {
if (model != null) {
this.dataset.addNamedModel(name, model);
modelList.add(name);
}
}
}
public void openDataset(){
dataset.begin(ReadWrite.WRITE);
}
public void closeDataset(){
dataset.commit();
dataset.end();
}
public Model getMergedModelofAllGraphs(){
return dataset.getNamedModel("urn:x-arq:UnionGraph");
}
public void createInfModel(Model model){
System.out.println("create Infmodel");
if(model != null)
rdfsModel = ModelFactory.createRDFSModel(model);
}
public Model getRdfsModel() {
return this.rdfsModel;
}
public Dataset getDataset() {
return this.dataset;
}
public String getTripleCountOfDefaultModel() {
return "Default Graph contains: " + this.defaultModel.size() + " triples";
}
}