トリプルストア内の情報を得るサンプルクエリ集

CodeMirrorを使って幾つかのSPARQLクエリのサンプルを列挙してみることにした。

グラフ一覧と各グラフに含まれるトリプル数を取得する
実際にインスタンスをもつクラス一覧と、クラス定義があればその情報も含め、各クラスに含まれるインスタンス数を取得する

トリプルには重複が含まれていることがあるので、念のために distinct を入れている。また、Virtuoso関連クラスを除外するためのフィルタを加えている。

実際に述語としてトリプルを構成する述語一覧と、そのクラス定義があればその情報も含め、各述語が含まれるトリプル数を取得する

なお、ここで使用している distinct * のカウントはVirtuosoでは受け付けられないことが判明したので注意。今後発表されるバージョンでは使えるようになるかもしれない。


今回、相当数のトリプルを検索するSPARQLクエリを様々なエンドポイントに対して試してみたが、実際の結果が得られることは皆無であった。
より検索範囲の小さなものであれば問題無いだろうが、検索対象のデータベースの特徴をある程度ここに掲載したような方法で取得できる統計データなどとともに概観できたほうがより効率的な検索が出来るようになると思う。その他に各クラスの取る代表的な述語や各述語に対する主語や目的語のクラスなども簡単に分かるようになっていると助かる。というのもデータベース提供者以外はそこにあるデータの特徴や構造を通常よく知らないわけなので、どのようなクラスがあり、そこにどれだけのインスタンスがあるかという情報は貴重な参考情報になるからだ。もっともオントロジーがしっかり定義されていたり、voIDなどのデータが用意されていれば、分かることも多いが。また、データ提供者側においても生成されたデータが期待通りになっているのかを確認するため、あるいは、voIDなどのメタデータの生成も含め、得られた情報を予めエンドポイントに表示するためなどの目的で使うと有益だろう。
同様の統計データを取得するSPARQLクエリ集としてこちらのサイトがある。