4

私はオープンデータに不慣れで、助けが必要です。ウィキペディアのsparqlエンドポイントは次のURLにあります。http://dbpedia.org/sparql ここ で、dbpediaからrdfファイルを取得するためのWebサービスを作成する必要があります。rdfファイルを取得するには、このエンドポイントに何を送信する必要がありますか?

4

3 に答える 3

9

CONSTRUCTクエリを送信します。ちょっとした例:

CONSTRUCT { ?s ?p ?o }
WHERE { ?s ?p ?o }
LIMIT 10

WHERE句はSELECTの句と同じように機能し、値のみが一種のテンプレートとしてCONSTRUCTブロックを埋めます。これは非常に柔軟性があります。ステートメントをここのようにコピーするか、完全に異なる形に変換することができます。

于 2012-03-08T22:22:59.443 に答える
4

ダニーが答えたのは正しい一般的な答えです。ただし、結果が得られるまでに時間がかかるため、外部サービスに対してこのようなクエリを実行することはお勧めしません。具体的なリソースでそれを行う

ただし、もちろん、クエリ結果を手動で保存せずに直接実行したい場合、たとえば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()

もちろん、これはあなたが好むように、ほとんどすべてのプログラミング言語で行うことができます。

于 2012-07-17T10:37:38.087 に答える
2

ボブ・デュシャルムの「LearningSPARQL」の本を読むことをお勧めします。DBPediaエンドポイントを利用するいくつかの例もカバーしています。

PS:これはWikipediaのSPARQLエンドポイントではありません-DBPedia SPARQLエンドポイントです(Wikipedia自体は独自のSPARQLエンドポイントATMを提供していません)。ただし、DBPediaデータはWikipediaデータに依存しています;)

于 2012-03-09T19:01:55.597 に答える