ISO-TC211 / StandardsTracker

This GitHub repository lets you - our users - log and track issues that you find with our standards and other document. Tag the issue with the standard or standards effected; we will assign it to the relevant group(s) within TC 211.
11 stars 0 forks source link

considerations on update of polymorphism definition #461

Closed ReesePlews closed 1 year ago

ReesePlews commented 2 years ago

polymorphism (defined by 19139-1:2019, 3.3) https://isotc211.geolexica.org/concepts/840/ was sourced some years back from a tech web site. while updated once before, the current source reference URL still does not directly resolve to a glossary page. a search on the site resolves to https://www.techtarget.com/whatis/definition/polymorphism

the best option would be to find a suitable iso/iec replacement for this definition. if an iso/iec replacement definition cannot be found, perhaps another definition can be found with a more stable source reference or we should just edit up our own definition, which would solve the source reference issue.

this ticket opened in regards to comments received on 19115-3 DIS from DE and UK via personal communication XMG convenor Evert @ejbleys

PeterParslow commented 2 years ago

ISO 19139-1 Clause 6.6 discusses polymorphism describing how the definition in 3.3 is actually used in the document - which is more about data (whereas the "techtarget" definition is more about software). After that, the term is actually only used once in the rest of ISO 19139-1, at 7.2.3.2 b). Even the original ISO 19139:2016 didn't make much use of the term. (The use in 19139:2016 to support multi-lingualism has been moved to ISO 19115-3)

That said, I wonder why we (the ISO 19139-1 team) didn't spot the ISO/IEC 18023-1:2006, 3.1.13 definition of polymorphism, which is specifically about data & therefore seems more relevant to ISO 19139:

"technique where alternate representations of the same data serve different needs"

For interest: UML Superstructure 2.4.1 (ISO/IEC 19505-2) uses the term polymorphism (once) without defining it - presumably believing it to be a well known term in the IT/programming community: which I believe it is.

ReesePlews commented 2 years ago

@PeterParslow thank you for the update. ISO 18023-1 entry was probably buried under all of those bio-chem related entries... i have forwarded your suggestion to Evert. as 19115-3 is in DIS now, i am not sure what Evert wants to do. it may be better to just wait and flag it for the terminology PWI and deal with it at the 19139-1 revision.

ejbleys commented 2 years ago

Without looking at the alternative definitions/ comments provided: Ron & I would be perfectly happy to replace the current definition with a better alternative

Evert Bleys 4 Tudor Place HUGHES ACT Australia Mob: 0411 483 876

On 24 Jun 2022, at 18:10, ReesePlews @.***> wrote:

 @PeterParslow thank you for the update. ISO 18023-1 entry was probably buried under all of those bio-chem related entries... i have forwarded your suggestion to Evert. as 19115-3 is in DIS now, i am not sure what Evert wants to do. it may be better to just wait and flag it for the terminology PWI and deal with it at the 19139-1 revision.

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.

JanHjelmager commented 2 years ago

Before changing the definition we have to make sure that the new definition does conflict with other use in the 19100 suite of standards. If you look at the screenshot below you can see that 1917 might have an issue.

image

ejbleys commented 2 years ago

Thanks Jan I’m more than happy to leave it well enough alone E

Evert Bleys 4 Tudor Place HUGHES ACT Australia Mob: 0411 483 876

On 24 Jun 2022, at 19:36, Jan Hjelmager @.***> wrote:

 Before changing the definition we have to make sure that the new definition does conflict with other use in the 19100 suite of standards. If you look at the screenshot below you can see that 1917 might have an issue.

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.

ReesePlews commented 2 years ago

@JanHjelmager very good find with the use of the term in 19107 (Annex B). 19107 does not define polymorphism in clause 3, so rather difficult to locate and know that usage, and the term is only used one time in all of 19107. from checking the TMG repository there are no conflicting issues noted. of course its up to @ejbleys and the PT on how to handle this, but leaving it alone for now would be the easiest and safest solution. it is in the tracker so we will have a record for the future.

JanHjelmager commented 2 years ago

@ReesePlews given that the term is not defined in 19107 and only used once I agree with you. So as soon as Evert and the PT have agreed on a solution I suppose we can close the issue.

ReesePlews commented 2 years ago

@JanHjelmager is there anyway to keep this open for future reference? if it is closed can we still see it, or do we need to search the closed tickets? it would be good to revisit this in the Terminology PWI. i can make an external note if this is a problem here. thanks.

ronaldtse commented 2 years ago

