【问题标题】:Exception while executing a query执行查询时出现异常
【发布时间】:2012-04-08 11:33:26
【问题描述】:

我正在尝试通过其远程 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 无法处理有关?个人不确定,因为每次执行成功显示的结果数量似乎都不同。所以有人可以帮忙。

【问题讨论】:

  • 可能结果集没有正确转义——比如 CDATA 或任何可能需要的...这会让 EOF 字符进入数据流并欺骗管道,让管道误以为它已经结束了。
  • 尽管我在使用 DBpedia 端点 Web 用户界面执行相同的 SPARQL 查询时没有遇到任何错误,但遇到了同样的问题。 @Prera​​kPradhan 您找到任何解决方案了吗?任何想法将不胜感激。

标签: java semantic-web jena dbpedia


【解决方案1】:

尝试使用 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(); 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-24
    • 2011-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-16
    相关资源
    最近更新 更多