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: UNTITLED.pptx


A follow-up:

The attached .uml file is a machine-readable version of the model shown in the attached diagrams.

 

G

 

 

 

 

Internal Use - Confidential

From: Ericson, George
Sent: Wednesday, September 13, 2023 2:52 PM
To: Christof Sprenger <christof.sprenger@microsoft.com>
Cc: odata@lists.oasis-open.org
Subject: RE: UNTITLED.pptx

 

Inline, below.  [GME]

 

George

 

 

Internal Use - Confidential

From: Christof Sprenger <christof.sprenger@microsoft.com>
Sent: Wednesday, September 13, 2023 1:27 PM
To: Ericson, George <George.Ericson@dell.com>
Cc: odata@lists.oasis-open.org
Subject: Re: UNTITLED.pptx

 

[EXTERNAL EMAIL]

Thanks George for putting the effort into this. 


I fully understand the value of doing this in UML because it is an accepted modeling language. My two problems with it is that for one this should be represented in a machine readable form so that we can verify and ultimately use it to translate this into the XML and JSON representation as well as potentially implementation in programming languages.

[GME] I agree and the machine readable form is already available. Papyrus stores the visual design in the XML model Interchange language (XMI).  In Papyrus, the XMI files have the file extension “.uml”.

Secondly, I feel like this is not capturing a lot of the "essence" (for a lack of a better term) of CSDL. For example EnumMembers are contained in an EnumType, are uniquely named (unique in the EnumType), and have a fully qualified name. This "pattern" shows up in many places in CSDL, all model elements are uniquely named through their fully qualified name (which is based on containment) and references to these elements are expressed via these names (e.g. in the Type property of a Property.

[GME] Of course, the example I showed you is very incomplete and, in some cases, wrong… the example needs work…  Additionally, UML has many of those same constraints.  Note, from a UML point of view, EnumerationLiterals (i.e., EnumMembers) are not contained in an Enumeration (EnumType).  Instead, they specify the value of an instance of the enumeration.

 

George




I want to present a custom "meta modeling language" that captures that. It is minimal and can probably be explained in a few pages. But that I also admit imediatly that this is a problem since it only exists for that purpose. 

I will work more on this but just to give you an idea, below is my (incomplete) proposal. 

There is only a few things I think you need to "learn"about the meta language to get an idea (if you squint a little)

  • A class is a concrete object in the language in the sense that there will be an element with the name in XML or JSON (or ... ) wheras a trait  is an abstract construct. traits and classes can extends other traits and classes and build a subtype relationship which means an extending class/trait, can occur everywhere where the extended class/trait is required.
  • Properties of classes and traits have a type which can be 
    • one of the primitive types string, int, bool
    • another (contained) named class/trait in the meta model
    • a reference to a named class/trait in the meta model
    • a dictionary of named class/trait in the meta model index by one of its string properties. 
    • ...

Attached is the first draft of the meta model of CSDL.

Looking forward to the discussion. 


Christof


 

 


From: Ericson, George <George.Ericson@dell.com>
Sent: Friday, September 8, 2023 12:00 PM
To: Christof Sprenger <christof.sprenger@microsoft.com>
Cc: odata@lists.oasis-open.org <odata@lists.oasis-open.org>
Subject: [EXTERNAL] UNTITLED.pptx

 

Hi Christof,

The diagram shown is a partial and preliminary representation of OData metamodel as an extension of the UML metamodel.

Looking forward to a discussion on this approach.


George

 

Internal Use - Confidential

Attachment: PropertyDiagram.PNG
Description: PropertyDiagram.PNG

Attachment: AssociationDiagram.PNG
Description: AssociationDiagram.PNG

Attachment: ClassDiagram.PNG
Description: ClassDiagram.PNG

Attachment: EnumerationDiagram.PNG
Description: EnumerationDiagram.PNG

Attachment: OData_metamodel.profile.uml
Description: OData_metamodel.profile.uml



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