Pages - Menu

2013-09-04

HTTPでSPARQLクエリを投げる

DBpediaなどでは、オントロジーののアクセスポイントとしてVirtuosoを採用している。
VirtuosoにはHTTP経由でクエリを投げることができる。
以下は実装例。
import com.hp.hpl.jena.query.*;
import com.hp.hpl.jena.rdf.model.RDFNode;
import com.hp.hpl.jena.sparql.util.StringUtils;

public class Virtuoso {

    public static void main(String[] args) {
        String service = "http://dbpedia.org/sparql";
        String queryString = 
                "PREFIX rdfs:  "+
                "SELECT ?x ?y "+
                "WHERE {?x rdfs:label ?y}";
        Query query = QueryFactory.create(queryString);
        
        QueryExecution qe = QueryExecutionFactory.sparqlService(service, query);
        try {
            ResultSet results = qe.execSelect();
            for (; results.hasNext();) {
                QuerySolution soln = results.nextSolution();
                RDFNode x = soln.get("x");
                RDFNode y = soln.get("y");
                System.out.println(x.toString());
                System.out.println(y.toString());
            }
        } catch (Exception e) {
            System.out.println("Query error:" + e);
        } finally {
            qe.close();
        }
    }
}

0 件のコメント:

コメントを投稿