[White Paper]

T-Engine Forum
Ubiquitous ID Center
Specification
DRAFT
910-S004-0.00.05/UID-CO00003-0.00.05
2006-10-12

uBNF: ユビキタス ID アーキテクチャ仕様のためのBNF 記法
uBNF: BNF for ubiquitous ID architecture

T-Engine Forum
Ubiquitous ID Center Specification

910-S004-0.00.05/UID-CO00003-0.00.05

2

T-Engine Forum
Ubiquitous ID Center Specification

Number:Title:
Status:Date:

910-S004-0.00.05/UID-CO00003-0.00.05

910-S004-0.00.05/UID-CO00003-0.00.05
uBNF: ユビキタス ID アーキテクチャ仕様のための BNF 記法
uBNF: BNF for ubiquitous ID architecture[X] Working Draft, [ ] Final Draft for Voting, [ ] Standard
2006/10/12

Copyright (C) 2006, Ubiquitous ID Center, T-Engine Forum, all rights reserved.

3

T-Engine Forum
Ubiquitous ID Center Specification

910-S004-0.00.05/UID-CO00003-0.00.05

目次（Table of Contents）
はじめに.............................................................................................................................................................................. 5
規定範囲......................................................................................................................................................................... 5
本書の位置付け .......................................................................................................................................................... 5
参照規定......................................................................................................................................................................... 5
用語定義.............................................................................................................................................................................. 5
1. 規則定義 ....................................................................................................................................................................... 6
1.1. 命名規則................................................................................................................................................................ 6
1.2. 規則形式................................................................................................................................................................ 6
1.3. 文字 ......................................................................................................................................................................... 6
2. 演算子定義 .................................................................................................................................................................. 82.1. 名前生成................................................................................................................................................................ 82.2. 結合 ......................................................................................................................................................................... 82.3. 選択 ......................................................................................................................................................................... 82.4. 逐次選択................................................................................................................................................................ 92.5. 値範囲選択........................................................................................................................................................... 92.6. 順序グループ....................................................................................................................................................... 92.7. 可変回の繰り返し ............................................................................................................................................102.8. 特定繰り返し ......................................................................................................................................................102.9. オプション.............................................................................................................................................................102.10. コメント................................................................................................................................................................112.11. 演算子の優先度.............................................................................................................................................11
3. uBNF による uBNF 定義と予約規則名.............................................................................................................123.1. 核となる規則 ......................................................................................................................................................123.2. uBNF の uBNF による定義 ............................................................................................................................124

T-Engine Forum
Ubiquitous ID Center Specification

910-S004-0.00.05/UID-CO00003-0.00.05

uBNF: ユビキタス ID アーキテクチャ仕様のためのBNF 記法
uBNF: BNF for ubiquitous ID architecture

はじめに規定範囲
本仕様書は，ユビキタス ID アーキテクチャの各仕様書でプロトコルやフォーマットを記述する際の記法を規定するものである．

本書の位置付け
本仕様書は，ユビキタス ID アーキテクチャの各仕様書がプロトコルやフォーマットを記述する際の形式を規定するものである．プロトコルやフォーマットを記述する際に，BNF（Backus-Naur Form）記法が一般的に用いられるが，その記述方式は種々に拡張されている．本仕様書はその BNF 拡張方式のうちの Augmented
BNF[1]を基本とする．ただし，その一部の記法を拡張する．

参照規定[1] The Internet Engineering Task Force (IETF), “Augmented BNF for Syntax
Specifications: ABNF”, RFC4284, 2005.

用語定義
本文中で定義する．

5

T-Engine Forum
Ubiquitous ID Center Specification

910-S004-0.00.05/UID-CO00003-0.00.05

1. 規則定義
本章では，ユビキタス ID アーキテクチャ仕様が使用する BNF 形式（uBNF）の規則を規定する．本規則は基本的に BNF[1]と同一であるが，規則名として使用できる文字にアンダーバー”_”を追加した．

