AGSailSparqlQueries.java
package com.franz.agsail.examples;
import com.knowledgereefsystems.agsail.*;
import info.aduna.iteration.CloseableIteration;
import java.io.File;
import java.util.Iterator;
import org.openrdf.model.URI;
import org.openrdf.model.ValueFactory;
import org.openrdf.query.BindingSet;
import org.openrdf.query.Dataset;
import org.openrdf.query.QueryEvaluationException;
import org.openrdf.query.algebra.TupleExpr;
import org.openrdf.query.impl.EmptyBindingSet;
import org.openrdf.query.parser.ParsedQuery;
import org.openrdf.query.parser.sparql.SPARQLParser;
import org.openrdf.sail.*;
public class AGSailSparqlQueries {
@param
@throws
public static void main(String[] args) throws Exception {
AllegroSail sail = new AllegroSail("localhost", 4567, false, "store", new File(AGPaths.TRIPLE_STORES), 0, 0, false, false);
sail.initialize();
SailConnection sc = sail.getConnection();
sc.clear();
ValueFactory f = sail.getValueFactory();
String ex = "http://example.org/";
String rdf = sc.getNamespace("rdf");
String rdfs = sc.getNamespace("rdfs");
URI a = f.createURI(ex, "a");
URI classA = f.createURI(ex, "A");
URI classB = f.createURI(ex, "B");
URI rdf_type = f.createURI(rdf, "type");
URI rdfs_subClassOf = f.createURI(rdfs, "subClassOf");
sc.addStatement(a, a, a);
sc.commit();
String queryStr = "SELECT ?y ?z WHERE { <http://example.org/a> ?y ?z }";
doSparqlQuery(sc,queryStr);
sc.addStatement(a, rdf_type, classA);
sc.addStatement(classA,rdfs_subClassOf,classB);
queryStr = "SELECT * WHERE { ?s ?p ?o }";
doSparqlQuery(sc,queryStr);
sc.close();
sail.shutDown();
}
public static void doSparqlQuery(SailConnection sc, String queryStr) throws Exception {
SPARQLParser parser = new SPARQLParser();
BindingSet bindings = new EmptyBindingSet();
String baseURI = "http://example.org/bogus/";
ParsedQuery query;
CloseableIteration<? extends BindingSet, QueryEvaluationException> results;
System.out.println("Query: " + queryStr);
query = parser.parseQuery(queryStr, baseURI);
TupleExpr tupleExpr = query.getTupleExpr();
Dataset dataset = query.getDataset();
results = sc.evaluate(tupleExpr, dataset, bindings, false);
for (int i=0; results.hasNext(); i++) {
BindingSet set = results.next();
Iterator<org.openrdf.query.Binding> it = set.iterator();
System.out.println("Solution " + i);
while (it.hasNext()) {
System.out.println(" " + it.next());
}
}
results.close();
}
}
Up |
Next