私はオープンデータに不慣れで、助けが必要です。ウィキペディアのsparqlエンドポイントは次のURLにあります。http://dbpedia.org/sparql ここ で、dbpediaからrdfファイルを取得するためのWebサービスを作成する必要があります。rdfファイルを取得するには、このエンドポイントに何を送信する必要がありますか?
3 に答える
CONSTRUCTクエリを送信します。ちょっとした例:
CONSTRUCT { ?s ?p ?o }
WHERE { ?s ?p ?o }
LIMIT 10
WHERE句はSELECTの句と同じように機能し、値のみが一種のテンプレートとしてCONSTRUCTブロックを埋めます。これは非常に柔軟性があります。ステートメントをここのようにコピーするか、完全に異なる形に変換することができます。
ダニーが答えたのは正しい一般的な答えです。ただし、結果が得られるまでに時間がかかるため、外部サービスに対してこのようなクエリを実行することはお勧めしません。具体的なリソースでそれを行う
ただし、もちろん、クエリ結果を手動で保存せずに直接実行したい場合、たとえばPythonを使用すると、コードは次のようになります。
from SPARQLWrapper import SPARQLWrapper, XML
uri = "http://dbpedia.org/resource/Asturias"
query = "CONSTRUCT { <%s> ?p ?o } WHERE { <%s> ?p ?o }" % (uri, uri)
sparql = SPARQLWrapper("http://dbpedia.org/sparql")
sparql.setQuery(query)
sparql.setReturnFormat(XML)
results = sparql.query().convert()
file = open("output.rdf", "w")
results.serialize(destination=file, format="xml")
file.flush()
file.close()
もちろん、これはあなたが好むように、ほとんどすべてのプログラミング言語で行うことができます。
ボブ・デュシャルムの「LearningSPARQL」の本を読むことをお勧めします。DBPediaエンドポイントを利用するいくつかの例もカバーしています。
PS:これはWikipediaのSPARQLエンドポイントではありません-DBPedia SPARQLエンドポイントです(Wikipedia自体は独自のSPARQLエンドポイントATMを提供していません)。ただし、DBPediaデータはWikipediaデータに依存しています;)