SentinelValueDomain

Fully qualified class name: DDICDIModels::DDICDILibrary::Classes::Representations::SentinelValueDomain

Definition

Value domain for a sentinel conceptual domain.

Examples

Missing categories expressed as codes: -9, refused; -8, Don’t Know; for a numeric variable with values greater than zero.

Explanatory notes

Sentinel values are defined in ISO 11404 as “element of a value space that is not completely consistent with a datatype’s properties and characterizing operations…”. A common example would be codes for missing values. Sentinel values are used for processing, not to describe subject matter. Typical examples include missing values or invalid entry codes. Sentinel value domains are typically of the enumerated type, but they can be the described type, too. This is not to say that sentinel values carry no information. Data on gender might be enumerated by “0, male” and “1, female”. These are the substantive values (see substantive value domain). However, there may be the need to include missing values along with that data, such as “m, missing” and “r, refused”. These are sentinel values. ISO/IEC 11404 - General Purpose Datatypes, defines sentinel values in terms of how that standard defines datatypes. But, the fact that the sentinels don’t fit in terms of the calculations and statistics one would perform on the “clean” data is a distinguishing characteristic. In the example above, one would not include missing or refused data in calculating a ratio of females to the total population. Sentinel values may be described rather than enumerated. For instance, there might be a range of values, each representing an out of range value, but there could be too many to enumerate. It is easier to describe the range. In some software missing values are represented as values not in the datatype of the valid values. R has values of NA, NaN, Inf, and -Inf. SAS and Stata have values displayed as “.”, “.A” through “.Z”, and “._” Other software might use values like 999 for missing that would otherwise be the same datatype as valid values but outside the parameters of the domain. In the gender example above: For SPSS the sentinel values might be represented as: 998 = “refused” 999 = “not recorded” For SAS or Stata the sentinel values might be represented as: .R = “refused” .N = “not recorded” Sentinel values can also be used for other purposes beyond missing. For a numeric variable “A” might represent a value somewhere in a defined range to prevent disclosure of information about an individual. This might be considered a “semi-missing value”. In SAS or Stata for example: .A = “greater than or equal to 100 and less than 1000 “.

Diagram

Inheritance
  ᐊ── Representations::SentinelValueDomain
Attributes

Name

Inherited from

Description

Data Type

Multiplicity

Default value

platformType

- own class -

The type of platform under which sentinel codes will be used. Statistical software platforms use different sets of codes to indicate missing values. The external controlled vocabulary should list platform types and a description of the allowed missing value types. A sample list would be:

  • BlankString - A Blank string indicates missing. Comparison is based on lexical order.

  • EmptyString - An empty string indicates missing. Use in comparisons returns missing.

  • Rstyle - Codes drawn from NA and the IEEE 754 values of NaN -Inf +Inf. Comparisons return NA.

  • SASNumeric - codes drawn from . ._ .A .B .C .D .E .F .G .H .I .J .K .L .M .N .O .P .Q .R .S .T .U .V .W .X .Y .Z Sentinel code treated as less than any substantive value

  • SPSSstyle - System missing (a dot) a set of individual values drawn from the same datatype as the SubstantiveValueDomain, and a range of values drawn from the same datatype as the SubstantiveValueDomain. Comparisons return system missing. Some functions substitute with valid values (e.g. SUM replaces missing values with 0).

  • StataNumeric - codes drawn from . ._ .A .B .C .D .E .F .G .H .I .J .K .L .M .N .O .P .Q .R .S .T .U .V .W .X .Y .Z Sentinel code treated as greater than any substantive value - Unrestricted - No restrictions on codes for sentinel values. Use in comparisons is indeterminate.

ControlledVocabularyEntry

0..1

catalogDetails

Representations::ValueDomain

Bundles the information useful for a data catalog entry.

Examples would be creator, contributor, title, copyright, embargo, and license information

A set of information useful for attribution, data discovery, and access. This is information that is tied to the identity of the object. If this information changes the version of the associated object changes.

CatalogDetails

0..1

displayLabel

Representations::ValueDomain

A human-readable display label for the object. Supports the use of multiple languages. Repeat for labels with different content, for example, labels with differing length limitations.

LabelForDisplay

0..*

identifier

Representations::ValueDomain

Identifier for objects requiring short- or long-lasting referencing and management.

Identifier

0..1

recommendedDataType

