This wiki has undergone a migration to Confluence found Here
<meta name="googlebot" content="noindex">

Datatypes R2 Issue 9

From HL7Wiki
Jump to navigation Jump to search

Data Types Issue 9: Clarify BAG-SET-LIST relationship

Introduction

Clarify the semantics of Set, Bag and List to allow proper determination of allowed substitutions as extensions and restrictions. At present, it’s not clear which “collection types” can be substituted.

? backward compatible. None. (May identify some existing specifications as non-compliant)

MnM

Discussion

Proposed:

SET<T> restricts BAG<T>
LIST<T> restricts PLIST<T> (see other proposal)
PLIST<T> extends BAG<T>

It’d be really helpful if we clarified what the default collection type is for associations too (suggest BAG). Also need to identify how immutability and cardinality apply differently to the collection types than they do to other datatypes.

There is no unique hierarchical relationship between those. What is the use case? --Gschadow 01:13, 25 Jun 2006 (CDT)

BOF: No

Further comments:

  • The PLIST proposal was rejected.
  • The problem is that substitution is allowed. This does not require any gen/spec relationship
  • The semantics are complicated; Even trying to introduce a generic collection ancestor is an exercise in futility.

For the reasons outlined above, I think this should be rejected.--GrahameGrieve 10:21, 3 May 2007 (CDT)

btw note the the MNM hot topic # Datatype Substitution Issues.

There is no unique hierarchical relationship between these. Neither gen/spec nor extends/restticts.

  • A LIST is an ordered SET, i.e., a SET of OrderedItem<T>, where OrderedItem<T> specializes T and adds unique order number.
  • But a discrete SET is a restriction of LIST where order doesn't matter and where no item can occur more than once.
  • A BAG is a discrete SET of BagItem<T>, where BagItem<T> specializes T and adds an item frequency number.
  • But a discrete SET is a BAG where the BagItem frequency is restricted to 1.
  • A BAG is a LIST where the order does not matter.

Hence, which one is more basic? Which one is derived? Gschadow 10:33, 3 May 2007 (CDT)

Disposition

R2 taskforce Vote Record:

 Reject: Grahame, Gunther
 Continue Discussion:

Status

Proposed

Links

Back to Data Types R2 issues