Skip to content
簡易DSP 仕様書(日本語原文)

簡易DSP 仕様書(日本語原文)

この文書は、総務省のウェブサイトで公開されている(2011 年頃公開) 『メタデータ情報共有のためのガイドライン 第6章 メタデータ・スキーマ定義言語』 (メタデータ情報基盤構築事業、メタデータ基盤協議会)セクション 6.2「簡易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区切りで並べる。

  1. 項目規則名
  2. プロパティの修飾名
  3. 最小出現回数
  4. 最大出現回数
  5. 値タイプ
  6. 値制約
  7. コメント(説明)

値タイプをIDとする項目記述規則は、レコード自身の扱いを定める特殊な規則とする。

項目規則名(規則ラベル)

項目記述規則に与える識別名で、データに対する「タイトル」「著者」などといった項目名(列名、フィールド名)と同等。

項目記述規則をURIとして表現するために用いるので、レコード規則IDと同様の文字で構成する(英数字もしくはカナ漢字を用いることができるが、最初の文字を数字にすることはできない。空白文字、記号は用いない)。

※項目規則名に空白文字を用いた場合は、URIでは _ に変換する。記号は %HH の形にURLエンコードされる(ただし・については、_ に変換する)。

プロパティの修飾名

規則に従って記述された項目をRDFに変換するために用いるプロパティを、修飾名で記述する。たとえば「タイトル」項目をシンプル・ダブリンコアのtitleとする場合は、ここに「dc:title」と記す。

この修飾名に用いる接頭辞は、6.2.6の標準接頭辞、もしくは6.2.3で定義したものとする。

※接頭辞のないプロパティを記述した場合は、独自語彙によるプロパティとして、レジストリ登録時に語彙も合わせて定義・登録するものとする。

出現回数制約

レコード内における項目の出現回数について、最小回数、最大回数の2欄に記述する(値は0または正の整数、またはキーワード)。最大回数の制約がない場合は - とする。

出現回数が「あれば必須」「推奨」などの場合は、そのキーワードを最小回数欄に記述し、最大出現回数を - とする(ただしコンピュータによるチェック上は、任意と同じ)。

表14: 出現回数制約の記述例

最小出現回数最大出現回数意味
01記述は任意で、最大1回
1-必須で、何回記述してもよい
11必須で、必ず1回
0-制約なし(任意で、何回出現してもよい)
推奨-推奨(検証上は任意と同等)

値タイプおよび値制約

項目の値は、表15のいずれかのタイプとする。

表15: 簡易DSPで用いる値タイプ

値タイプ記述する値
IDレコードのIDを記述する
制約なし任意の値を記述してよい
文字列リテラル値を記述する
構造化入れ子記述に相当するリソース
参照値URIによる外部参照リソース

値タイプ=文字列の場合

値制約欄は次のように記述する:

  • プレーンリテラル(任意の文字列)の場合は空欄。
  • リテラルのデータ型(datatype)を制約する場合は、データ型修飾名。複数のデータ型を使ってよい場合は、修飾名を空白区切りで列挙。
  • 特定の文字列から選択する場合は、選択肢を引用符 "" で囲み、空白区切りで列挙。

表16: 文字列タイプ値制約の記述例

値制約意味
(空欄)任意の文字列
xsd:decimal十進数
"バナナ" "りんご" "みかん"「バナナ」「りんご」「みかん」のいずれか

値タイプ=構造化の場合

値制約欄は次のように記述する:

  • 値が同じ記述規則ファイル内のレコード記述規則で定義されるレコード(入れ子を含む)である場合は、「#規則ID」で示す。
  • 値が特定のクラスインスタンスであればよい場合は、「クラス修飾名」を直接記す。この場合は、構造化値内の項目記述は制約を持たない(制約を与える場合は注参照)。
  • 複数のクラスから選んでよい場合は、クラス修飾名を空白区切りで列挙。

表17: 構造化タイプ値制約の記述例

値制約意味
#構造化タイトル同じファイル内の[構造化タイトル]ブロックで定義される値
foaf:Agent値はfoaf:Agentクラスのインスタンス
foaf:Person rda:Familyfoaf: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:AMEXURI(修飾名)card:VISAcard: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
dchttp://purl.org/dc/elements/1.1/
dctermshttp://purl.org/dc/terms/
foafhttp://xmlns.com/foaf/0.1/
skoshttp://www.w3.org/2004/02/skos/core#
xlhttp://www.w3.org/2008/05/skos-xl#
rdfhttp://www.w3.org/1999/02/22-rdf-syntax-ns#
rdfshttp://www.w3.org/2000/01/rdf-schema#
owlhttp://www.w3.org/2002/07/owl#
xsdhttp://www.w3.org/2001/XMLSchema#

レコード記述規則IDの省略

名前空間宣言がない場合、主規則はレコード記述規則ID [MAIN] の行を省いて、項目規則のみを列挙できる(つまり、入れ子規則がない記述規則は、項目規則の表のみで示すことができる)。