[DDI-SRG] [CDI] new Canonical XMI after model transform

Flavio Rizzolo flavio.rizzolo at gmail.com
Fri Aug 6 12:08:34 EDT 2021


That would depend on the syntax representation, in XML or JSON you can 
use the nesting of elements without needing further references... In any 
case, I lost track of how many times we went back and forth on this, I 
made the suggestion because I thought we were not identifying everything 
in this iteration... my bad.

The identifier is optional anyways, we could emphasize in the 
documentation that if the syntax representation of your choice doesn't 
need it in certain cases, then don't use it. That would create other 
interoperability problems since some people might drop identifiers even 
when they are really required, but I don't see any way around that since 
we are given tons of flexibility to the users, and with great 
flexibility comes great responsibility...

Flavio


On 2021-08-06 10:57 a.m., Hoyle, Larry wrote:
>
> Unfortunately, anything that is at the navigable end of an association 
> needs an identifier. This does not mean that these need to be heavily 
> (centrally) managed – a random UUID could work for the ddiIdentifier 
> attribute of the Identifier. The Position class is an example. A list 
> needs to be able to refer to the positions of the objects in the list. 
> If these Positions do not have unique identifiers, a saved instance of 
> the list and its associated positions becomes unusable.
>
> Since we cannot foresee future uses of existing classes in the model, 
> all classes should have an identifier property. This is how we have 
> been doing this for quite a while now. This is one of the primary 
> distinctions between classes and structured datatypes.
>
> Please let’s not get into remodeling this at this late date.
>
> Larry
>
> *From:* ddi-srg-bounces at icpsr.umich.edu 
> <ddi-srg-bounces at icpsr.umich.edu> *On Behalf Of *Flavio Rizzolo
> *Sent:* Friday, August 6, 2021 8:40 AM
> *To:* ddi-srg at icpsr.umich.edu
> *Subject:* Re: [DDI-SRG] [CDI] new Canonical XMI after model transform
>
> Yes, that's a good point Larry. The question is whether that is the 
> case, or it's just safer to remove them from all abstract classes with 
> the idea we'll add them in the concrete classes as necessary.
>
> The pattern classes also have identifier, even in the cases in which 
> the concrete classes shouldn't have them, e.g. keys and keymembers. I 
> think the criteria for having identifiers is not only that they will 
> be instantiated but also that the instance can live on its own and is 
> worth referencing, which is not the case of something like keys and 
> keymembers (besides, it would really be an overkill to add identifier, 
> which is not light, to something like a keymember, which is 
> essentially a pointer linking data points).
>
> The idea at some point was to use composition to indicate when two 
> classes formed a single whole so that the parts didn't require 
> separate identification from the whole. They keys certainly satisfy 
> that, since the are parts of a dataset. Position in List is another 
> example.
>
> Flavio
>
> On 2021-08-06 7:56 a.m., Hoyle, Larry wrote:
>
>     As to the last point:
>
>     I would think that adding an identifier to an abstract class is
>     done not because I would think that adding an identifier to an
>     abstract class is done not because you expect to identify the
>     abstract class itself, but because you intend that all classes
>     inheriting from it are identifiable. A Flavio pointed out, by
>     being abstract, a class is never intended to be used directly. It
>     only exists to describe what properties and relationships its
>     descendants must have.
>
>     I would not remove the identifier from an abstract classes without
>     thinking about whether all descendants are intended to be
>     identifiable.
>
>     *From:* ddi-srg-bounces at icpsr.umich.edu
>     <mailto:ddi-srg-bounces at icpsr.umich.edu>
>     <ddi-srg-bounces at icpsr.umich.edu>
>     <mailto:ddi-srg-bounces at icpsr.umich.edu> *On Behalf Of *Wackerow,
>     Joachim
>     *Sent:* Friday, August 6, 2021 6:42 AM
>     *To:* DDI Structural Reform Working Group.
>     <ddi-srg at icpsr.umich.edu> <mailto:ddi-srg at icpsr.umich.edu>
>     *Subject:* Re: [DDI-SRG] [CDI] new Canonical XMI after model transform
>
>     Thanks Flavio, for the things you noticed. This is helpful. My
>     comments are below in the message.
>
>     Keep checking!
>
>     Achim
>
>     *From:*Flavio Rizzolo <flavio.rizzolo at gmail.com
>     <mailto:flavio.rizzolo at gmail.com>>
>     *Sent:* Freitag, 6. August 2021 03:39
>     *To:* Wackerow, Joachim <Joachim.Wackerow at gesis.org
>     <mailto:Joachim.Wackerow at gesis.org>>; DDI Structural Reform
>     Working Group. <ddi-srg at icpsr.umich.edu
>     <mailto:ddi-srg at icpsr.umich.edu>>
>     *Subject:* Re: [DDI-SRG] [CDI] new Canonical XMI after model transform
>
>     A couple of other issues:
>
>     - The "refine" association seems to have a unique name now, even
>     in the non-unique names xmi. For instance, Concept "refines"
>     IndividualMember. Instead, we have Concept
>     "Concept_refines_IndividualMember" IndividualMember.
>
>     */[JW] The name should be probably removed in the regular XMI
>     file. The long name should be in the version with the unique
>     association names. The background of the refine names is that some
>     UML tools are not able to consume the abstraction stereotypes.
>     They just ignore them which results in a Abstraction relationship
>     without further specification. Using the name is a workaround. But
>     this is confusing in a tool like EA which can consume the
>     abstraction stereotypes. The name repeats what is already
>     expressed in the specific abstraction relationship. Another
>     workaround would be to describe the kind of relationship in the
>     definition./*
>
>     */I will remove the names in the regular XMI file. I’ll add the
>     long names to the version with the unique association names./*
>
>     */You could think about if the abstraction definitions could be
>     improved in a way that the kind of relationship is clear even if
>     an UML tool doesn’t understand the related stereotypes like refine./*
>
>     - Identifier appears in all classes in the inheritance chains. For
>     instance, Activity has Identifier, and so does Step, which is an
>     extension of Activity. However, only the top non-abstract class in
>     any inheritance chain should have Identifiable.
>
>     */[JW] I didn’t think about this./*
>
>     */I will remove the attribute identifier at all classes which
>     inherit from a non-abstract class./*
>
>     - Which brings me to the next issue: abstract classes should not
>     be identifiable, should they? They are never instantiated, so it
>     seems pointless they hay an identifier.
>
>     */[JW] Absolutely./*
>
>     */I’ll remove the attribute identifier from abstract classes./*
>
>     Flavio
>
>     On 2021-08-05 2:00 p.m., Flavio Rizzolo wrote:
>
>         Achim,
>
>         A few issues I noticed on a quick review:
>
>         - The definition of Identifier seems old. It says "Basic
>         object requiring identification. Elements of this type are
>         versioned and provide administrative metadata properties."
>         It's a datatype now, so it should probably say "identifier for
>         objects requiring short- or long-lasting referencing and
>         management", or something like that. The example seems wrong
>         as well "Use for First Order Classes whose content does not
>         need to be discoverable in its own right but needs to be
>         related to multiple classes.". I suggest to remove it.
>
>         */[JW] For the next transformation run, I would need the
>         documentation of both the class attribute identifier and the
>         data type Identifier. It could be the same definition./*
>
>         */“Identifier for objects requiring short- or long-lasting
>         referencing and management.” seems to be good enough./*
>
>         */The suggested removal is fine with me./*
>
>         - Some of the attributes, e.g. ddiIdentifier, uri, appear to
>         be of type "EA_Java_Types_Package". I'm not sure how that
>         happened.
>
>         */[JW] I typed them as strings. I will look into this. This is
>         an issue with EA and their use of UML primitives and how they
>         express them in their version of XMI./*
>
>         - There is a ModelIdentification datatype, right under the
>         DataTypes package, that doesn't seem to be used anywhere.
>
>         */[JW] I added this already to the public review version. It
>         is not used anywhere in the model but it can be used by any
>         program which uses the model or its representations. This way
>         a program can recognize with which specification and version
>         it deals with./*
>
>         */This could stay on the level of the data types like
>         currently or it could be located just below DDICDILibrary.
>         What do you think?/*
>
>         - I was just going over the Documentation.xlsx and noticed a
>         couple of enumerations that didn't ring a bell. I checked and
>         couldn't find them in the latest EA file. They are
>         WorkflowPattern and StringStructureType. There might be
>         others. I'm not sure where they are coming from.
>
>         */[JW] StringStructureType was removed because I simplified
>         all string data types. It is now an external controlled
>         vocabulary. Hard coding would be too limited./*
>
>         */WorkflowPattern is not used at all. I removed it but missed
>         to document it./*
>
>         That's all for now. I'll keep checking.
>
>         Flavio
>
>         On 2021-07-30 2:59 p.m., Wackerow, Joachim wrote:
>
>             I did the programmatic model transformation for a couple
>             of issues we talked about. Prior to that I edited manually
>             the EA model regarding some other issues.
>
>             I documented all changes in
>             ModelTransformation_2021-07-30.docx
>             <https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.dropbox.com%2Fs%2F8fkxs38snd6ss2d%2FModelTransformation_2021-07-30.docx%3Fdl%3D0&data=04%7C01%7Clarryhoyle%40ku.edu%7C90f00183acdc41690ded08d958dfc001%7C3c176536afe643f5b96636feabbe3c1a%7C0%7C0%7C637638541223322476%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=fcJpNbWGyBHeqSODTIwCgVHjq%2F9gxon7%2F8lB7pagvBE%3D&reserved=0>.
>
>             The file lists also some items which need documentation.
>             Volunteers sought.
>
>             While doing this work I filed a couple of additional issues:
>
>              1. Missing documentation *CDI-57*
>                 <https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fddi-alliance.atlassian.net%2Fbrowse%2FCDI-57&data=04%7C01%7Clarryhoyle%40ku.edu%7C90f00183acdc41690ded08d958dfc001%7C3c176536afe643f5b96636feabbe3c1a%7C0%7C0%7C637638541223332464%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=faHh4c%2Fj%2FpM5bQFlonDnJjWeiSGNx4BUurxb88vzKAs%3D&reserved=0>
>              2. Boolean class attributes: should they have a default
>                 value? *CDI-56*
>                 <https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fddi-alliance.atlassian.net%2Fbrowse%2FCDI-56&data=04%7C01%7Clarryhoyle%40ku.edu%7C90f00183acdc41690ded08d958dfc001%7C3c176536afe643f5b96636feabbe3c1a%7C0%7C0%7C637638541223332464%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=ZSjwVi%2BsDyC5HMdMHfDPhzmYpWK6EBbb5Wg7Cc54eFI%3D&reserved=0>
>              3. Data type ObjectName attributes are not clear.
>                 *CDI-55*
>                 <https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fddi-alliance.atlassian.net%2Fbrowse%2FCDI-55&data=04%7C01%7Clarryhoyle%40ku.edu%7C90f00183acdc41690ded08d958dfc001%7C3c176536afe643f5b96636feabbe3c1a%7C0%7C0%7C637638541223342460%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=XYiTITReBO%2BMSZJD%2FspKTP%2FExt%2F3ew%2BBow9tLMUOV84%3D&reserved=0>
>              4. Data type name "SpecificationType" too generic
>                 *CDI-54*
>                 <https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fddi-alliance.atlassian.net%2Fbrowse%2FCDI-54&data=04%7C01%7Clarryhoyle%40ku.edu%7C90f00183acdc41690ded08d958dfc001%7C3c176536afe643f5b96636feabbe3c1a%7C0%7C0%7C637638541223342460%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=LHIeTvUxcWyv6Q9wqXlST3UiYUJzYWyUOvF3rGThc0M%3D&reserved=0>
>              5. Review names of enumerations and data types. Several
>                 have the suffix 'type'. *CDI-58*
>                 <https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fddi-alliance.atlassian.net%2Fbrowse%2FCDI-58&data=04%7C01%7Clarryhoyle%40ku.edu%7C90f00183acdc41690ded08d958dfc001%7C3c176536afe643f5b96636feabbe3c1a%7C0%7C0%7C637638541223352454%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=HiNxBmzdMDp9GI93%2FqMON6HJklaqgT9uEgv86lcuXvE%3D&reserved=0>
>
>             The new files include everything below DDICDIModels. The
>             abstraction stereotypes like trace are maintained.
>             Diagrams get lost in this process.
>
>             The new XMI files (DDI-CDI_2021-07-30.xmi
>             <https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.dropbox.com%2Fs%2Foizidnadhqeo1s7%2FDDI-CDI_2021-07-30.xmi%3Fdl%3D0&data=04%7C01%7Clarryhoyle%40ku.edu%7C90f00183acdc41690ded08d958dfc001%7C3c176536afe643f5b96636feabbe3c1a%7C0%7C0%7C637638541223352454%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=leUhBgg258UiamqdktvsK15NTstsvv0gLaVAS%2BPg6eY%3D&reserved=0>,
>             DDI-CDI_UniqueAssociationNames_2021-07-30.xmi
>             <https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.dropbox.com%2Fs%2Fsv3h4cof4i499xx%2FDDI-CDI_UniqueAssociationNames_2021-07-30.xmi%3Fdl%3D0&data=04%7C01%7Clarryhoyle%40ku.edu%7C90f00183acdc41690ded08d958dfc001%7C3c176536afe643f5b96636feabbe3c1a%7C0%7C0%7C637638541223362451%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=nUIHHZaIxk5f46RCQbjOJ5wI6hRnhFvWqx8zpFJiaSg%3D&reserved=0>)
>             are available for download.
>
>             Please review. There might be issues.
>
>             Achim
>
>             _______________________________________________
>
>             DDI-SRG mailing list
>
>             DDI-SRG at icpsr.umich.edu <mailto:DDI-SRG at icpsr.umich.edu>
>
>             http://lists.icpsr.umich.edu/mailman/listinfo/ddi-srg
>             <https://nam10.safelinks.protection.outlook.com/?url=http%3A%2F%2Flists.icpsr.umich.edu%2Fmailman%2Flistinfo%2Fddi-srg&data=04%7C01%7Clarryhoyle%40ku.edu%7C90f00183acdc41690ded08d958dfc001%7C3c176536afe643f5b96636feabbe3c1a%7C0%7C0%7C637638541223372444%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=CHEvcw%2BTHHfyBNDnOsWB%2BOe%2FQTi9fqQclyJ%2FB4oUXE8%3D&reserved=0>
>
>
>
>     _______________________________________________
>
>     DDI-SRG mailing list
>
>     DDI-SRG at icpsr.umich.edu  <mailto:DDI-SRG at icpsr.umich.edu>
>
>     http://lists.icpsr.umich.edu/mailman/listinfo/ddi-srg  <https://nam10.safelinks.protection.outlook.com/?url=http%3A%2F%2Flists.icpsr.umich.edu%2Fmailman%2Flistinfo%2Fddi-srg&data=04%7C01%7Clarryhoyle%40ku.edu%7C90f00183acdc41690ded08d958dfc001%7C3c176536afe643f5b96636feabbe3c1a%7C0%7C0%7C637638541223372444%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=CHEvcw%2BTHHfyBNDnOsWB%2BOe%2FQTi9fqQclyJ%2FB4oUXE8%3D&reserved=0>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.icpsr.umich.edu/pipermail/ddi-srg/attachments/20210806/612d351a/attachment-0001.html 


More information about the DDI-SRG mailing list