都市OS利活用協議会

識別子


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

.用途別ルール

Entity type, Attribute type, Metadata type

 識別子の規則に加え、以下の規則にも従う必要があります。
  • アメリカ英語から構成されること
  • 先頭の文字は大文字であること。複数の単語が含まれる場合は単語の間は空けることなく単語を連続してつなげる、キャメルケースとすること。例えば"PostalAddress"などとなります
  • 使おうとするEntityのデータモデルが既に定義されている場合は、既存の定義を再利用すること
  • Entity nameには":"を使用しないこと。これは、idが別の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:0001"などとなります


2023-04-01

.Attributeの追加定義

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