diff --git a/public/official/0--1.html b/public/official/0--1.html index f0e3f6b761c38e0a247bb903b1baf13b1f8581ce..f471d402d9657da3bbd20f28892c8858fe2a53b7 100644 --- a/public/official/0--1.html +++ b/public/official/0--1.html @@ -1,34 +1,56 @@ -
- - - -ETSI GS CIM 009V1.8.29(2025-05)
-Context Information Management (CIM);
-NGSI-LD API
-Disclaimer
-The present document has been produced and approved by the cross-cutting Context Information Management (CIM) ETSI Industry Specification Group (ISG) and represents the views of those members who participated in this ISG.It does not necessarily represent the views of the entire ETSI membership.
-Group Specification
-Reference
-RGS/CIM-009v181
-Keywords
-API, architecture, digital twins, GAP, information model, interoperability, NGSI-LD, smart agriculture, smart city, smart industry, smart manufacturing, smart water, WoT
-ETSI
-650 Route des Lucioles
-F-06921 Sophia Antipolis Cedex - FRANCE
-Tel.: +33 4 92 94 42 00 Fax: +33 4 93 65 47 16
-Siret N° 348 623 562 00017 - APE 7112B
-Association à but non lucratif enregistrée à la
-Sous-Préfecture de Grasse (06) N° w061004871
-Important notice
-The present document can be downloaded from:<https://www.etsi.org/standards-search>
The present document may be made available in electronic versions and/or in print. The content of any electronic and/or print versions of the present document shall not be modified without the prior written authorization of ETSI. In case of any existing or perceived difference in contents between such versions and/or in print, the prevailing version of an ETSI deliverable is the one made publicly available in PDF format atwww.etsi.org/deliver.
-Users of the present document should be aware that the document may be subject to revision or change of status. Information on the current status of this and other ETSI documents is available at<https://portal.etsi.org/TB/ETSIDeliverableStatus.aspx>
If you find errors in the present document, please send your comment to one of the following services:<https://portal.etsi.org/People/CommiteeSupportStaff.aspx>
If you find a security vulnerability in the present document, please report it through our
-Coordinated Vulnerability Disclosure Program:
-<https://www.etsi.org/standards/coordinated-vulnerability-disclosure>
Notice of disclaimer & limitation of liability
-The information provided in the present deliverable is directed solely to professionals who have the appropriate degree of experience to understand and interpret its content in accordance with generally accepted engineering or
-other professional standard and applicable regulations.
-No recommendation as to products and services or vendors is made or should be implied.
-No representation or warranty is made that this deliverable is technically accurate or sufficient or conforms to any law and/or governmental rule and/or regulation and further, no representation or warranty is made of merchantability or fitness for any particular purpose or against infringement of intellectual property rights.
-In no event shall ETSI be held liable for loss of profits or any other incidental or consequential damages.
-Any software contained in this deliverable is provided “AS IS” with no warranties, express or implied, including but not limited to, the warranties of merchantability, fitness for a particular purpose and non-infringement of intellectual property rights and ETSI shall not be held liable in any event for any damages whatsoever (including, without limitation, damages for loss of profits, business interruption, loss of information, or any other pecuniary loss) arising out of or related to the use of or inability to use the software.
-Copyright Notification
-No part may be reproduced or utilized in any form or by any means, electronic or mechanical, including photocopying and microfilm except as authorized by written permission of ETSI.The content of the PDF version shall not be modified without the written authorization of ETSI.The copyright and the foregoing restriction extend to reproduction in all media.
-© ETSI 2024.
-All rights reserved.
-Intellectual Property Rights 19
-Foreword 19
-Modal verbs terminology 19
-Executive summary 19
-Introduction 20
-1 Scope 21
-2 References 21
-2.1 Normative references 21
-2.2 Informative references 22
-3 Definition of terms, symbols and abbreviations 23
-3.1 Terms 23
-3.2 Symbols 26
-3.3 Abbreviations 27
-4 Context Information Management Framework 28
-4.1 Introduction 28
-4.2 NGSI-LD Information Model 28
-4.2.1 Introduction 28
-4.2.2 NGSI-LD Meta Model 29
-4.2.3 Cross Domain Ontology 30
-4.2.4 NGSI-LD domain-specific models and instantiation 31
-4.2.5 UML representation 31
-4.3 NGSI-LD Architectural Considerations 32
-4.3.1 Introduction 32
-4.3.2 Centralized architecture 32
-4.3.3 Distributed architecture 33
-4.3.4 Federated architecture 34
-4.3.5 NGSI-LD API Structure and Implementation Options 35
-4.3.6 Distributed Operations 40
-4.3.6.1 Introduction 40
-4.3.6.2 Additive Registrations 40
-4.3.6.3 Proxied Registrations 41
-4.3.6.4 Limiting Cascading Distributed Operations 41
-4.3.6.5 Extra information to provide when contacting Context Source 41
-4.3.6.6 Additional pre- and post-processing of extra information when contacting Context Source 42
-4.3.6.7 Querying and Retrieving Distributed Entities as Unitary Operations 42
-4.3.6.8 Backwards compatibility of Context Source payloads 43
-4.3.7 Snapshots 45
-4.4 Core and user NGSI-LD @context 46
-4.5 NGSI-LD Data Representation 47
-4.5.0 Introduction 47
-4.5.1 NGSI-LD Entity Representation 47
-4.5.2 NGSI-LD Property Representations 48
-4.5.2.1 Introduction 48
-4.5.2.2 Normalized NGSI-LD Property 48
-4.5.2.3 Concise NGSI-LD Property 49
-4.5.3 NGSI-LD Relationship Representations 51
-4.5.3.1 Introduction 51
-4.5.3.2 Normalized NGSI-LD Relationship 51
-4.5.3.3 Concise NGSI-LD Relationship 53
-4.5.4 Simplified Representation 54
-4.5.5 Multi-Attribute Support 58
-4.5.5.1 Introduction 58
-4.5.5.2 Processing of Conflicting Transient Entities 59
-4.5.5.3 Processing of Conflicting Attributes 59
-4.5.6 Temporal Representation of an Entity 60
-4.5.7 Temporal Representation of a Property 60
-4.5.8 Temporal Representation of a Relationship 60
-4.5.9 Simplified temporal representation of an Entity 60
-4.5.10 Entity Type List Representation 64
-4.5.11 Detailed Entity Type List Representation 64
-4.5.12 Entity Type Information Representation 64
-4.5.13 Attribute List Representation 64
-4.5.14 Detailed Attribute List Representation 65
-4.5.15 Attribute Information Representation 65
-4.5.16 GeoJSON Representation of Entities 65
-4.5.16.0 Foreword 65
-4.5.16.1 Top-level “geometry” field selection algorithm 66
-4.5.16.2 GeoJSON Representation of an individual Entity 66
-4.5.16.3 GeoJSON Representation of Multiple Entities 66
-4.5.17 Simplified GeoJSON Representation of Entities 67
-4.5.17.0 Foreword 67
-4.5.17.1 Simplified GeoJSON Representation of an individual Entity 67
-4.5.17.2 Simplified GeoJSON Representation of multiple Entities 68
-4.5.18 NGSI-LD LanguageProperty Representations 68
-4.5.18.1 Introduction 68
-4.5.18.2 Normalized NGSI-LD LanguageProperty 68
-4.5.18.3 Concise NGSI-LD LanguageProperty 69
-4.5.19 Aggregated temporal representation of an Entity 69
-4.5.19.0 Foreword 69
-4.5.19.1 Supported behaviours for aggregation functions 70
-4.5.20 NGSI-LD VocabProperty Representations 72
-4.5.20.1 Introduction 72
-4.5.20.2 Normalized NGSI-LD VocabProperty 72
-4.5.20.3 Concise NGSI-LD VocabProperty 72
-4.5.21 NGSI-LD ListProperty Representations 73
-4.5.21.1 Introduction 73
-4.5.21.2 Normalized NGSI-LD ListProperty 73
-4.5.21.3 Concise NGSI-LD ListProperty 74
-4.5.22 NGSI-LD ListRelationship Representations 74
-4.5.22.1 Introduction 74
-4.5.22.2 Normalized NGSI-LD ListRelationship 74
-4.5.22.3 Concise NGSI-LD ListRelationship 75
-4.5.23 NGSI-LD Linked Entity Retrieval 76
-4.5.23.1 Introduction 76
-4.5.23.2 Inline Linked Entity Representation 76
-4.5.23.3 Flattened Linked Entity Representation 76
-4.5.24 NGSI-LD JsonProperty Representations 76
-4.5.24.1 Introduction 76
-4.5.24.2 Normalized NGSI-LD JsonProperty 76
-4.5.24.3 Concise NGSI-LD JsonProperty 77
-4.5.25 NGSI-LD EntityMap Representation 77
-4.6 Data Representation Restrictions 78
-4.6.1 Supported text encodings 78
-4.6.2 Supported names 78
-4.6.3 Supported data types for Values 78
-4.6.4 Supported Content 79
-4.6.5 Supported data types for LanguageMaps 80
-4.6.6 Ordering of Entities in arrays having more than one instance of the same Entity 80
-4.7 Geospatial Properties 80
-4.7.1 GeoJSON Geometries 80
-4.7.2 Representation of GeoJSON Geometries in JSON-LD 81
-4.7.3 Concise NGSI-LD GeoProperty 81
-4.8 Temporal Properties 81
-4.9 NGSI-LD Query Language 82
-4.10 NGSI-LD Geoquery Language 90
-4.11 NGSI-LD Temporal Query Language 92
-4.12 NGSI-LD Pagination 93
-4.13 Counting the Number of Results 93
-4.14 Supporting Multiple Tenants 94
-4.15 NGSI-LD Language Filter 94
-4.16 Supporting Multiple Entity Types 95
-4.17 NGSI-LD Entity Type Selection Language 95
-4.18 NGSI-LD Scopes 95
-4.19 NGSI-LD Scope Query Language 96
-4.20 NGSI-LD Distributed Operation names 97
-4.21 NGSI-LD Attribute Projection Language 99
-4.22 Transient Storage of Entities and Attributes 99
-4.23 Entity Ordering 99
-4.23.1 Introduction 99
-4.23.2 Datatype Comparison Order 100
-4.23.3 NGSI-LD Entity Ordering Language 100
-5 API Operation Definition 101
-5.1 Introduction 101
-5.2 Data Types 101
-5.2.1 Introduction 101
-5.2.2 Common members 102
-5.2.3 @context 102
-5.2.4 Entity 102
-5.2.5 Property 103
-5.2.6 Relationship 105
-5.2.7 GeoProperty 107
-5.2.8 EntityInfo 109
-5.2.9 CSourceRegistration 109
-5.2.10 RegistrationInfo 113
-5.2.11 TimeInterval 113
-5.2.12 Subscription 113
-5.2.13 GeoQuery 116
-5.2.14 NotificationParams 116
-5.2.14.1 NotificationParams data type definition 116
-5.2.14.2 Output only members 117
-5.2.15 Endpoint 118
-5.2.16 BatchOperationResult 119
-5.2.17 BatchEntityError 119
-5.2.18 UpdateResult 120
-5.2.19 NotUpdatedDetails 120
-5.2.20 EntityTemporal 120
-5.2.21 TemporalQuery 120
-5.2.22 KeyValuePair 121
-5.2.23 Query 122
-5.2.24 EntityTypeList 124
-5.2.25 EntityType 124
-5.2.26 EntityTypeInfo 124
-5.2.27 AttributeList 125
-5.2.28 Attribute 125
-5.2.29 Feature 126
-5.2.30 FeatureCollection 126
-5.2.31 FeatureProperties 127
-5.2.32 LanguageProperty 127
-5.2.33 EntitySelector 129
-5.2.34 RegistrationManagementInfo 129
-5.2.35 VocabProperty 131
-5.2.36 ListProperty 132
-5.2.37 ListRelationship 134
-5.2.38 JsonProperty 137
-5.2.39 EntityMap 139
-5.2.40 Context Source Identity 140
-5.2.41 Snapshot 140
-5.2.42 ExecutionResultDetails 142
-5.2.43 OrderingParams 143
-5.2.44 AggregationParams 143
-5.3 Notification data types 144
-5.3.1 Notification 144
-5.3.2 CSourceNotification 145
-5.3.3 TriggerReasonEnumeration 145
-5.3.4 SnapshotNotification 145
-5.4 NGSI-LD Fragments 146
-5.5 Common Behaviours 147
-5.5.1 Introduction 147
-5.5.2 Error types 147
-5.5.3 Error response payload body 148
-5.5.4 General NGSI-LD validation 148
-5.5.5 Default @context assignment 149
-5.5.6 Operation execution and generic error handling 149
-5.5.7 Term to URI expansion or compaction 149
-5.5.8 Partial Update Patch Behaviour 150
-5.5.9 Pagination Behaviour 152
-5.5.9.1 General Pagination Behaviour 152
-5.5.9.2 Pagination option using limit and offset 153
-5.5.9.3 Pagination with Entity maps 153
-5.5.10 Multi-Tenant Behaviour 153
-5.5.11 More than one instance of the same Entity in an Entity array 153
-5.5.11.0 Foreword 153
-5.5.11.1 Batch Entity Creation case 154
-5.5.11.2 Batch Entity Creation or Update (Upsert) case 154
-5.5.11.3 Batch Entity Update case 154
-5.5.11.4 Batch Entity Delete case 154
-5.5.11.5 Batch Entity Merge case 154
-5.5.12 Merge Patch Behaviour 155
-5.5.13 Limiting operations to local scope 156
-5.5.14 Distributed Transactional Behaviour 156
-5.5.15 Snapshot Behaviour 157
-5.6 Context Information Provision 157
-5.6.1 Create Entity 157
-5.6.1.1 Description 157
-5.6.1.2 Use case diagram 158
-5.6.1.3 Input data 158
-5.6.1.4 Behaviour 158
-5.6.1.5 Output data 159
-5.6.2 Update Attributes 159
-5.6.2.1 Description 159
-5.6.2.2 Use case diagram 159
-5.6.2.3 Input data 159
-5.6.2.4 Behaviour 159
-5.6.2.5 Output data 160
-5.6.3 Append Attributes 161
-5.6.3.1 Description 161
-5.6.3.2 Use case diagram 161
-5.6.3.3 Input data 161
-5.6.3.4 Behaviour 161
-5.6.3.5 Output data 162
-5.6.4 Partial Attribute update 162
-5.6.4.1 Description 162
-5.6.4.2 Use case diagram 163
-5.6.4.3 Input data 163
-5.6.4.4 Behaviour 163
-5.6.4.5 Output data 164
-5.6.5 Delete Attribute 164
-5.6.5.1 Description 164
-5.6.5.2 Use case diagram 164
-5.6.5.3 Input data 165
-5.6.5.4 Behaviour 165
-5.6.5.5 Output data 166
-5.6.6 Delete Entity 166
-5.6.6.1 Description 166
-5.6.6.2 Use case diagram 166
-5.6.6.3 Input data 166
-5.6.6.4 Behaviour 166
-5.6.6.5 Output data 167
-5.6.7 Batch Entity Creation 167
-5.6.7.1 Description 167
-5.6.7.2 Use case diagram 167
-5.6.7.3 Input data 167
-5.6.7.4 Behaviour 167
-5.6.7.5 Output data 168
-5.6.8 Batch Entity Creation or Update (Upsert) 168
-5.6.8.1 Description 168
-5.6.8.2 Use case diagram 169
-5.6.8.3 Input data 169
-5.6.8.4 Behaviour 169
-5.6.8.5 Output data 171
-5.6.9 Batch Entity Update 171
-5.6.9.1 Description 171
-5.6.9.2 Use case diagram 171
-5.6.9.3 Input data 171
-5.6.9.4 Behaviour 171
-5.6.9.5 Output data 173
-5.6.10 Batch Entity Delete 173
-5.6.10.1 Description 173
-5.6.10.2 Use case diagram 173
-5.6.10.3 Input data 173
-5.6.10.4 Behaviour 173
-5.6.10.5 Output data 174
-5.6.11 Create or Update (Upsert) Temporal Evolution of an Entity 174
-5.6.11.1 Description 174
-5.6.11.2 Use case diagram 175
-5.6.11.3 Input data 175
-5.6.11.4 Behaviour 175
-5.6.11.5 Output data 176
-5.6.12 Add Attributes to Temporal Evolution of an Entity 176
-5.6.12.1 Description 176
-5.6.12.2 Use case diagram 176
-5.6.12.3 Input data 176
-5.6.12.4 Behaviour 177
-5.6.12.5 Output data 177
-5.6.13 Delete Attribute from Temporal Evolution of an Entity 177
-5.6.13.1 Description 177
-5.6.13.2 Use case diagram 177
-5.6.13.3 Input data 178
-5.6.13.4 Behaviour 178
-5.6.13.5 Output data 179
-5.6.14 Modify Attribute instance in Temporal Evolution of an Entity 179
-5.6.14.1 Description 179
-5.6.14.2 Use case diagram 179
-5.6.14.3 Input data 180
-5.6.14.4 Behaviour 180
-5.6.14.5 Output data 180
-5.6.15 Delete Attribute instance from Temporal Evolution of an Entity 181
-5.6.15.1 Description 181
-5.6.15.2 Use case diagram 181
-5.6.15.3 Input data 181
-5.6.15.4 Behaviour 181
-5.6.15.5 Output data 182
-5.6.16 Delete Temporal Evolution of an Entity 182
-5.6.16.1 Description 182
-5.6.16.2 Use case diagram 182
-5.6.16.3 Input data 183
-5.6.16.4 Behaviour 183
-5.6.16.5 Output data 183
-5.6.17 Merge Entity 184
-5.6.17.1 Description 184
-5.6.17.2 Use case diagram 184
-5.6.17.3 Input data 184
-5.6.17.4 Behaviour 184
-5.6.17.5 Output data 186
-5.6.18 Replace Entity 186
-5.6.18.1 Description 186
-5.6.18.2 Use case diagram 186
-5.6.18.3 Input data 187
-5.6.18.4 Behaviour 187
-5.6.18.5 Output data 188
-5.6.19 Replace Attribute 188
-5.6.19.1 Description 188
-5.6.19.2 Use case diagram 188
-5.6.19.3 Input data 188
-5.6.19.4 Behaviour 188
-5.6.19.5 Output data 189
-5.6.20 Batch Entity Merge 189
-5.6.20.1 Description 189
-5.6.20.2 Use case diagram 189
-5.6.20.3 Input data 190
-5.6.20.4 Behaviour 190
-5.6.20.5 Output data 191
-5.6.21 Purge Entities 191
-5.6.21.1 Description 191
-5.6.21.2 Use case diagram 191
-5.6.21.3 Input data 192
-5.6.21.4 Behaviour 192
-5.6.21.5 Output data 193
-5.7 Context Information Consumption 193
-5.7.1 Retrieve Entity 193
-5.7.1.1 Description 193
-5.7.1.2 Use case diagram 193
-5.7.1.3 Input data 194
-5.7.1.4 Behaviour 195
-5.7.1.5 Output data 196
-5.7.2 Query Entities 197
-5.7.2.1 Description 197
-5.7.2.2 Use case diagram 197
-5.7.2.3 Input data 197
-5.7.2.4 Behaviour 198
-5.7.2.5 Output data 201
-5.7.3 Retrieve Temporal Evolution of an Entity 202
-5.7.3.1 Description 202
-5.7.3.2 Use case diagram 202
-5.7.3.3 Input data 202
-5.7.3.4 Behaviour 203
-5.7.3.5 Output data 204
-5.7.4 Query Temporal Evolution of Entities 204
-5.7.4.1 Description 204
-5.7.4.2 Use case diagram 204
-5.7.4.3 Input data 204
-5.7.4.4 Behaviour 205
-5.7.4.5 Output Data 208
-5.7.5 Retrieve Available Entity Types 208
-5.7.5.1 Description 208
-5.7.5.2 Use case diagram 208
-5.7.5.3 Input data 209
-5.7.5.4 Behaviour 209
-5.7.5.5 Output data 209
-5.7.6 Retrieve Details of Available Entity Types 209
-5.7.6.1 Description 209
-5.7.6.2 Use case diagram 209
-5.7.6.3 Input data 210
-5.7.6.4 Behaviour 210
-5.7.6.5 Output data 210
-5.7.7 Retrieve Available Entity Type Information 210
-5.7.7.1 Description 210
-5.7.7.2 Use case diagram 210
-5.7.7.3 Input data 211
-5.7.7.4 Behaviour 211
-5.7.7.5 Output data 211
-5.7.8 Retrieve Available Attributes 211
-5.7.8.1 Description 211
-5.7.8.2 Use case diagram 211
-5.7.8.3 Input data 212
-5.7.8.4 Behaviour 212
-5.7.8.5 Output data 212
-5.7.9 Retrieve Details of Available Attributes 212
-5.7.9.1 Description 212
-5.7.9.2 Use case diagram 212
-5.7.9.3 Input data 213
-5.7.9.4 Behaviour 213
-5.7.9.5 Output data 213
-5.7.10 Retrieve Available Attribute Information 213
-5.7.10.1 Description 213
-5.7.10.2 Use case diagram 213
-5.7.10.3 Input data 214
-5.7.10.4 Behaviour 214
-5.7.10.5 Output data 214
-5.7.11 Architecture-related aspects of retrieval of Entity Types and Attributes 214
-5.8 Context Information Subscription 215
-5.8.1 Create Subscription 215
-5.8.1.1 Description 215
-5.8.1.2 Use case diagram 215
-5.8.1.3 Input data 215
-5.8.1.4 Behaviour 215
-5.8.1.5 Output data 217
-5.8.2 Update Subscription 217
-5.8.2.1 Description 217
-5.8.2.2 Use case diagram 217
-5.8.2.3 Input data 217
-5.8.2.4 Behaviour 218
-5.8.2.5 Output data 218
-5.8.3 Retrieve Subscription 218
-5.8.3.1 Description 218
-5.8.3.2 Use case diagram 218
-5.8.3.3 Input data 219
-5.8.3.4 Behaviour 219
-5.8.3.5 Output data 219
-5.8.4 Query Subscriptions 219
-5.8.4.1 Description 219
-5.8.4.2 Use case diagram 219
-5.8.4.3 Input data 220
-5.8.4.4 Behaviour 220
-5.8.4.5 Output data 220
-5.8.5 Delete Subscription 220
-5.8.5.1 Description 220
-5.8.5.2 Use case diagram 220
-5.8.5.3 Input data 221
-5.8.5.4 Behaviour 221
-5.8.5.5 Output data 221
-5.8.6 Notification behaviour 221
-5.9 Context Source Registration 223
-5.9.1 Introduction 223
-5.9.2 Register Context Source 223
-5.9.2.1 Description 223
-5.9.2.2 Use case diagram 224
-5.9.2.3 Input data 224
-5.9.2.4 Behaviour 224
-5.9.2.5 Output data 225
-5.9.3 Update Context Source Registration 225
-5.9.3.1 Description 225
-5.9.3.2 Use case diagram 225
-5.9.3.3 Input data 225
-5.9.3.4 Behaviour 226
-5.9.3.5 Output data 226
-5.9.4 Delete Context Source Registration 226
-5.9.4.1 Description 226
-5.9.4.2 Use case diagram 226
-5.9.4.3 Input data 227
-5.9.4.4 Behaviour 227
-5.9.4.5 Output data 227
-5.10 Context Source Discovery 227
-5.10.1 Retrieve Context Source Registration 227
-5.10.1.1 Description 227
-5.10.1.2 Use case diagram 227
-5.10.1.3 Input data 228
-5.10.1.4 Behaviour 228
-5.10.1.5 Output data 228
-5.10.2 Query Context Source Registrations 228
-5.10.2.1 Description 228
-5.10.2.2 Use case diagram 229
-5.10.2.3 Input data 229
-5.10.2.4 Behaviour 230
-5.10.2.5 Output data 231
-5.11 Context Source Registration Subscription 231
-5.11.1 Introduction 231
-5.11.2 Create Context Source Registration Subscription 231
-5.11.2.1 Description 231
-5.11.2.2 Use case diagram 231
-5.11.2.3 Input data 231
-5.11.2.4 Behaviour 232
-5.11.2.5 Output data 232
-5.11.3 Update Context Source Registration Subscription 233
-5.11.3.1 Description 233
-5.11.3.2 Use case diagram 233
-5.11.3.3 Input data 233
-5.11.3.4 Behaviour 233
-5.11.3.5 Output data 233
-5.11.4 Retrieve Context Source Registration Subscription 233
-5.11.4.1 Description 233
-5.11.4.2 Use case diagram 234
-5.11.4.3 Input data 234
-5.11.4.4 Behaviour 234
-5.11.4.5 Output data 234
-5.11.5 Query Context Source Registration Subscriptions 234
-5.11.5.1 Description 234
-5.11.5.2 Use case diagram 234
-5.11.5.3 Input data 235
-5.11.5.4 Behaviour 235
-5.11.5.5 Output data 235
-5.11.6 Delete Context Source Registration Subscription 235
-5.11.6.1 Description 235
-5.11.6.2 Use case diagram 235
-5.11.6.3 Input data 236
-5.11.6.4 Behaviour 236
-5.11.6.5 Output data 236
-5.11.7 Notification behaviour 236
-5.12 Matching Context Source Registrations 237
-5.13 Storing, Managing and Serving @contexts 238
-5.13.1 Introduction 238
-5.13.2 Add @context 239
-5.13.2.1 Description 239
-5.13.2.2 Use case diagram 239
-5.13.2.3 Input data 239
-5.13.2.4 Behaviour 240
-5.13.2.5 Output data 240
-5.13.3 List @contexts 240
-5.13.3.1 Description 240
-5.13.3.2 Use case diagram 240
-5.13.3.3 Input data 240
-5.13.3.4 Behaviour 241
-5.13.3.5 Output data 241
-5.13.4 Serve @context 241
-5.13.4.1 Description 241
-5.13.4.2 Use case diagram 241
-5.13.4.3 Input data 242
-5.13.4.4 Behaviour 242
-5.13.4.5 Output data 242
-5.13.5 Delete and Reload @context 242
-5.13.5.1 Description 242
-5.13.5.2 Use case diagram 242
-5.13.5.3 Input data 243
-5.13.5.4 Behaviour 243
-5.13.5.5 Output data 243
-5.14 Context Source Entity Mapping 243
-5.14.1 Retrieve EntityMap 243
-5.14.1.1 Description 243
-5.14.1.2 Use case diagram 243
-5.14.1.3 Input data 244
-5.14.1.4 Behaviour 244
-5.14.1.5 Output data 244
-5.14.2 Update EntityMap 244
-5.14.2.1 Description 244
-5.14.2.2 Use case diagram 244
-5.14.2.3 Input data 245
-5.14.2.4 Behaviour 245
-5.14.2.5 Output data 245
-5.14.3 Delete EntityMap 245
-5.14.3.1 Description 245
-5.14.3.2 Use case diagram 245
-5.14.3.3 Input data 246
-5.14.3.4 Behaviour 246
-5.14.3.5 Output data 246
-5.14.4 Create EntityMap for Query Entities 246
-5.14.4.1 Description 246
-5.14.4.2 Use case diagram 246
-5.14.4.3 Input data 247
-5.14.4.4 Behaviour 248
-5.14.4.5 Output data 249
-5.14.5 Create EntityMap for Query Temporal Evolution of Entities 250
-5.14.5.1 Description 250
-5.14.5.2 Use case diagram 250
-5.14.5.3 Input data 250
-5.14.5.4 Behaviour 251
-5.7.4.5 Output Data 253
-5.15 Context Source Identity Information 253
-5.15.1 Retrieve Context Source Identity Information 253
-5.15.1.1 Description 253
-5.15.1.2 Use case diagram 253
-5.15.1.3 Input data 254
-5.15.1.4 Behaviour 254
-5.15.1.5 Output data 254
-5.16 Snapshot Functionality 254
-5.16.1 Create Snapshot 254
-5.16.1.1 Description 254
-5.16.1.2 Use case diagram 254
-5.16.1.3 Input data 255
-5.16.1.4 Behaviour 255
-5.16.1.5 Output data 256
-5.16.2 Clone Snapshot 256
-5.16.2.1 Description 256
-5.16.2.2 Use case diagram 256
-5.16.2.3 Input data 256
-5.16.2.4 Behaviour 256
-5.16.2.5 Output data 257
-5.16.3 Retrieve Snapshot Status 257
-5.16.3.1 Description 257
-5.16.3.2 Use case diagram 257
-5.16.3.3 Input data 258
-5.16.3.4 Behaviour 258
-5.16.3.5 Output data 258
-5.16.4 Update Snapshot Status 258
-5.16.4.1 Description 258
-5.16.4.2 Use case diagram 258
-5.16.4.3 Input data 258
-5.16.4.4 Behaviour 259
-5.16.4.5 Output data 259
-A JSON-LD object representing the Snapshot status as mandated by .16.5 Delete Snapshot 259
-5.16.5.1 Description 259
-5.16.5.2 Use case diagram 259
-5.16.5.3 Input data 259
-5.16.5.4 Behaviour 259
-5.16.5.5 Output data 260
-5.16.6 Snapshot status notification behaviour 260
-5.16.7 Purge Snapshots 260
-5.16.7.1 Description 260
-5.16.7.2 Use case diagram 260
-5.16.7.3 Input data 261
-5.16.7.4 Behaviour 261
-5.16.7.5 Output data 261
-6 API HTTP Binding 261
-6.1 Introduction 261
-6.2 Global Definitions and Resource Structure 261
-6.3 Common Behaviours 265
-6.3.1 Introduction 265
-6.3.2 Error Types 265
-6.3.3 Reporting errors 266
-6.3.4 HTTP request preconditions 266
-6.3.5 JSON-LD @context resolution 267
-6.3.6 HTTP response common requirements 267
-6.3.7 Representation of Entities 268
-6.3.8 Notification behaviour 269
-6.3.9 Csource Notification behaviour 270
-6.3.10 Pagination behaviour 270
-6.3.11 Including system Attributes 272
-6.3.12 Simplified or aggregated temporal representation of Entities 272
-6.3.13 Counting number of results 273
-6.3.14 Tenant specification 273
-6.3.15 GeoJSON representation of spatially bound entities 273
-6.3.16 Expiration time for cached @contexts 273
-6.3.17 Distributed Operations Caching and Timeout Behaviour 274
-6.3.18 Limiting Distributed Operations 274
-6.3.19 Extra information to provide when contacting Context Source 275
-6.3.20 Invalid parameters 275
-6.3.21 Optional profile information regarding versioning and datatype conformance 275
-6.3.22 Snapshot specification 276
-6.4 Resource: entities/ 276
-6.4.1 Description 276
-6.4.2 Resource definition 276
-6.4.3 Resource methods 276
-6.4.3.1 POST 276
-6.4.3.2 GET 277
-6.4.3.3 DELETE 281
-6.5 Resource: entities/{entityId} 283
-6.5.1 Description 283
-6.5.2 Resource definition 283
-6.5.3 Resource methods 284
-6.5.3.1 GET 284
-6.5.3.2 DELETE 286
-6.5.3.3 PUT 287
-6.5.3.4 PATCH 289
-6.6 Resource: entities/{entityId}/attrs/ 290
-6.6.1 Description 290
-6.6.2 Resource definition 290
-6.6.3 Resource methods 291
-6.6.3.1 POST 291
-6.6.3.2 PATCH 292
-6.7 Resource: entities/{entityId}/attrs/{attrId} 293
-6.7.1 Description 293
-6.7.2 Resource definition 293
-6.7.3 Resource methods 294
-6.7.3.1 PATCH 294
-6.7.3.2 DELETE 295
-6.7.3.3 PUT 296
-6.8 Resource: csourceRegistrations/ 298
-6.8.1 Description 298
-6.8.2 Resource definition 298
-6.8.3 Resource methods 298
-6.8.3.1 POST 298
-6.8.3.2 GET 299
-6.9 Resource: csourceRegistrations/{registrationId} 301
-6.9.1 Description 301
-6.9.2 Resource definition 301
-6.9.3 Resource methods 301
-6.9.3.1 GET 301
-6.9.3.2 PATCH 302
-6.9.3.3 DELETE 303
-6.10 Resource: subscriptions/ 304
-6.10.1 Description 304
-6.10.2 Resource definition 304
-6.10.3 Resource methods 304
-6.10.3.1 POST 304
-6.10.3.2 GET 305
-6.11 Resource: subscriptions/{subscriptionId} 305
-6.11.1 Description 305
-6.11.2 Resource definition 305
-6.11.3 Resource methods 306
-6.11.3.1 GET 306
-6.11.3.2 PATCH 306
-6.11.3.3 DELETE 307
-6.12 Resource: csourceSubscriptions/ 308
-6.12.1 Description 308
-6.12.2 Resource definition 308
-6.12.3 Resource methods 308
-6.12.3.1 POST 308
-6.12.3.2 GET 309
-6.13 Resource: csourceSubscriptions/{subscriptionId} 310
-6.13.1 Description 310
-6.13.2 Resource definition 310
-6.13.3 Resource methods 310
-6.13.3.1 GET 310
-6.13.3.2 PATCH 311
-6.13.3.3 DELETE 312
-6.14 Resource: entityOperations/create 312
-6.14.1 Description 312
-6.14.2 Resource definition 313
-6.14.3 Resource methods 313
-6.14.3.1 POST 313
-6.15 Resource: entityOperations/upsert 314
-6.15.1 Description 314
-6.15.2 Resource definition 314
-6.15.3 Resource methods 315
-6.15.3.1 POST 315
-6.16 Resource: entityOperations/update 316
-6.16.1 Description 316
-6.16.2 Resource definition 317
-6.16.3 Resource methods 317
-6.16.3.1 POST 317
-6.17 Resource: entityOperations/delete 318
-6.17.1 Description 318
-6.17.2 Resource definition 318
-6.17.3 Resource methods 319
-6.17.3.1 POST 319
-6.18 Resource: temporal/entities/ 320
-6.18.1 Description 320
-6.18.2 Resource definition 320
-6.18.3 Resource methods 320
-6.18.3.1 POST 320
-6.18.3.2 GET 321
-6.19 Resource: temporal/entities/{entityId} 324
-6.19.1 Description 324
-6.19.2 Resource definition 324
-6.19.3 Resource methods 325
-6.19.3.1 GET 325
-6.19.3.2 DELETE 327
-6.20 Resource: temporal/entities/{entityId}/attrs/ 328
-6.20.1 Description 328
-6.20.2 Resource definition 328
-6.20.3 Resource methods 328
-6.20.3.1 POST 328
-6.21 Resource: temporal/entities/{entityId}/attrs/{attrId} 329
-6.21.1 Description 329
-6.21.2 Resource definition 329
-6.21.3 Resource methods 329
-6.21.3.1 DELETE 329
-6.22 Resource: temporal/entities/{entityId}/attrs/{attrId}/ {instanceId} 330
-6.22.1 Description 330
-6.22.2 Resource definition 330
-6.22.3 Resource methods 330
-6.22.3.1 PATCH 330
-6.22.3.2 DELETE 331
-6.23 Resource: entityOperations/query 332
-6.23.1 Description 332
-6.23.2 Resource definition 332
-6.23.3 Resource methods 332
-6.23.3.1 POST 332
-6.24 Resource: temporal/entityOperations/query 334
-6.24.1 Description 334
-6.24.2 Resource definition 334
-6.24.3 Resource methods 334
-6.24.3.1 POST 334
-6.25 Resource: types/ 335
-6.25.1 Description 335
-6.25.2 Resource definition 336
-6.25.3 Resource methods 336
-6.25.3.1 GET 336
-6.26 Resource: types/{type} 337
-6.26.1 Description 337
-6.26.2 Resource definition 337
-6.26.3 Resource methods 337
-6.26.3.1 GET 337
-6.27 Resource: attributes/ 338
-6.27.1 Description 338
-6.27.2 Resource definition 338
-6.27.3 Resource methods 338
-6.27.3.1 GET 338
-6.28 Resource: attributes/{attrId} 339
-6.28.1 Description 339
-6.28.2 Resource definition 339
-6.28.3 Resource methods 339
-6.28.3.1 GET 339
-6.29 Resource: jsonldContexts/ 340
-6.29.1 Description 340
-6.29.2 Resource definition 340
-6.29.3 Resource methods 340
-6.29.3.1 POST 340
-6.29.3.2 GET 341
-6.30 Resource: jsonldContexts/{contextId} 342
-6.30.1 Description 342
-6.30.2 Resource definition 342
-6.30.3 Resource methods 342
-6.30.3.1 GET 342
-6.30.3.2 DELETE 343
-6.31 Resource: entityOperations/merge 344
-6.31.1 Description 344
-6.31.2 Resource definition 344
-6.31.3 Resource methods 344
-6.31.3.1 POST 344
-6.32 Resource: entityMaps/{entityMapId} 346
-6.32.1 Description 346
-6.32.2 Resource definition 346
-6.32.3 Resource methods 346
-6.32.3.1 GET 346
-6.32.3.2 PATCH 347
-6.32.3.3 DELETE 347
-6.33 Resource: info/sourceIdentity 348
-6.33.1 Description 348
-6.33.2 Resource definition 348
-6.33.3 Resource methods 348
-6.33.3.1 GET 348
-6.34 Resource: entityMaps 349
-6.34.1 Description 349
-6.34.2 Resource definition 349
-6.34.3 Resource methods 349
-6.34.3.1 GET 349
-6.34.3.2 POST 350
-6.35 Resource: temporal/entityMaps 351
-6.35.1 Description 351
-6.35.2 Resource definition 351
-6.35.3 Resource methods 351
-6.35.3.1 GET 351
-6.35.3.2 POST 352
-6.36 Resource: snapshots 353
-6.36.1 Description 353
-6.36.2 Resource definition 353
-6.36.3 Resource methods 353
-6.36.3.1 POST 353
-6.36.3.2 DELETE 354
-6.37 Resource: snapshots/{snapshotId} 355
-6.37.1 Description 355
-6.37.2 Resource definition 355
-6.37.3 Resource methods 355
-6.37.3.1 GET 355
-6.37.3.2 PATCH 356
-6.37.3.3 DELETE 356
-6.38 Resource: snapshots/{snapshotId}/clone 357
-6.38.1 Description 357
-6.38.2 Resource definition 357
-6.38.3 Resource methods 357
-6.38.3.1 POST 357
-7 API MQTT Notification Binding 358
-7.1 Introduction 358
-7.2 Notification behaviour 358
-Annex A (normative): NGSI-LD identifier considerations 360
-A.1 Introduction 360
-A.2 Entity identifiers 360
-A.3 NGSI-LD namespace 360
-Annex B (normative): Core NGSI-LD @context definition 361
-Annex C (informative): Examples of using the API 367
-C.1 Introduction 367
-C.2 Entity Representation 367
-C.2.1 Property Graph 367
-C.2.2 Vehicle Entity 368
-C.2.3 Parking Entity 381
-C.2.4 @context 387
-C.3 Context Source Registration 387
-C.4 Context Subscription 388
-C.5 HTTP REST API Examples 389
-C.5.1 Introduction 389
-C.5.2 Create Entity of Type Vehicle 389
-C.5.2.1 HTTP Request 389
-C.5.2.2 HTTP Response 389
-C.5.3 Query Entities 389
-C.5.3.1 Introduction 389
-C.5.3.2 HTTP Request 389
-C.5.3.3 HTTP Response 390
-C.5.4 Query Entities (Pagination) 390
-C.5.4.1 Introduction 390
-C.5.4.2 HTTP Request 390
-C.5.4.3 HTTP Response 390
-C.5.5 Temporal Query 391
-C.5.5.1 Introduction 391
-C.5.5.2 HTTP Request #1 391
-C.5.5.3 HTTP Response #1 391
-C.5.5.3 HTTP Request #2 391
-C.5.5.4 HTTP Response #2 392
-C.5.6 Temporal Query (Simplified Representation) 392
-C.5.6.1 Introduction 392
-C.5.6.2 HTTP Request 392
-C.5.6.3 HTTP Response 392
-C.5.7 Retrieve Available Entity Types 393
-C.5.7.1 Introduction 393
-C.5.7.2 HTTP Request 393
-C.5.7.3 HTTP Response 393
-C.5.8 Retrieve Details of Available Entity Types 394
-C.5.8.1 Introduction 394
-C.5.8.2 HTTP Request 394
-C.5.8.3 HTTP Response 394
-C.5.9 Retrieve Available Entity Type Information 395
-C.5.9.1 Introduction 395
-C.5.9.2 HTTP Request 395
-C.5.9.3 HTTP Response 395
-C.5.10 Retrieve Available Attributes 396
-C.5.10.1 Introduction 396
-C.5.10.2 HTTP Request 396
-C.5.10.3 HTTP Response 396
-C.5.11 Retrieve Details of Available Attributes 396
-C.5.11.1 Introduction 396
-C.5.11.2 HTTP Request 396
-C.5.11.3 HTTP Response 397
-C.5.12 Retrieve Available Attribute Information 397
-C.5.12.1 Introduction 397
-C.5.12.2 HTTP Request 397
-C.5.12.3 HTTP Response 398
-C.5.13 Query Entities (Natural Language Filtering) 398
-C.5.13.1 Introduction 398
-C.5.13.2 HTTP Request 398
-C.5.13.3 HTTP Response 398
-C.5.14 Temporal Query (Aggregated Representation) 399
-C.5.14.1 Introduction 399
-C.5.14.2 HTTP Request 399
-C.5.14.3 HTTP Response 399
-C.5.15 Scope Queries 400
-C.5.15.1 Introduction 400
-C.5.15.2 HTTP Request 400
-C.5.15.3 HTTP Response 400
-C.5.16 Temporal Scope Queries 401
-C.5.16.1 Introduction 401
-C.5.16.2 HTTP Request 401
-C.5.16.3 HTTP Response 401
-C.6 Date Representation 403
-C.7 @context utilization clarifications 404
-C.8 Link header utilization clarifications 405
-C.9 @context processing clarifications 407
-C.10 ValueType datatype utilization clarifications 408
-C.11 Entity with digital signature for a Property 409
-Annex D (informative): Transformation Algorithms 410
-D.1 Introduction 410
-D.2 Algorithm for transforming an NGSI-LD Entity into a JSON-LD document (ALG1) 410
-D.3 Algorithm for transforming an NGSI-LD Property into JSON-LD (ALG1.1) 411
-D.4 Algorithm for transforming an NGSI-LD Relationship into JSON-LD (ALG1.2) 412
-Annex E (informative): RDF-compatible specification of NGSI-LD meta-model 413
-Annex F (informative): Conventions and syntax guidelines 414
-Annex G (informative): Localization and Internationalization Support 415
-G.0 Foreword 415
-G.1 Introduction 415
-G.1.0 Foreword 415
-G.1.1 Associating an Entity with a Natural Language 415
-G.1.2 Associating a Property with a Natural Language 415
-G.1.3 Associating as equivalent entity 416
-G.2 Natural Language Collation Support 416
-G.2.0 Foreword 416
-G.2.1 Maintain collations as metadata 417
-G.2.2 Route language sensitive queries via a proxy 417
-G.3 Localization of Dates, Currency formats, etc. 417
-G.3.0 Foreword 417
-G.3.1 Localizing Dates 417
-Annex H (informative): Suggested actuation workflows 419
-H.1 Actuators and feedback to the consumer 419
-H.2 Architecture for actuation 419
-H.3 Structure of Commands and additional Properties 420
-H.3.0 Introduction 420
-H.3.1 Property for listing available commands 421
-H.3.2 Properties for command endpoints 421
-H.4 Communication model 423
-H.4.1 Possible communication models 423
-H.4.2 Subscription/notification model 423
-H.4.3 Forwarding model 424
-H.5 Implementation of the subscription-based actuation workflow 425
-H.6 Implementation of the registration-based actuation workflow 426
-Annex I (informative): Change history 429
-History 432
-