OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

odata message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: RE: [odata] Agenda for OData TC meeting on 2017-09-14 - chat transcript


[16:59] Room information was updated by: Ralf Handl (SAP SE)
OASIS Open Data Protocol (OData) TC OData TC Weekly Meeting (Conference Call) #187
- Thursday, 14 September 2017, 08:00am to 10:00am PDT
  - i.e. 2017-09-14 17:00 to 19:00 CEST (UTC+2)
  - other timezone? Try eg.:
  - https://www.timeanddate.com/worldclock/meetingdetails.html?year=2017&month=9&day=14&hour=15&min=0&sec=0&p1=47&p2=69&p3=179
 
UsefulPlaces:
- Chat:
  - http://webconf.soaphub.org/conf/room/odatatc   # ... this place 
- ScreenShare and Voice:
  - https://sap.emea.pgiconnect.com/OData-TC/
i
Next Planned meetings (tentative):
- Thursday September 21, 2017 during 8-10 am PDT?
  - https://www.oasis-open.org/apps/org/workgroup/odata/event.php?event_id=43996
- Thursday September 28, 2017 during 8-10 am PDT?
  - https://www.oasis-open.org/apps/org/workgroup/odata/event.php?event_id=43997
- Thursday October 05, 2017 during 8-10 am PDT?
  - https://www.oasis-open.org/apps/org/workgroup/odata/event.php?event_id=43998
 
Agenda-Draft E-Mail URL:
- E-Mail Public URL = "" href="https://lists.oasis-open.org/archives/odata/201709/msg00019.html" target="_blank">https://lists.oasis-open.org/archives/odata/201709/msg00019.html
 
Minutes Draft Public URL (previous meeting):
- URL = "" href="https://www.oasis-open.org/committees/download.php/61535/odata-meeting-186_on-20170907-minutes.html" target="_blank">https://www.oasis-open.org/committees/download.php/61535/odata-meeting-186_on-20170907-minutes.html
 
Online document walkthroughs or presentations:
- URL = "" href="https://sap.emea.pgiconnect.com/OData-TC/" target="_blank">https://sap.emea.pgiconnect.com/OData-TC/
 
Timeline:
- URL = "" href="https://www.oasis-open.org/committees/download.php/59862/TC%20Timeline-2017-01-25.docx" target="_blank">https://www.oasis-open.org/committees/download.php/59862/TC%20Timeline-2017-01-25.docx
 