Perhaps the ISO/IEC 18023 definition is appropriate, it seems to define it as a "technique" instead of a "characteristic" though.

Screenshot 2022-06-27 at 11 00 47 AM

vs

ISO/TS 19139-1:2019 "characteristic of being able to assign a different meaning or usage to something in different contexts — specifically, to allow an entity such as a variable, a function, or an object to have more than one form"

The 3 instances in 19115-3 of it are as follows.

=== Multilingual adaptability and polymorphism

Cultural and linguistic adaptability is a requirement for metadata elements with text content. In <<ISO_19115-1_2014,clause="Annex F">>, there is an informative discussion of multilingual textual metadata elements. In order to enable the interoperability of multilingual instance documents, the XML implementation for this document follows the implementation specified in <>...

Such polymorphism allows user communities to modify geographic metadata to meet their organizational needs. This pattern is used to provide cultural and linguistic adaptability support through metadata instance documents containing content in one or more languages that do not violate cardinality rules defined in ISO 19115-1 or ISO 19115-2. The lan namespace defines a CharacterString property type that includes a CharacterString value, and zero to many PT_FreeText elements, each of which is a language-localized character string that may be included inline or by reference. Using this extension, a single metadata document may include content strings in a variety of languages, but clients that are not programmed for multilingual content will still work because the standard CharacterString element is present.

Another example of polymorphism is the name attribute of type CharacterString in the CI_Individual class in ISO 19115-1; if a more structured representation is required (e.g. first, middle, and last name elements), polymorphism allows extension of the name element implementation in a user-defined namespace that may be substituted for CharacterString within a metadata instance. These extensions will be understandable to users who recognize the extension namespace, but in general such extensions will not interoperate with client software not designed to work with them.

Would "characteristic" apply better to the context of 19115-3?

heidivanparys commented 2 years ago

Some more possible definitions:

From The quarks of object-oriented development, a paper that seems to have quite some citations: the ability of different classes to respond to the same message and each implement the method appropriately

A search on IGI Global also returns some definitions, including references. E.g.

The ability of object oriented programs to have multiple implementations of the same method name in different classes in an inheritance tree. Derived classes can override the functionality defined in their base class. (see also https://www.igi-global.com/chapter/business-model-application-uml-stereotypes/13613)

ronaldtse commented 1 year ago

This issue was raised again at our 19115-3 EC pre-meeting.

It seems clear that right now there is no "perfect" definition of "polymorphism" that can be sourced from ISO/IEC.

I'll attempt to combine the two next best options:

Changes to be made to ISO/IEC 18023 "representational polymorphism"

Changes to ISO/TS 19139 "polymorphism"

Considerations:

Combining and slightly massaging them:

Would something like this work?

PeterParslow commented 1 year ago

Couple of thoughts:

ronaldtse commented 1 year ago

For example, I don't think the use of polymorphism to describe software is required in the definition in ISO 19115

I agree.

However, I am a bit hesitant to say "polymorphism is data". The examples given in ISO 19115-3 are about data structure inheritance. i.e. two classes share a superclass, the data structure/behavior specified by the superclass is preserved across the polymorphs.

Maybe "polymorphism on data structure" makes more sense to me?

Now I think this is a pretty good description of what we are trying to express:

polymorphism for the situation where the data (about a concept/thing/feature instance/...) can be expressed in different ways for different purposes

However,

A person's name should not be "interpreted" as something else because it is structured into multiple parts.

A person's name should always be considered a name. However, given a formatted full name vs a structured name with name parts, there is a clear semantic (hence interpretation) difference between "full name" and "surname" -- they are different. In this sense, only the semantics defined by the superclass is preserved, but the semantics defined by the instance classes are not -- which leads to the "polymorphic" characteristic, where the higher-level (intent) semantics are preserved, but not lower-level (details) semantics differ.

Something like this?

ronaldtse commented 1 year ago

From WG 7 meeting today:

characteristic that allows alternative forms that preserves semantics, structure and behavior, while allowing the extension of them

NOTE: Polymorphism is commonly used so that data can be better used for different usages and contexts.

Add sentence to document:

ronaldtse commented 1 year ago

WG 7 EC meeting decision

polymorphism capability of expression in alternative forms that also allows extensions to semantics, structure and behaviour

NOTE: Polymorphism is commonly applied to data in order to support different usages and contexts.

No domain is necessary.

ronaldtse commented 1 year ago

This definition is now in ISO 19115-3 and therefore closing.