【问题标题】:Use Jena to query wikidata使用 Jena 查询 wikidata
【发布时间】:2016-04-10 21:22:03
【问题描述】:

目前,Wikidata 有一个 SPARQL 端点“https://query.wikidata.org/”,我想使用 Jena (3.0.1) 查询此站点,我使用以下代码但收到错误消息“Endpoint返回的 Content-Type: text/html 目前不支持 SELECT 查询"。有没有办法解决它?相同的代码适用于 dbpedia。谢谢

queryString = "PREFIX bd: <http://www.bigdata.com/rdf#>\n" +
                "PREFIX wikibase: <http://wikiba.se/ontology#>\n" +
                "PREFIX wdt: <http://www.wikidata.org/prop/direct/>\n" +
                "PREFIX wd: <http://www.wikidata.org/entity/>\n" +
                "SELECT DISTINCT ?country ?countryLabel\n" +
                "WHERE\n" +
                "{\n" +
                "\t?country wdt:P31 wd:Q3624078 .\n" +
                "    ?country wdt:P1622 wd:Q13196750.\n" +
                "    ?country wdt:P30 wd:Q15\n" +
                "\tFILTER NOT EXISTS {?country wdt:P31 wd:Q3024240}\n" +
                "\tSERVICE wikibase:label { bd:serviceParam wikibase:language \"en\" }\n" +
                "}\n" +
                "ORDER BY ?countryLabel";
        query = QueryFactory.create(queryString);
        qexec = QueryExecutionFactory.sparqlService("https://query.wikidata.org/", queryString);
        try {
            ResultSet results = qexec.execSelect();
            ResultSetFormatter.out(System.out, results, query);
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        } finally {
            qexec.close();
        }

【问题讨论】:

    标签: java sparql semantic-web wikidata


    【解决方案1】:

    根据the documentation,端点末尾有一个/sparql。它说

    SPARQL 查询可以通过对https://query.wikidata.org/sparql?query={SPARQL} 的 GET 请求直接提交到 SPARQL 端点(POST 和其他方法请求将被“403 Forbidden”拒绝)。结果默认以 XML 形式返回,如果提供了查询参数 format=json 或标头 Accept: application/sparql-results+json,则以 JSON 形式返回。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多