Agenda Draft (for meeting #187):
==============================================================
1. Roll call [8:00 am PT]
  1.1  Self-registration link: https://www.oasis-open.org/apps/org/workgroup/odata/event.php?event_id=43995 
2. Approve agenda [8:05 am PT]
3. Approve minutes from previous meeting(s) [8:10 am PT]
  3.1  Minutes from September 07, 2017 TC meeting: https://www.oasis-open.org/committees/download.php/61535/odata-meeting-186_on-20170907-minutes.html
4. Review action items [Action item list: https://www.oasis-open.org/apps/org/workgroup/odata/members/action_items.php] [8:15am PT]
  4.1  Action items due
    4.1.1  None
5. Version 4.01 Public Review - 05 July 2017 to 03 August 2017 - Issues [8:20 am PT]
  5.1 ODATA-1111 Structural properties: default for $Nullable is true
  5.2 ODATA-1105 Simplify selection of properties of complex type
  5.3 ODATA-1109 Clarify that 'parameter' aliases can also be used to substitute expressions
  5.4 ODATA-1100 Add mechanism for specifying match type for $search
6. Issues [8:50 am PT]
  6.1 Vocabularies: APPLIED
    6.1.1 ODATA-958 Capabilities: FilterRestrictions and SortRestrictions for navigation properties
    6.1.2 ODATA-1055 DeepInsertSupport: allow applying to entity sets and collection-valued navigation properties
    6.1.3 ODATA-1064 Add ability to annotate collections to return only count and NextLink
    6.1.4 ODATA-1069 New term Core.OperationAvailable
    6.1.5 ODATA-1079 Several issues with latest standard vocabularies
    6.1.6 ODATA-1082 Add term Constraint to Validation vocabulary
    6.1.7 ODATA-1089 Org.OData.Aggregation.V1 missing Nullable="false" for Function ReturnType
    6.1.8 ODATA-1098 xxxRestrictions can be applied more broadly
  6.2 Vocabularies: NEW or OPEN
    6.2.1 ODATA-1099 Add annotations to describe custom query options and custom headers
      META 1: use issue-specific branches for new terms, types, properties, or add them to master branch and mark them as experimental?
      META 2: add examples to term definitions as shown here via annotation Core.Example?
    6.2.2 ODATA-1067 Consider ability to define computed default values
    6.2.3 ODATA-1060 Improve specification of element response requirements
    6.2.4 ODATA-1005 Make sure we have capabilities for all new 4.01 functionality
    6.2.5 ODATA-884 Add term ErrorCodes to describe possible codes in error messages (public comment c201510e00019)
    6.2.6 ODATA-1107 Introduce instance annotation to specify which types an instance "implements"
7. Next meetings [9:50 am PT]
  7.1 Thursday September 21, 2017 during 8-10 am PDT
8. AOB and wrap up [9:55 am PT]
==============================================================
 
Meeting Member URL:
- URL = "" href="https://www.oasis-open.org/apps/org/workgroup/odata/event.php?event_id=43995" target="_blank">https://www.oasis-open.org/apps/org/workgroup/odata/event.php?event_id=43995
  - Please use starting approx. 15 minutes before the meeting for self registration. Thanks.
  - Self registration deep link (as a service):
    - https://www.oasis-open.org/apps/org/workgroup/odata/record_my_attendance.php?event_id=43995&confirmed=1

 

[17:04] Ralf Handl (SAP SE): Voting Members: 5 of 12 (41%) (used for quorum calculation)
[17:05] Ralf Handl (SAP SE): Voting Members: 7 of 12 (58%) (used for quorum calculation)
[17:06] Ralf Handl (SAP SE): Achieved quorum: yes
[17:06] Ralf Handl (SAP SE): 2.Approve agenda [8:05 am PT]
[17:06] Ralf Handl (SAP SE): Agenda is approved
[17:06] Ralf Handl (SAP SE): 3.Approve minutes from previous meeting(s) [8:10 am PT]
a.Minutes from September 07, 2017 TC meeting: https://www.oasis-open.org/committees/download.php/61535/odata-meeting-186_on-20170907-minutes.html
[17:07] Ralf Handl (SAP SE): Minutes are approved
[17:07] Ralf Handl (SAP SE): 4.Review action items [Action item list: https://www.oasis-open.org/apps/org/workgroup/odata/members/action_items.php] [8:15am PT]
a.Action items due
i.None
[17:07] Ralf Handl (SAP SE): 5.Version 4.01 Public Review - 05 July 2017 to 03 August 2017 [8:20 am PT]
a.Issues
[17:08] Ralf Handl (SAP SE): i.ODATA-1111 Structural properties: default for $Nullable is true
[17:09] Ralf Handl (SAP SE): ODATA-1111 is OPEN

 

[17:15] Michael Pizzo: Note: since nullable is the common case for collections, we *could* define it as the default, just for collections, just for JSON, but that would mean that xml and json would be inconsistent and that, within JSON, the defaults for collection would be different from properties and parameters.

 

[17:21] Ralf Handl (SAP SE): 7.2.1 Nullable - XML
A Boolean value specifying whether a value is required for the property.
Attribute Nullable
The value of Nullable is one of the Boolean literals true or false.
If no value is specified for a single-valued property, the Nullable attribute defaults to true.
In OData 4.01 responses a collection-valued property MUST specify a value for the Nullable attribute.
If no value is specified for a collection-valued property, the client cannot assume any default value. Clients SHOULD be prepared for this situation even in OData 4.01 responses.
[17:21] Ralf Handl (SAP SE): 7.2.1 Nullable - JSON
A Boolean value specifying whether a value is required for the property.
$Nullable
The value of $Nullable is one of the Boolean literals true or false. Absence of the member means false.
[17:23] Ralf Handl (SAP SE): ReturnType - both JSON and XML
$Nullable
The value of $Nullable is one of the Boolean literals true or false. Absence of the member means true.
For single-valued return types the value true means that the action or function MAY return a single null value. The value false means that the action or function will never return a null value and instead will fail with an error response if it cannot compute a result.
For collection-valued return types the result will always be a collection that MAY be empty. In this case the Nullable attribute applies to items of the collection and specifies whether the collection MAY contain null values.
[17:28] Ralf Handl (SAP SE): Mike: OpenAPI has nullable:false as default
[17:29] Ralf Handl (SAP SE): Mike: JSON Schema requires type "null" to be explicitly mentioned, omission means "no null allowed"

 

[17:29] Michael Pizzo: We seem to be coming to consensus: Clean up the handling of null values in JSON by making $Nullable false the default in all usages within CSDL JSON?
[17:34] Michael Pizzo: I move we simplify the handling of null values in JSON by making $Nullable false the default value for all usages in JSON CSDL.  Additionally, we clarify the meaning of $Nullable = true for a collection (that it allows null values within the collection) and disallow $Nullable=true for collection-valued navigation properties.

 

[17:35] Mark Biamonte (Progress): I second

 

[17:37] Ralf Handl (SAP SE): ODATA-1111 is RESOLVED with $Nullable:false as new default for properties, navigation properties, return types, and parameters
[17:38] Ralf Handl (SAP SE): iv.ODATA-1100 Add mechanism for specifying match type for $search

 

[17:47] Mark Biamonte (Progress): I move that we resolve OData -1100 with no action.

 

[17:47] Michael Pizzo: I second

 

[17:48] Ralf Handl (SAP SE): ODATA-1100 is CLOSED without action
[17:49] Ralf Handl (SAP SE): iii.ODATA-1109 Clarify that 'parameter' aliases can also be used to substitute expressions

 

[17:50] Michael Pizzo: Even without passing expressions to functions, we have the problem: 
 
Me?$expand=Friends($filter=BestFriend/Gender eq @p1))&@p1=Gender 
 
Does this return all of my friends whose best friend is the same gender as I am, or all of my friends whose best friend is the same gender as they are? 
 
I would have expected that Gender be evaluated in the context of Me, since I am the topic of the current URL path segment. 
 
Similarly for: 
 
People?$expand=Friends($filter=BestFriend/Gender eq @p1))&@p1=Gender 
 
Does that find the friends for each person whose best friend is the same gender as the person, or the person's friend? 
 
In either case, the _expression_ is not circular because it is being evaluated within the context of the same URL path segment. The circular references come in when the path segment where the alias is used is not the last path segment of the URL. 
 
If we say that the alias is evaluated relative to the URL path segment (not to be confused with the _expression_ path segment) in which it is used, then the first statement would be evaluated in the context of Me, while a function within the path would be evaluated within the context of that function, i.e., conceptually: 
 
Customers(ID=42)/some.function(par1=@p);@p=FirstName/BestFriend 
 
Thoughts? 
 
Note that, no matter what, it makes sense for the *_expression_* "ID gt 1" to be passed into the $filter segment in: 
 
/Customers/$filter=@f/some.Function()?@ID gt 1 
 
Because the type of parameter for a $filter URL segment is an _expression_.

 

[18:06] Hubert Heijkers (IBM): Me?$expand=Friends($filter=BestFriend/Gender eq @p1;@p1=Gender)

 

[18:06] Michael Pizzo: Me?$expand=Friends($filter=BestFriend/Gender eq Gender)
[18:07] Michael Pizzo: Customers?$expand=Orders($filter=ShipTo/City eq @p1))&@p1=HomeAddress/City <= is legal, if parsed in context of the Customers but not legal if parsed in context of Orders...
[18:11] Michael Pizzo: But we could extend syntax to support Customers?$expand=Orders($filter=ShipTo/City eq @p1;@p1=ShipFrom/City)

 

