首页 > 解决方案 > Jena 中的 SPARQL 端点异常:端点返回 Content-Type: text/html SELECT 查询无法识别

问题描述

dbpedia.org/sparql上似乎有查询长度或复杂性限制。此代码失败:

        String part = "{<http://dbpedia.org/resource/Marcus_Garvey__Sound__1>?a?v}";
        String query = "SELECT DISTINCT ?a?v WHERE {" + part;

        for (int i = 1; i <= 14; i++) {
            query += "UNION " + part;
        }

        query += "}";

        ResultSet resultSet =
            QueryExecutionFactory.sparqlService("http://dbpedia.org/sparql", query).execSelect();

        while (resultSet.hasNext()) {
            QuerySolution qs = resultSet.next();
            qs.varNames().forEachRemaining(name -> System.out.println(name + "\t" + qs.get(name)));
        }

有这个特例:

Exception in thread "main" org.apache.jena.query.QueryException: Endpoint returned Content-Type: text/html which is not recognized for SELECT queries
    at org.apache.jena.sparql.engine.http.QueryEngineHTTP.execResultSetInner(QueryEngineHTTP.java:378)
    at org.apache.jena.sparql.engine.http.QueryEngineHTTP.execSelect(QueryEngineHTTP.java:346)

如果我将最大值i从更改1413,它工作正常。如果我使用浏览器 UI 运行相同的查询,它也可以正常工作。有任何想法吗?!

标签: sparqlrdfjenadbpedia

解决方案


推荐阅读