次の 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 つのカテゴリが他の複数のカテゴリの境界となることに注意してください。