7

現在、ウィキデータには SPARQL エンドポイント「https://query.wikidata.org/」があります。Jena (3.0.1) を使用してこのサイトにクエリを実行したいと思います。次のコードを使用しましたが、「エンドポイントがコンテンツを返しました」というエラー メッセージが表示されました。 -タイプ: SELECT クエリで現在サポートされていない text/html ". それを解決する方法はありますか?同じコードが 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();
        }
4

1 に答える 1

10

ドキュメントによると、エンドポイントの末尾には /sparql があります。それは言う

SPARQL クエリは、GET リクエストを使用して SPARQL エンドポイントに直接送信できますhttps://query.wikidata.org/sparql?query={SPARQL}(POST およびその他のメソッド リクエストは「403 Forbidden」で拒否されます)。結果はデフォルトで XML として返されます。クエリ パラメータ format=json またはヘッダー Accept: application/sparql-results+json が指定されている場合は JSON として返されます。

于 2016-04-10T21:59:38.300 に答える