Individual, Organization, and Role Documentation

From Federation of Earth Science Information Partners

Overview

Documenting people is critical for many discovery, use and understanding use cases. People and organizations often have different roles within the data creation and management life cycle. This page provides sample guidance pertaining to how people and organizations are documented in the DIF, ECHO, FGDC and ISO 19115 metadata dialects.

Implementation

Directory Interchange Format (DIF)

Structure

People are documented in DIF using the Personnel object. The structure of the Personnel object is:

<dif:Personnel>
  <dif:Role/>
  <dif:First_Name/>
  <dif:Middle_Name/>
  <dif:Last_Name/>
  <dif:Email/>
  <dif:Phone/>
  <dif:Fax/>
  <dif:Contact_Address>
    <dif:Address/>
    <dif:City/>
    <dif:Province_or_State/>
    <dif:Postal_Code/>
    <dif:Country/>
  </dif:Contact_Address>
</dif:Personnel>

DIF includes information for one type of organization: the Data Center that distributes the data. The Data Centers are documented using the DataCenter object:

<dif:Data_Center>
  <dif:Data_Center_Name>
    <dif:Short_Name/>
    <dif:Long_Name/>
  </dif:Data_Center_Name>
  <dif:Data_Center_URL/>
  <dif:Data_Set_ID/>
  <dif:Personnel>
    <dif:Role/>
    <dif:First_Name/>
    <dif:Middle_Name/>
    <dif:Last_Name/>
    <dif:Email/>
    <dif:Phone/>
    <dif:Fax/>
    <dif:Contact_Address>
      <dif:Address/>
      <dif:City/>
      <dif:Province_or_State/>
      <dif:Postal_Code/>
      <dif:Country/>
    </dif:Contact_Address>
  </dif:Personnel>
</dif:Data_Center>

DIF supports these user types (roles):

Investigator
Technical Contact
DIF Author

Usage

For detailed guidance see the DIF Writers Guide.

EOS Clearinghouse (ECHO)

Structure

People and Organizations in ECHO are documented in the Contact object. The structure of the Contact object is:

<Contact>
  <Role/>
  <HoursOfService/>
  <Instructions/>
  <OrganizationName/>
  <OrganizationAddresses>
    <Address>
      <StreetAddress/>
      <City/>
      <StateProvince/>
      <PostalCode/>
      <Country/>
    </Address>
  </OrganizationAddresses>
  <OrganizationPhones>
    <Phone>
      <Number/>
      <Type>voice</Type>
    </Phone>
    <Phone>
      <Number/>
      <Type>fax</Type>
    </Phone>
  </OrganizationPhones>
  <OrganizationEmails>
    <Email/>
  </OrganizationEmails>
  <ContactPersons>
    <ContactPerson>
      <FirstName/>
      <MiddleName/>
      <LastName/>
      <JobPosition/>
    </ContactPerson>
  </ContactPersons>
</Contact>

The Role element can be used to document contacts with these roles:

Archive
Producer
Investigator
Data Originator
User Services
Instrument
Distributor	
Quality Assessment

Usage

For detailed guidance see the ECHO Data Partner User Guide.

Content Standard for Digital Geospatial Metadata (CSDGM)

Structure

People and Organizations in CSGDM are documented in the cntinfo object. The structure of the cntinfo object is:

<cntinfo>
    <cntorgp>
        <cntorg>DOC/NOAA/NESDIS/NGDC National Geophysical Data Center, NESDIS, NOAA, U.S. Department of Commerce </cntorg>
        <cntper>Contact Person Name</cntper>
    </cntorgp>
    <cntaddr>
        <addrtype>Mailing and Physical Address</addrtype>
        <address>NOAA/NESDIS/NGDC E/GC1 325 Broadway</address>
        <city>Boulder</city>
        <state>CO</state>
        <postal>80305-3328</postal>
        <country>USA</country>
    </cntaddr>
    <cntvoice>(303) 497-4603</cntvoice>
    <cnttdd>(303) 497-6958</cnttdd>
    <cntfax>(303) 497-6513</cntfax>
    <cntemail>[email protected] </cntemail>
    <hours>7:30-5:00 Mountain</hours>
    <cntinst>Contact Data Center</cntinst>
</cntinfo>

Usage

Where are contact information objects? People and organizations can be connected to FGDC metadata records in 3 places, and in the identification information citation.

UsageDescription and Xpath
CitationIdentification contacts and online references associated with the resource.

