Abstract-class attributes carry a subclass's C-code

https://kerfors.github.io/usdm-overlay/id/finding/abstract-class-attribute-ccodes

For attributes declared on abstract classes, dataStructure.yml carries the C-code, preferred term and definition of one concrete subclass, not the abstract class's own entry in USDM_CT.xlsx. usdm-rdf renders the YAML, so its skos:exactMatch on these properties points to the subclass concept. Example: SyntaxTemplate.text carries C207478 Characteristic Text; USDM_CT.xlsx lists C207578 Syntax Template Text for SyntaxTemplate.text.

standing
Ready to raise: Two published artefacts, dataStructure.yml and USDM_CT.xlsx, give different C-codes for the same attributes.
evidence
Model-stated
holds
true
observation
27 of 388 C-coded attributes in dataStructure.yml differ from USDM_CT.xlsx. All differences are on abstract classes (Identifier 1, PopulationDefinition 9, ScheduledInstance 3, StudyDesign 9, SyntaxTemplate 5); 27 C-coded attributes are declared on abstract classes in total. usdm-rdf skos:exactMatch follows the YAML code for all 27.
about
Identifier, PopulationDefinition, ScheduledInstance, StudyDesign, SyntaxTemplate
sources
https://github.com/cdisc-org/DDF-RA/blob/v4.0.0/Deliverables/CT/USDM_CT.xlsx
https://github.com/cdisc-org/DDF-RA/blob/v4.0.0/Deliverables/UML/dataStructure.yml
https://github.com/kerfors/usdm-rdf/blob/v0.7.1/usdm_v4.ttl

Test

Check function abstract_class_attribute_ccodes in scripts/check_findings.py.