NGSIとは
もともとは日本で策定されたネットワークAPIの規格
異なるアプリケーション間で連携するためのインタフェース
これが、欧州の官民連携プロジェクトで標準規格として定めれられたFIWAREにてNGSIをベースにされたことから、世界的に標準としての時流が起こりつつある。
NGSIのタイプ
以上の3つのバージョンが2020年1月現在、公開されている。
- NGSI v1
- NGSI v2
- NGSI-LD
簡単な差分
NGSI v1
OMA-NGSIオリジナルのNGSI RESTfulバインディング
NGSI v2
v1から改良され、単純化されたOMA-NGSIのバインディング
NGSI-LD
v2までのメタデータ記載は不要になった。
EntityとEntityを関連付けるRelationshipが表層化された。
[NEW!]GeoProperty(v2では、geo:json)
[NEW!]TemporalProperty(v2ではDatetime)
モデル上での違い
NGSI-LDモデル詳細
基本的には、
Entity1-Relationship-Entity2
Entity-Property-Value
Relationship-Property-Value
Property-Property-Value
の法則でInformation Modelを形成していく。
NGSI-LD JSONモデル詳細
Entity単位で形成される。
Entity内にRelationship、Property、Valueを記載する。
最後尾の@contextでNGSI-LDであることを定義
違いまとめ
NGSI-LDは
・PropertyGraphModelである→v2は、Entity-Attribute-metadata構造であり、データ同士のLinkは意識しない(表層化しない)
・EntityIDがURI(URL,URN)であること→v2はentity内のid属性値
・metadata dictはなくなり、メタデータ系はPropertyのネスト構造で表現されている。
・ただし、いくつかのメタデータはある(unitCodeやobservedAtなど)
・Entity間を結ぶためのrelationshipという属性がある。(object間で使われる)
・Geospatial(地理空間)はGeopropertyという属性で扱われる
・属性の型はProperty,Relationship,GeoPropertyでのみ扱われる
・@contextで一意なURLを作ることができる。
・RESTfulな定義はv2とほほ同じ
参考資料
https://fiware-tutorials.letsfiware.jp/Linked-Data/
https://fiware-datamodels.readthedocs.io/en/latest/ngsi-ld_faq/index.html#q-what-are-the-main-essential-differences-between-ngsi-v2-and-ngsi-ld