次のクエリを使用して、間違ったタイトルが指定された正しいタイトルのリソースへのリンク/URIを取得しています:
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX dbo: <http://dbpedia.org/ontology/>
SELECT ?redirectsTo WHERE {
?x rdfs:label "Environmental Protection Agency"@en .
?x dbo:wikiPageRedirects ?redirectsTo
}
dbpedia エンドポイントを使用すると、これは問題ではなく、米国環境保護庁の記事への正しいリンクが返されます。
私は python SPARQLWrapper ライブラリを使用して sparql クエリを送信していますが、python を使用してこれとまったく同じクエリを実行すると、次のようになります。
sparql = SPARQLWrapper("http://dbpedia.org/sparql")
# First check if this entity redirects to another entity
sparql.setQuery("""
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX db: <http://dbpedia.org/resource/>
SELECT ?redirectsTo WHERE {
?x rdfs:label "%s"@en .
?x dbo:wikiPageRedirects ?redirectsTo
}
""" % entity)
sparql.setReturnFormat(JSON)
uri_result = sparql.query().convert()['results']['bindings']
print(uri_result)
リダイレクトのない結果の空のリストを取得します。ただし、このクエリは Python で機能するものもあります。たとえば、オバマはバラク オバマのリンクを提供します。
sparql Web インターフェースが別のデータセットを使用していると聞いたことがありますか? もしそうなら、私のpythonスクリプト内でこれをどのように使用できますか
ありがとう