NGSI-LD

NGSI-LD 是用于发布、查询和订阅语境信息的数据模型和应用程序接口(API)。在不同利益相关者之间，NGSI-LD旨在促进结构化信息的公开交换和共享。当前NGSI-LD已用于智能城市、智能工业、智能农业等应用领域，更普遍地在物联网、网宇实体系统、系统体系和数字映射领域中被广泛使用。

根据欧洲联盟委员会的要求，NGSI-LD 是由欧洲电信标准协会(ETSI)通过工业规范组:语境信息管理(ISG CIM) 实施的标准化。欧盟的“信息及通信技术标准化滚动计划”详细说明了它的应用和进一步发展。NGSI-LD 建立在已有数十年历史的研究语料库的语境管理框架和语境建模方面之上。首字母缩略词 NGSI 代表“下一代服务接口”，这是一套最初由 OMA 发布的包括语境接口的规范，此规范后被欧洲未来互联网公私合作 (PPP) 采纳并演变为 NGSIv2，并在随后催生了 FIWARE 开源社区。

NGSI-LD 信息模型将语境信息表示为实体，实体与实体之间通过属性和关系描述。这个描述来源于属性图，模型中的语义在RDF 和语义网络框架的基础上被正式定义。它可以使用 JSON-LD 进行序列化。每个实体和关系都被赋予一个唯一的国际化资源标识符(IRI)，从而使相应的数据可以作为键连资料数据集导出。-LD 后缀表示这种从属关系属于键连资料领域。

## 设计

### 信息模型

NGSI-LD 信息模型可以被视为基于属性图的第一个正式标准组织的规范，属性图模型自2000年代初就作为图数据库中非正式模型出现。

核心概念是：

- 属性图是一个有向多重图，由通过有向链接连接的节点（顶点）组成，其中节点和弧都可以有多个可选的附加属性。
- 属性（类似于对象模型中的属性）具有任意键值对的形式。键是字符串，值是任意数据类型。与 RDF 图相反，属性不是图的弧。
- 关系是图的弧（有向边），它总是有一个标识符、一个开始节点和一个结束节点。

基于RDF/RDFS/OWL的概念和部分JSON-LD的定义， NGSI-LD 元模型定义了这些基本概念（实体、关系、属性）。

- NGSI-LD 实体是在对 NGSI-LD 的计算平台之外存在于现实世界中的某物（所指对象）的信息代表。这个所指对象不必是严格物理的（它可以是法律或行政实体），也不必是独立的（它可以是分布式系统级构念）。这种实体的任何实例都应该由 IRI 唯一标识，并通过引用一个或多个 NGSI-LD 实体类型来表征。在属性图语言中，它是一个节点。
- NGSI-LD 属性是一个将特性和NGSI-LD 值与 NGSI-LD 实体、NGSI-LD 关系或另一个 NGSI-LD 属性相关联的实例。属性的属性是明确允许并鼓励的，例如用于表示特定测量值的准确度。
- NGSI-LD 关系是主体（起点）（可能是 NGSI-LD 实体、NGSI-LD 属性或其他 NGSI-LD 关系）与客体（终点）即NGSI-LD 实体之间的有向链接。例如，从属性到实体的 NGSI-LD 关系可用于表示属性是由该实体测量的（测量来源）。
- NGSI-LD 值是 JSON 值（即字符串、数字、布尔、对象、数组）或 JSON-LD 类型值（即用词法形式的字符串作为类型以及值的表征，由 XSD 基本类型或更一般的 IRI 定义），或 JSON-LD 结构化值（即集合、列表或语言标记字符串）。
- NGSI-LD 类型是一个 OWL 类，它是 NGSI-LD 元模型中定义的 NGSI-LD 实体、NGSI-LD 关系、NGSI-LD 属性或 NGSI-LD 值类的子类。NGSI-LD 预定义了少量类型，但对用户定义的任何类型都是开放的。

作为该元模型的补充，NGSI-LD 信息模型规范还提供了一个跨域本体，该本体定义了与实体的空间、时间或系统组成特征相关的特性。

### 架构

NGSI-LD 规范由信息模型和 API 组成。API 提供了支持以下系统架构角色的功能。

<image>

- 语境消耗者(Context Consumer)：语境消耗者使用 NGSI-LD API 的语境信息消耗功能从语境代理（或可能直接从语境源）获取NGSI-LD 实体信息。它可以检索特定的 NGSI-LD 实体或使用同步请求查询相关的 NGSI -LD 实体。它还可以订阅相关的 NGSI-LD 实体并在请求的 NGSI-LD 实体发生变化时接收异步通知。
- 语境制造者(Context Producer)：语境制造者使用 NGSI-LD API 的语境信息提供在语境代理中创建、更新和删除 NGSI-LD 实体、NGSI-LD 属性和 NGSI-LD 关系的功能。
- 语境源(Context Source)：语境源通过 NGSI-LD API 的语境信息消耗功能使 NGSI-LD 实体可用。为了使语境代理可以发现信息，它使用 NGSI-LD API 的语境源注册功能注册可以向注册服务器提供的语境信息类型。
- 语境代理(Context Broker)：语境代理充当语境消耗者对语境信息的主要访问点。在语境制造者使用 NGSI-LD API 的语境信息提供功能提供了实体信息的情况下，或者在代理使用NGSI-LD API 的语境信息消耗功能从语境源请求NGSI-LD 实体信息的情况下，NGSI-LD 本体信息可以由语境代理本身存储。语境代理聚合与请求相关的所有 NGSI-LD 实体信息，并将聚合结果返回给语境消耗者。在订阅的情况下，只要实体信息有相关更改，语境代理就会发送通知，这可以是从语境源接收通知的结果。为了查找可能具有与语境消耗者请求相关的 NGSI-LD 实体的语境源，语境代理使用注册服务器实现NGSI-LD API 的语境源发现功能。
- 注册服务器(Registry Server)：注册服务器使用 NGSI-LD API 的语境源注册功能存储语境源提供的语境源注册。语境源注册包含有关语境源可以提供什么类型的语境信息的信息，但不包含实际值。语境信息的种类可以在不同的粒度级别上提供，范围从非常详细的信息（例如特定 NGSI-LD 实体的某些属性或关系），到特定 NGSI-LD 实体的任何信息，或到具有特定实体类型的 NGSI-LD 实体的级别，比如适用于制定的地理区域的实体。NGSI-LD API 的语境源发现功能允许语境代理（或可能是语境消耗者）找到可能具有相关 NGSI-LD 实体的语境源。