Representations::ValueDomain

The data types that are recommended for use with this domain.

ControlledVocabularyEntry

0..*

Associations

Direction

Association

Description

Multiplicity of SentinelValueDomain

Package of Other Class

Other Class

Multiplicity of other class

Aggregation Kind

Inherited from

to

InstanceValue hasValueFrom ValueDomain

1..1

DataDescription

InstanceValue

0..*

none

Representations::ValueDomain

to

DimensionComponent isStructuredBy ValueDomain

0..1

Components

DimensionComponent

0..*

none

Representations::ValueDomain

to

RepresentedVariable takesSentinelValuesFrom SentinelValueDomain

A represented variable may have more than one sets of sentinel value domains, one for each type of software platform on which related instance variables might be instantiated. All of the sentinel value domains must have sentinel conceptual domains that correspond exactly. This allows codes for missing values to be explicitly matched across platforms.

0..*

Conceptual

RepresentedVariable

0..*

none

- own class -

from

SentinelValueDomain takesConceptsFrom SentinelConceptualDomain

Corresponding conceptual definition given by a sentinel conceptual domain.

0..*

Conceptual

SentinelConceptualDomain

0..1

none

- own class -

from

SentinelValueDomain isDescribedBy ValueAndConceptDescription

A formal description of the set of valid values - for described value domains.

0..*

- own package -

ValueAndConceptDescription

0..1

none

- own class -

from

SentinelValueDomain takesValuesFrom EnumerationDomain

Any subtype of an enumeration domain enumerating the set of valid values.

0..*

- own package -

EnumerationDomain

0..1

none

- own class -

Syntax representations / encodings

All syntax representations except the Canonical XMI are provided as reference points for specific implementations, or for use as defaults if sufficient in the form presented.

Fragment for the class SentinelValueDomain (entire model as XMI)

 1<packagedElement xmlns:StandardProfile="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard"
 2                 xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML"
 3                 xmlns:xmi="http://www.omg.org/spec/XMI/20131001"
 4                 xmi:id="DDICDIModels-DDICDILibrary-Classes-Representations-SentinelValueDomain"
 5                 xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#SentinelValueDomain"
 6                 xmi:type="uml:Class">
 7   <ownedComment xmi:id="DDICDIModels-DDICDILibrary-Classes-Representations-SentinelValueDomain-ownedComment"
 8                 xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#SentinelValueDomain-ownedComment"
 9                 xmi:type="uml:Comment">