[18:19] Hubert Heijkers (IBM): Customers?$expand=Orders($filter=ShipTo/City eq @p1;@p1=$it/HomeAddress/City)

 

[18:20] Michael Pizzo: Customers?$expand=Orders($filter=ShipTo/City eq $it/HomeAddress/City)

 

[18:21] Hubert Heijkers (IBM): The $it literal can be used in expressions to refer to the current instance of the collection identified by the resource path.
[18:25] Hubert Heijkers (IBM): Me?$expand=Friends($filter=BestFriend/Gender eq @p1;@p1=@p2)&$p2=Gender
[18:25] Hubert Heijkers (IBM): Me?$expand=Friends($filter=BestFriend/Gender eq @p1;@p1=@p2)&@p2=Gender
[18:33] Hubert Heijkers (IBM): Dimensions/$filter=@f/head/Hierarchies/$filter=$f/head/some.Function()?@ID gt 1

 

[18:34] Michael Pizzo: Dimensions/$filter=@f/head/Hierarchies/$filter=@f/head/some.Function()?@f=ID gt 1

 

[18:35] Hubert Heijkers (IBM): Dimensions/foo(@f)/head/Hierarchies/bar(@f)/some.Function?@f=...

 

[18:37] Michael Pizzo: The parameters would be evaluated in the context of the segment in which they are used. So the first @f would be relative to Dimensions, the second would be relative to Hierarchies.

 

[18:44] Hubert Heijkers (IBM): Customers/Orders?$filter=TotalAmount > @max&@max=MaxTotalOrderAmount

 

[18:50] Michael Pizzo: Is this our proposal? Query parameters for $filter segment are always passed in as expressions.  All other parameters are evaluated in the context in which they are defined and passed as literals.
We add syntax for nesting parameters within $expand.
[18:51] Michael Pizzo: Slightly clarified: 
Query parameters for $filter segment are always passed in as expressions (because that is the expected type of the parameter).  All other parameters are evaluated in the context in which they are defined and passed as literals.
 
