6

dcterms:subjectdbpedia 内からすべてのカテゴリを取得する方法はありますか?

例として、http ://dbpedia.org/page/Eiffel_Tower の dcterms:subject で次のカテゴリを確認できます。

  • カテゴリ:旧世界で最も高い建物
  • カテゴリ:Places_with_restrictions_on_photography
  • カテゴリ:ミシュランガイド_星付きレストラン_シェフ
  • カテゴリ:歴史_市民_工学_ランドマーク
  • カテゴリ:1889_建築
  • ...

category:xxxdbpediaのすべての値を取得したいと考えています。方法はありますか?

4

2 に答える 2

7

次の SPARQL クエリを使用して COUNT クエリを実行し、dbpedia にあるカテゴリの数を確認します。

SELECT COUNT(DISTINCT ?category) AS ?count WHERE {?subject dcterms:subject ?category}

dbpedia には 503788 のカテゴリがあることがわかります。すべてのカテゴリをクエリすると、取得できる結果の数に上限があるため、エンドポイントは 503788 個のカテゴリ全体を提供しません。ただし、LIMIT と OFFSET を使用すると、複数のクエリを発行できます。たとえば、最初の 1000 カテゴリを取得するには、次のクエリを実行できます。

SELECT DISTINCT ?category WHERE {?subject dcterms:subject ?category} LIMIT 1000 OFFSET 0

この情報をどのように使用するかはわかりませんが、オフセットを増やして (1000、2000、3000 など) 複数のクエリを実行し、使用しているストレージに結果をキャッシュすることをお勧めします。基本的に、クエリを実行して結果をキャッシュに格納するプログラムを作成できます。

ただし、DBPedia のカテゴリは階層的であるため、1 つのカテゴリが他の複数のカテゴリの境界となることに注意してください。

于 2011-06-17T04:58:19.640 に答える
1

または単に実行します:

SELECT ?category WHERE { ?category a <http://www.w3.org/2004/02/skos/core#Concept> } LIMIT 1000

于 2014-08-06T16:42:02.643 に答える