10      <annotatedElement xmi:idref="DDICDIModels-DDICDILibrary-Classes-Representations-SentinelValueDomain"/>
11      <body>Definition 
12============ 
13Value domain for a sentinel conceptual domain.   
14
15Examples 
16========== 
17Missing categories expressed as codes: -9, refused; -8, Don't Know; for a numeric variable with values greater than zero.    
18
19Explanatory notes 
20=================== 
21Sentinel values are defined in ISO 11404 as "element of a value space that is not completely consistent with a datatype's properties and characterizing operations...". A common example would be codes for missing values. Sentinel values are used for processing, not to describe subject matter. Typical examples include missing values or invalid entry codes. Sentinel value domains are typically of the enumerated type, but they can be the described type, too. This is not to say that sentinel values carry no information. Data on gender might be enumerated by "0, male" and "1, female". These are the substantive values (see substantive value domain). However, there may be the need to include missing values along with that data, such as "m, missing" and "r, refused". These are sentinel values.  ISO/IEC 11404 - General Purpose Datatypes, defines sentinel values in terms of how that standard defines datatypes. But, the fact that the sentinels don't fit in terms of the calculations and statistics one would perform on the "clean" data is a distinguishing characteristic. In the example above, one would not include missing or refused data in calculating a ratio of females to the total population. Sentinel values may be described rather than enumerated. For instance, there might be a range of values, each representing an out of range value, but there could be too many to enumerate. It is easier to describe the range.  In some software missing values are represented as values not in the datatype of the valid values. R has values of NA, NaN, Inf, and -Inf. SAS and Stata have values displayed as ".", ".A" through ".Z", and "._"  Other software might use values like 999 for missing that would otherwise be the same datatype as valid values but outside the parameters of the domain. In the gender example above: For SPSS the sentinel values might be represented as: 998 = "refused" 999 = "not recorded"  For SAS or Stata the sentinel values might be represented as: .R = "refused" .N = "not recorded"  Sentinel values can also be used for other purposes beyond missing. For a numeric variable "A" might represent a value somewhere in a defined range to prevent disclosure of information about an individual. This might be considered a "semi-missing value". In SAS or Stata for example: .A = "greater than or equal to 100 and less than 1000 ".</body>
22   </ownedComment>
23   <name>SentinelValueDomain</name>
24   <generalization xmi:id="DDICDIModels-DDICDILibrary-Classes-Representations-SentinelValueDomain-generalization"
25                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#SentinelValueDomain-generalization"
26                   xmi:type="uml:Generalization">
27      <general xmi:idref="DDICDIModels-DDICDILibrary-Classes-Representations-ValueDomain"/>
28   </generalization>
29   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-Representations-SentinelValueDomain-ownedAttribute_1"
30                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#SentinelValueDomain-ownedAttribute_1"
31                   xmi:type="uml:Property">
32      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-Representations-SentinelValueDomain-ownedAttribute_1-lowerValue"
33                  xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#SentinelValueDomain-ownedAttribute_1-lowerValue"
34                  xmi:type="uml:LiteralInteger"/>
35      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-Representations-SentinelValueDomain-ownedAttribute_1-upperValue"
36                  xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#SentinelValueDomain-ownedAttribute_1-upperValue"
37                  xmi:type="uml:LiteralUnlimitedNatural">
38         <value>1</value>
39      </upperValue>
40      <association xmi:idref="DDICDIModels-DDICDILibrary-Classes-Conceptual-SentinelValueDomain_takesConceptsFrom_SentinelConceptualDomain"/>
41      <type xmi:idref="DDICDIModels-DDICDILibrary-Classes-Conceptual-SentinelConceptualDomain"/>
42   </ownedAttribute>
43   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-Representations-SentinelValueDomain-ownedAttribute_2"
44                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#SentinelValueDomain-ownedAttribute_2"
45                   xmi:type="uml:Property">
46      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-Representations-SentinelValueDomain-ownedAttribute_2-lowerValue"
47                  xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#SentinelValueDomain-ownedAttribute_2-lowerValue"
48                  xmi:type="uml:LiteralInteger"/>
49      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-Representations-SentinelValueDomain-ownedAttribute_2-upperValue"
50                  xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#SentinelValueDomain-ownedAttribute_2-upperValue"
51                  xmi:type="uml:LiteralUnlimitedNatural">
52         <value>1</value>
53      </upperValue>
54      <association xmi:idref="DDICDIModels-DDICDILibrary-Classes-Representations-SentinelValueDomain_takesValuesFrom_EnumerationDomain"/>
55      <type xmi:idref="DDICDIModels-DDICDILibrary-Classes-Representations-EnumerationDomain"/>
56   </ownedAttribute>
57   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-Representations-SentinelValueDomain-ownedAttribute_3"
58                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#SentinelValueDomain-ownedAttribute_3"
59                   xmi:type="uml:Property">
60      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-Representations-SentinelValueDomain-ownedAttribute_3-lowerValue"
61                  xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#SentinelValueDomain-ownedAttribute_3-lowerValue"
62                  xmi:type="uml:LiteralInteger"/>
63      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-Representations-SentinelValueDomain-ownedAttribute_3-upperValue"
64                  xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#SentinelValueDomain-ownedAttribute_3-upperValue"
65                  xmi:type="uml:LiteralUnlimitedNatural">
66         <value>1</value>
67      </upperValue>
68      <association xmi:idref="DDICDIModels-DDICDILibrary-Classes-Representations-SentinelValueDomain_isDescribedBy_ValueAndConceptDescription"/>
69      <type xmi:idref="DDICDIModels-DDICDILibrary-Classes-Representations-ValueAndConceptDescription"/>
70   </ownedAttribute>
71   <ownedAttribute xmi:id="DDICDIModels-DDICDILibrary-Classes-Representations-SentinelValueDomain-platformType"
72                   xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#SentinelValueDomain-platformType"
73                   xmi:type="uml:Property">
74      <ownedComment xmi:id="DDICDIModels-DDICDILibrary-Classes-Representations-SentinelValueDomain-platformType-ownedComment"
75                    xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#SentinelValueDomain-platformType-ownedComment"
76                    xmi:type="uml:Comment">
77         <annotatedElement xmi:idref="DDICDIModels-DDICDILibrary-Classes-Representations-SentinelValueDomain-platformType"/>
78         <body>The type of platform under which sentinel codes will be used. Statistical software platforms use different sets of codes to indicate missing values. The external controlled vocabulary should list platform types and a description of the allowed missing value types. A sample list would be: 
79
80- BlankString - A Blank string indicates missing. Comparison is based on lexical order.  
81- EmptyString - An empty string indicates missing. Use in comparisons returns missing.   
82- Rstyle - Codes drawn from  NA and the IEEE 754 values of NaN  -Inf   +Inf.   Comparisons return NA.   
83- SASNumeric - codes drawn from . ._ .A .B .C .D .E .F .G .H .I .J .K .L .M .N .O .P .Q .R .S .T .U .V .W .X .Y .Z    Sentinel code treated as less than any substantive value   
84- SPSSstyle - System missing (a dot) a set of individual values drawn from the same datatype as the SubstantiveValueDomain, and a range of values  drawn from the same datatype as the SubstantiveValueDomain. Comparisons return system missing. Some functions substitute with valid values (e.g. SUM replaces missing values with 0).  
85- StataNumeric - codes drawn from . ._ .A .B .C .D .E .F .G .H .I .J .K .L .M .N .O .P .Q .R .S .T .U .V .W .X .Y .Z  Sentinel code treated as greater than any substantive value  - Unrestricted - No restrictions on codes for sentinel values. Use in comparisons is indeterminate.</body>
86      </ownedComment>
87      <lowerValue xmi:id="DDICDIModels-DDICDILibrary-Classes-Representations-SentinelValueDomain-platformType-lowerValue"
88                  xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#SentinelValueDomain-platformType-lowerValue"
89                  xmi:type="uml:LiteralInteger"/>
90      <upperValue xmi:id="DDICDIModels-DDICDILibrary-Classes-Representations-SentinelValueDomain-platformType-upperValue"
91                  xmi:uuid="http://ddialliance.org/Specification/DDI-CDI/1.0/XMI/#SentinelValueDomain-platformType-upperValue"
92                  xmi:type="uml:LiteralUnlimitedNatural">
93         <value>1</value>
94      </upperValue>
95      <name>platformType</name>
96      <type xmi:idref="DDICDIModels-DDICDILibrary-DataTypes-StructuredDataTypes-ControlledVocabularyEntry"/>
97   </ownedAttribute>
98</packagedElement>