1.1. 命名規則
規則の名前を規則名（Rule Name）という．規則名はその名前自身である．すな
わち，アルファベット文字から始まり，アルファベットと数字文字とハイフン（ダッシュ）とアンダーバーが続く列である．
オリジナルの BNF では規則名に山括弧（“<”，“>”）を要するが，本規則では必ずしも必要としない．ただし，それが規則名であることを明示するために，規則名を山括弧（“<”， “>”）でくくって表現することがある．
規則名は大文字・小文字を区別しない．つまり，<name>，<Name>，<nAmE>はすべて同じ規則を表す．

1.2. 規則形式
規則は次の列で定義される．
<name> = <elements> <crlf>
ここで，<name>は規則名であり，<elements>は 1 つ以上の規則名または文字，<crlf>は「行末」表示（キャリッジリターンに続くラインフィード）である．等号は規則名と規則の定義を分離するものである．<elements>は本仕様が規定する種々の演算子で結合された，1 つ以上の規則名や値定義の列であり，これを要素と呼ぶ．
<name>と等号，ならびに等号と<elements>の間に 0 つ以上の空白スペース（空白または水平タブ）を含めてもよい．
規則は左詰めで標記する．規則が 2 行以上を要するときは，継続行は 1 つ以上の空白スペースを補って字下げする．左詰めと字下げは，規則定義の最初の行と関係がある．すなわち，規則の左詰めとは，文書の左端から記述することとは限らない．

1.3. 文字規則は，最終的に文字と呼ばれる列に変換される．文字とは非負整数をいう．文
字は以下のいずれかの方法で記述される．
（１）

リテラルテキスト文字列を用いた表現
引用符で囲われたリテラルテキスト文字列は大文字・小文字を区別しな
6

T-Engine Forum
Ubiquitous ID Center Specification

910-S004-0.00.05/UID-CO00003-0.00.05

い文字である．たとえば“abc”は，“abc”，“Abc”，“aBc”，“abC”，“ABc”，“aBC”，“AbC”，“ABC”のいずれかに一致する文字列である．大文字・小文字の区別を要する場合は，次の「値範囲選択」演算子%を用いた表
現を用いること．
（２）「値範囲選択」演算子%を用いた表現「値範囲選択」演算子%を用いて文字を表現する．この形式で表現する文字のベースは以下の 3 通りである．これをベース指定子と呼ぶ．
“b”

2 進数標記“d”

10 進数標記“x”

16 進数標記

たとえば，アスキーコード（US-ASCII）におけるキャリッジリターン文字
は，%d13 または%x0D と表現する．

7

T-Engine Forum
Ubiquitous ID Center Specification

910-S004-0.00.05/UID-CO00003-0.00.05

2. 演算子定義
本章では，規則を定義する際に使用する演算子（Operator）を定義する．演算子は基本的に BNF[1]と同一であるが，選択演算子に縦棒（”|”，%0x2F）を追加してある．

2.1. 名前生成<name>という名前が<elements>という要素の集合であると規定する規則を名前生成（Names formation）と呼ぶ．名前生成は，名前と要素の集合を等号で結んで表現する．すなわち，以下の通りである．
<name> = <elements>

2.2. 結合<rule1> と <rule2> を こ の 順 に 並 べ る こ と を <rule1> と <rule2> の 結 合（Concatenation）という．<rule1>と<rule2>の結合は，その 2 つの規則の間に 1 つ以上の空白スペース（空白または水平タブ）を補った列で表現する．すなわち，以下の通りである．
<rule1> <rule2>
たとえば，以下のように定義される<aba>は，小文字文字列“aba”に一致する．
<rule1> = %x61;a<rule2> = %x62;b<aba>= <rule1> <rule2> <rule1>

2.3. 選択<rule1> と <rule2> の い ず れ か 一 方 を と る こ と を <rule1> と <rule2> の 選 択（Alternatives）という．<rule1>と<rule2>の選択は，その 2 つの規則の間に縦棒（”|”，%x7c）またはフォワードスラッシュ（”/”，%x2F）を補った列で表現する．すなわ
ち，以下の通りである．
<rule1> | <rule2><rule1> / <rule2>
たとえば，以下のように定義される<aorb>は，小文字文字列“a”または小文字文字列“b”に一致する．
<rule1> = %x61;a<rule2> = %x62;b<aorb>= <rule1> | <rule2>8

T-Engine Forum
Ubiquitous ID Center Specification

910-S004-0.00.05/UID-CO00003-0.00.05

