/* Date: March 30, 2011
* Template: PluginScreenJavaTemplateGen.java.ftl
* generator: org.molgenis.generators.ui.PluginScreenJavaTemplateGen 3.3.3
*
* THIS FILE IS A TEMPLATE. PLEASE EDIT :-)
*/
package plugins.mapping;
import org.molgenis.framework.db.Database;
import org.molgenis.framework.ui.PluginModel;
import org.molgenis.framework.ui.ScreenController;
import org.molgenis.util.Tuple;
import com.hp.hpl.jena.datatypes.xsd.XSDDatatype;
import com.hp.hpl.jena.graph.Node;
import com.hp.hpl.jena.graph.Triple;
import com.hp.hpl.jena.query.QueryExecutionFactory;
import com.hp.hpl.jena.query.QueryFactory;
import com.hp.hpl.jena.query.QuerySolution;
import com.hp.hpl.jena.query.ResultSet;
import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.util.FileManager;
import com.hp.hpl.jena.util.iterator.ExtendedIterator;
import com.hp.hpl.jena.vocabulary.DC;
import com.itextpdf.text.pdf.hyphenation.TernaryTree.Iterator;
import de.fuberlin.wiwiss.d2rq.GraphD2RQ;
import de.fuberlin.wiwiss.d2rq.ModelD2RQ;
import de.fuberlin.wiwiss.d2rq.map.Mapping;
import de.fuberlin.wiwiss.d2rq.mapgen.MappingGenerator;
import de.fuberlin.wiwiss.d2rq.vocab.D2RQ;
public class GenerateN3andRDF extends PluginModel
{
public GenerateN3andRDF(String name, ScreenController<?> parent)
{
super(name, parent);
}
@Override
public String getViewName()
{
return "plugins_mapping_GenerateN3andRDF";
}
@Override
public String getViewTemplate()
{
return "plugins/mapping/GenerateN3andRDF.ftl";
}
@Override
public void handleRequest(Database db, Tuple request)
{
if ("GenerateN3".equals(request.getAction()))
{
// ./generate-mapping -u root -p root -d com.mysql.jdbc.Driver -o
// molgenis_rdf_mapping_GCC_30_january.n3
// jdbc:mysql://127.0.0.1/LLcatalogue
// ./d2r-server -p 2020 molgenis_rdf_mapping_GCC_30_january.n3
/*
* Object d2rq = new D2RQ();
*
* Object mapping = new Mapping();
*
* String tmp = null; Object MappingGenerator = new
* MappingGenerator(tmp);
*/
// Set up the ModelD2RQ using a mapping file
Model m = new ModelD2RQ("/Users/despoina/Documents/d2r-server-0.7/molgenis_rdf_mapping.n3");
Model JenaMapping = FileManager.get().loadModel(
"/Users/despoina/Documents/d2r-server-0.7/molgenis_rdf_mapping.n3");
// Set up the GraphD2RQ
GraphD2RQ g = new GraphD2RQ((Model) JenaMapping, "http://localhost:2020/");
// Create a find(spo) pattern
Node subject = Node.ANY;
Node predicate = DC.date.asNode();
Node object = Node.createLiteral("2003", null, XSDDatatype.XSDgYear);
Triple pattern = new Triple(subject, predicate, object);
// Query the graph
ExtendedIterator<Triple> it = g.find(pattern);
// Output query results
while ((it).hasNext())
{
Triple t = (Triple) (it).next();
System.out.println(">>>Published in 2003: " + t.getSubject());
}
String sparql = "PREFIX dc: <http://purl.org/dc/elements/1.1/>"
+ "PREFIX foaf: <http://xmlns.com/foaf/0.1/>" + "SELECT ?Investigation ?Investigation_name WHERE {"
+ " ?Investigation_name dc:Investigation.name 'Hippocrates' . " + "}";
com.hp.hpl.jena.query.Query q = QueryFactory.create(sparql);
ResultSet rs = QueryExecutionFactory.create(q, m).execSelect();
while (rs.hasNext())
{
QuerySolution row = rs.nextSolution();
System.out.println("Title: " + row.getLiteral("paperTitle").getString());
System.out.println("Author: " + row.getLiteral("authorName").getString());
}
}
}
@Override
public void reload(Database db)
{
}
}