Fragment for the class SentinelValueDomain (entire XML Schema)

  1<xs:element name="SentinelValueDomain"
  2            type="SentinelValueDomainXsdType"
  3            xml:id="SentinelValueDomain">
  4  <!-- based on the UML class DDICDIModels::DDICDILibrary::Classes::Representations::SentinelValueDomain -->
  5  <xs:annotation>
  6    <xs:documentation>Definition 
  7          ============ 
  8          Value domain for a sentinel conceptual domain.   
  9          
 10          Examples 
 11          ========== 
 12          Missing categories expressed as codes: -9, refused; -8, Don't Know; for a numeric variable with values greater than zero.    
 13          
 14          Explanatory notes 
 15          =================== 
 16          Sentinel values are defined in ISO 11404 as "element of a value space that is not completely consistent with a datatype's properties and characterizing operations...". A common example would be codes for missing values. Sentinel values are used for processing, not to describe subject matter. Typical examples include missing values or invalid entry codes. Sentinel value domains are typically of the enumerated type, but they can be the described type, too. This is not to say that sentinel values carry no information. Data on gender might be enumerated by "0, male" and "1, female". These are the substantive values (see substantive value domain). However, there may be the need to include missing values along with that data, such as "m, missing" and "r, refused". These are sentinel values.  ISO/IEC 11404 - General Purpose Datatypes, defines sentinel values in terms of how that standard defines datatypes. But, the fact that the sentinels don't fit in terms of the calculations and statistics one would perform on the "clean" data is a distinguishing characteristic. In the example above, one would not include missing or refused data in calculating a ratio of females to the total population. Sentinel values may be described rather than enumerated. For instance, there might be a range of values, each representing an out of range value, but there could be too many to enumerate. It is easier to describe the range.  In some software missing values are represented as values not in the datatype of the valid values. R has values of NA, NaN, Inf, and -Inf. SAS and Stata have values displayed as ".", ".A" through ".Z", and "._"  Other software might use values like 999 for missing that would otherwise be the same datatype as valid values but outside the parameters of the domain. In the gender example above: For SPSS the sentinel values might be represented as: 998 = "refused" 999 = "not recorded"  For SAS or Stata the sentinel values might be represented as: .R = "refused" .N = "not recorded"  Sentinel values can also be used for other purposes beyond missing. For a numeric variable "A" might represent a value somewhere in a defined range to prevent disclosure of information about an individual. This might be considered a "semi-missing value". In SAS or Stata for example: .A = "greater than or equal to 100 and less than 1000 ".</xs:documentation>
 17  </xs:annotation>
 18</xs:element>
 19<xs:complexType name="SentinelValueDomainXsdType"
 20                xml:id="SentinelValueDomainXsdType">
 21  <xs:annotation>
 22    <xs:documentation>Definition 
 23          ============ 
 24          Value domain for a sentinel conceptual domain.   
 25          
 26          Examples 
 27          ========== 
 28          Missing categories expressed as codes: -9, refused; -8, Don't Know; for a numeric variable with values greater than zero.    
 29          
 30          Explanatory notes 
 31          =================== 
 32          Sentinel values are defined in ISO 11404 as "element of a value space that is not completely consistent with a datatype's properties and characterizing operations...". A common example would be codes for missing values. Sentinel values are used for processing, not to describe subject matter. Typical examples include missing values or invalid entry codes. Sentinel value domains are typically of the enumerated type, but they can be the described type, too. This is not to say that sentinel values carry no information. Data on gender might be enumerated by "0, male" and "1, female". These are the substantive values (see substantive value domain). However, there may be the need to include missing values along with that data, such as "m, missing" and "r, refused". These are sentinel values.  ISO/IEC 11404 - General Purpose Datatypes, defines sentinel values in terms of how that standard defines datatypes. But, the fact that the sentinels don't fit in terms of the calculations and statistics one would perform on the "clean" data is a distinguishing characteristic. In the example above, one would not include missing or refused data in calculating a ratio of females to the total population. Sentinel values may be described rather than enumerated. For instance, there might be a range of values, each representing an out of range value, but there could be too many to enumerate. It is easier to describe the range.  In some software missing values are represented as values not in the datatype of the valid values. R has values of NA, NaN, Inf, and -Inf. SAS and Stata have values displayed as ".", ".A" through ".Z", and "._"  Other software might use values like 999 for missing that would otherwise be the same datatype as valid values but outside the parameters of the domain. In the gender example above: For SPSS the sentinel values might be represented as: 998 = "refused" 999 = "not recorded"  For SAS or Stata the sentinel values might be represented as: .R = "refused" .N = "not recorded"  Sentinel values can also be used for other purposes beyond missing. For a numeric variable "A" might represent a value somewhere in a defined range to prevent disclosure of information about an individual. This might be considered a "semi-missing value". In SAS or Stata for example: .A = "greater than or equal to 100 and less than 1000 ".</xs:documentation>
 33  </xs:annotation>
 34  <xs:complexContent>
 35    <xs:extension base="ValueDomainXsdType">
 36      <xs:sequence>
 37        <xs:element name="platformType"
 38                    type="ControlledVocabularyEntryXsdType"
 39                    minOccurs="0"
 40                    maxOccurs="1"
 41                    xml:id="SentinelValueDomain-platformType">
 42          <xs:annotation>
 43            <xs:documentation>The type of platform under which sentinel codes will be used. Statistical software platforms use different sets of codes to indicate missing values. The external controlled vocabulary should list platform types and a description of the allowed missing value types. A sample list would be: 
 44      
 45      - BlankString - A Blank string indicates missing. Comparison is based on lexical order.  
 46      - EmptyString - An empty string indicates missing. Use in comparisons returns missing.   
 47      - Rstyle - Codes drawn from  NA and the IEEE 754 values of NaN  -Inf   +Inf.   Comparisons return NA.   
 48      - SASNumeric - codes drawn from . ._ .A .B .C .D .E .F .G .H .I .J .K .L .M .N .O .P .Q .R .S .T .U .V .W .X .Y .Z    Sentinel code treated as less than any substantive value   
 49      - SPSSstyle - System missing (a dot) a set of individual values drawn from the same datatype as the SubstantiveValueDomain, and a range of values  drawn from the same datatype as the SubstantiveValueDomain. Comparisons return system missing. Some functions substitute with valid values (e.g. SUM replaces missing values with 0).  
 50      - StataNumeric - codes drawn from . ._ .A .B .C .D .E .F .G .H .I .J .K .L .M .N .O .P .Q .R .S .T .U .V .W .X .Y .Z  Sentinel code treated as greater than any substantive value  - Unrestricted - No restrictions on codes for sentinel values. Use in comparisons is indeterminate.</xs:documentation>
 51          </xs:annotation>
 52        </xs:element>
 53        <xs:element name="SentinelValueDomain_takesConceptsFrom_SentinelConceptualDomain"
 54                    minOccurs="0"
 55                    maxOccurs="1"
 56                    xml:id="SentinelValueDomain_takesConceptsFrom_SentinelConceptualDomain">
 57          <xs:annotation>
 58            <xs:documentation>Corresponding conceptual definition given by a sentinel conceptual domain.</xs:documentation>
 59          </xs:annotation>
 60          <xs:complexType>
 61            <xs:complexContent>
 62              <xs:restriction base="AssociationReferenceXsdType">
 63                <xs:sequence>
 64                  <xs:element name="ddiReference"
 65                              type="InternationalRegistrationDataIdentifierXsdType"
 66                              minOccurs="0"
 67                              maxOccurs="1"
 68                              xml:id="SentinelValueDomain_takesConceptsFrom_SentinelConceptualDomain-ddiReference"/>
 69                  <xs:element name="validType"
 70                              minOccurs="0"
 71                              maxOccurs="unbounded"
 72                              xml:id="SentinelValueDomain_takesConceptsFrom_SentinelConceptualDomain-validType">
 73                    <xs:simpleType>
 74                      <xs:restriction base="xs:NMTOKEN">
 75                        <xs:enumeration value="SentinelConceptualDomain"/>
 76                      </xs:restriction>
 77                    </xs:simpleType>
 78                  </xs:element>
 79                </xs:sequence>
 80              </xs:restriction>
 81            </xs:complexContent>
 82          </xs:complexType>
 83        </xs:element>
 84        <xs:element name="SentinelValueDomain_takesValuesFrom_EnumerationDomain"
 85                    minOccurs="0"
 86                    maxOccurs="1"
 87                    xml:id="SentinelValueDomain_takesValuesFrom_EnumerationDomain">
 88          <xs:annotation>
 89            <xs:documentation>Any subtype of an enumeration domain enumerating the set of valid values.</xs:documentation>
 90          </xs:annotation>
 91          <xs:complexType>
 92            <xs:complexContent>
 93              <xs:restriction base="AssociationReferenceXsdType">
 94                <xs:sequence>
 95                  <xs:element name="ddiReference"
 96                              type="InternationalRegistrationDataIdentifierXsdType"
 97                              minOccurs="0"
 98                              maxOccurs="1"
 99                              xml:id="SentinelValueDomain_takesValuesFrom_EnumerationDomain-ddiReference"/>