/fgdc:metadata/fgdc:idinfo/fgdc:citation/fgdc:citeinfo
Metadata ContactThe organization or person responsible for the metadata.

/fgdc:metadata/fgdc:metainfo/fgdc:metc/fgdc:cntinfo
Distribution ContactContact information for the organization or individual that distributes the resource.

/fgdc:metadata/fgdc:distinfo/fgdc:distrib/fgdc:cntinfo
Processing ContactThe organization or person associated with the process step.

/fgdc:metadata/fgdc:dataqual/fgdc:lineage/fgdc:procstep/fgdc:proccont


International Organization for Standardization 19115 (ISO19115)

Structure

People and organization are documented in ISO 19115 using the CI_ResponsibleParty object. The structure of the CI_ResponsibleParty is:

<gmd:CI_ResponsibleParty>
  <gmd:individualName/>
  <gmd:organisationName/>
  <gmd:positionName/>
  <gmd:contactInfo>
    <gmd:CI_Contact>
      <gmd:phone/>
      <gmd:address>
        <gmd:CI_Address>
          <gmd:deliveryPoint/>
          <gmd:city/>
          <gmd:administrativeArea/>
          <gmd:postalCode/>
          <gmd:country/>
          <gmd:electronicMailAddress/>
        </gmd:CI_Address>
      </gmd:address>
      <gmd:onlineResource/>
      <gmd:hoursOfService/>
      <gmd:contactInstructions/>
    </gmd:CI_Contact>
  </gmd:contactInfo>
  <gmd:role/>
</gmd:CI_ResponsibleParty>

CI_RoleCode

CI_ResponsibleParty objects can identify the role of a person with a CI_RoleCode element. The role types supported are:

ISO 19115Added in ISO 19115-1

+ resourceProvider
+ custodian
+ owner
+ user
+ distributor
+ originator
+ pointOfContact
+ principalInvestigator
+ processor
+ publisher
+ author

+ sponsor
+ coAuthor
+ collaborator
+ editor
+ mediator
+ rightsHolder
+ contributor
+ funder
+ stakeholder

Usage

Where are ResponsibleParty objects? People can be connected to ISO metadata records in eight places, and in each CI_Citation.

UsageDescription and Xpath
CitationThe ISO CI_Citation object is used to refer to a variety of resources that are not included in a metadata record. It is modeled after a bibliographic reference and can include any number of organizations or people (responsibleParties) in any roles. Typically a CI_Citation includes originators or authors and a publisher.

//gmd:CI_Citation/gmd:citedResponsibleParty
Metadata ContactThe metadataContact is a person that creates and manages metadata for resources and services. This person generally has expertise in documentation standards and has enough experience and understanding of the resource to document it in partnership with the originator or resource contact. This responsibleParty generally has role = "custodian" or "pointOfContact".

/gmi:MI_Metadata/gmd:contact
Resource ContactThe CI_ResponsibleParty in MD_Identification objects identifies the pointOfConact for the resource, defined as "identification of, and means of communication with, person(s) and organization(s) associated with the resource(s)".

In many cases this person or organization is the Data Manager or the Data Center that preserves the data. These people serve as contacts when the originator of the dataset is no longer available or interested in dealing with questions about the dataset. This person has scientific expertise or experience but may not be a good source for information on data access or data order processing. This responsibleParty generally has role = "pointOfContact".

/gmi:MI_Metadata /gmd:identificationInfo/gmd:MD_DataIdentification/gmd:pointOfContact
User ContactThe CI_ResponsibleParty in MD_Usage objects identifies people that use the data. This CI_ResponsibleParty generally has the role = "pointOfContact".

/gmi:MI_Metadata /gmd:identificationInfo/gmd:MD_Identification/gmd:resourceSpecific Usage/gmd:MD_Usage/gmd:userContactInfo
ProcessorThe CI_ResponsibleParty in LE_ProcessStep objects identifies people that are responsible for processing the data. This CI_ResponsibleParty generally has role = "processor".

/gmi:MI_Metadata /gmd:dataQualityInfo/gmd:MD_DataQuality/gmd:Lineage/gmd:LI_Lineage/gmd:processStep/gmd:LI_ProcessStep/gmd:processor
Resource or Metadata Maintenance ContactThe CI_ResponsibleParty in MD_MaintenanceInformation objects identifies the people that are responsible for maintaining the resource or the metadata.

/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_Identification/gmd:resourceMaintenance/gmd:MD_MaintenanceInformation/gmd:contact

or

