Commit 6432c126 authored by Jason Fox's avatar Jason Fox
Browse files

Merge branch 'master' into fix/auxiliary

parents c4468a6e ac2bc32c
Loading
Loading
Loading
Loading
Loading
+97 −35
Original line number Diff line number Diff line
@@ -76,10 +76,6 @@ Such definition has been tested using [i.19].
      "@type": "@vocab"
    },
    "attrs": "ngsi-ld:attrs",
    "avg": {
      "@id": "ngsi-ld:avg",
      "@container": "@list"
    },
    "bbox": {
      "@container": "@list",
      "@id": "geojson:bbox"
@@ -123,10 +119,6 @@ Such definition has been tested using [i.19].
    },
    "description": "http://purl.org/dc/terms/description",
    "detail": "ngsi-ld:detail",
    "distinctCount": {
      "@id": "ngsi-ld:distinctCount",
      "@container": "@list"
    },
    "endAt": {
      "@id": "ngsi-ld:endAt",
      "@type": "DateTime"
@@ -185,7 +177,17 @@ Such definition has been tested using [i.19].
    "jsonldContext": "ngsi-ld:jsonldContext",
    "jsons": {
      "@id": "ngsi-ld:jsons",
      "@container": "@list",
      "@context": {
        "distinctCount": {
          "@id": "ngsi-ld:distinctCount",
          "@container": "@list"
        },
        "totalCount": {
          "@id": "ngsi-ld:totalCount",
          "@container": "@list"
        }
      }
    },
    "key": "ngsi-ld:hasKey",
    "lang": "ngsi-ld:lang",
@@ -195,8 +197,18 @@ Such definition has been tested using [i.19].
    },
    "languageMaps": {
      "@id": "ngsi-ld:hasLanguageMaps",
      "@container": "@list",
      "@context": {
        "distinctCount": {
          "@id": "ngsi-ld:distinctCount",
          "@container": "@list"
        },
        "totalCount": {
          "@id": "ngsi-ld:totalCount",
          "@container": "@list"
        }
      }
    },
    "langString": "http://www.w3.org/1999/02/22-rdf-syntax-ns#langString",
    "lastFailure": {
      "@id": "ngsi-ld:lastFailure",
@@ -220,14 +232,6 @@ Such definition has been tested using [i.19].
    "location": "ngsi-ld:location",
    "management": "ngsi-ld:management",
    "managementInterval": "ngsi-ld:managementInterval",
    "max": {
      "@id": "ngsi-ld:max",
      "@container": "@list"
    },
    "min": {
      "@id": "ngsi-ld:min",
      "@container": "@list"
    },
    "mode": "ngsi-ld:mode",
    "modifiedAt": {
      "@id": "ngsi-ld:modifiedAt",
@@ -265,11 +269,31 @@ Such definition has been tested using [i.19].
    },
    "objectLists": {
      "@id": "ngsi-ld:hasObjectLists",
      "@container": "@list",
      "@context": {
        "distinctCount": {
          "@id": "ngsi-ld:distinctCount",
          "@container": "@list"
        },
        "totalCount": {
          "@id": "ngsi-ld:totalCount",
          "@container": "@list"
        }
      }
    },
    "objects": {
      "@id": "ngsi-ld:hasObjects",
      "@container": "@list",
      "@context": {
        "distinctCount": {
          "@id": "ngsi-ld:distinctCount",
          "@container": "@list"
        },
        "totalCount": {
          "@id": "ngsi-ld:totalCount",
          "@container": "@list"
        }
      }
    },
    "objectType": {
      "@id": "ngsi-ld:hasObjectType",
@@ -377,14 +401,6 @@ Such definition has been tested using [i.19].
      "@id": "ngsi-ld:success",
      "@type": "@id"
    },
    "sum": {
      "@id": "ngsi-ld:sum",
      "@container": "@list"
    },
    "sumsq": {
      "@id": "ngsi-ld:sumsq",
      "@container": "@list"
    },
    "sysAttrs": "ngsi-ld:sysAttrs",
    "temporalQ": "ngsi-ld:temporalQ",
    "tenant": {
@@ -403,10 +419,6 @@ Such definition has been tested using [i.19].
    "timesFailed": "ngsi-ld:timesFailed",
    "timesSent": "ngsi-ld:timesSent",
    "title": "http://purl.org/dc/terms/title",
    "totalCount": {
      "@id": "ngsi-ld:totalCount",
      "@container": "@list"
    },
    "triggerReason": "ngsi-ld:triggerReason",
    "typeList": {
      "@id": "ngsi-ld:typeList",
@@ -431,12 +443,52 @@ Such definition has been tested using [i.19].
    },
    "valueLists": {
      "@id": "ngsi-ld:hasValueLists",
      "@container": "@list",
      "@context": {
        "distinctCount": {
          "@id": "ngsi-ld:distinctCount",
          "@container": "@list"
        },
        "totalCount": {
          "@id": "ngsi-ld:totalCount",
          "@container": "@list"
        }
      }
    },
    "values": {
      "@id": "ngsi-ld:hasValues",
      "@container": "@list",
      "@context": {
        "avg": {
          "@id": "ngsi-ld:avg",
          "@container": "@list"
        },
        "distinctCount": {
          "@id": "ngsi-ld:distinctCount",
          "@container": "@list"
        },
        "max": {
          "@id": "ngsi-ld:max",
          "@container": "@list"
        },
        "min": {
          "@id": "ngsi-ld:min",
          "@container": "@list"
        },
        "sum": {
          "@id": "ngsi-ld:sum",
          "@container": "@list"
        },
        "sumsq": {
          "@id": "ngsi-ld:sumsq",
          "@container": "@list"
        },
        "totalCount": {
          "@id": "ngsi-ld:totalCount",
          "@container": "@list"
        }
      }
    },
    "valueType": {
      "@id": "ngsi-ld:hasValueType",
      "@type": "@vocab"
@@ -447,8 +499,18 @@ Such definition has been tested using [i.19].
    },
    "vocabs": {
      "@id": "ngsi-ld:hasVocabs",
      "@container": "@list",
      "@context": {
        "distinctCount": {
          "@id": "ngsi-ld:distinctCount",
          "@container": "@list"
        },
        "totalCount": {
          "@id": "ngsi-ld:totalCount",
          "@container": "@list"
        }
      }
    },
    "watchedAttributes": {
      "@id": "ngsi-ld:watchedAttributes",
      "@type": "@vocab"
+150 −48
Original line number Diff line number Diff line
@@ -1106,10 +1106,10 @@ level of the graph only.
Below is an example, where temporal evolution of the speed of the car is
provided by two different sources. As both may be relevant at the same time,
there are two individual attribute instances for speed; each is identified by a
_`datasetId`_ and both instances are represented in an array. The combination of an
Attribute's _`datasetId`_ and the _`instanceId`_  associated to each value enables
modification of a particular instance value without affecting instances from other
sources.
_`datasetId`_ and both instances are represented in an array. The combination of
an Attribute's _`datasetId`_ and the _`instanceId`_ associated to each value
enables modification of a particular instance value without affecting instances
from other sources.

```json
{
@@ -1228,40 +1228,20 @@ individual attribute instances for speed; each is identified by a _`datasetId`_.
  "speed": [
    {
      "type": "Property",
      "avg": [
        [55.5, "2022-08-09T18:25:00Z", "2022-08-09T18:30:00Z"]
      ],
      "max": [
        [56, "2022-08-09T18:25:00Z", "2022-08-09T18:30:00Z"]
      ],
      "min": [
        [55, "2022-08-09T18:25:00Z", "2022-08-09T18:30:00Z"]
      ],
      "distinctCount": [
        [2, "2022-08-09T18:25:00Z", "2022-08-09T18:30:00Z"]
      ],
      "totalCount": [
        [2, "2022-08-09T18:25:00Z", "2022-08-09T18:30:00Z"]
      ],
      "avg": [[55.5, "2022-08-09T18:25:00Z", "2022-08-09T18:30:00Z"]],
      "max": [[56, "2022-08-09T18:25:00Z", "2022-08-09T18:30:00Z"]],
      "min": [[55, "2022-08-09T18:25:00Z", "2022-08-09T18:30:00Z"]],
      "distinctCount": [[2, "2022-08-09T18:25:00Z", "2022-08-09T18:30:00Z"]],
      "totalCount": [[2, "2022-08-09T18:25:00Z", "2022-08-09T18:30:00Z"]],
      "datasetId": "urn:ngsi-ld:Property:speedometerA4567-speed"
    },
    {
      "type": "Property",
      "avg": [
        [54.5, "2022-08-09T18:25:00Z", "2022-08-09T18:30:00Z"]
      ],
      "max": [
        [54.5, "2022-08-09T18:25:00Z", "2022-08-09T18:30:00Z"]
      ],
      "min": [
        [54.5, "2022-08-09T18:25:00Z", "2022-08-09T18:30:00Z"]
      ],
      "distinctCount": [
        [1, "2022-08-09T18:25:00Z", "2022-08-09T18:30:00Z"]
      ],
      "totalCount": [
        [2, "2022-08-09T18:25:00Z", "2022-08-09T18:30:00Z"]
      ],
      "avg": [[54.5, "2022-08-09T18:25:00Z", "2022-08-09T18:30:00Z"]],
      "max": [[54.5, "2022-08-09T18:25:00Z", "2022-08-09T18:30:00Z"]],
      "min": [[54.5, "2022-08-09T18:25:00Z", "2022-08-09T18:30:00Z"]],
      "distinctCount": [[1, "2022-08-09T18:25:00Z", "2022-08-09T18:30:00Z"]],
      "totalCount": [[2, "2022-08-09T18:25:00Z", "2022-08-09T18:30:00Z"]],
      "datasetId": "urn:ngsi-ld:Property:gpsBxyz123-speed"
    }
  ],
@@ -2168,7 +2148,7 @@ been compacted, as the Core _`@context`_ is always considered to be implicitly
present if not specified explicitly (and that is why it is included in the
JSON-LD response, as mandated by the specification).

## C.7 Link header utilization clarifications
## C.7 JSON-LD Link header utilization clarifications

The JSON-LD Specification [n.8] states clearly that **only one HTTP Link
header** with the link relationship
@@ -2178,8 +2158,8 @@ using the NGSI-LD API. The main implication is that if the _`@context`_ is a
compound one, i.e. an _`@context`_ which references multiple individual
_`@context`_, served by resources behind different URIs, then a **wrapper**
_`@context`_ has to be created and hosted. The final aim is that only one
_`@context`_ is referenced from the JSON-LD Link header. This can be illustrated
with an example:
_`@context`_ is referenced from the JSON-LD [Link]{.HTML-Code} header. This can
be illustrated with an example:

Imagine that it is desired to create an Entity providing _`@context`_ terms
which are defined in two different JSON-LD _`@context`_ resources:
@@ -2187,8 +2167,9 @@ which are defined in two different JSON-LD _`@context`_ resources:
- _`http://example.org/vehicle/v1/vehicle-context.jsonld`_
- _`https://schema.org`_

If a developer wants to reference these two _`@context`_ resources from a Link
header, a wrapper _`@context`_ can be easily created as follows:
If a developer wants to reference these two _`@context`_ resources from a
JSON-LD [Link]{.HTML-Code} header, a wrapper _`@context`_ can be easily created
as follows:

```json
{
@@ -2200,12 +2181,13 @@ header, a wrapper _`@context`_ can be easily created as follows:
}
```

As such wrapper _`@context`_ needs to be referenced from a Link header by using
a URI, then it will have to be hosted at some place on the Web. Usually,
developers will host _`@context`_ using popular and simple solutions such as
GitHub or GitLab pages. As a result, developers will be able to use _`@context`_
in queries or when using ["application/json"]{.HTML-Code} as main content type
managed by their applications.
As such wrapper _`@context`_ needs to be referenced from a JSON-LD
[Link]{.HTML-Code} header by using a URI, then it will have to be hosted at some
place on the Web. Usually, developers will host _`@context`_ using popular and
simple solutions such as GitHub or GitLab pages. As a result, developers will be
able to use _`@context`_ in queries or when using
["application/json"]{.HTML-Code} as main content type managed by their
applications.

It is a **good practice to include the Core** _`@context`_ in the wrapper
_`@context`_ so it can be used, off-the-shelf, by external JSON-LD processing
@@ -2311,8 +2293,8 @@ With a response as shown:
<!-- prettier-ignore-end -->

Observe that in this case the broker is responding with the same wrapper
_`@context`_ in the Link header of the HTTP Response or within the JSON-LD
response payload body (when MIME type accepted is
_`@context`_ in the JSON-LD [Link]{.HTML-Code} header of the HTTP Response or
within the JSON-LD response payload body (when MIME type accepted is
["application/ld+json"]{.HTML-Code}). However, that could not be always the
case, as there could be situations where the broker could need to provide a
wrapper _`@context`_ hosted by itself, for instance, when there are inline
@@ -2365,7 +2347,7 @@ With a response as shown:
```


Since the core _`@context`_ was omitted from the request, the Link header refers
Since the core _`@context`_ was omitted from the request, the JSON-LD [Link]{.HTML-Code} header refers
to a [Context Broker]{.HTML-Keyboard} endpoint _`/ngsi-ld/v1/jsonldContexts/http%3A%2F%2Fexample.org%2Fngsi-ld%2Flatest%2Fvehicle.jsonld?core=1.9`_
which returns the following JSON-LD _`@context`_ referencing two files:

@@ -2576,3 +2558,123 @@ Entity of type "Store" with two Properties. The "address" Property is digitally
>>>

<!-- prettier-ignore-end -->

## C.11 Scope Queries

As specified in Clause 7.2.5, the Scope Query language is intended to select
only those Entities that are within the specified Scope(s). Scopes are specified
as a disjunction of elements, where each element can either directly be a Scope
or a conjunction of multiple Scopes.

<!-- prettier-ignore-start -->

>>> [!tip] EXAMPLE:

Give back all the Entities of type ["OffStreetParking"]{.HTML-Code} that are
within the Scope [/Madrid/Centro]{.HTML-Code} or [/Madrid/Cortes]{.HTML-Code}.

**GET**
[/ngsi-ld/v1/entities/?type=OffStreetParking&scopeQ="/Madrid/Centro,/Madrid/Cortes"]{.HTML-Variable}

**Request Headers**

- [Accept: application/ld+json]{.HTML-Code}
- [Link:
  &lt;&#8203;http://example.org/ngsi-ld/latest/parking.jsonld&gt;;
  rel="http://www.w3.org/ns/json-ld#context";
  type="application/ld+json"]{.HTML-Code}


With a response as shown:

**Status Code:** 200 OK

**Response Headers**

- [Content-Type: application/ld+json]{.HTML-Code}
- [Content-Length: 1784]{.HTML-Code}

**Response Body**

```json
[
  {
    "id": "urn:ngsi-ld:OffStreetParking:Downtown1",
    "type": "OffStreetParking",
    "scope": "/Madrid/Centro",
    "name": {
      "type": "Property",
      "value": "Downtown One"
    },
    "availableSpotNumber": {
      "type": "Property",
      "value": 121,
      "observedAt": "2017-07-29T12:05:02Z",
      "reliability": {
        "type": "Property",
        "value": 0.7
      },
      "providedBy": {
        "type": "Relationship",
        "object": "urn:ngsi-ld:Camera:C1"
      }
    },
    "totalSpotNumber": {
      "type": "Property",
      "value": 200
    },
    "location": {
      "type": "GeoProperty",
      "value": {
        "type": "Point",
        "coordinates": [-8.5, 41.2]
      }
    },
    "@context": [
      "http://example.org/ngsi-ld/latest/parking.jsonld",
      "https://uri.etsi.org/ngsi-ld/v1/ngsi-ld-core-context-v1.9.jsonld"
    ]
  },
  {
    "id": "urn:ngsi-ld:OffStreetParking:Corte4",
    "type": "OffStreetParking",
    "scope": ["/Madrid/Cortes", "/Company894/UnitC"],
    "name": {
      "type": "Property",
      "value": "Corte4"
    },
    "availableSpotNumber": {
      "type": "Property",
      "value": 121,
      "observedAt": "2017-07-29T12:05:02Z",
      "reliability": {
        "type": "Property",
        "value": 0.7
      },
      "providedBy": {
        "type": "Relationship",
        "object": "urn:ngsi-ld:Camera:C1"
      }
    },
    "totalSpotNumber": {
      "type": "Property",
      "value": 100
    },
    "location": {
      "type": "GeoProperty",
      "value": {
        "type": "Point",
        "coordinates": [-8.6, 41.3]
      }
    },
    "@context": [
      "http://example.org/ngsi-ld/latest/parking.jsonld",
      "https://uri.etsi.org/ngsi-ld/v1/ngsi-ld-core-context-v1.9.jsonld"
    ]
  }
]
```

>>>

<!-- prettier-ignore-end -->
+24 −19
Original line number Diff line number Diff line
@@ -1754,20 +1754,23 @@ Figure: Retrieve Entity use case
  Entity as mandated by clause 5.2.6.4.1 and containing only the Attributes
  requested (if present).

  - If the Prefer Header [n.14] is set to
  - If the [Prefer]{.HTML-Code} Header [n.14] is set to
    ["ngsi-ld=&lt;&#8203;version&gt;"]{.HTML-Code} then the ContextBroker shall
    endeavour to amend the JSON-LD object to conform to the specified version of
    the NGSI-LD specification as mandated in clause 9.5.3, and return a
    Preference-Applied Header set to
    [Preference-Applied]{.HTML-Code} Header set to
    ["ngsi-ld=&lt;&#8203;conformant-version&gt;"]{.HTML-Code} in the response.

- If the Accept Header is set to ["application/geo+json"]{.HTML-Code}, a GeoJSON
  _Feature_ object representing the entity as mandated by clause 5.2.6.11.1 and
  containing only the Attributes requested (if present):
  - If the Prefer Header is omitted or set to ["body=ld+json"]{.HTML-Code} then
    the _Feature_ object will also contain an _`@context`_ field.
  - If the Prefer Header is set to ["body=json"]{.HTML-Code} the _`@context`_ is
    set as a Link Header and removed from the Feature object.
- If the [Accept]{.HTML-Code} Header is set to
  ["application/geo+json"]{.HTML-Code}, a GeoJSON _Feature_ object representing
  the entity as mandated by clause 5.2.6.11.1 and containing only the Attributes
  requested (if present):
  - If the [Prefer]{.HTML-Code} Header is omitted or set to
    ["body=ld+json"]{.HTML-Code} then the _Feature_ object will also contain an
    _`@context`_ field.
  - If the [Prefer]{.HTML-Code} Header is set to ["body=json"]{.HTML-Code} the
    _`@context`_ is set as a [Link]{.HTML-Code} Header and removed from the
    Feature object.

#### 10.4.2.5 Output data

@@ -2089,21 +2092,23 @@ If the execution of the operation is limited to the local scope (see clause
  the Entities as mandated by clause 5.2.6.4.1 and containing only the
  Attributes requested (if present).

  - If the Prefer Header [n.14] is set to
- If the [Prefer]{.HTML-Code} Header [n.14] is set to
  ["ngsi-ld=&lt;&#8203;version&gt;"]{.HTML-Code} then the ContextBroker shall
  endeavour to amend the elements of the JSON-LD array to conform to the
  specified version of the NGSI-LD specification as mandated in clause 9.5.3,
    and return a Preference-Applied Header set to
  and return a [Preference-Applied]{.HTML-Code} Header set to
  ["ngsi-ld=&lt;&#8203;conformant-version&gt;"]{.HTML-Code} in the response.

- If the Accept Header is set to ["application/geo+json",]{.HTML-Code} the
  response shall be a GeoJSON _FeatureCollection_ as mandated by clause
  5.2.6.11.2, with each _Feature_ within the _FeatureCollection_ containing only
  the Attributes requested (if present):
  - If the Prefer Header is omitted or set to ["body=ld+json"]{.HTML-Code} then
    the _FeatureCollection_ will also contain an _`@context`_ field.
  - If the Prefer Header is set to ["body=json]{.HTML-Code}" the _`@context`_ is
    sent as a Link Header and removed from the _FeatureCollection_ object.
  - If the [Prefer]{.HTML-Code} Header is omitted or set to
    ["body=ld+json"]{.HTML-Code} then the _FeatureCollection_ will also contain
    an _`@context`_ field.
  - If the [Prefer]{.HTML-Code} Header is set to ["body=json]{.HTML-Code}" the
    _`@context`_ is sent as a [Link]{.HTML-Code} Header and removed from the
    _FeatureCollection_ object.

#### 10.4.3.5 Output data

+23 −13
Original line number Diff line number Diff line
@@ -54,6 +54,7 @@ Implementations shall exhibit the following behaviour:
- If an **exclusive** [Context Source Registration]{.HTML-Keyboard} already
  exists for this Entity id (URI), Attributes from matching input data are
  forwarded for remote processing:

  - For matching Registrations where the "Create or Update (Upsert) Temporal
    Evolution of an Entity" operation is supported, the operation is forwarded
    to the registration endpoint. If the endpoint then raises an error, this
@@ -72,6 +73,7 @@ Implementations shall exhibit the following behaviour:
- If any **redirect** [Context Source Registrations]{.HTML-Keyboard} exist that
  match against the input data, that input data is forwarded for remote
  processing by one or more matching endpoints:

  - For matching Registrations where the "Create or Update (Upsert) Temporal
    Evolution of an Entity" operation is supported, matching input data is
    forwarded. If any such endpoint then raises an error, this shall result in
@@ -154,6 +156,7 @@ The following behaviour shall be exhibited by compliant implementations:
- If an **exclusive** [Context Source Registration]{.HTML-Keyboard} matches
  against the input data, the Attributes from matching input data are forwarded
  for remote processing. For each matching registration:

  - If the "Add Attributes to Temporal Evolution of an Entity" operation is
    supported by the matched registration, matching input data is forwarded to
    the Registration endpoint.
@@ -164,12 +167,13 @@ The following behaviour shall be exhibited by compliant implementations:
    parts of it succeeded.

  The Attributes matching the **exclusive** [Context Source
  Registration]{.HTML-Keyboard} are then removed from the EntityTemporal Fragment
  and not processed further.
  Registration]{.HTML-Keyboard} are then removed from the EntityTemporal
  Fragment and not processed further.

- If a **redirect** [Context Source Registration]{.HTML-Keyboard} matches
  against the input data, the Attributes from matching input data are forwarded
  for remote processing. For each matching registration:

- If a **redirect** [Context Source Registration]{.HTML-Keyboard} matches against
  the input data, the Attributes from matching input data are forwarded for remote
  processing. For each matching registration:
  - If the "Add Attributes to Temporal Evolution of an Entity" operation is
    supported by the matched registration, matching input data is forwarded to
    the Registration endpoint.
@@ -180,8 +184,8 @@ The following behaviour shall be exhibited by compliant implementations:
    parts of it succeeded.

  The Attributes matching the **redirect** [Context Source
  Registration]{.HTML-Keyboard} are then removed from the EntityTemporal Fragment
  and not processed further.
  Registration]{.HTML-Keyboard} are then removed from the EntityTemporal
  Fragment and not processed further.

- For any **inclusive** [Context Source Registrations]{.HTML-Keyboard} that
  match against the remaining input data, that input data is also forwarded for
@@ -189,8 +193,8 @@ The following behaviour shall be exhibited by compliant implementations:
- If the target [Temporal Evolution of an Entity]{.HTML-Keyboard} exists locally
  and matches against the remaining input data, implementations shall do the
  following:
  - For each Attribute instance included by the EntityTemporal Fragment at
    root level:
  - For each Attribute instance included by the EntityTemporal Fragment at root
    level:
  - The Attribute (considering term expansion rules as mandated by
    Clause+++clause-8+++root.2.4) instance(s) shall be added to the target
    [Temporal Evolution of an Entity]{.HTML-Keyboard}.
@@ -253,6 +257,7 @@ Figure: Delete Attribute from Temporal Evolution of an Entity use case
- If an **exclusive** or **redirect** [Context Source
  Registration]{.HTML-Keyboard} matches against the input data, the input data
  is forwarded. For each matching registration:

  - If the "Delete Attribute from Temporal Evolution of an Entity" operation is
    supported by the matched registration, matching input data is forwarded to
    the Registration endpoint.
@@ -342,6 +347,7 @@ Figure: Modify Attribute Instance in Temporal Evolution of an Entity use case
- If an **exclusive** or **redirect** [Context Source
  Registration]{.HTML-Keyboard} matches against the input data, the input data
  is forwarded. For each matching registration:

  - If the "Modify Attribute instance in Temporal Evolution of an Entity"
    operation is supported by the matched registration, matching input data is
    forwarded to the Registration endpoint.
@@ -428,6 +434,7 @@ Figure: Delete Attribute Instance from Temporal Evolution of an Entity use case
- If an **exclusive** or **redirect** [Context Source
  Registration]{.HTML-Keyboard} matches against the input data, the input data
  is forwarded. For each matching registration:

  - If the "Delete Attribute instance from Temporal Evolution of an Entity"
    operation is supported by the matched registration, matching input data is
    forwarded to the Registration endpoint.
@@ -500,6 +507,7 @@ Figure: Delete Temporal Evolution of an Entity use case
- If an **exclusive** or **redirect** [Context Source
  Registration]{.HTML-Keyboard} matches against the input data, the input data
  is forwarded. For each matching registration:

  - If the "Delete Temporal Evolution of Entity" operation is supported by the
    matched registration, matching input data is forwarded to the Registration
    endpoint.
@@ -799,12 +807,14 @@ Clause+++clause-8+++root.6 ), no further restrictions have to be provided.
  temporal property (by default _observedAt_) within the concerned temporal
  interval.
- Otherwise,

  - Let S be the set of selected Entities i.e. the query result set.
  - If split entities flag is explicitly set to true or, if not explicitly set,
    the default setting of the deployment allows split entities, and local scope
    is not specified, implementations shall run a query that shall return an
    Entity Array containing all the Entities found locally, that meet all of the
    following conditions (given the respective parameter is provided):

    - If id(s) is provided, keep in S only those Entities whose id is equivalent
      to any of the id(s) passed as a parameter.
    - If an id pattern is provided, keep in S only those Entities whose id
@@ -854,8 +864,8 @@ Clause+++clause-8+++root.6 ), no further restrictions have to be provided.
    - If no geoquery is provided, then S3 is equal to S2.
    - If the Scope query is present, from S3, select those Entities whose Entity
      Scope instances match the Scope query (as mandated by
      Clause+++clause-7+++root.2.5, for an example see [i.16] ~annex A.16). Let
      S4 be the new subset.
      Clause+++clause-7+++root.2.5, for an example see Annex C.11). Let S4 be
      the new subset.
    - If no Scope query is provided, then S4 is equal to S3.

- If the ContextBroker implementation supports the use of [Entity
@@ -914,8 +924,8 @@ Clause+++clause-8+++root.6 ), no further restrictions have to be provided.
  - If no geoquery is provided, then S6 is equal to S5.
  - If the Scope query is present, from S6, select those Entities whose Entity
    Scope instances match the Scope query (as mandated by
    Clause+++clause-7+++root.2.5, for an example see [i.16] ~annex A.16). Let S7
    be the new subset.
    Clause+++clause-7+++root.2.5, for an example see Annex C.11). Let S7 be the
    new subset.
  - If no Scope query is provided, then S7 is equal to S6.
- Otherwise S7 is equal to S4.
- If a _`datasetId`_ parameter is provided, from S7, for all Entities, filter
+20 −4

File changed.

Preview size limit exceeded, changes collapsed.

Loading