100                  <xs:element name="validType"
101                              minOccurs="0"
102                              maxOccurs="unbounded"
103                              xml:id="SentinelValueDomain_takesValuesFrom_EnumerationDomain-validType">
104                    <xs:simpleType>
105                      <xs:restriction base="xs:NMTOKEN">
106                        <xs:enumeration value="CodeList"/>
107                        <xs:enumeration value="EnumerationDomain"/>
108                        <xs:enumeration value="StatisticalClassification"/>
109                      </xs:restriction>
110                    </xs:simpleType>
111                  </xs:element>
112                </xs:sequence>
113              </xs:restriction>
114            </xs:complexContent>
115          </xs:complexType>
116        </xs:element>
117        <xs:element name="SentinelValueDomain_isDescribedBy_ValueAndConceptDescription"
118                    minOccurs="0"
119                    maxOccurs="1"
120                    xml:id="SentinelValueDomain_isDescribedBy_ValueAndConceptDescription">
121          <xs:annotation>
122            <xs:documentation>A formal description of the set of valid values - for described value domains.</xs:documentation>
123          </xs:annotation>
124          <xs:complexType>
125            <xs:complexContent>
126              <xs:restriction base="AssociationReferenceXsdType">
127                <xs:sequence>
128                  <xs:element name="ddiReference"
129                              type="InternationalRegistrationDataIdentifierXsdType"
130                              minOccurs="0"
131                              maxOccurs="1"
132                              xml:id="SentinelValueDomain_isDescribedBy_ValueAndConceptDescription-ddiReference"/>
133                  <xs:element name="validType"
134                              minOccurs="0"
135                              maxOccurs="unbounded"
136                              xml:id="SentinelValueDomain_isDescribedBy_ValueAndConceptDescription-validType">
137                    <xs:simpleType>
138                      <xs:restriction base="xs:NMTOKEN">
139                        <xs:enumeration value="ValueAndConceptDescription"/>
140                      </xs:restriction>
141                    </xs:simpleType>
142                  </xs:element>
143                </xs:sequence>
144              </xs:restriction>
145            </xs:complexContent>
146          </xs:complexType>
147        </xs:element>
148      </xs:sequence>
149    </xs:extension>
150  </xs:complexContent>
151</xs:complexType>

