@prefix fhir: <http://hl7.org/fhir/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

# - resource -------------------------------------------------------------------

<http://hl7.org/cda/stds/core/StructureDefinition/PN> a fhir:StructureDefinition ;
  fhir:nodeRole fhir:treeRoot ;
  fhir:id [ fhir:v "PN"] ; # 
  fhir:text [
     fhir:status [ fhir:v "generated" ] ;
     fhir:div [ fhir:v "<div xmlns=\"http://www.w3.org/1999/xhtml\">\n      <p>A name for a person. A sequence of name parts, such as given name or family name, prefix, suffix, etc. Examples for person name values are \"Jim Bob Walton, Jr.\", \"Adam Everyman\", etc. A person name may be as simple as a character string or may consist of several person name parts, such as, \"Jim\", \"Bob\", \"Walton\", and \"Jr.\". PN differs from EN because the qualifier type cannot include LS (Legal Status).</p>\n    </div>"^^rdf:XMLLiteral ]
  ] ; # 
  fhir:extension ( [
     fhir:url [
       fhir:v "http://hl7.org/fhir/tools/StructureDefinition/logical-target"^^xsd:anyURI ;
       fhir:l <http://hl7.org/fhir/tools/StructureDefinition/logical-target>
     ] ;
     fhir:value [
       a fhir:Boolean ;
       fhir:extension ( [
         fhir:url [
           fhir:v "http://hl7.org/fhir/StructureDefinition/data-absent-reason"^^xsd:anyURI ;
           fhir:l <http://hl7.org/fhir/StructureDefinition/data-absent-reason>
         ] ;
         fhir:value [
           a fhir:Code ;
           fhir:v "not-applicable"
         ]
       ] )
     ]
  ] [
     fhir:url [
       fhir:v "http://hl7.org/fhir/tools/StructureDefinition/xml-namespace"^^xsd:anyURI ;
       fhir:l <http://hl7.org/fhir/tools/StructureDefinition/xml-namespace>
     ] ;
     fhir:value [
       a fhir:Uri ;
       fhir:v "urn:hl7-org:v3"^^xsd:anyURI ;
       fhir:l <urn:hl7-org:v3>
     ]
  ] [
     fhir:url [
       fhir:v "http://hl7.org/fhir/tools/StructureDefinition/xml-name"^^xsd:anyURI ;
       fhir:l <http://hl7.org/fhir/tools/StructureDefinition/xml-name>
     ] ;
     fhir:value [
       a fhir:String ;
       fhir:v "name"
     ]
  ] [
     fhir:url [
       fhir:v "http://hl7.org/fhir/tools/StructureDefinition/logical-container"^^xsd:anyURI ;
       fhir:l <http://hl7.org/fhir/tools/StructureDefinition/logical-container>
     ] ;
     fhir:value [
       a fhir:Uri ;
       fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/ClinicalDocument"^^xsd:anyURI ;
       fhir:l <http://hl7.org/cda/stds/core/StructureDefinition/ClinicalDocument>
     ]
  ] ) ; # 
  fhir:url [
     fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/PN"^^xsd:anyURI ;
     fhir:l <http://hl7.org/cda/stds/core/StructureDefinition/PN>
  ] ; # 
  fhir:version [ fhir:v "2.0.3-sd"] ; # 
  fhir:name [ fhir:v "PN"] ; # 
  fhir:title [ fhir:v "PN: PersonName (V3 Data Type)"] ; # 
  fhir:status [ fhir:v "active"] ; # 
  fhir:experimental [ fhir:v false] ; # 
  fhir:date [ fhir:v "2026-06-12T07:06:38+10:00"^^xsd:dateTime] ; # 
  fhir:publisher [ fhir:v "Health Level 7"] ; # 
  fhir:contact ( [
     fhir:name [ fhir:v "HL7 International - Structured Documents" ] ;
     fhir:telecom ( [
       fhir:system [ fhir:v "url" ] ;
       fhir:value [ fhir:v "http://www.hl7.org/Special/committees/structure" ]
     ] [
       fhir:system [ fhir:v "email" ] ;
       fhir:value [ fhir:v "structdog@lists.HL7.org" ]
     ] )
  ] ) ; # 
  fhir:description [ fhir:v "A name for a person. A sequence of name parts, such as given name or family name, prefix, suffix, etc. Examples for person name values are \"Jim Bob Walton, Jr.\", \"Adam Everyman\", etc. A person name may be as simple as a character string or may consist of several person name parts, such as, \"Jim\", \"Bob\", \"Walton\", and \"Jr.\". PN differs from EN because the qualifier type cannot include LS (Legal Status)."] ; # 
  fhir:fhirVersion [ fhir:v "5.0.0"] ; # 
  fhir:mapping ( [
     fhir:identity [ fhir:v "rim" ] ;
     fhir:uri [
       fhir:v "http://hl7.org/v3"^^xsd:anyURI ;
       fhir:l <http://hl7.org/v3>
     ] ;
     fhir:name [ fhir:v "RIM Mapping" ]
  ] ) ; # 
  fhir:kind [ fhir:v "logical"] ; # 
  fhir:abstract [ fhir:v false] ; # 
  fhir:type [
     fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/PN"^^xsd:anyURI ;
     fhir:l <http://hl7.org/cda/stds/core/StructureDefinition/PN>
  ] ; # 
  fhir:baseDefinition [
     fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/EN"^^xsd:anyURI ;
     fhir:l <http://hl7.org/cda/stds/core/StructureDefinition/EN>
  ] ; # 
  fhir:derivation [ fhir:v "specialization"] ; # 
  fhir:snapshot [
     fhir:extension ( [
       fhir:url [
         fhir:v "http://hl7.org/fhir/tools/StructureDefinition/snapshot-base-version"^^xsd:anyURI ;
         fhir:l <http://hl7.org/fhir/tools/StructureDefinition/snapshot-base-version>
       ] ;
       fhir:value [
         a fhir:String ;
         fhir:v "2.0.3-sd"
       ]
     ] ) ;
     fhir:element ( [
       fhir:id [ fhir:v "PN" ] ;
       fhir:path [ fhir:v "PN" ] ;
       fhir:short [ fhir:v "Base for all types and resources" ] ;
       fhir:definition [ fhir:v "A name for a person. A sequence of name parts, such as given name or family name, prefix, suffix, etc. Examples for person name values are \"Jim Bob Walton, Jr.\", \"Adam Everyman\", etc. A person name may be as simple as a character string or may consist of several person name parts, such as, \"Jim\", \"Bob\", \"Walton\", and \"Jr.\". PN differs from EN because the qualifier type cannot include LS (Legal Status)." ] ;
       fhir:min [ fhir:v "1"^^xsd:nonNegativeInteger ] ;
       fhir:max [ fhir:v "*" ] ;
       fhir:base [
         fhir:path [ fhir:v "Base" ] ;
         fhir:min [ fhir:v "0"^^xsd:nonNegativeInteger ] ;
         fhir:max [ fhir:v "*" ]
       ] ;
       fhir:constraint ( [
         fhir:key [ fhir:v "pn-no-ls" ] ;
         fhir:severity [ fhir:v "error" ] ;
         fhir:human [ fhir:v "No PN name part may have a qualifier of LS." ] ;
         fhir:expression [ fhir:v "(item.delimiter | item.family | item.given | item.prefix | item.suffix).where(qualifier.where($this = 'LS').exists()).empty()" ]
       ] ) ;
       fhir:isModifier [ fhir:v false ] ;
       fhir:mapping ( [
         fhir:identity [ fhir:v "rim" ] ;
         fhir:map [ fhir:v "n/a" ]
       ] )
     ] [
       fhir:id [ fhir:v "PN.nullFlavor" ] ;
       fhir:path [ fhir:v "PN.nullFlavor" ] ;
       fhir:representation ( [ fhir:v "xmlAttr" ] ) ;
       fhir:label [ fhir:v "Exceptional Value Detail" ] ;
       fhir:definition [ fhir:v "If a value is an exceptional value (NULL-value), this specifies in what way and why proper information is missing." ] ;
       fhir:min [ fhir:v "0"^^xsd:nonNegativeInteger ] ;
       fhir:max [ fhir:v "1" ] ;
       fhir:base [
         fhir:path [ fhir:v "ANY.nullFlavor" ] ;
         fhir:min [ fhir:v "0"^^xsd:nonNegativeInteger ] ;
         fhir:max [ fhir:v "1" ]
       ] ;
       fhir:type ( [
         fhir:code [
           fhir:v "code"^^xsd:anyURI ;
           fhir:l fhir:code
         ] ;
         fhir:profile ( [
           fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/cs-simple"^^xsd:anyURI ;
           fhir:l <http://hl7.org/cda/stds/core/StructureDefinition/cs-simple>
         ] )
       ] ) ;
       fhir:binding [
         fhir:strength [ fhir:v "required" ] ;
         fhir:valueSet [
           fhir:v "http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor"^^xsd:anyURI ;
           fhir:l <http://hl7.org/cda/stds/core/ValueSet/CDANullFlavor>
         ]
       ]
     ] [
       fhir:id [ fhir:v "PN.use" ] ;
       fhir:path [ fhir:v "PN.use" ] ;
       fhir:representation ( [ fhir:v "xmlAttr" ] ) ;
       fhir:label [ fhir:v "Use Code" ] ;
       fhir:definition [ fhir:v "A set of codes advising a system or user which name in a set of like names to select for a given purpose. A name without specific use code might be a default name useful for any purpose, but a name with a specific use code would be preferred for that respective purpose" ] ;
       fhir:min [ fhir:v "0"^^xsd:nonNegativeInteger ] ;
       fhir:max [ fhir:v "*" ] ;
       fhir:base [
         fhir:path [ fhir:v "EN.use" ] ;
         fhir:min [ fhir:v "0"^^xsd:nonNegativeInteger ] ;
         fhir:max [ fhir:v "*" ]
       ] ;
       fhir:type ( [
         fhir:code [
           fhir:v "code"^^xsd:anyURI ;
           fhir:l fhir:code
         ] ;
         fhir:profile ( [
           fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/cs-simple"^^xsd:anyURI ;
           fhir:l <http://hl7.org/cda/stds/core/StructureDefinition/cs-simple>
         ] )
       ] ) ;
       fhir:binding [
         fhir:strength [ fhir:v "required" ] ;
         fhir:valueSet [
           fhir:v "http://hl7.org/cda/stds/core/ValueSet/CDAEntityNameUse"^^xsd:anyURI ;
           fhir:l <http://hl7.org/cda/stds/core/ValueSet/CDAEntityNameUse>
         ]
       ]
     ] [
       fhir:id [ fhir:v "PN.item" ] ;
       fhir:extension ( [
         fhir:url [
           fhir:v "http://hl7.org/fhir/tools/StructureDefinition/xml-choice-group"^^xsd:anyURI ;
           fhir:l <http://hl7.org/fhir/tools/StructureDefinition/xml-choice-group>
         ] ;
         fhir:value [
           a fhir:Boolean ;
           fhir:v true
         ]
       ] ) ;
       fhir:path [ fhir:v "PN.item" ] ;
       fhir:definition [ fhir:v "A series of items that constitute the name." ] ;
       fhir:min [ fhir:v "0"^^xsd:nonNegativeInteger ] ;
       fhir:max [ fhir:v "*" ] ;
       fhir:base [
         fhir:path [ fhir:v "EN.item" ] ;
         fhir:min [ fhir:v "0"^^xsd:nonNegativeInteger ] ;
         fhir:max [ fhir:v "*" ]
       ] ;
       fhir:type ( [
         fhir:code [
           fhir:v "http://hl7.org/fhir/StructureDefinition/Base"^^xsd:anyURI ;
           fhir:l <http://hl7.org/fhir/StructureDefinition/Base>
         ]
       ] ) ;
       fhir:constraint ( [
         fhir:key [ fhir:v "EN-1" ] ;
         fhir:severity [ fhir:v "error" ] ;
         fhir:human [ fhir:v "Can only have only one of the possible item elements in each choice" ] ;
         fhir:expression [ fhir:v "(delimiter | family | given | prefix | suffix | xmlText).count() = 1" ] ;
         fhir:source [
           fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/EN"^^xsd:anyURI ;
           fhir:l <http://hl7.org/cda/stds/core/StructureDefinition/EN>
         ]
       ] )
     ] [
       fhir:id [ fhir:v "PN.item.delimiter" ] ;
       fhir:path [ fhir:v "PN.item.delimiter" ] ;
       fhir:min [ fhir:v "0"^^xsd:nonNegativeInteger ] ;
       fhir:max [ fhir:v "*" ] ;
       fhir:base [
         fhir:path [ fhir:v "EN.item.delimiter" ] ;
         fhir:min [ fhir:v "0"^^xsd:nonNegativeInteger ] ;
         fhir:max [ fhir:v "*" ]
       ] ;
       fhir:type ( [
         fhir:code [
           fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/ENXP"^^xsd:anyURI ;
           fhir:l <http://hl7.org/cda/stds/core/StructureDefinition/ENXP>
         ]
       ] )
     ] [
       fhir:id [ fhir:v "PN.item.family" ] ;
       fhir:path [ fhir:v "PN.item.family" ] ;
       fhir:min [ fhir:v "0"^^xsd:nonNegativeInteger ] ;
       fhir:max [ fhir:v "*" ] ;
       fhir:base [
         fhir:path [ fhir:v "EN.item.family" ] ;
         fhir:min [ fhir:v "0"^^xsd:nonNegativeInteger ] ;
         fhir:max [ fhir:v "*" ]
       ] ;
       fhir:type ( [
         fhir:code [
           fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/ENXP"^^xsd:anyURI ;
           fhir:l <http://hl7.org/cda/stds/core/StructureDefinition/ENXP>
         ]
       ] )
     ] [
       fhir:id [ fhir:v "PN.item.given" ] ;
       fhir:path [ fhir:v "PN.item.given" ] ;
       fhir:min [ fhir:v "0"^^xsd:nonNegativeInteger ] ;
       fhir:max [ fhir:v "*" ] ;
       fhir:base [
         fhir:path [ fhir:v "EN.item.given" ] ;
         fhir:min [ fhir:v "0"^^xsd:nonNegativeInteger ] ;
         fhir:max [ fhir:v "*" ]
       ] ;
       fhir:type ( [
         fhir:code [
           fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/ENXP"^^xsd:anyURI ;
           fhir:l <http://hl7.org/cda/stds/core/StructureDefinition/ENXP>
         ]
       ] )
     ] [
       fhir:id [ fhir:v "PN.item.prefix" ] ;
       fhir:path [ fhir:v "PN.item.prefix" ] ;
       fhir:min [ fhir:v "0"^^xsd:nonNegativeInteger ] ;
       fhir:max [ fhir:v "*" ] ;
       fhir:base [
         fhir:path [ fhir:v "EN.item.prefix" ] ;
         fhir:min [ fhir:v "0"^^xsd:nonNegativeInteger ] ;
         fhir:max [ fhir:v "*" ]
       ] ;
       fhir:type ( [
         fhir:code [
           fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/ENXP"^^xsd:anyURI ;
           fhir:l <http://hl7.org/cda/stds/core/StructureDefinition/ENXP>
         ]
       ] )
     ] [
       fhir:id [ fhir:v "PN.item.suffix" ] ;
       fhir:path [ fhir:v "PN.item.suffix" ] ;
       fhir:min [ fhir:v "0"^^xsd:nonNegativeInteger ] ;
       fhir:max [ fhir:v "*" ] ;
       fhir:base [
         fhir:path [ fhir:v "EN.item.suffix" ] ;
         fhir:min [ fhir:v "0"^^xsd:nonNegativeInteger ] ;
         fhir:max [ fhir:v "*" ]
       ] ;
       fhir:type ( [
         fhir:code [
           fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/ENXP"^^xsd:anyURI ;
           fhir:l <http://hl7.org/cda/stds/core/StructureDefinition/ENXP>
         ]
       ] )
     ] [
       fhir:id [ fhir:v "PN.item.xmlText" ] ;
       fhir:path [ fhir:v "PN.item.xmlText" ] ;
       fhir:representation ( [ fhir:v "xmlText" ] ) ;
       fhir:short [ fhir:v "Allows for mixed text content" ] ;
       fhir:comment [ fhir:v "This element is represented in XML as textual content. The actual name \"xmlText\" will not appear in a CDA instance." ] ;
       fhir:min [ fhir:v "0"^^xsd:nonNegativeInteger ] ;
       fhir:max [ fhir:v "1" ] ;
       fhir:base [
         fhir:path [ fhir:v "EN.item.xmlText" ] ;
         fhir:min [ fhir:v "0"^^xsd:nonNegativeInteger ] ;
         fhir:max [ fhir:v "1" ]
       ] ;
       fhir:type ( [
         fhir:code [
           fhir:v "string"^^xsd:anyURI ;
           fhir:l fhir:string
         ] ;
         fhir:profile ( [
           fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/st-simple"^^xsd:anyURI ;
           fhir:l <http://hl7.org/cda/stds/core/StructureDefinition/st-simple>
         ] )
       ] )
     ] [
       fhir:id [ fhir:v "PN.validTime" ] ;
       fhir:path [ fhir:v "PN.validTime" ] ;
       fhir:label [ fhir:v "Valid Time" ] ;
       fhir:definition [ fhir:v "An interval of time specifying the time during which the name is or was used for the entity. This accomodates the fact that people change names for people, places and things." ] ;
       fhir:min [ fhir:v "0"^^xsd:nonNegativeInteger ] ;
       fhir:max [ fhir:v "1" ] ;
       fhir:base [
         fhir:path [ fhir:v "EN.validTime" ] ;
         fhir:min [ fhir:v "0"^^xsd:nonNegativeInteger ] ;
         fhir:max [ fhir:v "1" ]
       ] ;
       fhir:type ( [
         fhir:code [
           fhir:v "http://hl7.org/cda/stds/core/StructureDefinition/IVL-TS"^^xsd:anyURI ;
           fhir:l <http://hl7.org/cda/stds/core/StructureDefinition/IVL-TS>
         ]
       ] )
     ] )
  ] ; # 
  fhir:differential [
     fhir:element ( [
       fhir:id [ fhir:v "PN" ] ;
       fhir:path [ fhir:v "PN" ] ;
       fhir:definition [ fhir:v "A name for a person. A sequence of name parts, such as given name or family name, prefix, suffix, etc. Examples for person name values are \"Jim Bob Walton, Jr.\", \"Adam Everyman\", etc. A person name may be as simple as a character string or may consist of several person name parts, such as, \"Jim\", \"Bob\", \"Walton\", and \"Jr.\". PN differs from EN because the qualifier type cannot include LS (Legal Status)." ] ;
       fhir:constraint ( [
         fhir:key [ fhir:v "pn-no-ls" ] ;
         fhir:severity [ fhir:v "error" ] ;
         fhir:human [ fhir:v "No PN name part may have a qualifier of LS." ] ;
         fhir:expression [ fhir:v "(item.delimiter | item.family | item.given | item.prefix | item.suffix).where(qualifier.where($this = 'LS').exists()).empty()" ]
       ] )
     ] [
       fhir:id [ fhir:v "PN.item" ] ;
       fhir:path [ fhir:v "PN.item" ] ;
       fhir:min [ fhir:v "0"^^xsd:nonNegativeInteger ] ;
       fhir:max [ fhir:v "*" ]
     ] )
  ] . # 

# -------------------------------------------------------------------------------------

