ISO People

From NOAA Environmental Data Management Wiki

The ISO standard offers a new and very powerful approach for attaching organizations and people to metadata records. The CI_ResponsibleParty object describes people and organizations that are related to a resource and their roles. It is used throughout the ISO Standards to describe and provide contact information for people and organizations.

Structure

CI_ResponsibleParty Object
The simple UML for the object is shown here. It includes one required element and four optional elements each of which can occur once.
CI_ResponsibleParty Object
The CI_Contact includes information about physical and electronic addresses as well as a CI_OnlineResource as part of the contact information.


ISO Citations can include any number of organizations or people (citedResponsibleParties), each with one of the following roles: resourceProvider, custodian, owner, user, distributor, originator, pointOfContact, principalInvestigator, processor, publisher, or author (see Figure). For example, the principle citation for a metadata record, in the MD_Identification section, can include an author, a publisher, and any number of principal investigators. This is very different than the FGDC approach, where the idinfo section has a citation that can include, but not differentiate roles for, many originators and a single point of contact with no clear role definition.

The capability to have contacts with different roles in citations is very important at NGDC. We are trying to improve our utilization of the lineage sections of our metadata records. Those sections include sources which, in the FGDC, are citations. This works well if the sources are scientific papers, but in many cases, we receive unpublished data from a real person who has a phone number and an e-mail. There is no straightforward way to include that information in the FGDC standard. The ISO citation provides an easy way to do it.

XML

This example describes a metadata point of contact at NGDC.

<gmd:CI_ResponsibleParty>
  <gmd:individualName>
     <gco:CharacterString>Anna Milan</gco:CharacterString>
  </gmd:individualName>
  <gmd:organisationName>
     <gco:CharacterString>DOC/NOAA/NESDIS/NGDC > National Geophysical Data Center, NESDIS, NOAA, U.S. Department of Commerce</gco:CharacterString>
  </gmd:organisationName>
  <gmd:positionName>
    <gco:CharacterString>Metadata Manager</gco:CharacterString>
  </gmd:positionName>
  <gmd:contactInfo>
    <gmd:CI_Contact>
      <gmd:phone>
        <gmd:CI_Telephone>
          <gmd:voice>
             <gco:CharacterString>(303) 497-5099</gco:CharacterString>
          </gmd:voice>
        </gmd:CI_Telephone>
      </gmd:phone>
      <gmd:address>
        <gmd:CI_Address>
          <gmd:deliveryPoint><gco:CharacterString>325 Broadway, Mail Code E/GC4  </gco:CharacterString></gmd:deliveryPoint>
          <gmd:city><gco:CharacterString>Boulder</gco:CharacterString></gmd:city>
          <gmd:administrativeArea><gco:CharacterString>CO</gco:CharacterString></gmd:administrativeArea>
          <gmd:postalCode><gco:CharacterString>80305-3328</gco:CharacterString></gmd:postalCode>
          <gmd:country><gco:CharacterString>USA</gco:CharacterString></gmd:country>
          <gmd:electronicMailAddress><gco:CharacterString>Anna.Milan@noaa.gov</gco:CharacterString></gmd:electronicMailAddress>
        </gmd:CI_Address>
      </gmd:address>
      <gmd:hoursOfService><gco:CharacterString>9:00 - 5:00 Mountain</gco:CharacterString></gmd:hoursOfService>
    </gmd:CI_Contact>
  </gmd:contactInfo>
  <gmd:role>
    <gmd:CI_RoleCode codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_RoleCode" codeListValue="custodian">custodian</gmd:CI_RoleCode>
  </gmd:role>
</gmd:CI_ResponsibleParty>

Usage

Where Are CI_ResponsibleParties?

People Locations
People can be connected to ISO metadata records in eight places, and in each CI_Citation. Those locations are shown in this Figure. In some cases the roles of the people are determined by where they are in the standard. In other cases, they are determined by the role code. See the Roles-by-Position vs. Roles-by-Code discussion below for more information.
Usage Description and Xpath

Citation

WhereAreCI ResponsibleParties.CI Citation.png

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 (responsibleParties) in any roles. Typically a CI_Citation includes originators or authors and a publisher.

//gmd:CI_Citation/gmd:citedResponsibleParty

Metadata Contact

WhereAreCI ResponsibleParties.MD Metadata.png

The 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 Contact

WhereAreCI ResponsibleParties.MD Identification.png
The 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 Contact

WhereAreCI ResponsibleParties.MD Usage.png

The 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

Processor

WhereAreCI ResponsibleParties.LE ProcessStep.png

The 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 Contact

WhereAreCI ResponsibleParties.MD MaintenanceInfo.png

The 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

Distributor

WhereAreCI ResponsibleParties.MD Distributor.png

The 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 Contact

WhereAreCI ResponsibleParties.MD ExtendedElementInfo.png

The 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

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.