Fragment for the class SentinelValueDomain (main ontology)

 1# class SentinelValueDomain
 2# based on the UML class DDICDIModels::DDICDILibrary::Classes::Representations::SentinelValueDomain
 3cdi:SentinelValueDomain
 4  a rdfs:Class, owl:Class, ucmis:Class;
 5  rdfs:label "SentinelValueDomain";
 6  rdfs:comment "Definition \n============ \nValue domain for a sentinel conceptual domain.   \n\nExamples \n========== \nMissing categories expressed as codes: -9, refused; -8, Don't Know; for a numeric variable with values greater than zero.    \n\nExplanatory notes \n=================== \nSentinel values are defined in ISO 11404 as \"element of a value space that is not completely consistent with a datatype's properties and characterizing operations...\". A common example would be codes for missing values. Sentinel values are used for processing, not to describe subject matter. Typical examples include missing values or invalid entry codes. Sentinel value domains are typically of the enumerated type, but they can be the described type, too. This is not to say that sentinel values carry no information. Data on gender might be enumerated by \"0, male\" and \"1, female\". These are the substantive values (see substantive value domain). However, there may be the need to include missing values along with that data, such as \"m, missing\" and \"r, refused\". These are sentinel values.  ISO/IEC 11404 - General Purpose Datatypes, defines sentinel values in terms of how that standard defines datatypes. But, the fact that the sentinels don't fit in terms of the calculations and statistics one would perform on the \"clean\" data is a distinguishing characteristic. In the example above, one would not include missing or refused data in calculating a ratio of females to the total population. Sentinel values may be described rather than enumerated. For instance, there might be a range of values, each representing an out of range value, but there could be too many to enumerate. It is easier to describe the range.  In some software missing values are represented as values not in the datatype of the valid values. R has values of NA, NaN, Inf, and -Inf. SAS and Stata have values displayed as \".\", \".A\" through \".Z\", and \"._\"  Other software might use values like 999 for missing that would otherwise be the same datatype as valid values but outside the parameters of the domain. In the gender example above: For SPSS the sentinel values might be represented as: 998 = \"refused\" 999 = \"not recorded\"  For SAS or Stata the sentinel values might be represented as: .R = \"refused\" .N = \"not recorded\"  Sentinel values can also be used for other purposes beyond missing. For a numeric variable \"A\" might represent a value somewhere in a defined range to prevent disclosure of information about an individual. This might be considered a \"semi-missing value\". In SAS or Stata for example: .A = \"greater than or equal to 100 and less than 1000 \"."@en;
 7  rdfs:subClassOf cdi:ValueDomain;
 8.
 9
