NIEM PersonType Overview
Core Structure
<xs:complexType name="PersonType">
<xs:complexContent>
<xs:extension base="structures:ObjectType">
<xs:sequence>
<xs:element ref="nc:PersonBirthDate" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="nc:PersonName" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="nc:PersonSSNIdentification" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="nc:PersonSex" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="nc:PersonRace" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="nc:PersonEthnicity" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="nc:PersonContactInformation" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="nc:PersonAugmentationPoint" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
SDC4 Mapping Strategy
Core Mapping Pattern
NIEM Element → SDC4 Component + Ontology Link
| NIEM Element | SDC4 Type | Ontology URI Examples |
|---|---|---|
PersonBirthDate |
XdTemporal |
http://niem.gov/niem-core/PersonBirthDatehttp://schema.org/birthDatehttp://hl7.org/fhir/Patient.birthDate |
PersonName |
Cluster |
http://niem.gov/niem-core/PersonNamehttp://schema.org/namehttp://xmlns.com/foaf/0.1/name |
PersonSSNIdentification |
XdString |
http://niem.gov/niem-core/PersonSSNIdentification |
PersonSex |
XdString |
http://niem.gov/niem-core/PersonSexhttp://hl7.org/fhir/Patient.gender |
PersonRace |
XdString |
http://niem.gov/niem-core/PersonRace |
PersonEthnicity |
XdString |
http://niem.gov/niem-core/PersonEthnicity |
Example 1: Justice Domain Person
NIEM Representation
<nc:Person xmlns:nc="http://release.niem.gov/niem/niem-core/5.2/"
xmlns:j="http://release.niem.gov/niem/domains/jxdm/7.2/">
<nc:PersonBirthDate>
<nc:Date>1985-05-15</nc:Date>
</nc:PersonBirthDate>
<nc:PersonName>
<nc:PersonGivenName>John</nc:PersonGivenName>
<nc:PersonSurName>Doe</nc:PersonSurName>
<nc:PersonFullName>John Doe</nc:PersonFullName>
</nc:PersonName>
<nc:PersonSSNIdentification>
<nc:IdentificationID>123-45-6789</nc:IdentificationID>
</nc:PersonSSNIdentification>
<j:PersonAugmentation>
<j:PersonFBIIdentification>
<nc:IdentificationID>FBI-987654</nc:IdentificationID>
</j:PersonFBIIdentification>
</j:PersonAugmentation>
</nc:Person>
SDC4 Representation
Schema Excerpt (key component definitions):
<!-- ComplexType for Person (Justice) - mc-ns5v9y3a23677 -->
<xsd:complexType name="mc-ns5v9y3a23677">
<xsd:annotation>
<xsd:appinfo>
<rdf:Description rdf:about="sdc4:mc-ns5v9y3a23677">
<rdfs:label>Person (Justice)</rdfs:label>
<rdfs:isDefinedBy rdf:resource="http://niem.gov/niem-core/PersonType"/>
<rdfs:isDefinedBy rdf:resource="http://schema.org/Person"/>
</rdf:Description>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexContent>
<xsd:restriction base="sdc4:ClusterType">
<xsd:sequence>
<xsd:element name="label" type="xsd:string" fixed="Person (Justice)"/>
<xsd:element ref="sdc4:ms-ot6w0z4b34688"/><!-- Birth Date -->
<xsd:element ref="sdc4:ms-pu7x1a5c45699"/><!-- Person Name Cluster -->
<xsd:element ref="sdc4:ms-qv8y2b6d56700"/><!-- SSN -->
<xsd:element ref="sdc4:ms-rw9z3c7e67711"/><!-- FBI ID -->
</xsd:sequence>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<!-- ComplexType for Birth Date - mc-ot6w0z4b34688 -->
<xsd:complexType name="mc-ot6w0z4b34688">
<xsd:annotation>
<xsd:appinfo>
<rdf:Description rdf:about="sdc4:mc-ot6w0z4b34688">
<rdfs:label>Birth Date</rdfs:label>
<rdfs:isDefinedBy rdf:resource="http://niem.gov/niem-core/PersonBirthDate"/>
<rdfs:isDefinedBy rdf:resource="http://schema.org/birthDate"/>
</rdf:Description>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexContent>
<xsd:restriction base="sdc4:XdTemporalType">
<xsd:sequence>
<xsd:element name="label" type="xsd:string" fixed="Birth Date"/>
<xsd:element name="xdtemporal-value" type="xsd:date"/>
</xsd:sequence>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<!-- ComplexType for Person Name Cluster - mc-pu7x1a5c45699 -->
<xsd:complexType name="mc-pu7x1a5c45699">
<xsd:annotation>
<xsd:appinfo>
<rdf:Description rdf:about="sdc4:mc-pu7x1a5c45699">
<rdfs:label>Person Name</rdfs:label>
<rdfs:isDefinedBy rdf:resource="http://niem.gov/niem-core/PersonName"/>
<rdfs:isDefinedBy rdf:resource="http://schema.org/name"/>
</rdf:Description>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexContent>
<xsd:restriction base="sdc4:ClusterType">
<xsd:sequence>
<xsd:element name="label" type="xsd:string" fixed="Person Name"/>
<xsd:element ref="sdc4:ms-sx0a4d8f78722"/><!-- Given Name -->
<xsd:element ref="sdc4:ms-ty1b5e9g89733"/><!-- Surname -->
<xsd:element ref="sdc4:ms-uz2c6f0h90744"/><!-- Full Name -->
</xsd:sequence>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
Instance Data:
<sdc4:ms-ns5v9y3a23677 xmlns:sdc4="https://semanticdatacharter.com/ns/sdc4/">
<label>Person (Justice)</label>
<sdc4:ms-ot6w0z4b34688>
<label>Birth Date</label>
<xdtemporal-value>1985-05-15</xdtemporal-value>
</sdc4:ms-ot6w0z4b34688>
<sdc4:ms-pu7x1a5c45699>
<label>Person Name</label>
<sdc4:ms-sx0a4d8f78722>
<label>Given Name</label>
<xdstring-value>John</xdstring-value>
</sdc4:ms-sx0a4d8f78722>
<sdc4:ms-ty1b5e9g89733>
<label>Surname</label>
<xdstring-value>Doe</xdstring-value>
</sdc4:ms-ty1b5e9g89733>
<sdc4:ms-uz2c6f0h90744>
<label>Full Name</label>
<xdstring-value>John Doe</xdstring-value>
</sdc4:ms-uz2c6f0h90744>
</sdc4:ms-pu7x1a5c45699>
<sdc4:ms-qv8y2b6d56700>
<label>Social Security Number</label>
<xdstring-value>123-45-6789</xdstring-value>
</sdc4:ms-qv8y2b6d56700>
<sdc4:ms-rw9z3c7e67711>
<label>FBI Identification Number</label>
<xdstring-value>FBI-987654</xdstring-value>
</sdc4:ms-rw9z3c7e67711>
</sdc4:ms-ns5v9y3a23677>
Key Observations:
1. Hierarchical Name: PersonName → Cluster (ms-pu7x1a5c45699) with sub-components
2. Multi-Vocabulary: Schema annotations link to both NIEM and Schema.org simultaneously
3. Domain Extension: FBI ID included as standard component with its own CUID2 identifier
4. Structural Consistency: All text uses XdStringType base, all dates use XdTemporalType base
5. Component Reuse: Birth Date component (ms-ot6w0z4b34688) can be reused across domains
6. Element Names Are Structural: ms-[CUID2] provides stable identifiers independent of semantic meaning
Example 2: Healthcare Domain Patient
Domain Requirements
Healthcare needs: - Medical Record Number (not SSN) - Blood Type - Insurance ID - Allergies - Primary Care Provider
SDC4 Representation
Schema Excerpt:
<!-- ComplexType for Patient (Healthcare) - mc-va3d7g1i01755 -->
<xsd:complexType name="mc-va3d7g1i01755">
<xsd:annotation>
<xsd:appinfo>
<rdf:Description rdf:about="sdc4:mc-va3d7g1i01755">
<rdfs:label>Patient</rdfs:label>
<!-- Multi-vocabulary semantic links -->
<rdfs:isDefinedBy rdf:resource="http://hl7.org/fhir/Patient"/>
<rdfs:isDefinedBy rdf:resource="http://schema.org/Patient"/>
<rdfs:isDefinedBy rdf:resource="http://niem.gov/niem-core/PersonType"/><!-- Still compatible! -->
</rdf:Description>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexContent>
<xsd:restriction base="sdc4:ClusterType">
<xsd:sequence>
<xsd:element name="label" type="xsd:string" fixed="Patient"/>
<xsd:element ref="sdc4:ms-ot6w0z4b34688"/><!-- Birth Date (REUSED from Justice) -->
<xsd:element ref="sdc4:ms-wb4e8h2j12766"/><!-- Patient Name Cluster -->
<xsd:element ref="sdc4:ms-xc5f9i3k23777"/><!-- MRN -->
<xsd:element ref="sdc4:ms-yd6g0j4l34788"/><!-- Blood Type -->
<xsd:element ref="sdc4:ms-ze7h1k5m45799"/><!-- Insurance ID -->
<xsd:element ref="sdc4:ms-af8i2l6n56800"/><!-- Allergies -->
</xsd:sequence>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<!-- ComplexType for Patient Name - mc-wb4e8h2j12766 -->
<xsd:complexType name="mc-wb4e8h2j12766">
<xsd:annotation>
<xsd:appinfo>
<rdf:Description rdf:about="sdc4:mc-wb4e8h2j12766">
<rdfs:label>Patient Name</rdfs:label>
<rdfs:isDefinedBy rdf:resource="http://hl7.org/fhir/HumanName"/>
<rdfs:isDefinedBy rdf:resource="http://schema.org/name"/>
</rdf:Description>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexContent>
<xsd:restriction base="sdc4:ClusterType">
<xsd:sequence>
<xsd:element name="label" type="xsd:string" fixed="Patient Name"/>
<xsd:element ref="sdc4:ms-sx0a4d8f78722"/><!-- Given Name (REUSED from Justice) -->
<xsd:element ref="sdc4:ms-bg9j3m7o67811"/><!-- Family Name -->
</xsd:sequence>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
<!-- ComplexType for Allergies (list) - mc-af8i2l6n56800 -->
<xsd:complexType name="mc-af8i2l6n56800">
<xsd:annotation>
<xsd:appinfo>
<rdf:Description rdf:about="sdc4:mc-af8i2l6n56800">
<rdfs:label>Allergies</rdfs:label>
<rdfs:isDefinedBy rdf:resource="http://hl7.org/fhir/AllergyIntolerance"/>
</rdf:Description>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexContent>
<xsd:restriction base="sdc4:XdStringListType">
<xsd:sequence>
<xsd:element name="label" type="xsd:string" fixed="Allergies"/>
<xsd:element name="xdstringlist-value" type="xsd:string" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
Instance Data:
<sdc4:ms-va3d7g1i01755 xmlns:sdc4="https://semanticdatacharter.com/ns/sdc4/">
<label>Patient</label>
<sdc4:ms-ot6w0z4b34688><!-- REUSED Birth Date component from Justice -->
<label>Birth Date</label>
<xdtemporal-value>1985-05-15</xdtemporal-value>
</sdc4:ms-ot6w0z4b34688>
<sdc4:ms-wb4e8h2j12766>
<label>Patient Name</label>
<sdc4:ms-sx0a4d8f78722><!-- REUSED Given Name component from Justice -->
<label>Given Name</label>
<xdstring-value>John</xdstring-value>
</sdc4:ms-sx0a4d8f78722>
<sdc4:ms-bg9j3m7o67811>
<label>Family Name</label>
<xdstring-value>Doe</xdstring-value>
</sdc4:ms-bg9j3m7o67811>
</sdc4:ms-wb4e8h2j12766>
<sdc4:ms-xc5f9i3k23777>
<label>Medical Record Number</label>
<xdstring-value>MRN-12345</xdstring-value>
</sdc4:ms-xc5f9i3k23777>
<sdc4:ms-yd6g0j4l34788>
<label>Blood Type</label>
<xdstring-value>A+</xdstring-value>
</sdc4:ms-yd6g0j4l34788>
<sdc4:ms-ze7h1k5m45799>
<label>Insurance ID</label>
<xdstring-value>INS-67890</xdstring-value>
</sdc4:ms-ze7h1k5m45799>
<sdc4:ms-af8i2l6n56800>
<label>Allergies</label>
<xdstringlist-value>Penicillin</xdstringlist-value>
<xdstringlist-value>Peanuts</xdstringlist-value>
</sdc4:ms-af8i2l6n56800>
</sdc4:ms-va3d7g1i01755>
Key Observations:
1. Same Structure: Uses identical XdStringType, XdTemporalType base types as Justice example
2. Different Semantics: Schema annotations link to FHIR/LOINC instead of NIEM Justice
3. Component Reuse: Birth Date (ms-ot6w0z4b34688) and Given Name (ms-sx0a4d8f78722) components are reused from Justice domain
4. Domain-Specific Components: Blood type (ms-yd6g0j4l34788), allergies list (ms-af8i2l6n56800), MRN (ms-xc5f9i3k23777) not in NIEM Core
5. Still Interoperable: Both domains understand ClusterType/XdStringType/XdTemporalType structure
6. Multi-vocabulary: Patient Cluster links to FHIR, Schema.org, AND NIEM simultaneously for semantic compatibility
Example 3: Immigration Domain
Domain Requirements
Immigration needs: - Passport Number - Visa Status - Country of Origin - Entry Date - Port of Entry
SDC4 Representation
Instance Data:
<sdc4:ms-ch0k4n8p78822 xmlns:sdc4="https://semanticdatacharter.com/ns/sdc4/">
<label>Traveler</label>
<sdc4:ms-pu7x1a5c45699><!-- REUSED Person Name Cluster from Justice -->
<label>Traveler Name</label>
<sdc4:ms-sx0a4d8f78722><!-- REUSED Given Name from Justice -->
<label>Given Name</label>
<xdstring-value>Maria</xdstring-value>
</sdc4:ms-sx0a4d8f78722>
<sdc4:ms-ty1b5e9g89733><!-- REUSED Surname from Justice -->
<label>Surname</label>
<xdstring-value>Garcia</xdstring-value>
</sdc4:ms-ty1b5e9g89733>
</sdc4:ms-pu7x1a5c45699>
<sdc4:ms-ot6w0z4b34688><!-- REUSED Birth Date from Justice -->
<label>Birth Date</label>
<xdtemporal-value>1990-08-22</xdtemporal-value>
</sdc4:ms-ot6w0z4b34688>
<sdc4:ms-di1l5o9q89833>
<label>Passport Number</label>
<xdstring-value>P1234567</xdstring-value>
</sdc4:ms-di1l5o9q89833>
<sdc4:ms-ej2m6p0r90844>
<label>Visa Status</label>
<xdstring-value>B-2</xdstring-value><!-- Tourist visa -->
</sdc4:ms-ej2m6p0r90844>
<sdc4:ms-fk3n7q1s01855>
<label>Country of Origin</label>
<xdstring-value>MX</xdstring-value><!-- Mexico -->
</sdc4:ms-fk3n7q1s01855>
<sdc4:ms-gl4o8r2t12866>
<label>Entry Date</label>
<xdtemporal-value>2025-10-15</xdtemporal-value>
</sdc4:ms-gl4o8r2t12866>
<sdc4:ms-hm5p9s3u23877>
<label>Port of Entry</label>
<xdstring-value>San Diego, CA</xdstring-value>
</sdc4:ms-hm5p9s3u23877>
</sdc4:ms-ch0k4n8p78822>
Key Pattern: The Immigration domain reuses Person Name Cluster (ms-pu7x1a5c45699), Given Name (ms-sx0a4d8f78722), Surname (ms-ty1b5e9g89733), and Birth Date (ms-ot6w0z4b34688) components from the Justice example. Schema annotations would link to http://niem.gov/domains/immigration/TravelerType and http://niem.gov/niem-core/PersonType for semantic compatibility.
Example 4: Social Services Domain
Domain Requirements
Social Services needs: - Case Number - Benefit Eligibility Status - Income Level - Household Size - Service History
SDC4 Representation
Instance Data:
<sdc4:ms-in6q0t4v34888 xmlns:sdc4="https://semanticdatacharter.com/ns/sdc4/">
<label>Client</label>
<sdc4:ms-pu7x1a5c45699><!-- REUSED Person Name Cluster from Justice -->
<label>Client Name</label>
<sdc4:ms-uz2c6f0h90744><!-- REUSED Full Name from Justice -->
<label>Full Name</label>
<xdstring-value>Sarah Johnson</xdstring-value>
</sdc4:ms-uz2c6f0h90744>
</sdc4:ms-pu7x1a5c45699>
<sdc4:ms-ot6w0z4b34688><!-- REUSED Birth Date from Justice -->
<label>Birth Date</label>
<xdtemporal-value>1978-03-10</xdtemporal-value>
</sdc4:ms-ot6w0z4b34688>
<sdc4:ms-jo7r1u5w45899>
<label>Case Number</label>
<xdstring-value>CASE-2025-001234</xdstring-value>
</sdc4:ms-jo7r1u5w45899>
<sdc4:ms-kp8s2v6x56900>
<label>Benefit Eligibility</label>
<xdstring-value>ELIGIBLE</xdstring-value>
<enumeration>
<code>ELIGIBLE</code>
<display>Eligible</display>
</enumeration>
</sdc4:ms-kp8s2v6x56900>
<sdc4:ms-lq9t3w7y67911>
<label>Monthly Income</label>
<magnitude>2400.00</magnitude>
<units>USD</units>
</sdc4:ms-lq9t3w7y67911>
<sdc4:ms-mr0u4x8z78922>
<label>Household Size</label>
<xdcount-value>4</xdcount-value>
</sdc4:ms-mr0u4x8z78922>
</sdc4:ms-in6q0t4v34888>
Key Observations:
1. Quantified Types: Component ms-lq9t3w7y67911 uses XdQuantityType for income (with <magnitude> and <units>)
2. Count Type: Component ms-mr0u4x8z78922 uses XdCountType for household size (integer with <xdcount-value>)
3. Enumerations: Uses SDC4 enumeration pattern within XdString component
4. Component Reuse: Person Name Cluster, Full Name, and Birth Date components reused from Justice domain
5. Domain-Specific: Social services concepts (case number, eligibility) have their own component IDs with schema annotations linking to domain ontologies
Cross-Domain Interoperability
The Power of Structural Reuse
All four domains (Justice, Healthcare, Immigration, Social Services) use: - Cluster for hierarchical grouping - XdString for textual data - XdTemporal for dates - XdCount for integers - XdQuantity for measurements
Semantic Diversity with Structural Unity
Justice Person:
<sdc4:ms-rw9z3c7e67711>
<label>FBI ID</label>
<xdstring-value>FBI-987654</xdstring-value>
</sdc4:ms-rw9z3c7e67711>
Schema annotation links to: http://niem.gov/justice/PersonFBIIdentification
Healthcare Patient:
<sdc4:ms-xc5f9i3k23777>
<label>MRN</label>
<xdstring-value>MRN-12345</xdstring-value>
</sdc4:ms-xc5f9i3k23777>
Schema annotation links to: http://hl7.org/fhir/Patient.identifier
Immigration Traveler:
<sdc4:ms-di1l5o9q89833>
<label>Passport</label>
<xdstring-value>P1234567</xdstring-value>
</sdc4:ms-di1l5o9q89833>
Schema annotation links to: http://niem.gov/immigration/PassportNumberIdentification
Social Services Client:
<sdc4:ms-jo7r1u5w45899>
<label>Case Number</label>
<xdstring-value>CASE-2025-001234</xdstring-value>
</sdc4:ms-jo7r1u5w45899>
Schema annotation links to: http://example.gov/social-services/CaseNumber
Structural Pattern: All use XdStringType base with <xdstring-value> child element
Semantic Difference: Different component IDs (ms-[CUID2]) with different schema annotations (rdfs:isDefinedBy URIs)
Interoperability: Systems can process all four using the same XdStringType parser without domain-specific logic. The element name structure (ms-[CUID2]) is identical; only semantic references differ.
Mapping NIEM Augmentations
NIEM Augmentation Pattern
<nc:Person>
<nc:PersonName>John Doe</nc:PersonName>
<j:PersonAugmentation>
<j:PersonFBIIdentification>FBI-123</j:PersonFBIIdentification>
</j:PersonAugmentation>
</nc:Person>
SDC4 Pattern (No Separate Augmentation)
<sdc4:ms-ns5v9y3a23677>
<label>Person</label>
<sdc4:ms-uz2c6f0h90744>
<label>Name</label>
<xdstring-value>John Doe</xdstring-value>
</sdc4:ms-uz2c6f0h90744>
<sdc4:ms-rw9z3c7e67711>
<label>FBI ID</label>
<xdstring-value>FBI-123</xdstring-value>
</sdc4:ms-rw9z3c7e67711>
</sdc4:ms-ns5v9y3a23677>
Key Difference: No namespace separation required. Domain-specific properties are simply additional components with appropriate schema annotations. Both Name (ms-uz2c6f0h90744) and FBI ID (ms-rw9z3c7e67711) are sibling elements within the Person Cluster, with schema annotations linking Name to http://niem.gov/niem-core/PersonName and FBI ID to http://niem.gov/justice/PersonFBIIdentification.
Handling NIEM Cardinality
NIEM: minOccurs/maxOccurs
<xs:element ref="nc:PersonName" minOccurs="0" maxOccurs="unbounded"/>
SDC4: List Types
Multiple Names (common in multilingual contexts):
<sdc4:ms-ns5v9y3a23677>
<label>Person</label>
<sdc4:ms-ns1v5y9b34933>
<label>Names</label>
<xdstringlist-value>John Doe</xdstringlist-value>
<xdstringlist-value>Jean Dupont</xdstringlist-value><!-- French name -->
</sdc4:ms-ns1v5y9b34933>
</sdc4:ms-ns5v9y3a23677>
Schema annotation for ms-ns1v5y9b34933 links to: http://niem.gov/niem-core/PersonName
Or Multiple Separate Components (if different roles):
<sdc4:ms-ns5v9y3a23677>
<label>Person</label>
<sdc4:ms-ot2w6z0c45944>
<label>Legal Name</label>
<xdstring-value>John Doe</xdstring-value>
</sdc4:ms-ot2w6z0c45944>
<sdc4:ms-pu3x7a1d56955>
<label>Preferred Name</label>
<xdstring-value>Johnny</xdstring-value>
</sdc4:ms-pu3x7a1d56955>
</sdc4:ms-ns5v9y3a23677>
Schema annotations: ms-ot2w6z0c45944 links to http://example.gov/LegalName, ms-pu3x7a1d56955 links to http://example.gov/PreferredName
Implementation Patterns
Pattern 1: Direct Mapping (Simple Properties)
NIEM:
<nc:PersonSex>
<nc:SexCode>M</nc:SexCode>
</nc:PersonSex>
SDC4:
<sdc4:ms-qv4y8b2e67966>
<label>Sex</label>
<xdstring-value>M</xdstring-value>
<enumeration>
<code>M</code>
<display>Male</display>
</enumeration>
</sdc4:ms-qv4y8b2e67966>
Schema annotation for ms-qv4y8b2e67966 links to: http://niem.gov/niem-core/PersonSex
Pattern 2: Hierarchical Mapping (Complex Properties)
NIEM:
<nc:PersonName>
<nc:PersonGivenName>John</nc:PersonGivenName>
<nc:PersonMiddleName>Q</nc:PersonMiddleName>
<nc:PersonSurName>Doe</nc:PersonSurName>
</nc:PersonName>
SDC4:
<sdc4:ms-pu7x1a5c45699>
<label>Name</label>
<sdc4:ms-sx0a4d8f78722>
<label>Given Name</label>
<xdstring-value>John</xdstring-value>
</sdc4:ms-sx0a4d8f78722>
<sdc4:ms-rw5z9c3f89977>
<label>Middle Name</label>
<xdstring-value>Q</xdstring-value>
</sdc4:ms-rw5z9c3f89977>
<sdc4:ms-ty1b5e9g89733>
<label>Surname</label>
<xdstring-value>Doe</xdstring-value>
</sdc4:ms-ty1b5e9g89733>
</sdc4:ms-pu7x1a5c45699>
Schema annotations: Person Name Cluster (ms-pu7x1a5c45699) links to http://niem.gov/niem-core/PersonName, child components link to respective NIEM element URIs.
Pattern 3: Multi-Vocabulary Linking
SDC4 Schema with Multiple Ontologies:
<!-- ComplexType for Birth Date - mc-ot6w0z4b34688 -->
<xsd:complexType name="mc-ot6w0z4b34688">
<xsd:annotation>
<xsd:appinfo>
<rdf:Description rdf:about="sdc4:mc-ot6w0z4b34688">
<rdfs:label>Birth Date</rdfs:label>
<!-- NIEM reference -->
<rdfs:isDefinedBy rdf:resource="http://niem.gov/niem-core/PersonBirthDate"/>
<!-- Schema.org reference (for web interop) -->
<rdfs:isDefinedBy rdf:resource="http://schema.org/birthDate"/>
<!-- FHIR reference (for healthcare interop) -->
<rdfs:isDefinedBy rdf:resource="http://hl7.org/fhir/Patient.birthDate"/>
<!-- Dublin Core reference (for library/archive interop) -->
<rdfs:isDefinedBy rdf:resource="http://purl.org/dc/terms/date"/>
</rdf:Description>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexContent>
<xsd:restriction base="sdc4:XdTemporalType">
<xsd:sequence>
<xsd:element name="label" type="xsd:string" fixed="Birth Date"/>
<xsd:element name="xdtemporal-value" type="xsd:date"/>
</xsd:sequence>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
Instance Data:
<sdc4:ms-ot6w0z4b34688>
<label>Birth Date</label>
<xdtemporal-value>1985-05-15</xdtemporal-value>
</sdc4:ms-ot6w0z4b34688>
Benefit: One structural component (ms-ot6w0z4b34688) supports semantic translation across all four standards. Systems can query using any of the four ontology URIs and find the same component.
Benefits Summary
1. Domain Independence
Each domain creates models using same structural types: - No harmonization required - No cross-domain governance - Immediate adoption
2. Semantic Flexibility
Domains link to their authoritative ontologies: - Justice → NIEM URIs - Healthcare → FHIR URIs - Education → SIF URIs - Social Services → Domain-specific URIs
3. Multi-Standard Support
Same SDC4 model can reference: - NIEM (for government exchanges) - FHIR (for healthcare interop) - Schema.org (for web discoverability) - Domain ontologies (for specificity)
4. Future-Proof
New concepts require: - Mapping to existing SDC4 types (XdString, XdTemporal, etc.) - Adding ontology URI - No structural changes - No version migration
Next Steps
For other domain mappings: - NIEM_LOCATION_TO_SDC4.md - Geographic data patterns - NIEM_ACTIVITY_TO_SDC4.md - Event and action patterns
For cross-domain patterns: - NIEM_CROSS_DOMAIN_REUSE.md - Sharing components across domains
For complete reference: - NIEM_SDC4_TYPE_MAPPING.md - All NIEM types → SDC4 types
Document Navigation: ← Previous: NIEM Semantics Problem | Next: NIEM Location to SDC4 →
About This Documentation
This document describes the open SDC4 specification maintained by the Semantic Data Charter community.
Open Source: - Specification: https://semanticdatacharter.com - GitHub: https://github.com/SemanticDataCharter - License: CC BY 4.0
Commercial Implementation: - SDCStudio: https://axius-sdc.com (by Axius SDC, Inc.)
See ABOUT_SDC4_AND_SDCSTUDIO.md for details.
This document is part of the SDC4 Integration Guide series. Author: Timothy W. Cook (Founder, Axius SDC, Inc.) w/Claude (Anthropic AI Assistant) License: Creative Commons Attribution 4.0 International (CC BY 4.0)