識別子

使用可能な文字

2023-04-01

  NGSI V2では、idの値、Entity type、Attribute名、Metadata名、Attribute type、Metadata type等の各種文字列を「識別子」と呼び、同時に識別子について規定しています 。一般的には識別子と言う呼び方以外に、識別名や一意名と呼ぶ場合もありますが、本協議会では識別子と呼ぶことにします。識別子はその名の通り識別するための名前です。このため、識別子は各々他と異なった名前である必要があります。識別子は1文字から256文字までの長さの文字列です。また、使って良い文字は以下の通りです。

 半角英数字, “-“, “.”, “_”, “~”

ここでいう半角英数字とは、ASCIIの文字セットの英数字という意味です。表示する際のフォントが半角であるかどうかは関係ありません。
使って良い文字はNGSI V2の規定よりも少なくなっています。理由は以下の通りです。

  • NGSI V2の後継であるNGSI-LDに移行する際の互換性確保
  • JSONで特別な意味を持っている文字を利用することによる視認性低下の回避
  • WindowsとLinuxで動作が違う文字利用の回避
  • URL中に記述した際のセキュリティーリスクの回避
  • デジタル庁で推奨モジュールとしているFiware/Orionではサポートしてない文字の利用の回避

用途別ルール

2023-04-01/2023-04-11

Entity type, Attribute type, Metadata type

 識別子の規則に加え、以下の規則にも従う必要があります。

  • アメリカ英単語から構成されること
  • 先頭の文字は大文字であること。複数の単語が含まれる場合は単語の間は空けることなく単語を連続してつなげる、キャメルケースとすること。例えば”PostalAddress”などとなります
  • 使おうとするEntityのデータモデルが既に定義されている場合は、既存の定義を再利用すること
Attribute name, Metadata name

 識別子の規則に加え、以下の規則にも従う必要があります。

  • アメリカ英単語から構成されること
  • 先頭の文字は小文字であること。複数の単語が含まれる場合は単語の間は空けることなく単語を連続してつなげる、キャメルケースとすること。例えば”postalAddress”などとなります
  • “使おうとするEntityのデータモデルが既に定義されている場合は、既存の定義を再利用すること
  • Attribute nameには次の文字列は使用不可です。”id”, “type”, “geo:distance”, “orderby”, “dateCreated”, “dateModified”, “dateExpires”および”*”
  • Metadata nameには次の文字列は使用不可です。”dateCreated”, “dateModified”, ” previousValue”, ” actionType”および”*”
id

 識別子の規則に加え、以下の規則にも従う必要があります。これは、NGSI-LDの互換性を確保するためです。

  • 先頭の文字列は、”urn:ngsi-ld:”であること。それに続く文字列はEntity typeの文字列であること。それに続き”:”(コロン)を挟んで当該Entity typeの全てのEntityの中でユニークな文字列である事
    “例えば、”urn:ngsi-ld:Organization:AbCd-0001″などとなります。識別子にはコロン(“:”)が使えない規則となっていましたが、本規定で明示している箇所だけは利用します。これは、URNの規則でセミコロンは区切り文字として定義されているためであり、逆に言うとid内でも他の箇所に使う事は出来ません

Attributeの追加定義

2023-04-01

 システム固有のAttributeを定義する場合は、Attribute nameは”x-“で始まる識別子とします。この”x”は小文字とします。
 この形式以外のAttributeを追加定義する場合は、事前に本協会に相談が必要です。これは、同じ識別子が複数のシステムで使われることを避けるためと、追加した識別子も他のシステムと共通化されることを目指すためです。