このページの先頭です
このページの本文へ移動
ホームへ

情報連携に不可欠な基本情報やツールを提供するサイトです

サイトメニューここまで

本文ここから

構造化項目名記法

1. 概要

構造化項目名記法は、階層構造をもつデータの位置を文字列によって表現するための仕様です。構造化項目名記法を利用することで、階層構造をもつデータを表形式のデータとして表現することができるようになるため、 階層構造をもつデータの表計算ソフトウェアによる編集や、表計算ソフトウェアなどで作成されたデータから階層化されたデータへの効率的な変換ができるようになります。

2. 構造化項目名記法の基本

構造化項目名記法の基本構造は、 クラス用語>プロパティ用語>プロパティ用語>・・・ のように「>」又は「>」で区切って一つのクラス用語と 任意の数のプロパティ用語を並べたものになっています。非常に簡単な例を次に示します。

例1
人>氏名>姓, 人>氏名>名
図1: 人の氏名の階層構造
図1: 人の氏名の階層構造

3. グループ名の利用

各用語の後ろには、「【」と「】」又は「[」と「]」に囲まれた任意の文字列をグループ名として記述することができます。同じプロパティを複数使う場合などには、 グループ名を使用することでプロパティを区別することができます。同じグループ名をもつ用語の同一のインスタンスを表します。

グループ名を使用した例を次に示します。

例2
人>氏名【本名】>姓, 人>氏名【本名】>名, 人>氏名【ペンネーム】>性名

この例は、図2のような階層構造を表しています。ここで、上側の「氏名」は氏名【本名】を表しています。実際のデータ構造にはグループ名は反映されません。 例1ではグループ名を指定していませんでしたが、その場合共通部分は同じインスタンスを表します。例1では、「人>氏名」が共通ですので、図1のように人及び氏名は、 同一のインスタンスを表します。

図2: 氏名・ペンネーム併用の階層構造
図2: 氏名・ペンネーム併用の階層構造

また、グループ名は同じプロパティを一つだけ使用する場合にも付けることができるので、次の例のように単にラベルとして使用することもできます。

例3
施設>名称【学校名】>表記、施設>種別【分類】

既存の表形式データに構造化項目名記法を適用する場合などに、既存の項目ラベルをグループ名として使用するなどの使い方が考えられます。

4. 主キーの設定

データを作成する場合には、データに含まれる事物を正しく参照できるようにするためにデータ中の各事物に一意のキーを与える必要があります。 例えば、施設の一覧であれば各施設を一意に特定するためのキーが必要になります。表形式データの行番号を用いることは推奨されません。20行目記載された施設は、 途中の行が削除されてしまうと19行目になってしまいます。このように、行番号と各施設の対応は変わってしまうからです。 各施設に、将来にわたって変わることがない番号や文字列を与えるのが理想的です。そのような番号や文字列を与えることが難しい場合は、 施設の名称や電話番号など変化しないものをキーとすることで代用します。 構造化項目名記法では、先頭に「*」又は、「*」を付けることでその項目を主キーとすることを指定することができます。

次の例は、施設の名称を主キーとして設定しています。

例4
*施設>名称>表記、施設>名称>カナ表記、施設>種別、・・・

上記の例の場合、将来にわたって名称が変わらないことが前提になっていることに注意してください。 プロパティの値ではなく、主キーとして別途決めた値を利用する場合には、次の例のようにプロパティを指定せずに主キーを設定することができます。

例5
*施設、施設>名称>表記、施設>名称>カナ表記、施設>種別、・・・

5. URL変換

項目の内容を値としてデータに含めるのではなく、インターネット上にあるリソースを参照としたい場合があります。例えば、施設の関連施設のデータがすでにインターネット上にある場合、 その関連施設の名称、電話番号や住所をデータの中に含めるよりも、その施設のデータを参照した方が効率的です。このように、その項目の内容をURLとして扱う必要がある場合があります。 構造化項目名記法では、最後を>(又は、>)で終了することで、内容をURLとして扱うことを表します。

次に例を示します。

例6
*施設、施設>名称>表記、施設>関連施設>

6. 名前空間の指定

構造化項目名記法では、名前空間の指定は行いません。用語の名前空間の解決は変換するツール等などが行うことになっています。 しかし、異なるドメインに同じ名前の用語があり(共通語彙基盤では、このような重複は、可能な限り避けることが求められています)、 どちらも使用したい場合など特殊な場合には、次の例のように、名前空間プレフィックスを指定して区別することができます。この場合も、 プレフィックスから名前空間への変換はツール等が行うことになっています。

次に例を示します。

例7
固有施設>A県:施設分類、固有施設>B市:施設分類

7. 解釈

7.1 概要

この章では、構造化項目名記法にしたがって記述された一つ又は複数の文字列を構造化されたデータに変換する際の解釈について説明します。

構造化項目名記法では、≪日本語参照名≫の集合としてデータ全体の構造を表現する。≪日本語参照名≫は次のような構文によって表現される。

≪日本語参照名≫ :
  ≪主キー指定子≫ ≪クラス項目≫
  | ≪主キー指定子≫? ≪クラス項目≫ ≪プロパティ列≫+ ≪言語指定子≫?
  | ≪主キー指定子≫? ≪クラス項目≫ ≪プロパティ列≫+ ≪言語指定子≫? ≪連結演算子≫

各≪日本語参照名≫における≪クラス項目≫、及び、それに続く複数の≪プロパティ項目≫によって構成される列はデータ構造中のクラス用語又は値を参照する。

例えば、構造化項目名記法により表現されるデータ構造が図3のようなものであるとき、「人>氏名」は氏名型のクラス用語を参照し、「人>氏名>姓」はxsd:string 型の値を参照する。

図3: 人の氏名の階層構造
図3: 人の氏名の階層構造

複数の≪日本語参照名≫があるとき、先頭からの項目の並びが共通である部分は同一のインスタンスを参照する。例えば、図3の例において、 「人>氏名>姓」と「人>氏名>名」の2つの≪日本語参照名≫の共通部分である「人>氏名」は同一の氏名型のインスタンスを参照する。

≪日本語参照名≫が≪主キー指定子≫をもつ場合、その項目の値が主キーとなる。主キーの指定には、主キー専用の項目を設ける方法とプロパティの値を主キーとして使用する方法の二つの方法が用意されている。

≪日本語参照名≫の構文のうち「≪主キー指定子≫ ≪クラス項目≫」の形式の構文では、その項目は主キー専用の値となりデータの値としては利用されず、RDF等に変換される場合にリソースの識別子として利用される。

その他の構文では、その≪日本語参照名≫によって参照される値が主キーとなる

≪日本語参照名≫に≪言語指定子≫が指定された場合、≪言語指定子≫の≪言語名≫は、JIS X 0412-1 の規定にもとづき表記された2つの英字からなる言語名として解釈され、その≪日本語参照名≫によって参照される値の言語となる

7.2 クラス項目、及び、プロパティ項目

クラス項目とプロパティ項目(本節では、クラス項目とプロパティ項目を合わせて「項目」と呼ぶ)は、構文上の違いはなく、先頭に現れた項目がクラス項目、それに続く複数の項目がプロパティ項目として解釈される。

≪クラス項目≫ :
≪名前空間プレフィックス指定子≫? ≪クラス用語名≫ ≪グループ指定子≫?

≪プロパティ項目≫ :
≪名前空間プレフィックス指定子≫? ≪プロパティ用語名≫ ≪グループ指定子≫?

構造化項目名記法では、名前空間は指定されない。名前空間の解決は構造化項目名記法を解釈するツール等に委ねられる。日本語シリアライズを解釈するツールは、 あらかじめ適切に優先順位付けされた特定の語彙を参照する名前空間のリストをもっていることが求められる。 ≪クラス項目≫と≪プロパティ項目≫とで名前空間の解決の仕組みに違いはないので、ここでは、≪クラス項目≫を例にツールに期待される名前空間の解決方法を説明する。 ≪クラス項目≫に≪名前空間プレフィックス指定子≫がない場合、前述の名前空間のリストの優先順位にしたがって、名前空間に≪クラス用語名≫に一致する用語が定義されているかどうかを 調べていき、最初に見つかった用語を≪クラス項目≫として採用する。与えられたすべての名前空間によって参照される語彙に一致する用語が見つからなかった場合はエラーとなる。 項目に≪名前空間プレフィックス指定子≫が指定されている場合には、上記の優先順位によらず、ツールにあらかじめ与えられた名前空間プレフィックス名と名前空間の対応リストにより 名前空間を決定する。指定された名前空間によって参照される語彙に該当する用語が見つからなかった場合はエラーとなる。 ≪プロパティ項目≫についても同様な方法によって名前空間が解決される。

項目に≪グループ指定子≫が指定されている場合、≪クラス項目≫及びそれに続く≪プロパティ項目≫のすべてが同一でかつ≪グループ名≫が一致する場合に同一のインスタンスを表すものとして解釈される。 例えば、人>氏名【本名】>姓、人>氏名【本名】>名、人>氏名【芸名】>姓、人>氏名【芸名】>名 の解釈では、図4のように二つに共通して現れる、人>氏名【本名】は同一のインスタンスとして解釈され、 人>氏名【本名】と人>氏名【芸名】は異なるインスタンスとして解釈される。

同一≪グループ名≫をもつものが存在しなくてもエラーとはならず、その場合は解釈に影響を与えない。

図4: 氏名・芸名併用の階層構造
図4: 氏名・芸名併用の階層構造

7.3 URL変換

≪日本語参照名≫が「≪主キー指定子≫? ≪クラス項目≫ ≪プロパティ列≫+ ≪言語指定子≫? ≪連結演算子≫」という形式の場合は、参照される値は値ではなく他のリソースを参照するURLとして解釈される。

8. 字句構造

≪日本語参照名≫ :
  ≪主キー指定子≫ ≪クラス項目≫
  |		   ≪主キー指定子≫? ≪クラス項目≫ ≪プロパティ列≫+ ≪言語指定子≫?
  |		   ≪主キー指定子≫? ≪クラス項目≫ ≪プロパティ列≫+ ≪言語指定子≫? ≪連結演算子≫
  ≪クラス項目≫ :
  ≪名前空間プレフィックス指定子≫? ≪クラス用語名≫ ≪グループ指定子≫?
  ≪名前空間プレフィックス指定子≫ :
  ≪名前空間プレフィックス名≫ ":"
  ≪名前空間プレフィックス名≫ :
  ≪IMI項目名≫
  ≪クラス用語名≫ :
  ≪IMI項目名≫
  ≪グループ指定子≫ :
  "【" ≪グループ名≫ "】"
  | "[" ≪グループ名≫ "]"
  ≪主キー指定子≫ :
  "*" | "*" 
  ≪グループ名≫ :
  ≪グループ名文字≫+
  ≪グループ名文字≫ ::
  [^:【】\[\]@@>>*]
  ≪プロパティ列≫ :
  ≪プロパティ列≫? ≪連結演算子≫ ≪プロパティ項目≫
  ≪連結演算子≫ :
  ">" | ">"
  ≪プロパティ項目≫ :
  ≪名前空間プレフィックス指定子≫? ≪プロパティ用語名≫ ≪グループ指定子≫?
  ≪プロパティ用語名≫ :
  ≪IMI項目名≫
  ≪言語指定子≫ :
  "@" ≪言語名≫ ,
  ≪言語名≫ ::
  ≪言語名文字≫ ≪言語名文字≫
  ≪言語名文字≫ ::
  "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j" | "k" | "l" | "m" | "n" | "o" | "p" | "q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" | "y" | "z" | "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I" | "J" | "K" | "L" | "M" | "N" | "O" | "P" | "Q" | "R" | "S" | "T" | "U" | "V" | "W" | "X" | "Y" | "Z"
  ≪IMI項目名≫ ::
  ( ≪文字≫ | "_" ) ≪IMI項目名文字≫*
  ≪IMI項目名文字≫ ::
  ≪文字≫ | ≪数字≫ | "." | "-" | "_" | ≪結合文字≫ | ≪拡張文字≫
  ≪空白文字≫ ::
  " " | " " | U+0009 | U+000A | U+000D
  ≪文字≫ ::
  ≪基底文字≫ | ≪イデオグラフ≫
  ≪基底文字≫ ::
  [U+0041-U+005A] | [U+0061-U+007A] | [U+00C0-U+00D6] | [U+00D8-U+00F6] | [U+00F8-U+00FF] | [U+0100-U+0131] | [U+0134-U+013E] | [U+0141-U+0148] | [U+014A-U+017E] | [U+0180-U+01C3] | [U+01CD-U+01F0] | [U+01F4-U+01F5] | [U+01FA-U+0217] | [U+0250-U+02A8] | [U+02BB-U+02C1] | U+0386 | [U+0388-U+038A] | U+038C | [U+038E-U+03A1] | [U+03A3-U+03CE] | [U+03D0-U+03D6] | U+03DA | U+03DC | U+03DE | U+03E0 | [U+03E2-U+03F3] | [U+0401-U+040C] | [U+040E-U+044F] | [U+0451-U+045C] | [U+045E-U+0481] | [U+0490-U+04C4] | [U+04C7-U+04C8] | [U+04CB-U+04CC] | [U+04D0-U+04EB] | [U+04EE-U+04F5] | [U+04F8-U+04F9] | [U+0531-U+0556] | U+0559 | [U+0561-U+0586] | [U+05D0-U+05EA] | [U+05F0-U+05F2] | [U+0621-U+063A] | [U+0641-U+064A] | [U+0671-U+06B7] | [U+06BA-U+06BE] | [U+06C0-U+06CE] | [U+06D0-U+06D3] | U+06D5 | [U+06E5-U+06E6] | [U+0905-U+0939] | U+093D | [U+0958-U+0961] | [U+0985-U+098C] | [U+098F-U+0990] | [U+0993-U+09A8] | [U+09AA-U+09B0] | U+09B2 | [U+09B6-U+09B9] | [U+09DC-U+09DD] | [U+09DF-U+09E1] | [U+09F0-U+09F1] | [U+0A05-U+0A0A] | [U+0A0F-U+0A10] | [U+0A13-U+0A28] | [U+0A2A-U+0A30] | [U+0A32-U+0A33] | [U+0A35-U+0A36] | [U+0A38-U+0A39] | [U+0A59-U+0A5C] | U+0A5E | [U+0A72-U+0A74] | [U+0A85-U+0A8B] | U+0A8D | [U+0A8F-U+0A91] | [U+0A93-U+0AA8] | [U+0AAA-U+0AB0] | [U+0AB2-U+0AB3] | [U+0AB5-U+0AB9] | U+0ABD | U+0AE0 | [U+0B05-U+0B0C] | [U+0B0F-U+0B10] | [U+0B13-U+0B28] | [U+0B2A-U+0B30] | [U+0B32-U+0B33] | [U+0B36-U+0B39] | U+0B3D | [U+0B5C-U+0B5D] | [U+0B5F-U+0B61] | [U+0B85-U+0B8A] | [U+0B8E-U+0B90] | [U+0B92-U+0B95] | [U+0B99-U+0B9A] | U+0B9C | [U+0B9E-U+0B9F] | [U+0BA3-U+0BA4] | [U+0BA8-U+0BAA] | [U+0BAE-U+0BB5] | [U+0BB7-U+0BB9] | [U+0C05-U+0C0C] | [U+0C0E-U+0C10] | [U+0C12-U+0C28] | [U+0C2A-U+0C33] | [U+0C35-U+0C39] | [U+0C60-U+0C61] | [U+0C85-U+0C8C] | [U+0C8E-U+0C90] | [U+0C92-U+0CA8] | [U+0CAA-U+0CB3] | [U+0CB5-U+0CB9] | U+0CDE | [U+0CE0-U+0CE1] | [U+0D05-U+0D0C] | [U+0D0E-U+0D10] | [U+0D12-U+0D28] | [U+0D2A-U+0D39] | [U+0D60-U+0D61] | [U+0E01-U+0E2E] | U+0E30 | [U+0E32-U+0E33] | [U+0E40-U+0E45] | [U+0E81-U+0E82] | U+0E84 | [U+0E87-U+0E88] | U+0E8A | U+0E8D | [U+0E94-U+0E97] | [U+0E99-U+0E9F] | [U+0EA1-U+0EA3] | U+0EA5 | U+0EA7 | [U+0EAA-U+0EAB] | [U+0EAD-U+0EAE] | U+0EB0 | [U+0EB2-U+0EB3] | U+0EBD | [U+0EC0-U+0EC4] | [U+0F40-U+0F47] | [U+0F49-U+0F69] | [U+10A0-U+10C5] | [U+10D0-U+10F6] | U+1100 | [U+1102-U+1103] | [U+1105-U+1107] | U+1109 | [U+110B-U+110C] | [U+110E-U+1112] | U+113C | U+113E | U+1140 | U+114C | U+114E | U+1150 | [U+1154-U+1155] | U+1159 | [U+115F-U+1161] | U+1163 | U+1165 | U+1167 | U+1169 | [U+116D-U+116E] | [U+1172-U+1173] | U+1175 | U+119E | U+11A8 | U+11AB | [U+11AE-U+11AF] | [U+11B7-U+11B8] | U+11BA | [U+11BC-U+11C2] | U+11EB | U+11F0 | U+11F9 | [U+1E00-U+1E9B] | [U+1EA0-U+1EF9] | [U+1F00-U+1F15] | [U+1F18-U+1F1D] | [U+1F20-U+1F45] | [U+1F48-U+1F4D] | [U+1F50-U+1F57] | U+1F59 | U+1F5B | U+1F5D | [U+1F5F-U+1F7D] | [U+1F80-U+1FB4] | [U+1FB6-U+1FBC] | U+1FBE | [U+1FC2-U+1FC4] | [U+1FC6-U+1FCC] | [U+1FD0-U+1FD3] | [U+1FD6-U+1FDB] | [U+1FE0-U+1FEC] | [U+1FF2-U+1FF4] | [U+1FF6-U+1FFC] | U+2126 | [U+212A-U+212B] | U+212E | [U+2180-U+2182] | [U+3041-U+3094] | [U+30A1-U+30FA] | [U+3105-U+312C] | [U+AC00-U+D7A3]
  ≪イデオグラフ≫ ::
  [U+4E00-U+9FA5] | U+3007 | [U+3021-U+3029]
  ≪結合文字≫ ::
  [U+0300-U+0345] | [U+0360-U+0361] | [U+0483-U+0486] | [U+0591-U+05A1] | [U+05A3-U+05B9] | [U+05BB-U+05BD] | U+05BF | [U+05C1-U+05C2] | U+05C4 | [U+064B-U+0652] | U+0670 | [U+06D6-U+06DC] | [U+06DD-U+06DF] | [U+06E0-U+06E4] | [U+06E7-U+06E8] | [U+06EA-U+06ED] | [U+0901-U+0903] | U+093C | [U+093E-U+094C] | U+094D | [U+0951-U+0954] | [U+0962-U+0963] | [U+0981-U+0983] | U+09BC | U+09BE | U+09BF | [U+09C0-U+09C4] | [U+09C7-U+09C8] | [U+09CB-U+09CD] | U+09D7 | [U+09E2-U+09E3] | U+0A02 | U+0A3C | U+0A3E | U+0A3F | [U+0A40-U+0A42] | [U+0A47-U+0A48] | [U+0A4B-U+0A4D] | [U+0A70-U+0A71] | [U+0A81-U+0A83] | U+0ABC | [U+0ABE-U+0AC5] | [U+0AC7-U+0AC9] | [U+0ACB-U+0ACD] | [U+0B01-U+0B03] | U+0B3C | [U+0B3E-U+0B43] | [U+0B47-U+0B48] | [U+0B4B-U+0B4D] | [U+0B56-U+0B57] | [U+0B82-U+0B83] | [U+0BBE-U+0BC2] | [U+0BC6-U+0BC8] | [U+0BCA-U+0BCD] | U+0BD7 | [U+0C01-U+0C03] | [U+0C3E-U+0C44] | [U+0C46-U+0C48] | [U+0C4A-U+0C4D] | [U+0C55-U+0C56] | [U+0C82-U+0C83] | [U+0CBE-U+0CC4] | [U+0CC6-U+0CC8] | [U+0CCA-U+0CCD] | [U+0CD5-U+0CD6] | [U+0D02-U+0D03] | [U+0D3E-U+0D43] | [U+0D46-U+0D48] | [U+0D4A-U+0D4D] | U+0D57 | U+0E31 | [U+0E34-U+0E3A] | [U+0E47-U+0E4E] | U+0EB1 | [U+0EB4-U+0EB9] | [U+0EBB-U+0EBC] | [U+0EC8-U+0ECD] | [U+0F18-U+0F19] | U+0F35 | U+0F37 | U+0F39 | U+0F3E | U+0F3F | [U+0F71-U+0F84] | [U+0F86-U+0F8B] | [U+0F90-U+0F95] | U+0F97 | [U+0F99-U+0FAD] | [U+0FB1-U+0FB7] | U+0FB9 | [U+20D0-U+20DC] | U+20E1 | [U+302A-U+302F] | U+3099 | U+309A
  ≪数字≫ ::
  [U+0030-U+0039] | [U+0660-U+0669] | [U+06F0-U+06F9] | [U+0966-U+096F] | [U+09E6-U+09EF] | [U+0A66-U+0A6F] | [U+0AE6-U+0AEF] | [U+0B66-U+0B6F] | [U+0BE7-U+0BEF] | [U+0C66-U+0C6F] | [U+0CE6-U+0CEF] | [U+0D66-U+0D6F] | [U+0E50-U+0E59] | [U+0ED0-U+0ED9] | [U+0F20-U+0F29]
  ≪拡張文字≫ ::
  U+00B7 | U+02D0 | U+02D1 | U+0387 | U+0640 | U+0E46 | U+0EC6 | U+3005 | [U+3031-U+3035] | [U+309D-U+309E] | [U+30FC-U+30FE]

    

本文ここまで