Loading md/clause-7.md +93 −16 Original line number Diff line number Diff line Loading @@ -142,6 +142,7 @@ Query = (QueryTerm / QueryTermAssoc) *(LogicalOp (QueryTerm / QueryTermAssoc)) QueryTermAssoc = %x28 QueryTerm *(LogicalOp QueryTerm) %x29 ; (QueryTerm) QueryTerm = Attribute QueryTerm =/ notOp Attribute QueryTerm =/ Attribute Operator ComparableValue QueryTerm =/ Attribute equal CompEqualityValue QueryTerm =/ Attribute unequal CompEqualityValue Loading Loading @@ -172,6 +173,7 @@ lessEq = %x3C %x3D ; <= patternOp = %x7E %x3D ; ~= notPatternOp = %x21 %x7E %x3D ; !~= dots = %x2E %x2E ; .. notOp = %x7E ; ! TermChar = unicodeNumber / unicodeLetter TermChar =/ %x5F ; _ AttrName = unicodeLetter *TermChar Loading Loading @@ -302,9 +304,9 @@ RFC 3986 [5] and IETF RFC 3987 [23], for the exact list of them). >>> [!tip] EXAMPLE 6: [?q=isMonitoredBy]{.HTML-Code} [?q=!isMonitoredBy]{.HTML-Code} To query for Entities that have the Attribute _`isMonitoredBy`_ ). To query for Entities that do not have the Attribute _`isMonitoredBy`_. >>> Loading Loading @@ -979,10 +981,85 @@ The Query Term value, [color=="http://example/black","http://example/red <!-- prettier-ignore-start --> 8. The Query Term addresses a sub-attribute within a JSON Object, the target element corresponds to a _Property_ , _ListProperty_ or _JsonProperty_ and the value of sub-attribute: 8. If there is no equality between the target value data type and the Query Term value data type, then it shall be considered as not matching. - Is identical or equivalent to the target value. - Is included in one of the JSON Objects corresponding to the target value, and the latter is an array. <!-- prettier-ignore-start --> >>> [!tip] EXAMPLE 8: The Query Term value, [address[​city]==Berlin]{.HTML-Code}: - Matches to the value below as the sub-attribute ["city"]{.HTML-Code} of the JSON Object is identical or equivalent to the target value. ```json {"city": "Berlin", "country":"DE"} ``` - Matches to the value below as the sub-attribute ["city"]{.HTML-Code} of at least one of the JSON Object in the array, is identical or equivalent to the target value. ```json [ {"city": "London", "country":"GB"} {"city": "Paris", "country":"FR"} {"city": "Berlin", "country":"DE"} ] ``` >>> <!-- prettier-ignore-end --> 9. The Query Term addresses a sub-attribute within a JSON Object, the target element corresponds to a _Property_ , _ListProperty_ or _JsonProperty_ and the Query Term value is a list of values (production rule named [ValueList]{.HTML-Sample}) and: - The sub-attribute of the JSON object corresponding to target value is identical or equivalent to any of the list values - The target value is an array of JSON objects, and the sub-attribute value matches target value for at least one element of the array. <!-- prettier-ignore-start --> >>> [!tip] EXAMPLE 9: The Query Term value, The Query Term value, [address[​city]==Berlin,Tokyo]{.HTML-Code}: - Matches to the value below as the sub-attribute ["city"]{.HTML-Code} of the JSON Object is identical or equivalent to one of the list values. ```json {"city": "Berlin", "country":"DE"} ``` - Matches to the value below, as the sub-attribute ["city"]{.HTML-Code} of at least one JSON Object in the array is included in one of the Query Term values ```json [ {"city": "London", "country":"GB"} {"city": "Paris", "country":"FR"} {"city": "Berlin", "country":"DE"} ] ``` >>> <!-- prettier-ignore-end --> 10. If there is no equality between the target value data type and the Query Term value data type, then it shall be considered as not matching. ### 7.2.4 GeoQuery language Loading Loading
md/clause-7.md +93 −16 Original line number Diff line number Diff line Loading @@ -142,6 +142,7 @@ Query = (QueryTerm / QueryTermAssoc) *(LogicalOp (QueryTerm / QueryTermAssoc)) QueryTermAssoc = %x28 QueryTerm *(LogicalOp QueryTerm) %x29 ; (QueryTerm) QueryTerm = Attribute QueryTerm =/ notOp Attribute QueryTerm =/ Attribute Operator ComparableValue QueryTerm =/ Attribute equal CompEqualityValue QueryTerm =/ Attribute unequal CompEqualityValue Loading Loading @@ -172,6 +173,7 @@ lessEq = %x3C %x3D ; <= patternOp = %x7E %x3D ; ~= notPatternOp = %x21 %x7E %x3D ; !~= dots = %x2E %x2E ; .. notOp = %x7E ; ! TermChar = unicodeNumber / unicodeLetter TermChar =/ %x5F ; _ AttrName = unicodeLetter *TermChar Loading Loading @@ -302,9 +304,9 @@ RFC 3986 [5] and IETF RFC 3987 [23], for the exact list of them). >>> [!tip] EXAMPLE 6: [?q=isMonitoredBy]{.HTML-Code} [?q=!isMonitoredBy]{.HTML-Code} To query for Entities that have the Attribute _`isMonitoredBy`_ ). To query for Entities that do not have the Attribute _`isMonitoredBy`_. >>> Loading Loading @@ -979,10 +981,85 @@ The Query Term value, [color=="http://example/black","http://example/red <!-- prettier-ignore-start --> 8. The Query Term addresses a sub-attribute within a JSON Object, the target element corresponds to a _Property_ , _ListProperty_ or _JsonProperty_ and the value of sub-attribute: 8. If there is no equality between the target value data type and the Query Term value data type, then it shall be considered as not matching. - Is identical or equivalent to the target value. - Is included in one of the JSON Objects corresponding to the target value, and the latter is an array. <!-- prettier-ignore-start --> >>> [!tip] EXAMPLE 8: The Query Term value, [address[​city]==Berlin]{.HTML-Code}: - Matches to the value below as the sub-attribute ["city"]{.HTML-Code} of the JSON Object is identical or equivalent to the target value. ```json {"city": "Berlin", "country":"DE"} ``` - Matches to the value below as the sub-attribute ["city"]{.HTML-Code} of at least one of the JSON Object in the array, is identical or equivalent to the target value. ```json [ {"city": "London", "country":"GB"} {"city": "Paris", "country":"FR"} {"city": "Berlin", "country":"DE"} ] ``` >>> <!-- prettier-ignore-end --> 9. The Query Term addresses a sub-attribute within a JSON Object, the target element corresponds to a _Property_ , _ListProperty_ or _JsonProperty_ and the Query Term value is a list of values (production rule named [ValueList]{.HTML-Sample}) and: - The sub-attribute of the JSON object corresponding to target value is identical or equivalent to any of the list values - The target value is an array of JSON objects, and the sub-attribute value matches target value for at least one element of the array. <!-- prettier-ignore-start --> >>> [!tip] EXAMPLE 9: The Query Term value, The Query Term value, [address[​city]==Berlin,Tokyo]{.HTML-Code}: - Matches to the value below as the sub-attribute ["city"]{.HTML-Code} of the JSON Object is identical or equivalent to one of the list values. ```json {"city": "Berlin", "country":"DE"} ``` - Matches to the value below, as the sub-attribute ["city"]{.HTML-Code} of at least one JSON Object in the array is included in one of the Query Term values ```json [ {"city": "London", "country":"GB"} {"city": "Paris", "country":"FR"} {"city": "Berlin", "country":"DE"} ] ``` >>> <!-- prettier-ignore-end --> 10. If there is no equality between the target value data type and the Query Term value data type, then it shall be considered as not matching. ### 7.2.4 GeoQuery language Loading