Alignment of Code Value attributes with those in new Codebook 2.6

Description

Codebook 2.6 aligns the attributes of Concept (and related elements) with those of Lifecycle CodeValueType. It also adds the attribute vocabInstanceURI to support the provision of the URI for the controlled vocabulary item being referenced. A similar update needs to be made to Lifecycle as soon as possible.

The newly approved Development and Review Process for DDI Standards and Official Documents states:

 

Patches (backward compatible bug fix) require a Technical Review by the Technical Committee.  A Patch may be implemented immediately following a Technical Review, without requiring a Public Review and Scientific Community Vote.  

Minor Version changes functional additions to the current content that are backward compatible (example: relaxing cardinality, documentation addition, additional  parameters, etc.) A Technical Review is required addressing the specifics of the changes made.

Major Version changes result in incompatible API changes. These involve a Technical Review addressing each specific area of change. 

An alternative is to provide specific guidance on the use of a temporary work around until a new version is published with this change. However CodeValueType has the following structure

<xs:complexType name="CodeValueType">

<xs:simpleContent><xs:extension base="xs:string"><xs:attribute name="controlledVocabularyID" type="xs:string" use="optional"/><xs:attribute name="controlledVocabularyName" type="xs:string" use="optional"/><xs:attribute name="controlledVocabularyAgencyName" type="xs:string" use="optional"/><xs:attribute name="controlledVocabularyVersionID" type="xs:string" use="optional"/><xs:attribute name="otherValue" type="xs:string" use="optional"/><xs:attribute name="controlledVocabularyURN" type="xs:string" use="optional"/><xs:attribute name="controlledVocabularySchemeURN" type="xs:string" use="optional"/></xs:extension></xs:simpleContent>

</xs:complexType>

As the extension base of CodeValueType is xs:string and NOT AbstractIdentifiableType there is no UserAttributePair available to contain this information. Moving this information to the UserAttributePair of the parent object is problematic if there are more than one CodeValueType used within the parent.

How do we proceed?

relates to

Activity

Show:

Wendy Thomas July 24, 2024 at 4:46 PM

The linked issue contains a document on CV usage in DDI including a list of attributes that should be available across DDI products

Dan Smith April 12, 2023 at 8:18 PM

User Attributes are used to record additional information not available in the published schemas.
vocabInstanceURI is a new piece of content which will be added to a future version.
To use this in 3.3 and 3.2, it would be useful to prescribe a best practice for how to record it.

In DDI Lifecycle, when using the CodeValueType the vocabulary and the vocabulary’s value are already able to be specified. This already uniquely identifies the code being used from a controlled vocabulary. To associate the vocabInstanceURI with this usage, we can use these identifying pieces and pair them with the vocabInstanceURI value that we wish to record.

For example:

User attribute key:
extension:vocabInstanceURIContents

User attribute value:

 

All usages of a code value within an identified item that requires storing a vocabInstanceURI can be stored in the structure.

We could prescribe what combination of existing attributes from the code value can be used as the unique key for the vocabulary, for example

  • controlledVocabularyURN

  • controlledVocabularyAgencyName, controlledVocabularyID, controlledVocabularyVersionID

This is paired with the value from the vocabulary, and provides all needed information to look up additional information about the usage, such as the future vocabInstanceURI. This allows vocabInstanceURIs to be associated with existing code value content.

The next version of DDI Lifecycle can add the vocabInstanceURI into the official model, and a structure like the one outlined also allows the content to be written back past DDI Lifecycle versions.

Details

Assignee

Reporter

Labels

Priority

Created March 3, 2023 at 4:37 PM
Updated March 13, 2025 at 4:27 PM