繁体   English   中英

如何将Sparql查询结果存储到数组中?

[英]How to store Sparql query results into array?

我想将我的sparql查询结果存储到数组中。 我该如何储存? 这是我的Java代码。 是否可以在Java中使用datareader?

import com.hp.hpl.jena.query.Query;
import com.hp.hpl.jena.query.QueryFactory;
import com.hp.hpl.jena.query.QueryExecution;
import com.hp.hpl.jena.query.QueryExecutionFactory;
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.rdf.model.RDFNode;
import com.hp.hpl.jena.util.FileManager;

public class emotion{
public static void main(String[] args) {
    // TODO Auto-generated method stub

sparqltest();}


static void sparqltest()
{

FileManager.get().addLocatorClassLoader(emotion.class.getClassLoader());
Model model= FileManager.get().loadModel("C:/Users/avg/workspacejena32/Jena/bin/emotion.rdf");
//System.out.println("Connected...");
String queryString="PREFIX  xsd:  <http://www.semanticweb.org/avg/ontologies/2016/2/untitled-ontology-5#>" +
                   "PREFIX  owl:  <http://www.w3.org/2002/07/owl#>" +
                   "PREFIX  rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#>" +
                   "SELECT  * " +
                   "WHERE" +
                   "{ xsd:angry xsd:says ?x}";




 Query query= QueryFactory.create(queryString);
 QueryExecution qexec=QueryExecutionFactory.create(query, model);

 try {
 ResultSet rs = qexec.execSelect();
for ( ; rs.hasNext() ; )
{
  QuerySolution soln = rs.nextSolution() ;
  RDFNode a = soln.get("x") ;
 // avg = a.asNode().getLocalName();
  System.out.println(a.asNode().getLocalName());
}
} 
 finally {

 qexec.close();
    }}}

我得到如下结果,我想将其存储在数组中或其他可以从中调用的位置,以备将来使用。

selfish
mad

这样的事情应该做。

List<RDFNode> result = new ArrayList<RDFNode>();
ResultSet rs = qexec.execSelect();
for ( ; rs.hasNext() ; )
{
  QuerySolution soln = rs.nextSolution() ;
  RDFNode a = soln.get("x") ;
 // avg = a.asNode().getLocalName();
  System.out.println(a.asNode().getLocalName());
  result.add(a);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM