Closed bpow closed 6 years ago
Note that UserLabel.label had been declared with cardinality 1..1, others with cardinality 0..1.
I don't know if we want to keep these constraints, and if so how we can verify them under this way of representing labels (e.g., not attached to class structure).
Great call out. It is interesting that HL7 FHIR's docs deal with this in the following way.
When they are defining Resources (clusters of classes around one core concept - Patient, DiagnosticReport, etc...). They model the classes and define all the attributes as if they would all be available in any given implementation. Since they are essentially defining an "umbrella" model to cover many different use cases, they end having to make almost everything optional (0..1 or 0..*) with the exception of protocol specific values (like id, and there are some other exceptions).
However, when an implementation guide is created the "real" constraint for a given application is then applied to this "extension" or "profile" such that all users of the same implementation guide can rely on a more appropriately constrained model.
Since we are not really separating our generalized model from our implementation, we are sort of in a jam here. I think it is useful to show tech folks on our tech pages what the general cardinality is. I also think we should write some doc at the top of our Tech page stack that points out that further constraints may be helpful when using these resources in a given use case.
Not sure if that helps much since everything we have been targeting is a single use case, one all encompassing fully detailed variant interpretation. Maybe if we had another use case or two that utilized Variant Interpretation in different context's or ways then it would be easier to see the need for separating our baseline docs with our implementation docs.
This will most definitely happen once we start into other forms of assertions (I think).
Re: @larrybabb 's comment...
If we do want to restrict cardinality, then the type system seems like the right place to do that-- right now we are talking about having a separate validation for valuesets to determine if something is an instance of a valueset. That bit of "protocol" at least is an orthogonal concern to the type system. I think it would be confusing to have a protocol somehow specify different cardinalities for attributes outside of the type system, but maybe I don't understand what you are getting at.
I'm at a stopping point for this...
The __labels sheet is created and there is code in reformat_examples.rb
to handle it.
Still to fix: things that are now of type @iri
are still listed in the DomainEntity sheet (so they end up rendered as having 'type': 'DomainEntity'), and some of those things have other attributes besides 'label' (Families) have a "description", a few ascertainments have userLabels associated.
so far, delta T for this issue is about 90 minutes.
value set labels has been moved to the __label sheet (and updated to the latest names)
Related to #192
The following Types have a "label" attribute:
These will are being removed, with a new
__labels
sheet to associate ids with labels, regardless of Type (or even in absence of Type)