/gmi:MI_Metadata/gmd:metadataMaintenance/gmd:MD_MaintenanceInformation/gmd:contact
DistributorThe CI_ResponsibleParty in MD_Distributor objects identifies the people that manage orders and data access at a Data Center. These people have expertise in data access systems but may not be a good source for more scientific information on the resource. This CI_ResponsibleParty generally has role = "distributor".

/gmi:MI_Metadata /gmd:distributionInfo/gmd:MD_Distribution/gmd:distributor/gmd:MD_Distributor/gmd:distributorContact
Extension ContactThe CI_ResponsibleParty in MD_ExtendedElementInfo objects identifies people that are responsible for creating and maintaining community specific extensions to the standard. This CI_ResponsibleParty generally has role = "pointOfContact".

/gmi:MI_Metadata /gmd:metadataExtensionInfo/gmd:MD_MetadataExtensionInformation /gmd:extendedElementInformation/gmd:MD_ExtendedElementInformation/gmd:source


Crosswalks

ConceptDescriptionDialect (Fit) Paths
Rolefunction performed by the responsible partyISO (1) //gmd:CI_ResponsibleParty/gmd:role/gmd:CI_RoleCode
ISO-1 (1) //cit:CI_Responsibility/cit:role/cit:CI_RoleCode
ECHO (1) /*/echo:Contacts/echo:Contact/echo:Role
DIF (1) /dif9:DIF/dif9:Personnel/dif9:Role
Organization NameName of the organizationISO //gmd:distributor/gmd:MD_Distributor/gmd:distributorContact/gmd:CI_ResponsibleParty/gmd:organisationName/gco:CharacterString
ISO //gmd:pointOfContact/gmd:CI_ResponsibleParty/gmd:organisationName/gco:CharacterString
ISO //gmd:identificationInfo/*/gmd:citation/gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:organisationName/gco:CharacterString
ISO-1 (1) //cit:CI_Responsibility/cit:party/cit:CI_Organisation/cit:name/gco:CharacterString
ECHO (1) /*/ArchiveCenter
ECHO (1) /*/echo:Contacts/echo:Contact/echo:OrganizationName
DIF (1) /dif9:DIF/dif9:Data_Center/dif9:Data_Center_Name/dif9:Short_Name
DIF (1) /dif9:DIF/dif9:Data_Center/dif9:Data_Center_Name/dif9:Long_Name
FGDC /fgdc:metadata/fgdc:idinfo/fgdc:citation/fgdc:citeinfo/fgdc:origin
Responsible Party IdentifierA unique identifier for a person or an organization
Responsible Party Identifier TypeThe type of a unique identifier for a person or an organization
Responsible Party Identifier Type URIThe type of a unique identifier for a person or an organization
Position NameName of the job or position in an organizationISO (1) //gmd:CI_ResponsibleParty/gmd:positionName/gco:CharacterString
ISO-1 (1) //cit:CI_Responsibility/cit:party/cit:CI_Organisation/cit:individual/cit:CI_Individual/cit:positionName/gco:CharacterString
ECHO (1) /*/echo:Contacts/echo:Contact/echo:ContactPersons/echo:ContactPerson/echo:JobPosition
First NameFirst name of the individualISO (2) //gmd:CI_ResponsibleParty/gmd:individualName/gco:CharacterString
ISO-1 (2) //cit:CI_Responsibility/cit:party/cit:CI_Organisation/cit:individual/cit:CI_Individual/cit:name/gco:CharacterString
ISO-1 //cit:CI_Responsibility/cit:party/cit:CI_Individual/cit:name/gco:CharacterString
ECHO (1) /*/echo:Contacts/echo:Contact/echo:ContactPersons/echo:ContactPerson/echo:FirstName
DIF (1) /dif9:DIF/dif9:Personnel/dif9:First_Name
Middle NameMiddle name of the individualISO (2) //gmd:CI_ResponsibleParty/gmd:individualName/gco:CharacterString
ISO-1 (2) //cit:CI_Responsibility/cit:party/cit:CI_Organisation/cit:individual/cit:CI_Individual/cit:name/gco:CharacterString
ISO-1 //cit:CI_Responsibility/cit:party/cit:CI_Individual/cit:name/gco:CharacterString
ECHO (1) /*/echo:Contacts/echo:Contact/echo:ContactPersons/echo:ContactPerson/echo:MiddleName
DIF (1) /dif9:DIF/dif9:Personnel/dif9:Middle_Name
Last NameLast name of the individualISO (2) //gmd:CI_ResponsibleParty/gmd:individualName/gco:CharacterString
ISO-1 (2) //cit:CI_Responsibility/cit:party/cit:CI_Organisation/cit:individual/cit:CI_Individual/cit:name/gco:CharacterString
ISO-1 //cit:CI_Responsibility/cit:party/cit:CI_Individual/cit:name/gco:CharacterString
ECHO (1) /*/echo:Contacts/echo:Contact/echo:ContactPersons/echo:ContactPerson/echo:LastName
DIF (1) /dif9:DIF/dif9:Personnel/dif9:Last_Name
EmailEmail address of the individual or organizationISO (1) //gmd:CI_ResponsibleParty/gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:electronicMailAddress/gco:CharacterString
ISO-1 //cit:CI_Responsibility/cit:party/cit:CI_Organisation/cit:contactInfo/cit:CI_Contact/cit:address/cit:CI_Address/cit:electronicMailAddress/gco:CharacterString
ISO-1 //cit:CI_Responsibility/cit:party/cit:CI_Individual/cit:contactInfo/cit:CI_Contact/cit:address/cit:CI_Address/cit:electronicMailAddress/gco:CharacterString
ECHO (1) /*/echo:Contacts/echo:Contact/echo:OrganizationEmails/echo:Email
DIF (1) /dif9:DIF/dif9:Personnel/dif9:Email
Hours of ServiceTime period (including time zone) when individuals can contact the organisation or individualISO (1) //gmd:CI_ResponsibleParty/gmd:contactInfo/gmd:CI_Contact/gmd:hoursOfService/gco:CharacterString
ISO-1 //cit:CI_Responsibility/cit:party/cit:CI_Organisation/cit:contactInfo/cit:CI_Contact/cit:hoursOfService/gco:CharacterString
ISO-1 //cit:CI_Responsibility/cit:party/cit:CI_Individual/cit:contactInfo/cit:CI_Contact/cit:hoursOfService/gco:CharacterString
ECHO (1) /*/echo:Contacts/echo:Contact/echo:HoursOfService
Contact InstructionsSupplemental instructions on how or when to contact the individual or organisationISO (1) //gmd:CI_ResponsibleParty/gmd:contactInfo/gmd:CI_Contact/gmd:contactInstructions/gco:CharacterString
ISO-1 //cit:CI_Responsibility/cit:party/cit:CI_Organisation/cit:contactInfo/cit:CI_Contact/cit:contactInstructions/gco:CharacterString
ISO-1 //cit:CI_Responsibility/cit:party/cit:CI_Individual/cit:contactInfo/cit:CI_Contact/cit:contactInstructions/gco:CharacterString
ECHO (1) /*/echo:Contacts/echo:Contact/echo:Instructions
PhoneTelephone numbers at which the organisation or individual may be contactedISO (1) //gmd:CI_ResponsibleParty/gmd:contactInfo/gmd:CI_Contact/gmd:phone/gmd:CI_Telephone/gmd:voice/gco:CharacterString
ISO-1 //cit:CI_Responsibility/cit:party/cit:CI_Individual/cit:contactInfo/cit:CI_Contact/cit:phone/cit:CI_Telephone[normalize-space(cit:numberType/cit:CI_TelephoneTypeCode)='voice']
ISO-1 //cit:CI_Responsibility/cit:party/cit:CI_Organisation/cit:contactInfo/cit:CI_Contact/cit:phone/cit:CI_Telephone[normalize-space(cit:numberType/cit:CI_TelephoneTypeCode)='voice']
ECHO (1) /*/echo:Contacts/echo:Contact/echo:OrganizationPhones/echo:Phone[echo:type='voice]'/echo:Number
DIF (1) /dif9:DIF/dif9:Personnel/dif9:Phone
FGDC /fgdc:metadata/fgdc:distinfo/fgdc:distrib/fgdc:cntinfo/fgdc:cntvoice
FGDC /fgdc:metadata/fgdc:metainfo/fgdc:metc/fgdc:cntinfo/fgdc:cntvoice
FaxTelephone numbers at which the organisation or individual may be contacted via facsimile (fax)ISO (1) //gmd:CI_ResponsibleParty/gmd:contactInfo/gmd:CI_Contact/gmd:phone/gmd:CI_Telephone/gmd:facsimile/gco:CharacterString
ISO-1 //cit:CI_Responsibility/cit:party/cit:CI_Individual/cit:contactInfo/cit:CI_Contact/cit:phone/cit:CI_Telephone[normalize-space(cit:numberType/cit:CI_TelephoneTypeCode)='facsimile']
ISO-1 //cit:CI_Responsibility/cit:party/cit:CI_Organisation/cit:contactInfo/cit:CI_Contact/cit:phone/cit:CI_Telephone[normalize-space(cit:numberType/cit:CI_TelephoneTypeCode)=facsimile']
ECHO (1) /*/echo:Contacts/echo:Contact/echo:OrganizationPhones/echo:Phone[echo:type='fax]'/echo:Number
DIF (1) /dif9:DIF/dif9:Personnel/dif9:Fax
AddressAddress line for the locationISO (1) //gmd:CI_ResponsibleParty/gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:deliveryPoint/gco:CharacterString
ISO-1 //cit:CI_Responsibility/cit:party/cit:CI_Individual/cit:contactInfo/cit:CI_Contact/cit:address/cit:CI_Address/cit:deliveryPoint/gco:CharacterString
ISO-1 //cit:CI_Responsibility/cit:party/cit:CI_Organisation/cit:contactInfo/cit:CI_Contact/cit:address/cit:CI_Address/cit:deliveryPoint/gco:CharacterString
ECHO (1) /*/echo:Contacts/echo:Contact/echo:OrganizationAddresses/echo:Address/echo:StreetAddress
DIF (1) /dif9:DIF/dif9:Personnel/dif9:Contact_Address/dif9:Address
CityCity of the locationISO (1) //gmd:CI_ResponsibleParty/gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:city/gco:CharacterString
ISO-1 //cit:CI_Responsibility/cit:party/cit:CI_Individual/cit:contactInfo/cit:CI_Contact/cit:address/cit:CI_Address/cit:city/gco:CharacterString
ISO-1 //cit:CI_Responsibility/cit:party/cit:CI_Organisation/cit:contactInfo/cit:CI_Contact/cit:address/cit:CI_Address/cit:city/gco:CharacterString
ECHO (1) /*/echo:Contacts/echo:Contact/echo:OrganizationAddresses/echo:Address/echo:City
DIF (1) /dif9:DIF/dif9:Personnel/dif9:Contact_Address/dif9:City
Province or StateProvince, state, or other administrative area of the locationISO (1) //gmd:CI_ResponsibleParty/gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:administrativeArea/gco:CharacterString
ISO-1 //cit:CI_Responsibility/cit:party/cit:CI_Individual/cit:contactInfo/cit:CI_Contact/cit:address/cit:CI_Address/cit:administrativeArea/gco:CharacterString
ISO-1 //cit:CI_Responsibility/cit:party/cit:CI_Organisation/cit:contactInfo/cit:CI_Contact/cit:address/cit:CI_Address/cit:administrativeArea/gco:CharacterString
ECHO (1) /*/echo:Contacts/echo:Contact/echo:OrganizationAddresses/echo:Address/echo:StateProvince
DIF (1) /dif9:DIF/dif9:Personnel/dif9:Contact_Address/dif9:Province_or_State
Postal_CodeZip code or other postal code for the locationISO (1) //gmd:CI_ResponsibleParty/gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:postalCode/gco:CharacterString
ISO-1 //cit:CI_Responsibility/cit:party/cit:CI_Individual/cit:contactInfo/cit:CI_Contact/cit:address/cit:CI_Address/cit:postalCode/gco:CharacterString
ISO-1 //cit:CI_Responsibility/cit:party/cit:CI_Organisation/cit:contactInfo/cit:CI_Contact/cit:address/cit:CI_Address/cit:postalCode/gco:CharacterString
ECHO (1) /*/echo:Contacts/echo:Contact/echo:OrganizationAddresses/echo:Address/echo:PostalCode
DIF (1) /dif9:DIF/dif9:Personnel/dif9:Contact_Address/dif9:Postal_Code
CountryCountry of the locationISO (1) //gmd:CI_ResponsibleParty/gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:country/gco:CharacterString
ISO-1 //cit:CI_Responsibility/cit:party/cit:CI_Individual/cit:contactInfo/cit:CI_Contact/cit:address/cit:CI_Address/cit:country/gco:CharacterString
ISO-1 //cit:CI_Responsibility/cit:party/cit:CI_Organisation/cit:contactInfo/cit:CI_Contact/cit:address/cit:CI_Address/cit:country/gco:CharacterString
ECHO (1) /*/echo:Contacts/echo:Contact/echo:OrganizationAddresses/echo:Address/echo:Country
DIF (1) /dif9:DIF/dif9:Personnel/dif9:Contact_Address/dif9:Country
Web PageOn-line information that can be used to contact the individual or organisationISO (1) //gmd:CI_ResponsibleParty/gmd:contactInfo/gmd:CI_Contact/gmd:onlineResource/gmd:CI_OnlineResource
ISO-1 /mdb:MD_Metadata/mdb:contact/cit:CI_Responsibility/cit:party/cit:CI_Organisation/cit:contactInfo/cit:CI_Contact/cit:onlineResource/cit:CI_OnlineResource
ISO-1 /mdb:MD_Metadata/mdb:contact/cit:CI_Responsibility/cit:party/cit:CI_Individual/cit:contactInfo/cit:CI_Contact/cit:onlineResource/cit:CI_OnlineResource
DIF (1) /dif9:DIF/dif9:Data_Center/dif9:Data_Center_URL

Notes

CodeLists

Codelists are shared vocabularies used throughout the ISO Standards to provide a (usually small) set of choices for the value of an element. In many cases they provide a standard set of tags that can be used for classifying an object. They can be identified in the UML because their types end with "Code", i.e. CI_RoleCode.

All codeLists share codeList and codeListValue attributes that give the location of the codeList and the value from the codeList being used in a particular case. Multiple codelists can be stored in a single codeListCatalog (see http://standards.iso.org/ittf/PubliclyAvailableStandards/ISO_19139_Schemas/resources/codelist/gmxCodelists.xml for an example), so the location usually includes a URL and an anchor for the specific codeList. The codeList values are given in the attribute and as the value of the codeList element: <ns:codeListName codeList="URL#codeListName" codeListValue="value">value</ns:codeListName>

See [CodeLists] for a list of all ISO CodeLists. 

Roles-by-Position vs. Roles-by-Code

People can play many different roles in the life-cycle of scientific datasets. There are two ways that those roles can be reflected in a metadata structure: by position and by code. Many people are familiar with the roles by position approach because that is the approach used in the FGDC CSDGM. The person referenced from the metadata section is the metadata contact, the person referenced from the distribution section is the distributor, and so on. Using this approach means that the object that holds information about people does not need any role indicator. That information is supplied by the position of the person in the structure.

The ISO Standards combine the roles-by-position approach with the roles-by-code approach. Roles can generally be inferred from the positions of CI_ResponsibleParty objects in the structure, but flexibility is increased by adding a code for role to the each object. This is helpful when citing a dataset that involves people in multiple roles (principle investigator, publisher, author, resourceProvider) or when specifying the point of contact.

The roles-by-position approach allows the roles of the people involved with a dataset to be known even when they are accessed separately. For example, a specific xPath can be used if one were interested in the metadata contact for a resource: (/gmi:MI_Metadata/gmd:contact), but a general xPath (//gmd:CI_ResponsibleParty) can be used to answer the general question "what people or organizations are associated with this dataset". In the latter case, the role code provides information about roles even though the people are being accessed independently.

Multiple CI_ResponsibleParties can be included in almost all ISO objects that can include CI_ResponsibleParties. In those cases, roleCodes can be used to associate appropriate roles with particular people if necessary. For example, the ISO CI_Citation object is used to refer to a variety of resources that are not included in a metadata record. It is modeled after a bibliographic reference and can include any number of organizations or people (CI_ResponsibleParties) in any roles. Typically a CI_Citation includes originators or authors and a publisher. 

Schema vs. Schematron

The only required element in the CI_ResponsibleParty object is the role. As in the case of the CI_OnlineResource, a CI_ResponsibleParty with only the required field(s) is not very useful. In this case, however, no reasonable solution can be achieved by requiring individualName or organisationName or positionName. The solution is to constrain the object by requiring that the count of individualName + organizationName + positionName be greater than or equal to one. In other words, at a minimum one of these three elements must exist.

There are two techniques that can be used to test the "validity" of ISO metadata in XML. The first is to use the XML schema which defines the structure and types of the elements and the number of times they can occur. The schema rules are expressed as the cardinality in the UML descriptions used in this wiki. The CI_ResponsibleParty constraint described above cannot be specified in an XML schema document and so cannot be tested using simple schema validation. Instead, a tool called Schematron can be used to test constraints or business rules that are included in the UML. Many times these rules involve multiple elements, as in the CI_ResponsibleParty case. In some cases an organization can specify several sets of schematron rules to test conformance at different levels.