10cdi:SentinelValueDomain-platformType
11  a rdf:Property, owl:ObjectProperty, ucmis:Attribute;
12  rdfs:label "platformType";
13  rdfs:comment "The type of platform under which sentinel codes will be used. Statistical software platforms use different sets of codes to indicate missing values. The external controlled vocabulary should list platform types and a description of the allowed missing value types. A sample list would be: \n\n- BlankString - A Blank string indicates missing. Comparison is based on lexical order.  \n- EmptyString - An empty string indicates missing. Use in comparisons returns missing.   \n- Rstyle - Codes drawn from  NA and the IEEE 754 values of NaN  -Inf   +Inf.   Comparisons return NA.   \n- SASNumeric - codes drawn from . ._ .A .B .C .D .E .F .G .H .I .J .K .L .M .N .O .P .Q .R .S .T .U .V .W .X .Y .Z    Sentinel code treated as less than any substantive value   \n- SPSSstyle - System missing (a dot) a set of individual values drawn from the same datatype as the SubstantiveValueDomain, and a range of values  drawn from the same datatype as the SubstantiveValueDomain. Comparisons return system missing. Some functions substitute with valid values (e.g. SUM replaces missing values with 0).  \n- StataNumeric - codes drawn from . ._ .A .B .C .D .E .F .G .H .I .J .K .L .M .N .O .P .Q .R .S .T .U .V .W .X .Y .Z  Sentinel code treated as greater than any substantive value  - Unrestricted - No restrictions on codes for sentinel values. Use in comparisons is indeterminate."@en;
14  rdfs:domain cdi:SentinelValueDomain;
15  rdfs:range cdi:ControlledVocabularyEntry;
16.
17
18
19cdi:SentinelValueDomain_takesConceptsFrom_SentinelConceptualDomain
20  a rdf:Property, owl:ObjectProperty, ucmis:Association;
21  # ASSOCIATION
22  rdfs:label "takesConceptsFrom";
23  skos:altLabel "SentinelValueDomain_takesConceptsFrom_SentinelConceptualDomain";
24  rdfs:comment "Corresponding conceptual definition given by a sentinel conceptual domain."@en;
25  rdfs:domain cdi:SentinelValueDomain;
26  rdfs:range cdi:SentinelConceptualDomain;
27.
28
29cdi:SentinelValueDomain_isDescribedBy_ValueAndConceptDescription
30  a rdf:Property, owl:ObjectProperty, ucmis:Association;
31  # ASSOCIATION
32  rdfs:label "isDescribedBy";
33  skos:altLabel "SentinelValueDomain_isDescribedBy_ValueAndConceptDescription";
34  rdfs:comment "A formal description of the set of valid values - for described value domains."@en;
35  rdfs:domain cdi:SentinelValueDomain;
36  rdfs:range cdi:ValueAndConceptDescription;
37.
38
39cdi:SentinelValueDomain_takesValuesFrom_EnumerationDomain
40  a rdf:Property, owl:ObjectProperty, ucmis:Association;
41  # ASSOCIATION
42  rdfs:label "takesValuesFrom";
43  skos:altLabel "SentinelValueDomain_takesValuesFrom_EnumerationDomain";
44  rdfs:comment "Any subtype of an enumeration domain enumerating the set of valid values."@en;
45  rdfs:domain cdi:SentinelValueDomain;
46  rdfs:range cdi:EnumerationDomain;
47.

