7

Python で sparql\sparqlwrapper を使用して、特定の dbpedia リソースの値を照会するにはどうすればよいですか? たとえば、http://dbpedia.org/page/Asturiasの dbpedia-owl:wikiPageExternalLink 値を取得するにはどうすればよいでしょうか? Asturias の rdfs:label を照会する方法の簡単な例を次に示します。しかし、クエリ/クエリ パラメータを変更して、rdfs スキーマに含まれているもの以外のプロパティ/オントロジーの値を取得する方法がわかりません。サンプルは次のとおりです。

from SPARQLWrapper import SPARQLWrapper, JSON, XML, N3, RDF
sparql = SPARQLWrapper("http://dbpedia.org/sparql")
sparql.setQuery("""
    PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
    SELECT ?label
    WHERE { <http://dbpedia.org/resource/Asturias> rdfs:label ?label }
""")
print '\n\n*** JSON Example'
sparql.setReturnFormat(JSON)
results = sparql.query().convert()
for result in results["results"]["bindings"]:
    print result["label"]["value"]

フィードバックをお待ちしております。前もって感謝します!

4

1 に答える 1

7

行き詰まっている場所がわからない—これは本当に簡単です。

SELECT ?label
WHERE { <http://dbpedia.org/resource/Asturias>
            dbpedia-owl:wikiPageExternalLink ?label }

通常、名前空間プレフィックスをクエリで使用する場合は宣言する必要がありrdfs:ますdbpedia-owl:が、DBpediaエンドポイントでは、これがなくても機能します。必要に応じて、とにかくそれらを宣言できます。

PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
SELECT ?label
WHERE { <http://dbpedia.org/resource/Asturias>
            dbpedia-owl:wikiPageExternalLink ?label }

http://dbpedia.org/sparqlにアクセスし、右上隅にある「Namespace Prefixes」をクリックすると、プレフィックスに対応する完全なURIを見つけることができます。

変数の名前を変更する場合(たとえば、from?labelから?link)は、次のようにします。

PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
SELECT ?link
WHERE { <http://dbpedia.org/resource/Asturias>
            dbpedia-owl:wikiPageExternalLink ?link }

また、JSON結果から値を取得するPythonコードでに変更"label"する必要があります。"link"

于 2012-05-22T00:10:25.577 に答える