SPARQLについて
このページでは、SPARQLによる検索方法について説明します。GUI上での検索方法については「ヘルプ」の該当箇所をご覧ください。現在はより新しいエンドポイントであるSPARQL1.1の利用をお勧めしています。詳しくは「SPARQL1.1への対応」「SPARQL 1.1について」をご覧ください。
1. SPARQLによる検索
当システムは、RDF形式で典拠データをデータベースに格納しており、RDFで記述されたデータを検索・操作するためのコンピュータ言語であるSPARQLを用いて外部から検索することができます。SPARQLによるクエリは、RDFのモデルのうち、未知の部分を変数(半角クエスチョンマーク(?
)で始まる名前)として変数を含むRDFグラフを記述し、変数にあてはまるURIやリテラル値を取得する、という形式になります。
変数を含むグラフのパターンは、半角波括弧({}
)で囲み、SQLと同様にWHERE
句に記述します。また、取り出したい変数は、SQLと同様にSELECT
句に列挙します。PREFIX
句を用いて名前空間URIの接頭辞を宣言することで、URIを修飾名として記述することができます。
1-1. SPARQLを利用するAPI
SPARQL Endpoint(APIのURI)はhttps://id.ndl.go.jp/auth/ndla
です。?query
パラメータ値としてURLエンコードしたSPARQLクエリを送ることで、レスポンスを得ることができます。1回に取得できるデータ件数の上限は100件です。
(注)Web NDL Authoritiesでは、SPARQL 1.0に対応しています。
SPARQL 1.1への対応については、「6. SPARQL 1.1への対応」をご覧ください。
下記のフォームを用いて、SPARQLによる検索を試してみることができます。
SPARQLを利用するAPIの詳細については、以下のAPI仕様書をご参照ください。
- Web NDL Authorities SPARQL API仕様書 2023年3月31日(PDF: 478KB)
- Web NDL Authorities SPARQL API Specifications 2023-03-31(PDF: 498KB)
RDFとして格納されるデータ項目については、「4. RDF/XML形式によるフォーマット仕様」をご参照ください。
2. 例1:ある個人の生年、没年、名称/タイトル、名称/タイトルのカナ読みを調べる
「夏目漱石」の典拠情報URI、名称実体URI、生年、没年、名称/タイトル、名称/タイトルのカナ読みをそれぞれ、変数「?uri1
」、「?uri2
」、「?birth
」、「?death
」、「?heading
」、「?yomi
」とすると、これらの変数を含むRDFグラフは図1のようになります。
RDFグラフをクエリにすると、以下のとおりとなります。
名称/タイトルが「夏目」で始まる典拠データの生年、没年、名称/タイトルを調べるクエリは以下のとおりになります。
(注)個人名の典拠データには、必ずしも生年、没年が含まれていないものもあります。上記のクエリでは、生年または没年が含まれていないものは調べることができません。
以下のOPTIONAL
を使ったクエリであれば、生年、没年のいずれか、またはその両方が含まれていない場合でも、「夏目」で始まる名称/タイトルを調べることができます。
3. 例2:没年から典拠URI、名称実体URI、名称/タイトル、名称/タイトルのカナ読みを調べる
没年が「1962」である典拠URI、名称実体URI、名称/タイトル、名称/タイトルのカナ読みをそれぞれ、変数「?uri1
」、「?uri2
」、「?heading
」、「?yomi
」とすると、これらの変数を含むRDFグラフは図2のようになります。
RDFグラフをクエリにすると、以下のとおりとなります。
101件目以降のデータを取得する場合は、OFFSET
句を使用します。
4. 例3:ある件名標目の上位語、下位語などを調べる
件名標目「インターネット」の典拠URI、上位語のURI、上位語のラベルをそれぞれ変数「?uri1
」、「?uri2
」、「?label
」とすると、これらの変数を含むRDFグラフは図3のようになります。
下位語、関連語、同義語を調べる場合は、「skos:broader
」をそれぞれ「skos:narrower
」、「skos:related
」、「xl:altLabel
」に置換えます。
5. 例4:ある代表分類に属する件名標目を調べる
国立国会図書館分類表(NDLC)の分類記号「DM225」に属する件名標目の典拠URI、ラベルを変数「?uri1
」、「?label
」とすると、これらの変数を含むRDFグラフは図4のようになります。
NDLCの「DK341」かつ日本十進分類法(NDC)第9版の「694.5」に属する件名標目の典拠URI、ラベルを変数「?uri1
」、「?label
」とすると、これらの変数を含むRDFグラフは図5のようになります。
6. SPARQL 1.1への対応
SPARQL 1.1に対応したエンドポイントを公開しています。
https://id.ndl.go.jp/auth/ndla/sparql
1回に取得できるデータ件数の上限は、1,000件です。
返戻形式は、HTML形式、Turtle形式、JSON形式、XML形式、CSV形式から選択できます。このページに記載している検索は、SPARQL1.1でも使用可能です。より新しいエンドポイントであるSPARQL1.1では、SPARQL1.0よりも多くの結果を一度に得られるため、SPARQL1.1による検索をお勧めします。
ただし、SPARQL 1.1による検索は、毎日午前4時から5分程度、データ更新のため、利用できません。
SPARQL 1.1に対応したエンドポイントでの詳しい検索方法については、「SPARQL 1.1について」をご覧ください。