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: Terminology for "owned data"


Thanks George,

 

Yes, definitely helpful.

 

My goal with the discussion I want to have is to actually agree on something like what you wrote about composition.

But more importantly to give it a name so that we don’t always have to explain when some feature/operation/capability  applies (or can be applied) and when not (e.g. when deep insert works, when an aggregation function can be used, when a context url is a path vs a type, … ).

 

Christof

 

From: Ericson, George <George.Ericson@dell.com>
Sent: Wednesday, April 28, 2021 11:07
To: Christof Sprenger <chrispre@microsoft.com>; Michael Pizzo <mikep@microsoft.com>; ralf.handl@sap.com; odata@lists.oasis-open.org
Subject: [EXTERNAL] RE: Terminology for "owned data"

 

Some thoughts on this topic.

 

  1. I consider OData containment as semantically the same as UML composition.

UML defines AggregationKind='composite' as an indication that a Property is aggregated compositely, i.e., the composite object has responsibility for the existence and storage of the composed objects.

  1. By the UML definition, all OData Properties, EntitySets, Singletons and NavigationProperties with ContainsTarget=True are composite objects.
  2. In OData, a contained value is aggregated by an OData composite object. (Entities are a special kind of value.)
  3. EntitySets, Singletons, and NavigationProperties have values that are Entities.
  4. URLs are always only addresses.  Composite objects own their component objects.   So, an URL can address a composite object.
  5. In response to a GET, a By-Value and By-Reference representation of an Entity value is orthogonal to composition (or ownership).

 

Hope some of that is helpful,

George

 

From: odata@lists.oasis-open.org <odata@lists.oasis-open.org> On Behalf Of Christof Sprenger
Sent: Wednesday, April 28, 2021 12:47 PM
To: Michael Pizzo; ralf.handl@sap.com; odata@lists.oasis-open.org
Subject: [odata] Terminology for "owned data"

 

[EXTERNAL EMAIL]

Hello,

 

Wasn’t sure how to frame the following as an Issue, so I am starting with an email.

 

In recent TC meetings and in my day job we often need to distinguish between different paths/URLS and if they are returning something contained or not. We had the discussion a few times during the review of aggregation, and I had to go into it internally to discuss deep inserts.

 

The closest I could find is in 10.2 Collection of Entities [docs.oasis-open.org]. There is the distinction between contained Entities and “others”. But a) the description for “others” is quite lengthy and it is not clear that this covers all the other cases b) it is the first time in that document that the phrase “… entities are contained” is actually used, c) this only addresses collection of Entities and sections 10.3-10.15 have to essentially make similar statements or refer to 10.2.

 

4.3.2 Canonical URL for Contained Entities [docs.oasis-open.org] also mentions quote: “[…] contained entities (i.e. related via a containment navigation property […]” .

It feels weird that the phrase “contained entities” is previously not mentioned and quickly defined in the spot (in parenthesis, without mentioning a path of containment navigation property)

 


Would it not be helpful to introduce terminology that clearly categorize URLs into

  • Response contains data that is “owned” by this URL  (e.g. entity-set, a path of only containment navigation properties, … )
    • Owned in the sense that this is where it is stored and all create-update-delete operations “go”
  • Response contains data that is “referenced”  (e.g. a function, multiple navigation property bindings, …)

 

I hope that such a definition would help with describing and discussing many problems but I am not really able (as you can see above) to get to a crisp definition.

Have I overlooked that kind of definition ? If not, can/should this be a topic for the TC?

 

Christof

 



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