首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SPARQL查询异常

SPARQL查询异常
EN

Stack Overflow用户
提问于 2013-11-24 16:23:39
回答 1查看 469关注 0票数 0

我使用APACHE JENA (2.9.4版本)通过SPARQL查询获取结果。下面是我使用的代码。

代码语言:javascript
复制
public class DataGeneratorTest {

public static void main(String[] args) {

    String query = "PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#> PREFIX owl:<http://dbpedia.org/ontology/> select ?y where { ?x a owl:Person; rdfs:label ?y. FILTER(LANG(?y) = \"en\") } LIMIT 77";
    ResultSet resultSet = SparqlUtil.generate(query);
    ResultSetFormatter.out(System.out, resultSet);

}
}

我有一个用于执行sparql查询的实用程序类...

代码语言:javascript
复制
public class SparqlUtil {

public static ResultSet generate(String argEndPoint, String argQuery) {
    Precondition.checkNotEmpty(argQuery);
    String endPoint = argEndPoint;
    if (Precondition.checkEmpty(endPoint)) {
        endPoint = SparqlConstants.SPARQL_ENDPOINT;
    }
    QueryExecution queryExecution = null;
    try {
        Query query = QueryFactory.create(argQuery);
        queryExecution = QueryExecutionFactory.sparqlService(endPoint,
                query);
        return queryExecution.execSelect();
    } finally {
        if (Precondition.checkNotNull(queryExecution)) {
            queryExecution.close();
        }
    }
}

public static ResultSet generate(String argQuery) {
    return generate(SparqlConstants.SPARQL_ENDPOINT, argQuery);
}
}

当我运行这段代码时,我得到了以下异常。

代码语言:javascript
复制
javax.xml.stream.XMLStreamException: ParseError at [row,col]:[40,26]
Message: XML document structures must start and end within the same entity.
at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(Unknown Source)
at    com.hp.hpl.jena.sparql.resultset.XMLInputStAX$ResultSetStAX.getOneSolution(XMLInputStAX.java:435)
at com.hp.hpl.jena.sparql.resultset.XMLInputStAX$ResultSetStAX.hasNext(XMLInputStAX.java:232)
at com.hp.hpl.jena.sparql.resultset.ResultSetMem.<init>(ResultSetMem.java:95)
at com.hp.hpl.jena.sparql.resultset.TextOutput.write(TextOutput.java:147)
at com.hp.hpl.jena.sparql.resultset.TextOutput.write(TextOutput.java:130)
at com.hp.hpl.jena.sparql.resultset.TextOutput.write(TextOutput.java:118)
at com.hp.hpl.jena.sparql.resultset.TextOutput.format(TextOutput.java:65)
at com.hp.hpl.jena.query.ResultSetFormatter.out(ResultSetFormatter.java:122)
at com.hp.hpl.jena.query.ResultSetFormatter.out(ResultSetFormatter.java:74)
at com.data.generator.test.DataGeneratorTest.main(DataGeneratorTest.java:17)
Exception in thread "main" com.hp.hpl.jena.sparql.resultset.ResultSetException: XMLStreamException:     ParseError at [row,col]:[40,26]
Message: XML document structures must start and end within the same entity.
at com.hp.hpl.jena.sparql.resultset.XMLInputStAX$ResultSetStAX.staxError(XMLInputStAX.java:539)
at com.hp.hpl.jena.sparql.resultset.XMLInputStAX$ResultSetStAX.hasNext(XMLInputStAX.java:236)
at com.hp.hpl.jena.sparql.resultset.ResultSetMem.<init>(ResultSetMem.java:95)
at com.hp.hpl.jena.sparql.resultset.TextOutput.write(TextOutput.java:147)
at com.hp.hpl.jena.sparql.resultset.TextOutput.write(TextOutput.java:130)
at com.hp.hpl.jena.sparql.resultset.TextOutput.write(TextOutput.java:118)
at com.hp.hpl.jena.sparql.resultset.TextOutput.format(TextOutput.java:65)
at com.hp.hpl.jena.query.ResultSetFormatter.out(ResultSetFormatter.java:122)
at com.hp.hpl.jena.query.ResultSetFormatter.out(ResultSetFormatter.java:74)
at com.data.generator.test.DataGeneratorTest.main(DataGeneratorTest.java:17)
Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[40,26]
Message: XML document structures must start and end within the same entity.
at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(Unknown Source)
at     com.hp.hpl.jena.sparql.resultset.XMLInputStAX$ResultSetStAX.getOneSolution(XMLInputStAX.java:435)
at com.hp.hpl.jena.sparql.resultset.XMLInputStAX$ResultSetStAX.hasNext(XMLInputStAX.java:232)
... 8 more

我只想检索前77个结果。当我将这个结果集限制为76时,我可以毫无异常地获取结果,但是当我将这个限制增加到77时,我会得到上面的异常。第77条记录有问题。我怎样才能克服这个问题。我被困在这里了。有没有人能帮我...?

提前谢谢你,阿马尔。

EN

回答 1

Stack Overflow用户

发布于 2013-11-25 00:13:12

什么是SparqlConstants.SPARQL_ENDPOINT?dbpedia.org有时间限制并截断结果,从而导致非法的XML。这可以解释这种情况,但不知道第77个条目是什么,我们不能说。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20172552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档