現在、SPARQL エンドポイントを介してDBPedia の Infobox Onyology データベースにクエリを実行し、クラスのリスト、選択したクラスのサブクラス、および特定のクラスのプロパティを取得する方法を探しています。私が見つけた限りでは、探しているプロパティを知るか、特定のものを検索する必要があります。私が見つけたすべての例は、特定のものを検索したいという考えに基づいているようです。 (特定の標高を超える都市の人口など)、カテゴリを効果的に「閲覧」できるものを構築したいと考えています。例えば、このクラス階層図の「owl:Thing」のサブクラス一覧から選択したサブクラスのサブクラスのリストをユーザーに提示します。マッピング wiki を介してこのようなものを参照することは可能のようですが、SPARQL エンドポイントに直接クエリを実行することをお勧めします。
利用可能なクラスとそれらのクラスのプロパティを返す単純な SPARQL クエリはありますか?
更新:このクエリ を反復することにより、クラス階層を取得する方法を思いつきました:
SELECT ?subject WHERE {
?subject rdfs:subClassOf owl:Thing
}
これは、owl:Thing のサブクラスのリストを返します。owl:Thing をサブクラスの 1 つに置き換えると、そのサブクラスのリストが取得され、サブクラスがなくなるまで続きます。サブクラスがなくなると、すべてのリソースを選択できます。選択されたサブクラスによって与えられる型。ただし、サブクラスに共通のすべてのプロパティを取得する方法はまだよくわかりません。
更新 2 近づいています。このクエリは、国でもあるすべてのプロパティ (dbpedia:property の子) とそのタイトルを取得します。
SELECT DISTINCT ?prop ?title WHERE {
?country ?prop ?value.
?country a <http://dbpedia.org/ontology/Country>.
?prop rdf:type rdf:Property.
?prop rdfs:label ?title
}
実際に私が本当に求めたのはこれだけです。私が今やろうとしている最後のことは、それらが表示されるページ数でこれらを並べることです (おそらく、最も一般的なプロパティが最も興味深いものになります)。