系统架构的角色允许实现不同的部署架构。在集中式架构中，有一个中央语境代理来存储语境制造者提供的语境信息。在分布式设置中，所有语境信息都可以由语境源存储。在联合式架构中，语境源可以是聚合来自较低层次架构可用信息的语境代理。这些架构不是相互排斥的，即实际部署可能会以不同的方式组合它们。

### 应用程序接口 (API)

NGSI-LD 语境信息管理 API 允许用户在多个场景和涉及多个利益相关者的情况下提供、消耗和订阅语境信息。它可以近乎实时地访问来自许多不同来源（不仅是物联数据源）的信息，称为语境源，并通过可互操作的数据发布平台发布该信息。

它提供先进的基于地理和时间的查询，并包括订阅机制，以便在某些指定内容可用时通知内容消耗者。

API 被设计为与系统架构（中央式、分布式、联合式或它们的组合）无关，因此生成和使用信息的应用程序不必针对为其分发/代理语境信息的系统的细节进行定制。

API 操作包括：

- 语境信息操作：提供（创建 NGSI-LD 实体，并更新它们的属性）、消耗（查询 NGSI-LD 实体）和订阅（在指定的条件下订阅特定信息，以便在匹配特定信息实体出现时得到通知）。
- 语境源操作：注册（通过注册在整个分布式系统中提供新的语境信息源）和发现（查询系统已注册的语境源，获得指定类型的信息）。

## 用途

NGSI-LD 由 FIWARE 项目的合作伙伴发起，主要由 FIWARE 开源社区使用，由 FIWARE 基金会 以及各种其他项目和用户提供支持，例如：

- Connecting Europe Facility 推荐将 FIWARE 语境代理与 NGSI-LD 结合使用。
- Open and Agile Smart Cities Organisation将 NGSI-LD 规范作为其最小互操作性机制的第一个参考。
- Living-in.eu 项目在其联合声明和技术承诺中推荐使用 NGSI-LD。该宣言已得到欧盟 86 个城市和公共行政部门 的认可和签署，并得到更多公司和组织的支持。
- GSMA的“物联网大数据框架架构”是基于NGSI-LD。
- Fed4IoT EU 项目中，NGSI-LD的数据格式被用于在各种物联网数据转换的中间格式。
- Orange 的 Thing'in 基于图的数字映射平台使用 NGSI-LD 作为其核心信息模型。

## 在开源软件项目中的实现

- 来自 FIWARE 基金会的 Orion-LD
- 来自NEC的 Scorpio
- 来自 EGM 的 Stellio
- 来自 Geonet 的 Cassiopeia

## 历史

NGSI-LD 是语境接口演变的结果，该接口作为开放移动联盟 (OMA) 于 2012 年发布的“下一代服务接口”(NGSI) 套件的一部分而开始，这也是首字母缩略词 NGSI 的来源。NGSI 套件包括 NGSI-9 的语境实体发现接口和 NGSI-10的语境信息接口。OMA 的 NGSI 标准及其中间演变依赖于经典的实体-属性-值模型和基于 XML 的表示。NGSI 语境接口由 FI-WARE 项目改编，该项目为欧洲未来互联网公私合作 (PPP) 开发了平台。OMA NGSI 语境接口获得了带有 JSON 表示的 HTTP 绑定，称为 NGSIv1，其中包括 NGSI-9 和 NGSI-10。在 FI-PPP 的过程中，NGASIv1接口进一步演变为 NGSIv2，成为 FIWARE 平台的关键接口。2016年FI-PPP结束后，FIWARE平台成为FIWARE基金会管理的FIWARE开源社区的核心。2017 年，ETSI 跨领域境信息管理工业规范组 (ETSI ISG CIM) 成立，来发展语境信息接口，从而创建了 NGSI-LD。原始信息模型的局限性导致了从属性图派生的更广泛模型的规范，明确包括实体之间的关系，与实体本身相当。

## 外部链接

- ETSI CIM group home page
- NGSI-LD Primer (oriented towards the use of the API)
- NGSI-LD modelling guidelines White Paper

## 基本资料

- 头衔：NGSI-LD - A graph-based context information model and API
- 状态：ETSI Group Specification
- 开始年：2017
- 作者：ISG CIM (Industry Specification Group) of ETSI
- 基础标准：RDF, RDFS, OWL, JSON, JSON-LD, HTTP, URI
- 领域：Information model, Linked Data, Semantic Web
- 网站： CIM group page @ETSI
- 组织：欧洲电信标准协会