[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: RE: Agenda for OData TC meeting on 2018-06-21 - chat transcript
[17:01] Ralf Handl (SAP SE): Dial-in information: https://www.oasis-open.org/apps/org/workgroup/odata/download.php/56760/latest
Online chat room: http://webconf.soaphub.org/conf/room/odatatc
Screen sharing: https://sap.emea.pgiconnect.com/OData-TC/
[17:01] Ralf Handl (SAP SE): Agenda
1.Roll call [8:00 am PT]
a.Self-registration link: https://www.oasis-open.org/apps/org/workgroup/odata/event.php?event_id=46261
[17:02] Ralf Handl (SAP SE): Voting Members: 4 of 11 (36%) (used for quorum calculation) [17:02] anonymous morphed into Hubert Heijkers (IBM) [17:02] Ralf Handl (SAP SE): Voting Members: 5 of 11 (45%) (used for quorum calculation) [17:03] Ralf Handl (SAP SE): Voting Members: 7 of 11 (63%) (used for quorum calculation) [17:03] Ralf Handl (SAP SE): Quorum achieved: yes [17:04] anonymous morphed into George Ericson (Dell) [17:05] Ralf Handl (SAP SE): 2.Approve agenda [8:05 am PT] [17:09] Ralf Handl (SAP SE): Mark asks why www.odata.org links to V4.01 specifications [17:10] Ralf Handl (SAP SE): Ralf: V4.01 specs point back to V4 under - Related work:
-- This specification replaces or supersedes:
[17:12] Ralf Handl (SAP SE): Mike: next Face-to-Face [17:13] Ralf Handl (SAP SE): Mike: September 2018 [17:14] Ralf Handl (SAP SE): Please check your calendars and let's find a date next meeting [17:15] Ralf Handl (SAP SE): Mike: Microsoft might host the meeting [17:15] Ralf Handl (SAP SE): Agenda is approved [17:15] Ralf Handl (SAP SE): 3.Approve minutes from previous meeting(s) [8:10 am PT] a.https://www.oasis-open.org/committees/download.php/63287/odata-meeting-217_on-20180614-minutes.html
[17:16] Ralf Handl (SAP SE): No remarks, the minutes are approved [17:16] 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:18] Ralf Handl (SAP SE): 5.Issues [8:20 am PT] a.Data Aggregation: NEW or OPEN
[17:19] Ralf Handl (SAP SE): i.ODATA-1068 3.12 Transformation expand: require at least two parameters, with innermost expansion requiring a filter() [17:20] Ralf Handl (SAP SE): ..../expand(Products)/.... doesn't do anything
.../expand(Products,filter(...)/... actually changes something
[17:21] Ralf Handl (SAP SE): GET ~/Categories?$apply=expand(Products,expand(Sales,filter(Amount gt 3))) $apply=expand(Products,expand(Sales,filter(Amount gt 3)),expand(Suppliers,expand(Products,filter(true))))
[17:23] Hubert Heijkers (IBM): I move to resolve ODATA-1068 as proposed [17:24] Ralf Handl (SAP SE): I second [17:24] Ralf Handl (SAP SE): ODATA-1068 is RESOLVED as proposed [17:24] Ralf Handl (SAP SE): ii.ODATA-1041 Broaden definitions of transformations topcount and bottomcount [17:25] Gerald Krause (SAP): GET ~/Sales?$apply=topcount(2,Amount) [17:27] Gerald Krause (SAP): $apply=groupby((Product),topcount(1,Date)) [17:31] Gerald Krause (SAP): The topcount transformation takes two parameters.
The first parameter specifies the number of instances to return in the transformed set. It MUST be an _expression_ that can be evaluated on the set level and MUST result in a positive integer.
The second parameter specifies the value by which the instances are compared for determining the result set. It MUST be an _expression_ that can be evaluated on instances of the input set and MUST result in a primitive numeric value.
The transformation retains the number of instances specified by the first parameter that have the highest values specified by the second _expression_.
In case the value of the second _expression_ is ambiguous, the service MUST impose a stable ordering before determining the returned instances.
[17:38] Gerald Krause (SAP): Proposal: Replace current definitions by "[...] and MUST result in values of a primitive type whose values are totally ordered.". [17:41] Ralf Handl (SAP SE): ODATA-1041 is OPEN [17:41] Gerald Krause (SAP): I move to resolve ODATA-1041 as proposed. [17:41] Hubert Heijkers (IBM): I second [17:42] Ralf Handl (SAP SE): ODATA-1041 is RESOLVED as proposed [17:42] Ralf Handl (SAP SE): iii.ODATA-1040 Clarification of term "_expression_" [17:43] Gerald Krause (SAP): The keyword with is used to apply an aggregation method to an aggregatable property or _expression_. [17:44] Gerald Krause (SAP): Instead of applying a single aggregation method for calculating the aggregated value of an _expression_ across all properties no [17:46] Gerald Krause (SAP): Proposal: At the beginning of section 3 for $apply, define that any reference to an _expression_, if not specified otherwise, refers to "those expressions that could also be used in a $filter system query option and result in a value of primitive type". With such a statement in the preamble, this phrase could then be deleted from some some sub-sections. [17:50] Ralf Handl (SAP SE): http://docs.oasis-open.org/odata/odata-data-aggregation-ext/v4.0/odata-data-aggregation-ext-v4.0.html [17:50] Ralf Handl (SAP SE): http://docs.oasis-open.org/odata/odata-data-aggregation-ext/v4.0/cs02/odata-data-aggregation-ext-v4.0-cs02.html#_Toc435016563 [17:51] Ralf Handl (SAP SE): This specification defines the following terms:
- Aggregatable Property a property for which the values can be aggregated using an aggregation method.
- Aggregation Method a method that can be used to aggregate an aggregatable property or _expression_
- Standard Aggregation Method one of the standard aggregation methods: sum, min, max, average, and countdistinct
- Custom Aggregation Method a custom aggregation method that can be applied to expressions of a specified type
- Custom Aggregate a dynamic property that can appear in an aggregate clause
- Groupable Property a property whose values can be used to group entities or complex type instances for aggregation.
- Hierarchy an arrangement of groupable properties whose values are represented as being above, below, or at the same level as one another.
[17:51] Ralf Handl (SAP SE): ODATA-1040 is OPEN [17:52] Ralf Handl (SAP SE): Gerald: revise proposal to define "_expression_" in section 2.1 [17:52] Gerald Krause (SAP): New proposal: In section 2.1, add a definition of expressions: is a common _expression_ resulting in a value of primitive type [17:54] Ralf Handl (SAP SE): George: if needed define "general _expression_" and "primitive _expression_" and use appropriately [17:57] Gerald Krause (SAP): In section 2.1, add a definition of expressions: is a common _expression_; and of primitive _expression_ being an _expression_ resulting in a value of primitive type
Check all occurrencies in the text for occurrences of "_expression_" and update accordingly.
[18:03] Gerald Krause (SAP): In section 2.1, add a definition of expressions: is a common _expression_ add a definition of primitive _expression_ being an _expression_ resulting in a value of primitive type or a boolCommonExpression
Check all occurrencies in the text for occurrences of "_expression_" and update accordingly.
[18:07] Ralf Handl (SAP SE): Defered: Gerald and Ralf to come up with a concrete proposal [18:08] Ralf Handl (SAP SE): iv.ODATA-1038 Clarify term "simple value" [18:08] Ralf Handl (SAP SE): Guess: number, string, boolean [18:09] Ralf Handl (SAP SE): Not: Geo, Stream [18:11] Ralf Handl (SAP SE): Defered: Gerald and Ralf to come up with a concrete proposal [18:11] Ralf Handl (SAP SE): ODATA-1038 is OPEN [18:12] Ralf Handl (SAP SE): x.ODATA-947 Transformation for computing ratios with aggregated values [18:12] Ralf Handl (SAP SE): Description It is interesting to get the ratio between an individual and an aggregated value from the same input set.
Examples:
1. Customer classification: Revenue per customer in relation to total revenue
2. Revenue trend: Revenue per year in relation to total revenue for any given customer
3. Order size: Order volume relative to average order volume
They cannot be expressed with combining groupby/aggregate, because the individual entity values are no longer available after these transformations have produced an aggregated value.
The ratio transformation takes a comma-separated list of one or more parameters describing a value, an aggregate _expression_, and an alias:
ratio(valueExpression to aggregateExpression as alias, )
A valueExpression may be an _expression_ valid in a $filter system query option on the input set that results in a simple value. The aggregateExpression is an aggregate _expression_ as defined for transformation aggregate (section 3.1). The alias introduces a dynamic property for the ratio values in the result set that are of type Edm.Decimal with unspecified precision and variable scale.
The transformation first determines the aggregated value for the input set by applying the aggregateExpression. Then, it calculates for every entity in the input set the ratio between the valueExpression and the aggregated value and adds the result as dynamic property to the entity that is put into the result set.
Applied to examples:
Re 1:
GET ~/Sales?$apply=
groupby((Customer),aggregate(Amount with sum as CustomerAmount))
/ratio(CustomerAmount to CustomerAmount with sum as RevenueContribution)
Re 2:
GET ~/Sales?$apply=
groupby((Customer,Year) aggregate(Amount with sum as CustomerYearAmount))
/groupby((Customer),ratio(CustomerYearAmount to CustomerYearAmount with sum as RevenueTrend)
Re 3:
GET ~/Sales?$apply=ratio(Amount to Amount with average as RelativeOrderSize)
In all these example, the value _expression_ is identical with the base in the aggregate _expression_, that is, they follow the pattern: ratio(X to X with M as A). If there were no other use cases, the syntax could be simplified to: ratio(X with M as A).
[18:16] Gerald Krause (SAP): GET ~/Sales?$apply= groupby((Customer),aggregate(Amount with sum as CustomerAmount))
/ratio(CustomerAmount to CustomerAmount with sum as RevenueContribution)
[18:17] Gerald Krause (SAP): ratio(valueExpression to aggregateExpression as alias, ) [18:28] Gerald Krause (SAP): Order size: Order volume relative to average order volume [18:28] Gerald Krause (SAP): GET ~/Sales?$apply=ratio(Amount to Amount with average as RelativeOrderSize) [18:30] Ralf Handl (SAP SE): ODATA-947 is OPEN [18:46] Ralf Handl (SAP SE): ratio combines aggregate and compute in a special way [18:46] Ralf Handl (SAP SE): Maybe there's a more generic way to express that [18:47] Ralf Handl (SAP SE): Hubert: think about similar use cases [18:48] Ralf Handl (SAP SE): Hubert: ratio() is very useful [18:48] Ralf Handl (SAP SE): Hubert: combine this with hierarchies [18:50] Ralf Handl (SAP SE): Hubert: revenue contribution of offices to countries to continents [18:51] Ralf Handl (SAP SE): Hubert: ability to refer to the input set [18:54] Ralf Handl (SAP SE): Defer until we have more use cases and a clearer understanding [18:55] Ralf Handl (SAP SE): xi.ODATA-946 Clarify scope for $apply [18:57] Ralf Handl (SAP SE): https://issues.oasis-open.org/browse/ODATA-946 [18:57] Ralf Handl (SAP SE): expandOption =/ apply [18:58] Ralf Handl (SAP SE): ODATA-946 is OPEN [18:59] Ralf Handl (SAP SE): Adjust section 3, first sentence. Changes are enclosed with : *Aggregation behavior **on a collection of instances* is triggered [19:00] Gerald Krause (SAP): I move to resolve ODATA-946 as proposed. [19:00] Michael Pizzo: I second [19:00] Hubert Heijkers (IBM): I second [19:00] Ralf Handl (SAP SE): ODATA-946 is RESOLVED as proposed [19:00] Ralf Handl (SAP SE): 6.Next meetings [9:50 am PT] a.Thursday June 28, 2018 during 8-10 am PDT (17:00-19:00 CEST)
b.Thursday July 05, 2018 during 8-10 am PDT (17:00-19:00 CEST)
[19:01] Matt Borges (SAP): I will be away July 5th [19:01] Ralf Handl (SAP SE): Hubert cannot attend July 05 and 12 [19:02] Ralf Handl (SAP SE): George expects to attend on July 05 [19:03] Ralf Handl (SAP SE): 7.AOB and wrap up [9:55 am PT] [19:03] Ralf Handl (SAP SE): Meeting is adjourned From: odata@lists.oasis-open.org [mailto:odata@lists.oasis-open.org]
On Behalf Of Handl, Ralf Now with meeting minutes in 3.a. From: odata@lists.oasis-open.org [mailto:odata@lists.oasis-open.org]
On Behalf Of Handl, Ralf Here [1] is a draft agenda for the OData TC (Technical Committee) meeting
scheduled on
Thursday June 21, 2018 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]
2.
Approve agenda [8:05 am PT]
3.
Approve minutes from previous meeting(s) [8:10 am PT]
4.
Review action items [Action item list:
https://www.oasis-open.org/apps/org/workgroup/odata/members/action_items.php] [8:15am PT]
i. none
5.
Issues [8:20 am PT]
i. ODATA-1068
3.12 Transformation expand: require at least two parameters, with innermost expansion requiring a filter()
ii. ODATA-1041
Broaden definitions of transformations topcount and bottomcount
iii. ODATA-1040
Clarification of term "_expression_"
iv. ODATA-1038
Clarify term "simple value"
v. ODATA-977
Allow POST with $apply to invoke an action to an aggregated result
vi. ODATA-972
Example 30: wrong result
vii. ODATA-971
7.1: Add example for grouping by single-valued navigation property
viii. ODATA-968
3.1.4: add example for from in aggregate() with multiple arguments
ix. ODATA-967
Chapter 3: remove restriction for input type of bound functions
x. ODATA-947
Transformation for computing ratios with aggregated values
xi. ODATA-946
Clarify scope for $apply
xii. ODATA-945
Correct examples 53 and 54
xiii. ODATA-944
Clarify scope of property paths in transformations
xiv. ODATA-943
Correct broken link for Groupable Property
xv. ODATA-909
ABNF for pathPrefix should also allow qualifiedComplexTypeName
xvi. ODATA-905
Example 67: result row for USA, Sugar missing, Example 68: last total should be 7
xvii. ODATA-904
Example 55: clarify groupby in combination with relationships of instance cardinality zero
xviii. ODATA-839
A recursive hierarchy annotation may also contain a navigation property to the children nodes
i. ODATA-1194
Add term Core.Example to allow including annotation examples in term definitions
ii. ODATA-1192
Capabilities vocabulary: invalid DefaultValue for KeyAsSegmentSupported
iii. ODATA-1176
Capabilities: add new term SelectRestrictions
iv. ODATA-1167
Add way to specify which batch formats (if any) are supported by a service
v. ODATA-1064
Add ability to annotate collections to return only count and NextLink
i. ODATA-1191
Make sure that all model elements are annotatable
ii. ODATA-1190
Add matchesPattern as a $filter function
iii. ODATA-1189
Conformance: Nullable for collections
iv. ODATA-1188
Allow using instance annotations in $select and $expand
v. ODATA-1187
No way to bind nav prop on recursively nested (contained or complex) type
vi. ODATA-1183
Allow Singletons to be null
vii. ODATA-1180
Cast between enumeration types and integer types
viii. ODATA-1177
Core: add term SchemaLocation
ix. ODATA-1171
Consider using matrix parameters for filter segments
x. ODATA-1168
Clarify the use of ETags for Avoiding Update Conflicts
xi. ODATA-1165
Describe $expand and $select via prose text and examples, remove ABNF snippets
xii. ODATA-1148
PATCH with nested nav props should not remove omitted resources
xiii. ODATA-1143
Extend the Property metatype to allow a type that is an EntityType.
xiv. ODATA-1141
Upsert: clarify upsert along nullable single-valued navigation path
xv. ODATA-1135
Document use of JSON $schema
xvi. ODATA-1088
Clarify effect of applying an Annotation to an element
i. ODATA-1193
Automated vocabulary checks indicate some potential issues
ii. ODATA-1099
Add annotations to describe custom query options and custom headers
iii. ODATA-1005
Make sure we have capabilities for all new 4.01 functionality
iv. ODATA-884
Add term ErrorCodes to describe possible codes in error messages (public comment c201510e00019)
6.
Next meetings [9:50 am PT]
7.
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]