We add syntax for nesting parameters assignments within $expand.
[18:54] Michael Pizzo: Ralf: What is the value of Me?$expand=Friends($filter=BestFriend/Gender eq @p;@p=Gender) over Me?$expand=Friends($filter=BestFriend/Gender eq Gender)?
[18:54] Michael Pizzo: Hubert: For a long _expression_ it's nice not to have to repeat it multiple times.
[18:55] Michael Pizzo: Note: if we clarify the semantics of the first part we can add the semantics for the second part later.
[18:56] Michael Pizzo: Ralf would like to divide the question; define semantics for the current syntax first, and introduce an issue for the second question.

 

[18:57] Ralf Handl (SAP SE): 7.Next meetings [9:50 am PT]
[19:00] Ralf Handl (SAP SE): a.Thursday September 21, 2017 during 6:00-9:00 am PDT - two hours earlier, one hour longer
[19:01] Ralf Handl (SAP SE): Meeting is adjourned

 

 

From: odata@lists.oasis-open.org [mailto:odata@lists.oasis-open.org] On Behalf Of Handl, Ralf
Sent: Montag, 11. September 2017 10:46
To: odata@lists.oasis-open.org
Subject: [odata] Agenda for OData TC meeting on 2017-09-14

 

Here [1] is a draft agenda for the OData TC (Technical Committee) meeting scheduled on Thursday September 14, 2017 during 8-10 am PDT (17:00-19:00 CEST). For additional information, such as dial-in details and chat room, refer to [2]. For TC timeline, see [3]. Feel free to suggest additions or modifications.

 

Thanks.

 

[1] Agenda

 

1.        Roll call [8:00 am PT]

    1. Self-registration link: https://www.oasis-open.org/apps/org/workgroup/odata/event.php?event_id=43995

 

2.        Approve agenda [8:05 am PT]

 

3.        Approve minutes from previous meeting(s) [8:10 am PT]

    1. Minutes from September 07, 2017 TC meeting: https://www.oasis-open.org/committees/download.php/61535/odata-meeting-186_on-20170907-minutes.html

 

4.        Review action items [Action item list: https://www.oasis-open.org/apps/org/workgroup/odata/members/action_items.php] [8:15am PT]

    1. Action items due

                                  i.    None

 

5.        Version 4.01 Public Review - 05 July 2017 to 03 August 2017 [8:20 am PT]

    1. Issues

                                  i.    ODATA-1111 Structural properties: default for $Nullable is true

                                 ii.    ODATA-1105 Simplify selection of properties of complex type

                                iii.    ODATA-1109 Clarify that 'parameter' aliases can also be used to substitute expressions

                                iv.    ODATA-1100 Add mechanism for specifying match type for $search

 

6.        Issues [8:50 am PT]

    1. Vocabularies: APPLIED

                                  i.     ODATA-958 Capabilities: FilterRestrictions and SortRestrictions for navigation properties

                                 ii.     ODATA-1055 DeepInsertSupport: allow applying to entity sets and collection-valued navigation properties

                                iii.    ODATA-1064 Add ability to annotate collections to return only count and NextLink

                                iv.    ODATA-1069 New term Core.OperationAvailable

                                 v.    ODATA-1079 Several issues with latest standard vocabularies

                                vi.    ODATA-1082 Add term Constraint to Validation vocabulary

                               vii.    ODATA-1089 Org.OData.Aggregation.V1 missing Nullable="false" for Function ReturnType

                              viii.    ODATA-1098 xxxRestrictions can be applied more broadly

 

    1. Vocabularies: NEW or OPEN

                                  i.    ODATA-1099 Add annotations to describe custom query options and custom headers

        1. META 1: use issue-specific branches for new terms, types, properties, or add them to master branch and mark them as experimental?
        2. META 2: add examples to term definitions as shown here via annotation Core.Example?

                                 ii.    ODATA-1067 Consider ability to define computed default values

                                iii.    ODATA-1060 Improve specification of element response requirements

                                iv.    ODATA-1005 Make sure we have capabilities for all new 4.01 functionality

                                 v.    ODATA-884 Add term ErrorCodes to describe possible codes in error messages (public comment c201510e00019)

                                vi.    ODATA-1107 Introduce instance annotation to specify which types an instance "implements"

 

 

7.        Next meetings [9:50 am PT]

    1. Thursday September 21, 2017 during 8-10 am PDT

 

8.        AOB and wrap up [9:55 am PT]

 

[2] References

 

[3] Timeline

 

 

 



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]