Fragment for the class SentinelValueDomain (main JSON-LD)

 1{
 2  "@context": [
 3    "ValueDomain.jsonld",
 4    {
 5      "cdi": "http://ddialliance.org/Specification/DDI-CDI/1.0/RDF/",
 6      "xsd": "http://www.w3.org/2001/XMLSchema#",
 7      "SentinelValueDomain": "cdi:SentinelValueDomain",
 8      "platformType": {
 9        "@id": "cdi:SentinelValueDomain-platformType",
10        "@type": "@id",
11        "@context": "ControlledVocabularyEntry.jsonld"
12      },
13      
14      "takesConceptsFrom": {
15        "@id": "cdi:SentinelValueDomain_takesConceptsFrom_SentinelConceptualDomain",
16        "@type": "@id"      },
17      "isDescribedBy": {
18        "@id": "cdi:SentinelValueDomain_isDescribedBy_ValueAndConceptDescription",
19        "@type": "@id"      },
20      "takesValuesFrom": {
21        "@id": "cdi:SentinelValueDomain_takesValuesFrom_EnumerationDomain",
22        "@type": "@id"      },
23      "takesSentinelValuesFrom_OF_RepresentedVariable": {
24        "@reverse": "cdi:RepresentedVariable_takesSentinelValuesFrom_SentinelValueDomain",
25        "@type": "@id"
26      },
27      " comment ": "tag:json-should-support-trailing-commas" 
28    }
29  ],
30  "generatedBy": "This code was generated by the Eclipse Acceleo project UCMIS M2T on 2024-03-16 23:40:12.",
31  "basedOn": "based on the UML data type DDICDIModels::DDICDILibrary::Classes::Representations::SentinelValueDomain"
32}