Disclaimer
ReferenceRGS/CIM-009v181KeywordsAPI, architecture, digital twins, GAP, information model, interoperability, NGSI-LD, smart agriculture, smart city, smart industry, smart manufacturing, smart water, WoTETSI650 Route des LuciolesF-06921 Sophia Antipolis Cedex - FRANCETel.: +33 4 92 94 42 00 Fax: +33 4 93 65 47 16Siret N° 348 623 562 00017 - APE 7112BAssociation à but non lucratif enregistrée à laSous-Préfecture de Grasse (06) N° w061004871Important notice
Notice of disclaimer & limitation of liability
Intellectual Property Rights 18
Foreword 18
Modal verbs terminology 18
Executive summary 18
Introduction 19
1 Scope 20
2 References 20
2.1 Normative references 20
2.2 Informative references 21
3 Definition of terms, symbols and abbreviations 22
3.1 Terms 22
3.2 Symbols 25
3.3 Abbreviations 25
4 Context Information Management Framework 27
4.1 Introduction 27
4.2 NGSI-LD Information Model 27
4.2.1 Introduction 27
4.2.2 NGSI-LD Meta Model 27
4.2.3 Cross Domain Ontology 29
4.2.4 NGSI-LD domain-specific models and instantiation 30
4.2.5 UML representation 30
4.3 NGSI-LD Architectural Considerations 31
4.3.1 Introduction 31
4.3.2 Centralized architecture 31
4.3.3 Distributed architecture 32
4.3.4 Federated architecture 33
4.3.5 NGSI-LD API Structure and Implementation Options 34
4.3.6 Distributed Operations 38
4.3.6.1 Introduction 38
4.3.6.2 Additive Registrations 39
4.3.6.3 Proxied Registrations 39
4.3.6.4 Limiting Cascading Distributed Operations 40
4.3.6.5 Extra information to provide when contacting Context Source 40
4.3.6.6 Additional pre- and post-processing of extra information when contacting Context Source 40
4.3.6.7 Querying and Retrieving Distributed Entities as Unitary Operations 41
4.3.6.8 Backwards compatibility of Context Source payloads 42
4.4 Core and user NGSI-LD @context 43
4.5 NGSI-LD Data Representation 44
4.5.0 Introduction 44
4.5.1 NGSI-LD Entity Representation 45
4.5.2 NGSI-LD Property Representations 45
4.5.2.1 Introduction 45
4.5.2.2 Normalized NGSI-LD Property 46
4.5.2.3 Concise NGSI-LD Property 47
4.5.3 NGSI-LD Relationship Representations 48
4.5.3.1 Introduction 48
4.5.3.2 Normalized NGSI-LD Relationship 49
4.5.3.3 Concise NGSI-LD Relationship 50
4.5.4 Simplified Representation 51
4.5.5 Multi-Attribute Support 56
4.5.5.1 Introduction 56
4.5.5.2 Processing of Conflicting Transient Entities 56
4.5.5.3 Processing of Conflicting Attributes 56
4.5.6 Temporal Representation of an Entity 57
4.5.7 Temporal Representation of a Property 57
4.5.8 Temporal Representation of a Relationship 57
4.5.9 Simplified temporal representation of an Entity 57
4.5.10 Entity Type List Representation 61
4.5.11 Detailed Entity Type List Representation 61
4.5.12 Entity Type Information Representation 62
4.5.13 Attribute List Representation 62
4.5.14 Detailed Attribute List Representation 62
4.5.15 Attribute Information Representation 62
4.5.16 GeoJSON Representation of Entities 63
4.5.16.0 Foreword 63
4.5.16.1 Top-level "geometry" field selection algorithm 63
4.5.16.2 GeoJSON Representation of an individual Entity 63
4.5.16.3 GeoJSON Representation of Multiple Entities 64
4.5.17 Simplified GeoJSON Representation of Entities 64
4.5.17.0 Foreword 64
4.5.17.1 Simplified GeoJSON Representation of an individual Entity 64
4.5.17.2 Simplified GeoJSON Representation of multiple Entities 65
4.5.18 NGSI-LD LanguageProperty Representations 65
4.5.18.1 Introduction 65
4.5.18.2 Normalized NGSI-LD LanguageProperty 66
4.5.18.3 Concise NGSI-LD LanguageProperty 66
4.5.19 Aggregated temporal representation of an Entity 67
4.5.19.0 Foreword 67
4.5.19.1 Supported behaviours for aggregation functions 68
4.5.20 NGSI-LD VocabProperty Representations 69
4.5.20.1 Introduction 69
4.5.20.2 Normalized NGSI-LD VocabProperty 70
4.5.20.3 Concise NGSI-LD VocabProperty 70
4.5.21 NGSI-LD ListProperty Representations 71
4.5.21.1 Introduction 71
4.5.21.2 Normalized NGSI-LD ListProperty 71
4.5.21.3 Concise NGSI-LD ListProperty 71
4.5.22 NGSI-LD ListRelationship Representations 72
4.5.22.1 Introduction 72
4.5.22.2 Normalized NGSI-LD ListRelationship 72
4.5.22.3 Concise NGSI-LD ListRelationship 73
4.5.23 NGSI-LD Linked Entity Retrieval 73
4.5.23.1 Introduction 73
4.5.23.2 Inline Linked Entity Representation 73
4.5.23.3 Flattened Linked Entity Representation 74
4.5.24 NGSI-LD JsonProperty Representations 74
4.5.24.1 Introduction 74
4.5.24.2 Normalized NGSI-LD JsonProperty 74
4.5.24.3 Concise NGSI-LD JsonProperty 74
4.5.25 NGSI-LD EntityMap Representation 75
4.6 Data Representation Restrictions 75
4.6.1 Supported text encodings 75
4.6.2 Supported names 76
4.6.3 Supported data types for Values 76
4.6.4 Supported Content 77
4.6.5 Supported data types for LanguageMaps 78
4.6.6 Ordering of Entities in arrays having more than one instance of the same Entity 78
4.7 Geospatial Properties 78
4.7.1 GeoJSON Geometries 78
4.7.2 Representation of GeoJSON Geometries in JSON-LD 78
4.7.3 Concise NGSI-LD GeoProperty 79
4.8 Temporal Properties 79
4.9 NGSI-LD Query Language 80
4.10 NGSI-LD Geoquery Language 87
4.11 NGSI-LD Temporal Query Language 89
4.12 NGSI-LD Pagination 90
4.13 Counting the Number of Results 91
4.14 Supporting Multiple Tenants 91
4.15 NGSI-LD Language Filter 91
4.16 Supporting Multiple Entity Types 92
4.17 NGSI-LD Entity Type Selection Language 92
4.18 NGSI-LD Scopes 93
4.19 NGSI-LD Scope Query Language 93
4.20 NGSI-LD Distributed Operation names 94
4.21 NGSI-LD Attribute Projection Language 96
4.22 Transient Storage of Entities and Attributes 96
5 API Operation Definition 97
5.1 Introduction 97
5.2 Data Types 97
5.2.1 Introduction 97
5.2.2 Common members 97
5.2.3 @context 98
5.2.4 Entity 98
5.2.5 Property 99
5.2.6 Relationship 101
5.2.7 GeoProperty 103
5.2.8 EntityInfo 104
5.2.9 CSourceRegistration 105
5.2.10 RegistrationInfo 108
5.2.11 TimeInterval 108
5.2.12 Subscription 109
5.2.13 GeoQuery 111
5.2.14 NotificationParams 111
5.2.14.1 NotificationParams data type definition 111
5.2.14.2 Output only members 112
5.2.15 Endpoint 113
5.2.16 BatchOperationResult 114
5.2.17 BatchEntityError 114
5.2.18 UpdateResult 115
5.2.19 NotUpdatedDetails 115
5.2.20 EntityTemporal 115
5.2.21 TemporalQuery 115
5.2.22 KeyValuePair 116
5.2.23 Query 116
5.2.24 EntityTypeList 119
5.2.25 EntityType 119
5.2.26 EntityTypeInfo 119
5.2.27 AttributeList 120
5.2.28 Attribute 120
5.2.29 Feature 121
5.2.30 FeatureCollection 121
5.2.31 FeatureProperties 122
5.2.32 LanguageProperty 122
5.2.33 EntitySelector 124
5.2.34 RegistrationManagementInfo 124
5.2.35 VocabProperty 126
5.2.36 ListProperty 127
5.2.37 ListRelationship 128
5.2.38 JsonProperty 131
5.2.39 EntityMap 132
5.2.40 Context Source Identity 133
5.3 Notification data types 133
5.3.1 Notification 133
5.3.2 CSourceNotification 134
5.3.3 TriggerReasonEnumeration 135
5.4 NGSI-LD Fragments 135
5.5 Common Behaviours 136
5.5.1 Introduction 136
5.5.2 Error types 136
5.5.3 Error response payload body 136
5.5.4 General NGSI-LD validation 137
5.5.5 Default @context assignment 137
5.5.6 Operation execution and generic error handling 137
5.5.7 Term to URI expansion or compaction 138
5.5.8 Partial Update Patch Behaviour 139
5.5.9 Pagination Behaviour 140
5.5.10 Multi-Tenant Behaviour 141
5.5.11 More than one instance of the same Entity in an Entity array 142
5.5.11.0 Foreword 142
5.5.11.1 Batch Entity Creation case 142
5.5.11.2 Batch Entity Creation or Update (Upsert) case 143
5.5.11.3 Batch Entity Update case 143
5.5.11.4 Batch Entity Delete case 143
5.5.11.5 Batch Entity Merge case 143
5.5.12 Merge Patch Behaviour 143
5.5.13 Limiting operations to local scope 145
5.5.14 Distributed Transactional Behaviour 145
5.6 Context Information Provision 145
5.6.1 Create Entity 145
5.6.1.1 Description 145
5.6.1.2 Use case diagram 146
5.6.1.3 Input data 146
5.6.1.4 Behaviour 146
5.6.1.5 Output data 147
5.6.2 Update Attributes 147
5.6.2.1 Description 147
5.6.2.2 Use case diagram 147
5.6.2.3 Input data 147
5.6.2.4 Behaviour 147
5.6.2.5 Output data 148
5.6.3 Append Attributes 149
5.6.3.1 Description 149
5.6.3.2 Use case diagram 149
5.6.3.3 Input data 149
5.6.3.4 Behaviour 149
5.6.3.5 Output data 150
5.6.4 Partial Attribute update 150
5.6.4.1 Description 150
5.6.4.2 Use case diagram 151
5.6.4.3 Input data 151
5.6.4.4 Behaviour 151
5.6.4.5 Output data 152
5.6.5 Delete Attribute 152
5.6.5.1 Description 152
5.6.5.2 Use case diagram 152
5.6.5.3 Input data 153
5.6.5.4 Behaviour 153
5.6.5.5 Output data 154
5.6.6 Delete Entity 154
5.6.6.1 Description 154
5.6.6.2 Use case diagram 154
5.6.6.3 Input data 154
5.6.6.4 Behaviour 154
5.6.6.5 Output data 155
5.6.7 Batch Entity Creation 155
5.6.7.1 Description 155
5.6.7.2 Use case diagram 155
5.6.7.3 Input data 155
5.6.7.4 Behaviour 156
5.6.7.5 Output data 157
5.6.8 Batch Entity Creation or Update (Upsert) 157
5.6.8.1 Description 157
5.6.8.2 Use case diagram 157
5.6.8.3 Input data 157
5.6.8.4 Behaviour 157
5.6.8.5 Output data 159
5.6.9 Batch Entity Update 159
5.6.9.1 Description 159
5.6.9.2 Use case diagram 159
5.6.9.3 Input data 160
5.6.9.4 Behaviour 160
5.6.9.5 Output data 161
5.6.10 Batch Entity Delete 161
5.6.10.1 Description 161
5.6.10.2 Use case diagram 161
5.6.10.3 Input data 162
5.6.10.4 Behaviour 162
5.6.10.5 Output data 163
5.6.11 Create or Update (Upsert) Temporal Evolution of an Entity 163
5.6.11.1 Description 163
5.6.11.2 Use case diagram 163
5.6.11.3 Input data 164
5.6.11.4 Behaviour 164
5.6.11.5 Output data 165
5.6.12 Add Attributes to Temporal Evolution of an Entity 165
5.6.12.1 Description 165
5.6.12.2 Use case diagram 165
5.6.12.3 Input data 165
5.6.12.4 Behaviour 165
5.6.12.5 Output data 166
5.6.13 Delete Attribute from Temporal Evolution of an Entity 166
5.6.13.1 Description 166
5.6.13.2 Use case diagram 166
5.6.13.3 Input data 167
5.6.13.4 Behaviour 167
5.6.13.5 Output data 168
5.6.14 Modify Attribute instance in Temporal Evolution of an Entity 168
5.6.14.1 Description 168
5.6.14.2 Use case diagram 168
5.6.14.3 Input data 169
5.6.14.4 Behaviour 169
5.6.14.5 Output data 169
5.6.15 Delete Attribute instance from Temporal Evolution of an Entity 170
5.6.15.1 Description 170
5.6.15.2 Use case diagram 170
5.6.15.3 Input data 170
5.6.15.4 Behaviour 170
5.6.15.5 Output data 171
5.6.16 Delete Temporal Evolution of an Entity 171
5.6.16.1 Description 171
5.6.16.2 Use case diagram 171
5.6.16.3 Input data 172
5.6.16.4 Behaviour 172
5.6.16.5 Output data 172
5.6.17 Merge Entity 173
5.6.17.1 Description 173
5.6.17.2 Use case diagram 173
5.6.17.3 Input data 173
5.6.17.4 Behaviour 173
5.6.17.5 Output data 175
5.6.18 Replace Entity 175
5.6.18.1 Description 175
5.6.18.2 Use case diagram 175
5.6.18.3 Input data 176
5.6.18.4 Behaviour 176
5.6.18.5 Output data 177
5.6.19 Replace Attribute 177
5.6.19.1 Description 177
5.6.19.2 Use case diagram 177
5.6.19.3 Input data 177
5.6.19.4 Behaviour 177
5.6.19.5 Output data 178
5.6.20 Batch Entity Merge 178
5.6.20.1 Description 178
5.6.20.2 Use case diagram 178
5.6.20.3 Input data 179
5.6.20.4 Behaviour 179
5.6.20.5 Output data 180
5.6.21 Purge Entities 180
5.6.21.1 Description 180
5.6.21.2 Use case diagram 180
5.6.21.3 Input data 181
5.6.21.4 Behaviour 181
5.6.21.5 Output data 182
5.7 Context Information Consumption 182
5.7.1 Retrieve Entity 182
5.7.1.1 Description 182
5.7.1.2 Use case diagram 182
5.7.1.3 Input data 183
5.7.1.4 Behaviour 184
5.7.1.5 Output data 185
5.7.2 Query Entities 186
5.7.2.1 Description 186
5.7.2.2 Use case diagram 186
5.7.2.3 Input data 186
5.7.2.4 Behaviour 187
5.7.2.5 Output data 190
5.7.3 Retrieve Temporal Evolution of an Entity 190
5.7.3.1 Description 190
5.7.3.2 Use case diagram 190
5.7.3.3 Input data 191
5.7.3.4 Behaviour 191
5.7.3.5 Output data 192
5.7.4 Query Temporal Evolution of Entities 193
5.7.4.1 Description 193
5.7.4.2 Use case diagram 193
5.7.4.3 Input data 193
5.7.4.4 Behaviour 194
5.7.4.5 Output Data 197
5.7.5 Retrieve Available Entity Types 197
5.7.5.1 Description 197
5.7.5.2 Use case diagram 197
5.7.5.3 Input data 197
5.7.5.4 Behaviour 197
5.7.5.5 Output data 198
5.7.6 Retrieve Details of Available Entity Types 198
5.7.6.1 Description 198
5.7.6.2 Use case diagram 198
5.7.6.3 Input data 198
5.7.6.4 Behaviour 198
5.7.6.5 Output data 198
5.7.7 Retrieve Available Entity Type Information 199
5.7.7.1 Description 199
5.7.7.2 Use case diagram 199
5.7.7.3 Input data 199
5.7.7.4 Behaviour 199
5.7.7.5 Output data 199
5.7.8 Retrieve Available Attributes 199
5.7.8.1 Description 199
5.7.8.2 Use case diagram 200
5.7.8.3 Input data 200
5.7.8.4 Behaviour 200
5.7.8.5 Output data 200
5.7.9 Retrieve Details of Available Attributes 200
5.7.9.1 Description 200
5.7.9.2 Use case diagram 200
5.7.9.3 Input data 201
5.7.9.4 Behaviour 201
5.7.9.5 Output data 201
5.7.10 Retrieve Available Attribute Information 201
5.7.10.1 Description 201
5.7.10.2 Use case diagram 201
5.7.10.3 Input data 202
5.7.10.4 Behaviour 202
5.7.10.5 Output data 202
5.7.11 Architecture-related aspects of retrieval of Entity Types and Attributes 202
5.8 Context Information Subscription 203
5.8.1 Create Subscription 203
5.8.1.1 Description 203
5.8.1.2 Use case diagram 203
5.8.1.3 Input data 203
5.8.1.4 Behaviour 203
5.8.1.5 Output data 205
5.8.2 Update Subscription 205
5.8.2.1 Description 205
5.8.2.2 Use case diagram 205
5.8.2.3 Input data 205
5.8.2.4 Behaviour 206
5.8.2.5 Output data 206
5.8.3 Retrieve Subscription 206
5.8.3.1 Description 206
5.8.3.2 Use case diagram 206
5.8.3.3 Input data 207
5.8.3.4 Behaviour 207
5.8.3.5 Output data 207
5.8.4 Query Subscriptions 207
5.8.4.1 Description 207
5.8.4.2 Use case diagram 207
5.8.4.3 Input data 208
5.8.4.4 Behaviour 208
5.8.4.5 Output data 208
5.8.5 Delete Subscription 208
5.8.5.1 Description 208
5.8.5.2 Use case diagram 208
5.8.5.3 Input data 209
5.8.5.4 Behaviour 209
5.8.5.5 Output data 209
5.8.6 Notification behaviour 209
5.9 Context Source Registration 211
5.9.1 Introduction 211
5.9.2 Register Context Source 211
5.9.2.1 Description 211
5.9.2.2 Use case diagram 212
5.9.2.3 Input data 212
5.9.2.4 Behaviour 212
5.9.2.5 Output data 213
5.9.3 Update Context Source Registration 213
5.9.3.1 Description 213
5.9.3.2 Use case diagram 213
5.9.3.3 Input data 213
5.9.3.4 Behaviour 214
5.9.3.5 Output data 214
5.9.4 Delete Context Source Registration 214
5.9.4.1 Description 214
5.9.4.2 Use case diagram 214
5.9.4.3 Input data 215
5.9.4.4 Behaviour 215
5.9.4.5 Output data 215
5.10 Context Source Discovery 215
5.10.1 Retrieve Context Source Registration 215
5.10.1.1 Description 215
5.10.1.2 Use case diagram 215
5.10.1.3 Input data 216
5.10.1.4 Behaviour 216
5.10.1.5 Output data 216
5.10.2 Query Context Source Registrations 216
5.10.2.1 Description 216
5.10.2.2 Use case diagram 217
5.10.2.3 Input data 217
5.10.2.4 Behaviour 218
5.10.2.5 Output data 219
5.11 Context Source Registration Subscription 219
5.11.1 Introduction 219
5.11.2 Create Context Source Registration Subscription 219
5.11.2.1 Description 219
5.11.2.2 Use case diagram 219
5.11.2.3 Input data 219
5.11.2.4 Behaviour 220
5.11.2.5 Output data 221
5.11.3 Update Context Source Registration Subscription 221
5.11.3.1 Description 221
5.11.3.2 Use case diagram 221
5.11.3.3 Input data 221
5.11.3.4 Behaviour 221
5.11.3.5 Output data 221
5.11.4 Retrieve Context Source Registration Subscription 222
5.11.4.1 Description 222
5.11.4.2 Use case diagram 222
5.11.4.3 Input data 222
5.11.4.4 Behaviour 222
5.11.4.5 Output data 222
5.11.5 Query Context Source Registration Subscriptions 222
5.11.5.1 Description 222
5.11.5.2 Use case diagram 223
5.11.5.3 Input data 223
5.11.5.4 Behaviour 223
5.11.5.5 Output data 223
5.11.6 Delete Context Source Registration Subscription 223
5.11.6.1 Description 223
5.11.6.2 Use case diagram 223
5.11.6.3 Input data 224
5.11.6.4 Behaviour 224
5.11.6.5 Output data 224
5.11.7 Notification behaviour 224
5.12 Matching Context Source Registrations 225
5.13 Storing, Managing and Serving @contexts 226
5.13.1 Introduction 226
5.13.2 Add @context 227
5.13.2.1 Description 227
5.13.2.2 Use case diagram 227
5.13.2.3 Input data 227
5.13.2.4 Behaviour 228
5.13.2.5 Output data 228
5.13.3 List @contexts 228
5.13.3.1 Description 228
5.13.3.2 Use case diagram 228
5.13.3.3 Input data 228
5.13.3.4 Behaviour 229
5.13.3.5 Output data 229
5.13.4 Serve @context 229
5.13.4.1 Description 229
5.13.4.2 Use case diagram 229
5.13.4.3 Input data 230
5.13.4.4 Behaviour 230
5.13.4.5 Output data 230
5.13.5 Delete and Reload @context 230
5.13.5.1 Description 230
5.13.5.2 Use case diagram 230
5.13.5.3 Input data 231
5.13.5.4 Behaviour 231
5.13.5.5 Output data 231
5.14 Context Source Entity Mapping 231
5.14.1 Retrieve EntityMap 231
5.14.1.1 Description 231
5.14.1.2 Use case diagram 231
5.14.1.3 Input data 232
5.14.1.4 Behaviour 232
5.14.1.5 Output data 232
5.14.2 Update EntityMap 232
5.14.2.1 Description 232
5.14.2.2 Use case diagram 232
5.14.2.3 Input data 233
5.14.2.4 Behaviour 233
5.14.2.5 Output data 233
5.14.3 Delete EntityMap 233
5.14.3.1 Description 233
5.14.3.2 Use case diagram 233
5.14.3.3 Input data 234
5.14.3.4 Behaviour 234
5.14.3.5 Output data 234
5.14.4 Create EntityMap for Query Entities 234
5.14.4.1 Description 234
5.14.4.2 Use case diagram 234
5.14.4.3 Input data 235
5.14.4.4 Behaviour 236
5.14.4.5 Output data 237
5.14.5 Create EntityMap for Query Temporal Evolution of Entities 238
5.14.5.1 Description 238
5.14.5.2 Use case diagram 238
5.14.5.3 Input data 238
5.14.5.4 Behaviour 239
5.7.4.5 Output Data 241
5.15 Context Source Identity Information 241
5.15.1 Retrieve Context Source Identity Information 241
5.15.1.1 Description 241
5.15.1.2 Use case diagram 241
5.15.1.3 Input data 242
5.15.1.4 Behaviour 242
5.14.1.5 Output data 242
6 API HTTP Binding 242
6.1 Introduction 242
6.2 Global Definitions and Resource Structure 242
6.3 Common Behaviours 246
6.3.1 Introduction 246
6.3.2 Error Types 247
6.3.3 Reporting errors 247
6.3.4 HTTP request preconditions 247
6.3.5 JSON-LD @context resolution 248
6.3.6 HTTP response common requirements 249
6.3.7 Representation of Entities 249
6.3.8 Notification behaviour 250
6.3.9 Csource Notification behaviour 251
6.3.10 Pagination behaviour 251
6.3.11 Including system Attributes 253
6.3.12 Simplified or aggregated temporal representation of Entities 253
6.3.13 Counting number of results 254
6.3.14 Tenant specification 254
6.3.15 GeoJSON representation of spatially bound entities 254
6.3.16 Expiration time for cached @contexts 254
6.3.17 Distributed Operations Caching and Timeout Behaviour 255
6.3.18 Limiting Distributed Operations 255
6.3.19 Extra information to provide when contacting Context Source 256
6.3.20 Invalid parameters 256
6.3.21 Optional profile information regarding versioning and datatype conformance 256
6.4 Resource: entities/ 257
6.4.1 Description 257
6.4.2 Resource definition 257
6.4.3 Resource methods 257
6.4.3.1 POST 257
6.4.3.2 GET 258
6.4.3.3 DELETE 262
6.5 Resource: entities/{entityId} 264
6.5.1 Description 264
6.5.2 Resource definition 264
6.5.3 Resource methods 265
6.5.3.1 GET 265
6.5.3.2 DELETE 267
6.5.3.3 PUT 268
6.5.3.4 PATCH 270
6.6 Resource: entities/{entityId}/attrs/ 271
6.6.1 Description 271
6.6.2 Resource definition 271
6.6.3 Resource methods 272
6.6.3.1 POST 272
6.6.3.2 PATCH 273
6.7 Resource: entities/{entityId}/attrs/{attrId} 274
6.7.1 Description 274
6.7.2 Resource definition 274
6.7.3 Resource methods 275
6.7.3.1 PATCH 275
6.7.3.2 DELETE 276
6.7.3.3 PUT 277
6.8 Resource: csourceRegistrations/ 279
6.8.1 Description 279
6.8.2 Resource definition 279
6.8.3 Resource methods 279
6.8.3.1 POST 279
6.8.3.2 GET 280
6.9 Resource: csourceRegistrations/{registrationId} 282
6.9.1 Description 282
6.9.2 Resource definition 282
6.9.3 Resource methods 282
6.9.3.1 GET 282
6.9.3.2 PATCH 283
6.9.3.3 DELETE 284
6.10 Resource: subscriptions/ 285
6.10.1 Description 285
6.10.2 Resource definition 285
6.10.3 Resource methods 285
6.10.3.1 POST 285
6.10.3.2 GET 286
6.11 Resource: subscriptions/{subscriptionId} 286
6.11.1 Description 286
6.11.2 Resource definition 286
6.11.3 Resource methods 287
6.11.3.1 GET 287
6.11.3.2 PATCH 287
6.11.3.3 DELETE 288
6.12 Resource: csourceSubscriptions/ 289
6.12.1 Description 289
6.12.2 Resource definition 289
6.12.3 Resource methods 289
6.12.3.1 POST 289
6.12.3.2 GET 290
6.13 Resource: csourceSubscriptions/{subscriptionId} 291
6.13.1 Description 291
6.13.2 Resource definition 291
6.13.3 Resource methods 291
6.13.3.1 GET 291
6.13.3.2 PATCH 292
6.13.3.3 DELETE 293
6.14 Resource: entityOperations/create 293
6.14.1 Description 293
6.14.2 Resource definition 294
6.14.3 Resource methods 294
6.14.3.1 POST 294
6.15 Resource: entityOperations/upsert 295
6.15.1 Description 295
6.15.2 Resource definition 295
6.15.3 Resource methods 296
6.15.3.1 POST 296
6.16 Resource: entityOperations/update 297
6.16.1 Description 297
6.16.2 Resource definition 298
6.16.3 Resource methods 298
6.16.3.1 POST 298
6.17 Resource: entityOperations/delete 299
6.17.1 Description 299
6.17.2 Resource definition 299
6.17.3 Resource methods 300
6.17.3.1 POST 300
6.18 Resource: temporal/entities/ 301
6.18.1 Description 301
6.18.2 Resource definition 301
6.18.3 Resource methods 301
6.18.3.1 POST 301
6.18.3.2 GET 302
6.19 Resource: temporal/entities/{entityId} 305
6.19.1 Description 305
6.19.2 Resource definition 305
6.19.3 Resource methods 305
6.19.3.1 GET 305
6.19.3.2 DELETE 307
6.20 Resource: temporal/entities/{entityId}/attrs/ 307
6.20.1 Description 307
6.20.2 Resource definition 308
6.20.3 Resource methods 308
6.20.3.1 POST 308
6.21 Resource: temporal/entities/{entityId}/attrs/{attrId} 309
6.21.1 Description 309
6.21.2 Resource definition 309
6.21.3 Resource methods 309
6.21.3.1 DELETE 309
6.22 Resource: temporal/entities/{entityId}/attrs/{attrId}/ {instanceId} 310
6.22.1 Description 310
6.22.2 Resource definition 310
6.22.3 Resource methods 310
6.22.3.1 PATCH 310
6.22.3.2 DELETE 311
6.23 Resource: entityOperations/query 312
6.23.1 Description 312
6.23.2 Resource definition 312
6.23.3 Resource methods 312
6.23.3.1 POST 312
6.24 Resource: temporal/entityOperations/query 314
6.24.1 Description 314
6.24.2 Resource definition 314
6.24.3 Resource methods 314
6.24.3.1 POST 314
6.25 Resource: types/ 315
6.25.1 Description 315
6.25.2 Resource definition 315
6.25.3 Resource methods 315
6.25.3.1 GET 315
6.26 Resource: types/{type} 316
6.26.1 Description 316
6.26.2 Resource definition 316
6.26.3 Resource methods 316
6.26.3.1 GET 316
6.27 Resource: attributes/ 317
6.27.1 Description 317
6.27.2 Resource definition 317
6.27.3 Resource methods 317
6.27.3.1 GET 317
6.28 Resource: attributes/{attrId} 318
6.28.1 Description 318
6.28.2 Resource definition 319
6.28.3 Resource methods 319
6.28.3.1 GET 319
6.29 Resource: jsonldContexts/ 320
6.29.1 Description 320
6.29.2 Resource definition 320
6.29.3 Resource methods 320
6.29.3.1 POST 320
6.29.3.2 GET 320
6.30 Resource: jsonldContexts/{contextId} 321
6.30.1 Description 321
6.30.2 Resource definition 322
6.30.3 Resource methods 322
6.30.3.1 GET 322
6.30.3.2 DELETE 323
6.31 Resource: entityOperations/merge 324
6.31.1 Description 324
6.31.2 Resource definition 324
6.31.3 Resource methods 324
6.31.3.1 POST 324
6.32 Resource: entityMaps/{entityMapId} 325
6.32.1 Description 325
6.32.2 Resource definition 325
6.32.3 Resource methods 326
6.32.3.1 GET 326
6.32.3.2 PATCH 326
6.32.3.3 DELETE 327
6.33 Resource: info/sourceIdentity 327
6.33.1 Description 327
6.33.2 Resource definition 328
6.33.3 Resource methods 328
6.33.3.1 GET 328
6.34 Resource: entityMaps 328
6.34.1 Description 328
6.34.2 Resource definition 329
6.34.3 Resource methods 329
6.34.3.2 POST 330
6.35 Resource: temporal/entityMaps 331
6.35.1 Description 331
6.35.2 Resource definition 331
6.35.3 Resource methods 331
6.35.3.1 GET 331
6.35.3.2 POST 332
7 API MQTT Notification Binding 333
7.1 Introduction 333
7.2 Notification behaviour 333
Annex A (normative): NGSI-LD identifier considerations 335
A.1 Introduction 335
A.2 Entity identifiers 335
A.3 NGSI-LD namespace 335
Annex B (normative): Core NGSI-LD @context definition 336
Annex C (informative): Examples of using the API 342
C.1 Introduction 342
C.2 Entity Representation 342
C.2.1 Property Graph 342
C.2.2 Vehicle Entity 343
C.2.3 Parking Entity 356
C.2.4 @context 362
C.3 Context Source Registration 362
C.4 Context Subscription 363
C.5 HTTP REST API Examples 364
C.5.1 Introduction 364
C.5.2 Create Entity of Type Vehicle 364
C.5.2.1 HTTP Request 364
C.5.2.2 HTTP Response 364
C.5.3 Query Entities 364
C.5.3.1 Introduction 364
C.5.3.2 HTTP Request 364
C.5.3.3 HTTP Response 365
C.5.4 Query Entities (Pagination) 365
C.5.4.1 Introduction 365
C.5.4.2 HTTP Request 365
C.5.4.3 HTTP Response 365
C.5.5 Temporal Query 366
C.5.5.1 Introduction 366
C.5.5.2 HTTP Request #1 366
C.5.5.3 HTTP Response #1 366
C.5.5.3 HTTP Request #2 366
C.5.5.4 HTTP Response #2 367
C.5.6 Temporal Query (Simplified Representation) 367
C.5.6.1 Introduction 367
C.5.6.2 HTTP Request 367
C.5.6.3 HTTP Response 367
C.5.7 Retrieve Available Entity Types 368
C.5.7.1 Introduction 368
C.5.7.2 HTTP Request 368
C.5.7.3 HTTP Response 368
C.5.8 Retrieve Details of Available Entity Types 369
C.5.8.1 Introduction 369
C.5.8.2 HTTP Request 369
C.5.8.3 HTTP Response 369
C.5.9 Retrieve Available Entity Type Information 370
C.5.9.1 Introduction 370
C.5.9.2 HTTP Request 370
C.5.9.3 HTTP Response 370
C.5.10 Retrieve Available Attributes 371
C.5.10.1 Introduction 371
C.5.10.2 HTTP Request 371
C.5.10.3 HTTP Response 371
C.5.11 Retrieve Details of Available Attributes 371
C.5.11.1 Introduction 371
C.5.11.2 HTTP Request 371
C.5.11.3 HTTP Response 372
C.5.12 Retrieve Available Attribute Information 372
C.5.12.1 Introduction 372
C.5.12.2 HTTP Request 372
C.5.12.3 HTTP Response 373
C.5.13 Query Entities (Natural Language Filtering) 373
C.5.13.1 Introduction 373
C.5.13.2 HTTP Request 373
C.5.13.3 HTTP Response 373
C.5.14 Temporal Query (Aggregated Representation) 374
C.5.14.1 Introduction 374
C.5.14.2 HTTP Request 374
C.5.14.3 HTTP Response 374
C.5.15 Scope Queries 375
C.5.15.1 Introduction 375
C.5.15.2 HTTP Request 375
C.5.15.3 HTTP Response 375
C.5.16 Temporal Scope Queries 376
C.5.16.1 Introduction 376
C.5.16.2 HTTP Request 376
C.5.16.3 HTTP Response 376
C.6 Date Representation 378
C.7 @context utilization clarifications 379
C.8 Link header utilization clarifications 380
C.9 @context processing clarifications 382
C.10 ValueType datatype utilization clarifications 383
Annex D (informative): Transformation Algorithms 385
D.1 Introduction 385
D.2 Algorithm for transforming an NGSI-LD Entity into a JSON-LD document (ALG1) 385
D.3 Algorithm for transforming an NGSI-LD Property into JSON-LD (ALG1.1) 386
D.4 Algorithm for transforming an NGSI-LD Relationship into JSON-LD (ALG1.2) 387
Annex E (informative): RDF-compatible specification of NGSI-LD meta-model 388
Annex F (informative): Conventions and syntax guidelines 389
Annex G (informative): Localization and Internationalization Support 390
G.0 Foreword 390
G.1 Introduction 390
G.1.0 Foreword 390
G.1.1 Associating an Entity with a Natural Language 390
G.1.2 Associating a Property with a Natural Language 390
G.1.3 Associating as equivalent entity 391
G.2 Natural Language Collation Support 391
G.2.0 Foreword 391
G.2.1 Maintain collations as metadata 392
G.2.2 Route language sensitive queries via a proxy 392
G.3 Localization of Dates, Currency formats, etc. 392
G.3.0 Foreword 392
G.3.1 Localizing Dates 392
Annex H (informative): Suggested actuation workflows 394
H.1 Actuators and feedback to the consumer 394
H.2 Architecture for actuation 394
H.3 Structure of Commands and additional Properties 395
H.3.0 Introduction 395
H.3.1 Property for listing available commands 396
H.3.2 Properties for command endpoints 396
H.4 Communication model 398
H.4.1 Possible communication models 398
H.4.2 Subscription/notification model 398
H.4.3 Forwarding model 399
H.5 Implementation of the subscription-based actuation workflow 400
H.6 Implementation of the registration-based actuation workflow 401
Annex I (informative): Change history 404
History 407