簡易DSP 仕様書(日本語原文)
6.2 簡易DSPファイルの記述方法
6.2.1 ファイル構成
- 簡易DSPは、タブ区切りによるテキストファイルとして記述する。ファイルの文字コードはUTF-8とする。
- テキストファイル内は、1つ以上の記述規則ブロック(およびオプションの名前空間宣言ブロック)で構成する。
- ブロックは
[]でブロックID(レコード記述規則ID)を示して開始する。名前空間宣言ブロックは、予約IDとして@NSを用いて示す。 - 区切りなどのために空行をおいてよい。空行は処理上無視する。
- 行頭が
#で始まる行はコメント行とする(行の途中に#があっても、それ以降をコメント扱いはしない)。
最初のレコード記述規則IDは、MAINとする。
記述規則定義において修飾名(名前空間接頭辞)を用いる場合、標準接頭辞以外の接頭辞が必要であれば、先頭([MAIN] ブロックの前)に名前空間宣言ブロック [@NS] を置く。
6.2.2 記述規則ブロック
レコード記述規則ID(以下ID)を [] 内に記し、続く行でレコード内に含まれる項目記述規則を、1項目1行で列挙する。
- レコード規則IDには、英数字もしくはカナ漢字を用いることができる(ただし最初の文字を数字にすることはできない)。空白文字、記号はIDに用いない。
[MAIN]
#項目規則名 プロパティ...
(以下に書誌の項目記述規則)※項目記述規則の1行目を各列の名前(ラベル)とする場合は、行頭に # を置いてコメントとする必要があることに注意
6.2.3 名前空間宣言ブロック
6.2.6で定義する標準名前空間以外の名前空間を用いる場合は、記述規則ブロックの前に名前空間宣言ブロックを置いて、接頭辞と名前空間URIのマッピングを宣言する。
名前空間宣言ブロックID([@NS])を最初に記し、続く行で接頭辞とURIの組をTABで区切って列挙する。宣言の1行目には、各列のラベルをおいてよい。
[@NS]
#接頭辞 名前空間URI
sioc http://rdfs.org/sioc/ns#
rda http://RDVocab.info/ElementsGr2/- 接頭辞には英数字のみを用いる。最初の文字を数字にすることはできない。
- 記述規則自身の名前空間を定義する場合は、接頭辞を
@baseとして記述する。@baseがない場合の記述規則名前空間は、レジストリが割り当てる。
6.2.6で定義する標準名前空間URIを、標準設定と異なる接頭辞に結びつける宣言をしてもよい。
※@base で指定するURIは、「記述規則の名前空間」であって、記述規則を用いて生成する「メタデータインスタンス」のデフォルト名前空間ではないことに注意。
6.2.4 項目記述規則
項目記述規則は1行1項目とし、各行は次の要素をTAB区切りで並べる。
- 項目規則名
- プロパティの修飾名
- 最小出現回数
- 最大出現回数
- 値タイプ
- 値制約
- コメント(説明)
値タイプをIDとする項目記述規則は、レコード自身の扱いを定める特殊な規則とする。
項目規則名(規則ラベル)
項目記述規則に与える識別名で、データに対する「タイトル」「著者」などといった項目名(列名、フィールド名)と同等。
項目記述規則をURIとして表現するために用いるので、レコード規則IDと同様の文字で構成する(英数字もしくはカナ漢字を用いることができるが、最初の文字を数字にすることはできない。空白文字、記号は用いない)。
※項目規則名に空白文字を用いた場合は、URIでは _ に変換する。記号は %HH の形にURLエンコードされる(ただし・については、_ に変換する)。
プロパティの修飾名
規則に従って記述された項目をRDFに変換するために用いるプロパティを、修飾名で記述する。たとえば「タイトル」項目をシンプル・ダブリンコアのtitleとする場合は、ここに「dc:title」と記す。
この修飾名に用いる接頭辞は、6.2.6の標準接頭辞、もしくは6.2.3で定義したものとする。
※接頭辞のないプロパティを記述した場合は、独自語彙によるプロパティとして、レジストリ登録時に語彙も合わせて定義・登録するものとする。
出現回数制約
レコード内における項目の出現回数について、最小回数、最大回数の2欄に記述する(値は0または正の整数、またはキーワード)。最大回数の制約がない場合は - とする。
出現回数が「あれば必須」「推奨」などの場合は、そのキーワードを最小回数欄に記述し、最大出現回数を - とする(ただしコンピュータによるチェック上は、任意と同じ)。
表14: 出現回数制約の記述例
| 最小出現回数 | 最大出現回数 | 意味 |
|---|---|---|
0 | 1 | 記述は任意で、最大1回 |
1 | - | 必須で、何回記述してもよい |
1 | 1 | 必須で、必ず1回 |
0 | - | 制約なし(任意で、何回出現してもよい) |
推奨 | - | 推奨(検証上は任意と同等) |
値タイプおよび値制約
項目の値は、表15のいずれかのタイプとする。
表15: 簡易DSPで用いる値タイプ
| 値タイプ | 記述する値 |
|---|---|
ID | レコードのIDを記述する |
制約なし | 任意の値を記述してよい |
文字列 | リテラル値を記述する |
構造化 | 入れ子記述に相当するリソース |
参照値 | URIによる外部参照リソース |
値タイプ=文字列の場合
値制約欄は次のように記述する:
- プレーンリテラル(任意の文字列)の場合は空欄。
- リテラルのデータ型(datatype)を制約する場合は、データ型修飾名。複数のデータ型を使ってよい場合は、修飾名を空白区切りで列挙。
- 特定の文字列から選択する場合は、選択肢を引用符
""で囲み、空白区切りで列挙。
表16: 文字列タイプ値制約の記述例
| 値制約 | 意味 |
|---|---|
| (空欄) | 任意の文字列 |
xsd:decimal | 十進数 |
"バナナ" "りんご" "みかん" | 「バナナ」「りんご」「みかん」のいずれか |
値タイプ=構造化の場合
値制約欄は次のように記述する:
- 値が同じ記述規則ファイル内のレコード記述規則で定義されるレコード(入れ子を含む)である場合は、「
#規則ID」で示す。 - 値が特定のクラスインスタンスであればよい場合は、「クラス修飾名」を直接記す。この場合は、構造化値内の項目記述は制約を持たない(制約を与える場合は注参照)。
- 複数のクラスから選んでよい場合は、クラス修飾名を空白区切りで列挙。
表17: 構造化タイプ値制約の記述例
| 値制約 | 意味 |
|---|---|
#構造化タイトル | 同じファイル内の[構造化タイトル]ブロックで定義される値 |
foaf:Agent | 値はfoaf:Agentクラスのインスタンス |
foaf:Person rda:Family | foaf:Personもしくはrda:Familyのインスタンス |
※構造化値にクラスと項目記述両方の制約を与えたい場合は、#規則ID 型を用い、6.2.4に従って [規則ID] ブロックのID型記述規則のプロパティ欄にクラスを指定する。[規則ID] ブロックにID型規則持たせずに(空白ノードのまま)クラスを与える定義は、この簡易DSPではサポートしない(DSP定義言語で直接記述することはできる)。
値タイプ=参照値の場合
値制約欄は次のように記述する:
- 任意の実体(URI)を値とする場合は空欄。
- 特定の語彙に属するURIを用いる場合は、語彙の「名前空間接頭辞:」で示す(接頭辞は最後に
:を置く)。 - 複数の語彙から選んでよい場合は、語彙の「名前空間接頭辞:」を空白区切りで列挙する。
- 特定のURI(語彙ではなく個別名)から選択する場合は、修飾名もしくは
<URI>を空白区切りで列挙する。
表18: 参照値タイプ値制約の記述例
| 値制約 | 意味 |
|---|---|
| (空欄) | 任意のURI |
ndlsh: | NDLSH語彙に属するURIが記述できる |
ndlsh: bsh: | NDLSHもしくはBSH語彙に属するURI |
card:VISA card:AMEX | URI(修飾名)card:VISA、card:AMEXのいずれか |
※値制約を ndlsh: とした場合、実際のデータには「ndlsh:図書館」など、その名前空間URIで表される語彙に属するURIが記述できる(データが ndlsh: となるのではないことに注意。また、一般に個々のURIは ndlsh: 名前空間に属すると考えられるが、名前空間が異なる場合もある)。
※特定のURIを記述する場合は <> で囲むことに注意。
ID項目規則
値タイプ=IDの項目記述規則は、ID欄を定義すると同時に、レコード自身の扱いも定義する。
- 項目規則名: レコードのIDを収める列とする。
- プロパティの修飾名: レコードの型(クラス)を示す。たとえばこの値が
foaf:Documentである場合、レコードは文書(foaf:Documentクラスのインスタンス)であることを表す。 - 最小出現回数: 常に
1 - 最大出現回数: 常に
1 - 値タイプ: 常に
ID - 値制約: レコードURIの名前空間を示す。たとえばこの値が
ndlbooks:であるとき、実際に記述されたデータのIDの値がb01234ならば、このレコードのURIはndlbooks:b01234となる。 ※この値を用いて、表形式のデータからURIを持つRDFデータを生成できる。ただしこのを指定すると、記述規則の使い方が固定されるので注意。 - コメント(説明)
各レコード記述規則ごとに、ID型の項目記述規則は1つしか指定できない。[MAIN]規則には、原則としてID型項目を持たせるものとする。
6.2.5 簡易DSP記述例
[@NS]
dcndl http://ndl.go.jp/dcndl/terms/
ndlsh http://id.ndl.go.jp/auth/ndlsh/
bsh http://id.ndl.go.jp/auth/bsh/
ndlbooks http://iss.ndl.go.jp/books/
@base http://ndl.go.jp/dcndl/dsp/biblio
[MAIN]
#項目規則名 プロパティ 最小 最大 値タイプ 値制約 説明
書誌ID foaf:Document 1 1 ID ndlbooks: 文書のID
タイトル dcterms:title 1 1 構造化 #構造化タイトル 文書の表題
著者 dcterms:creator 0 1 構造化 foaf:Agent 文書の作者
発行日 dcterms:issued 1 1 文字列 xsd:date 文書の発行日
主題 dcterms:subject 0 - 参照値 ndlsh: bsh: 文書の主題
[構造化タイトル]
#項目規則名 プロパティ 最小 最大 値タイプ 値制約 説明
リテラル値 xl:literalForm 1 1 文字列 タイトル自身
読み dcndl:transcription 0 1 文字列 タイトルの読み6.2.6 デフォルト設定
標準名前空間接頭辞
頻繁に用いられる名前空間として、表19の標準接頭辞マッピングを用意する。
標準マッピングの接頭辞のみを用いる場合、名前空間宣言ブロックは省略してよい。
標準マッピングと異なる接頭辞、URIの組み合わせが名前空間宣言ブロックに記述されている場合は、その記述を優先する(デフォルト宣言を上書きする)。
表19: 標準接頭辞マッピング
| 接頭辞 | 名前空間URI |
|---|---|
dc | http://purl.org/dc/elements/1.1/ |
dcterms | http://purl.org/dc/terms/ |
foaf | http://xmlns.com/foaf/0.1/ |
skos | http://www.w3.org/2004/02/skos/core# |
xl | http://www.w3.org/2008/05/skos-xl# |
rdf | http://www.w3.org/1999/02/22-rdf-syntax-ns# |
rdfs | http://www.w3.org/2000/01/rdf-schema# |
owl | http://www.w3.org/2002/07/owl# |
xsd | http://www.w3.org/2001/XMLSchema# |
レコード記述規則IDの省略
名前空間宣言がない場合、主規則はレコード記述規則ID [MAIN] の行を省いて、項目規則のみを列挙できる(つまり、入れ子規則がない記述規則は、項目規則の表のみで示すことができる)。