メインページ > Web NDL Authoritiesについて > SPARQLについて

SPARQLについて


1. SPARQLによる検索 | 2. 例1:ある人名の生没年、標目、標目カナヨミを調べる | 3. 例2: 没年から典拠URI、名称実体URI、標目、標目カナヨミを調べる | 4. 例3:ある件名標目の上位語、下位語などを調べる | 5. 例4:ある代表分類に属する件名標目を調べる | 6. SPARQL 1.1への対応

このページでは、SPARQLによる検索方法について説明します。GUI上での検索方法については「ヘルプ」の該当箇所をご覧ください。

1. SPARQLによる検索

当システムは、RDF形式で典拠データをデータベースに格納しており、RDFで記述されたデータを検索・操作するためのコンピュータ言語であるSPARQLを用いて外部から検索することができます。SPARQLによるクエリは、RDFのモデルのうち、未知の部分を変数(半角クエスチョンマーク(?)で始まる名前)として変数を含むRDFグラフを記述し、変数にあてはまるURIやリテラル値を取得する、という形式になります。
変数を含むグラフのパターンは、半角波括弧({})で囲み、SQLと同様にWHERE句に記述します。また、取り出したい変数は、SQLと同様にSELECT句に列挙します。PREFIX句を用いて名前空間URIの接頭辞を宣言することで、URIを修飾名として記述することができます。

1-1. SPARQLを利用するAPI

SPARQL Endpoint(APIのURI)はhttp://id.ndl.go.jp/auth/ndlaです。?queryパラメータ値としてURLエンコードしたSPARQLクエリを送ることで、レスポンスを得ることができます。一回に取得できるデータ件数の上限は100件です。

※Web NDL Authoritiesでは、SPARQL 1.0に対応しています。
SPARQL 1.1への対応については、「6. SPARQL 1.1への対応」をご覧ください。

下記のフォームを用いて、SPARQLによる検索を試してみることができます。

SPARQLクエリ検索フォーム


SPARQLを利用するAPIの詳細については、以下のAPI仕様書をご参照ください。

RDFとして格納されるデータ項目については、「4. RDF/XML形式によるフォーマット仕様」をご参照ください。

▲このページの先頭へ


2. 例1:ある人名の生没年、標目、標目カナヨミを調べる


「夏目漱石」の典拠情報URI名称実体URI、生年、没年、標目、標目カナヨミをそれぞれ、変数「?uri1」、「?uri2」、「?birth」、「?death」、「?heading」、「?yomi」とすると、これらの変数を含むRDFグラフは図1のようになります。


図1

RDFグラフをクエリにすると、以下のとおりとなります。

SPARQLクエリ検索フォーム


標目が「夏目」で始まる典拠データの生年、没年、標目を調べるクエリは以下のとおりになります。

SPARQLクエリ検索フォーム


※個人名の典拠データには、必ずしも生年、没年が含まれていないものもあります。上記のクエリでは、生年または没年が含まれていないものは調べることができません。
以下のOPTIONALを使ったクエリであれば、生年、没年のいずれかまたは両方が含まれていない場合でも、「夏目」で始まる標目を調べることができます。

SPARQLクエリ検索フォーム



▲このページの先頭へ


3. 例2:没年から典拠URI、名称実体URI、標目、標目カナヨミを調べる


没年が「1962」である典拠URI、名称実体URI、標目、標目カナヨミをそれぞれ、変数「?uri1」、「?uri2」、「?heading」、「?yomi」とすると、これらの変数を含むRDFグラフは図2のようになります。


図2

RDFグラフをクエリにすると、以下のとおりとなります。

SPARQLクエリ検索フォーム


101件目以降のデータを取得する場合は、OFFSET句を使用します。

SPARQLクエリ検索フォーム



▲このページの先頭へ


4. 例3:ある件名標目の上位語、下位語などを調べる


件名標目「インターネット」の典拠URI、上位語のURI、上位語のラベルをそれぞれ変数「?uri1」、「?uri2」、「?label」とすると、これらの変数を含むRDFグラフは図3のようになります。


図3

SPARQLクエリ検索フォーム



下位語、関連語、同義語を調べる場合は、「skos:broader」をそれぞれ「skos:narrower」、「skos:related」、「xl:altLabel」に置換えます。

5. 例4:ある代表分類に属する件名標目を調べる


分類記号NDLCの「DM225」に属する件名標目の典拠URI、ラベルを変数「?uri」、「?label」とすると、これらの変数を含むRDFグラフは図4のようになります。


図4

SPARQLクエリ検索フォーム


分類記号NDLCの「DK341」かつNDC9の「694.5」に属する件名標目の典拠URI、ラベルを変数「?uri」、「?label」とすると、これらの変数を含むRDFグラフは図5のようになります。


図5

SPARQLクエリ検索フォーム



6. SPARQL 1.1への対応


SPARQL 1.1に対応したエンドポイントを試行版として公開しています。
http://id.ndl.go.jp/auth/ndla/sparql

一回に取得できるデータ件数の上限は、1,000件です。
返戻形式は、HTML形式、Turtle形式、JSON形式、XML形式、CSV形式から選択できます。
SPARQL 1.1による検索は、毎日午前4時から5分程度、データ更新のため、利用できません。


▲このページの先頭へ