java - 执行查询时出现异常

标签 java semantic-web jena dbpedia

我正在尝试通过远程 sparql 端点查询 Dbpedia 数据集。到目前为止,我已经设法连接到端点并执行正常查询。但是当我执行以下查询时,我得到了一些结果,然后是一个我不知道的异常。有人可以帮忙吗?查询及异常如下。

SELECT DISTINCT ?p ?o WHERE 
{ ?p ?x <http://dbpedia.org/resource/Nepal>.
  ?p <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> ?o. }

异常情况如下

16:51:30 WARN  XMLInputStAX$ResultSetStAX :: StAX error: XMLStreamException: Unexpected EOF; was expecting a close tag for element <result>
 at [row,col {unknown-source}]: [2068,3]
com.ctc.wstx.exc.WstxEOFException: Unexpected EOF; was expecting a close tag for element <result>
 at [row,col {unknown-source}]: [2068,3]
        at com.ctc.wstx.sr.StreamScanner.throwUnexpectedEOF(StreamScanner.java:686)
        at com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2730)
        at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1019)
        at com.hp.hpl.jena.sparql.resultset.XMLInputStAX$ResultSetStAX.getOneSolution(XMLInputStAX.java:410)
        at com.hp.hpl.jena.sparql.resultset.XMLInputStAX$ResultSetStAX.hasNext(XMLInputStAX.java:217)
        at sat.Algorithm.incomingLink(Algorithm.java:128)
        at sat.Main.main(Main.java:20)
2 [main] WARN com.hp.hpl.jena.sparql.resultset.XMLInputStAX$ResultSetStAX  - StAX error: XMLStreamException: Unexpected EOF; was expecting a close tag for element <result>
 at [row,col {unknown-source}]: [2068,3]..........

这是否与结果量太大而 Jena 无法处理有关??我个人不确定,因为每次执行时成功显示的结果数量似乎都不同。所以有人可以帮忙吗?

最佳答案

尝试使用 LIMIT 和 OFFSET 等投影来控制结果集的大小。 DPBEDIA 默认限制为 10,000,尽管这取决于分配给 JVM 的内存量,这应该不是问题。我认为它使用的是 Jena ARQ API'S 和 sparqlService 方法。像这样:

QueryExecution qe = QueryExecutionFactory.sparqlService("http://dbpedia.org/sparql", "SELECT DISTINCT ?p ?o WHERE { ?p ?x <http://dbpedia.org/resource/Nepal>. ?p <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> ?o. }");
ResultSet queryResults = qe.execSelect(); 

关于java - 执行查询时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10062496/

相关文章:

java - 如何在 Jersey 2.x 中注册 MessageBodyWriter 和 MessageBodyReader

rdf - SPARQL 通过变量而不是行数来限制查询结果

java - 如何在 Jena TDB 数据集中保留命名空间前缀?

jena - 用Jena读取Protege本体文件时出错如何处理?

java - 如果一个对象的字段是一个对象怎么办...有没有办法获取后一个对象的字段?

java - java中的除法

html - 用于添加自定义注释数据的语义 HTML 元素

javascript - 内联方法绑定(bind)是一种不好的做法吗?

model - 使用 jena 编辑现有资源的 uri

java - Apache Tomcat 访问错误 : 404 -- Not Found