package semanticweb;
import java.io.IOException;
import java.util.List;
import org.openrdf.query.MalformedQueryException;
import org.openrdf.query.QueryEvaluationException;
import org.openrdf.repository.RepositoryException;
import org.openrdf.rio.RDFParseException;
/**
*
* <p/>
* Copyright 2002-2008 by Mark Watson. All rights reserved.
* <p/>
* This software is not public domain. It can be legally
* used under either of the following licenses:
* <p/>
* 1. LGPL
* 2. Apache 2
*/
public class SparqlQueries implements ISparqlProcessResults {
public static void main (String [] args) throws RepositoryException, IOException, RDFParseException, MalformedQueryException, QueryEvaluationException {
new SparqlQueries();
}
public SparqlQueries() throws RepositoryException, IOException, RDFParseException, MalformedQueryException, QueryEvaluationException {
TripleStoreSesameManager ts = new TripleStoreSesameManager();
ts.loadRDF("rdf_files/knowledgebooks_namespace.n3");
ts.loadRDF("rdf_files/rdfs.nt");
ts.loadRDF("rdf_files/news.nt");
System.out.println("\n\nSample querying for subjects (news article URLs) and objects (names of matching countires) with predicate equal to containsCountry:\n");
String sparql_query = "SELECT ?subject ?object WHERE { ?subject <http:://knowledgebooks.com/ontology/#containsCountry> ?object . }";
//String sparql_query = "PREFIX kb: <http://knowlegebooks.com/ontology#> SELECT ?subject ?object WHERE { ?subject kb:containsCountry ?object . }";
//String sparql_query = "SELECT ?subject ?object ?predicate { ?subject ?object ?predicate . }";
ts.doSparqlQuery(sparql_query, this);
System.out.println("\n\nSample using inferencing: query on containsPlace using definition in rdfs.nt:\n");
sparql_query = "SELECT ?subject ?object WHERE { ?subject <http:://knowledgebooks.com/ontology/#containsPlace> ?object . }";
ts.doSparqlQuery(sparql_query, this);
System.out.println("\n\nSample using kb: namespace defined in knowledgebooks.nt:\n");
sparql_query = "PREFIX kb: <http://knowlegebooks.com/ontology/#> SELECT ?subject ?object WHERE { ?subject kb:containsState ?object . }";
ts.doSparqlQuery(sparql_query, this); // <http:://knowledgebooks.com/ontology/#
}
public void processResult(List<String> data) {
System.out.print("next result: ");
for (String s : data) System.out.print("|"+s+"|" + "\t ");
System.out.println(" . ");
}
}