ただし，1 規則に使用する選択演算子は，“|”または“/”いずれかであること．両方を混在させてはならない．

2.4. 逐次選択
最初の規則がいくつかの選択肢に一致し，後の規則が選択を付け加える場合，後の規則を逐次選択（Incremental Alternatives）と呼ぶ．逐次選択は規則名と規則列を分割する等号“=”と，選択演算子である“|”または“/”をこの順に並べて表現する．すなわち，以下の通りである．
<oldrule> =| <additional-alternatives><oldrule> =/ <additional-alternatives>
たとえば，規則集合<ruleset> = <rule1> | <rule2><ruleset> =| <rule3>
は，次の規則と等価である．
<ruleset> = <rule1> | <rule2> | <rule3>
ただし，1 規則に使用する選択演算子は，“|”または“/”いずれかであること．両方を混在させてはならない．

2.5. 値範囲選択
ある有限数のいずれかの文字を表すことを値範囲選択（Value Range）と呼ぶ．
値範囲選択は，パーセント記号”%”，ベース指定子，下限値，ドット（”-“，%x2D），上限値をこの順に並べた列で表現する．すなわち，以下の通りである．
%c##-##
上限値と下限値が等しい場合，ハイフン“-”，上限値を省略できる．また，値範囲が連続値でない場合は，それぞれの値をドット（“.”，%x2E）で区切って標記する．
例えば，以下の 3 規則は等価である．
<DIGIT>= %x30-39<DIGIT>= %x30.31.32.33.34.35.36.37.38.39<DIGIT>= “0” | “1” | “2” | “3” | “4” |“5” | “6” | “7” | “8” | “9”

2.6. 順序グループ
厳密に順序づけられた規則の固まりを順序グループ（Sequence Group）と呼ぶ．
順序グループはその固まりを括弧で囲って表現する．すなわち，以下の通りである．
(<rule1> <rule2>)9

T-Engine Forum
Ubiquitous ID Center Specification

910-S004-0.00.05/UID-CO00003-0.00.05

たとえば，以下のように定義される<rule0>は， <rule1> <rule2> <rule4> または<rule1> <rule3> <rule4>に一致する．
<rule0> = <rule1> (<rule2> | <rule3>) <rule4>

2.7. 可変回の繰り返し同じ要素がある指定された範囲の回数繰り返されることを可変回の繰り返し（Variable Repetition）とよぶ．可変回の繰り返しは，繰り返される要素の前に繰り返
し回数の下限の 10 進数表現，アスタリスク（”*”，%x2A），繰り返し回数の上限の 10進数表現をこの順に並べて表現する．すなわち<a>，<b>を繰り返し回数を示す 10進数表現として以下の通りである．
<a>*<b><element>
ただし，下限値が 0 であるときは下限値を，上限値が無限大であるときは上限値を省略する．
例えば，以下にように定義される<zeros>は，“0”， “00”， “000”のいずれかに一致する．
<zeros> = 1*3”0”2.8. 特定繰り返し
同 じ 要 素 が あ る 指 定 さ れ た 回 数 繰 り 返 さ れ る こ と を 特 定 繰 り 返 し （ SpecificRepetition）とよぶ．特定繰り返しは，繰り返される要素の前に繰り返し回数の 10 進数表現を補って表現する．すなわち<n>を繰り返し回数を示す 10 進数表現として以下の通りである．
<n><element>
これは，<n>*<n><element>と等価である．

2.9. オプション
任意に含められる要素をオプション（Optional Sequence）と呼ぶ．オプションは，その要素または要素の組を角括弧で囲って表現する．すなわち，以下の通りである．
[<rule1> <rule2>]
これは，*1(<rule1> <rule2>)と等価である．

2.10. コメント
人間が読むために，規則を自然言語で補完したものをコメント（Comment）と呼ぶ．
コメントはセミコロン（”;”，%x3B）から行末までの文字である．

10T-Engine ForumUbiquitous ID Center Specification

910-S004-0.00.05/UID-CO00003-0.00.05

2.11. 演算子の優先度
本章で定義した演算子は，次に示す優先度をもつ．上にあるものほど優先度が高い，すなわち結合が強い．
文字列・名前生成
コメント
値範囲
繰り返し
順序グループ・オプション
結合選択

11

T-Engine Forum
Ubiquitous ID Center Specification

910-S004-0.00.05/UID-CO00003-0.00.05

3. uBNF による uBNF 定義と予約規則名
本章では，本仕様で規定した uBNF に基づいて uBNF を規定する．なお，本章で規定する規則名は uBNF 予約とする．

3.1. 核となる規則
アルファベット，10 進数標記などの uBNF の核となる規則を定義する．これは，[1]に記述されている核規則（Core Rules）と同一である．
ALPHA=%x41-5A | %x61-7A; A-Z|a-z

BIT=“0” | “1”CHAR=%x01-7F

CR

=%x0D

CRLF

=CR LF

CTL=%x00-1F | %x7F; 制御文字

DIGIT=%x30-39; 0-9

DQUOTE=%x22; “（ダブルクォート）

HEXDIG=DIGIT | “A” | “B” | “C” | “D” | “E” |”F”

HTAB=%x09; 水平タブ

LF

=%x0A

; ラインフィード

LWSP=*(WSP | CRLF WSP)

; 連続空白スペース

OCTET=%x00-FF; 8 ビットデータ

SP

=%x20

VCHAR

=%x21-7E; 印刷可能文字

WSP=SP | HTAB; 空白スペース; NULL を除く ASCII 文字

3.2. uBNF の uBNF による定義
uBNF の文法定義を uBNF によって記述する．これは，基本的に[1]の「ABNF による ABNF の定義」と同一だが，本仕様による拡張分を追記してある．
<rulelist>= 1*(<rule> | (*<c-wsp> <c-nl>))<rule>= <rulename> <defined-as> <elements> <c-nl><rulename> = ALPHA *(ALPHA | DIGIT | “-“ | “_”)<defined-as>= *<c-wsp> (“=” | “=|” | “=/”) *<c-wsp><elements> = <alternation> *<c-wsp>
12

T-Engine Forum
Ubiquitous ID Center Specification

910-S004-0.00.05/UID-CO00003-0.00.05<c-wsp>= WSP | (<c-nl> WSP)

<c-nl>= <comment> | CRLF

<comment>= “;” *(WSP | VCHAR) CRLF

<alternation>= <concatenation> *(*<c-wsp> <concatenation>)<concatenation>= <repetition> *(1*<c-wsp> <repetition>)<repetition>= [<repeat>] <repeat><repeat>= 1*DIGIT | (*DIGIT “*” *DIGIT)<element>= <rulename> | <group> | <option> | <char-val> |<num-val> | <prose-val><group>= “(” *<c-wsp> <alternation> *<c-wsp> “)”<option>= “[” *< c-wsp> <alternation> *<c-wsp> “]”<char-val> = DQUOTE *(%x20-21 | %x23-7E) DQUOTE; ダブルクウォートを除く VCHAR または; スペースからなる文字列<num-val> = “%” (<bin-val> | <dec-val> | <hex-val>)<bin-val>= “b” 1*BIT [1*(“.” 1*BIT) | (“-” 1*BIT)]<dec-val>= “d” 1*DIGIT [1*(“.” 1*DIGIT) | (“-” 1*DIGIT)]<hex-val>= “x” 1*HEXDIG[1*(“.” 1*HEXDIG) | (“-” 1*HEXIDG)]<prose-val>= “<” *(%20-3D | %x3F-7E) “>”

13

T-Engine ForumUbiquitous ID Center Specification

910-S004-0.00.05/UID-CO00003-0.00.05索引

あこ値範囲選択 .............................................................................10コメント.......................................................................................11おしオプション .................................................................................11順序グループ .........................................................................10かせ可変回の繰り返し.................................................................11選択 .............................................................................................. 9きち規則名 ......................................................................................... 7逐次選択 ..................................................................................10くと繰り返し特定繰り返し...........................................................................11可変回の繰り返し ........................................11
特定繰り返し ...............................................11

な名前生成 .................................................................................... 9け
結合 .............................................................................................. 9へ
ベース指定子 ........................................................................... 814

T-Engine Forum
Ubiquitous ID Center Specification

910-S004-0.00.05/UID-CO00003-0.00.05

Copyright (C) 2006, Ubiquitous ID Center, T-Engine Forum, all rights reserved.
15