I want to enable users to easily discovery my data set or service by adding keywords to my metadata.

Overview

Keywords are words or phrases that describe the metadata resource.  They facilitate search, indexing and discovery of metadata, and are the largest single component of many metadata collections, regardless of the dialect.

Recommendations for ISO 19115 and 19115-1


Keywords:  Including keywords in the metadata is important because they are critical for effective metadata search and discovery.

ISO 19115//gmd:MD_Keywords
ISO 19115-1//mri:MD_Keywords

Keyword Types:  Including keyword types in the metadata is important because they facilitate consistent search and discovery of metadata, in particular faceted searching.

ISO 19115//gmd:MD_Keywords/gmd:type[gmd:keywordTypeCode='theme']
ISO 19115-1

//mri:MD_Keywords/gmd:type[gmd:keywordTypeCode='dataCentre']

Keyword Thesaurus: Including keyword thesaurus in the metadata is important because it informs the user of the authoritative keyword source.

ISO 19115//gmd:MD_Keywords/gmd:thesaurusName
ISO 19115-1//mri:MD_Keywords/mri:thesaurusName

Note:  ISO 19115-1 extends the KeywordType codelist to include keyword types supported by the NASA Global Change Master Directory (GCMD). The 10 additional GCMD keyword types are used in many existing metadata collections. In the figure to the right, the new keyword type values are highlighted in red.

Conceptual Model (UML)


The UML for the MD_Keywords object includes keyword, type, and thesaurusName fields.  A minimum of one keyword field is mandatory.  The type field groups keywords into like categories using KeywordTypeCodes, and the thesaurusName field provides a citation to the authoritative source of keywords. Using common types to classify keywords is critical for consistent discovery, particularly using faceted searches.

The MD_KeywordClass object is new with ISO 19115-1.  This object was added in order to allow unambiguous specification of keywords from ontologies. The MD_KeywordClass enables users to define categories of keywords that extend or are orthogonal to the standardized KeywordTypeCodes, and are associated with an ontology that allows additional semantic query processing.

Implementation (XML)

<gmd:descriptiveKeywords>
    <gmd:MD_Keywords>
        <gmd:keyword>
            <gco:CharacterString>EARTH SCIENCE > Oceans > Ocean Optics > Optical Depth</gco:CharacterString>
        </gmd:keyword>
        <gmd:type>
            <gmd:MD_KeywordTypeCode
            codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#MD_KeywordTypeCode"
            codeListValue="service">service</gmd:MD_KeywordTypeCode>
        </gmd:type>
        <gmd:thesaurusName>
            <gmd:CI_Citation>
                <gmd:title>
                    <gco:CharacterString>NASA/GCMD Earth Science Keywords</gco:CharacterString>
                </gmd:title>
                <gmd:date>
                    <gmd:CI_Date>
                        <gmd:date>
                            <gco:Date>2009-01-01</gco:Date>
                        </gmd:date>
                        <gmd:dateType>
                            <gmd:CI_DateTypeCode
                                codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_DateTypeCode"
                                codeListValue="revision"/>
                        </gmd:dateType>
                    </gmd:CI_Date>
                </gmd:date>
            </gmd:CI_Citation>
        </gmd:thesaurusName>
    </gmd:MD_Keywords>
</gmd:descriptiveKeywords>

Implementation (NcML)

<nc:group name="gmd:descriptiveKeywords">
      <nc:attribute name="role" value="gmd:descriptiveKeywords"/>
      <nc:attribute name="type" value="gmd:MD_Keywords"/>
      <nc:group name="gmd:type">
         <nc:attribute name="role" value="gmd:type"/>
         <nc:attribute name="type" value="gmd:MD_KeywordTypeCode"/>
         <nc:attribute name="codeList"
                       value="http://www.ngdc.noaa.gov/metadata/published/xsd/schema/resources/Codelist/gmxCodelists.xml#MD_KeywordTypeCode"/>
         <nc:attribute name="codeListValue" value="theme"/>
         <nc:attribute name="value" value="theme"/>
      </nc:group>
      <nc:group name="gmd:thesaurusName">
         <nc:attribute name="role" value="gmd:thesaurusName"/>
         <nc:attribute name="type" value="gmd:CI_Citation"/>
         <nc:group name="gmd:date">
            <nc:attribute name="gco:nilReason" value="unknown"/>
         </nc:group>
         <nc:group name="gmd:citedResponsibleParty">
            <nc:attribute name="role" value="gmd:citedResponsibleParty"/>
            <nc:attribute name="type" value="gmd:CI_ResponsibleParty"/>
            <nc:group name="gmd:contactInfo">
               <nc:attribute name="role" value="gmd:contactInfo"/>
               <nc:attribute name="type" value="gmd:CI_Contact"/>
               <nc:group name="gmd:address">
                  <nc:attribute name="role" value="gmd:address"/>
                  <nc:attribute name="type" value="gmd:CI_Address"/>
               </nc:group>
               <nc:group name="gmd:onlineResource">
                  <nc:attribute name="role" value="gmd:onlineResource"/>
                  <nc:attribute name="type" value="gmd:CI_OnlineResource"/>
                  <nc:group name="gmd:function">
                     <nc:attribute name="role" value="gmd:function"/>
                     <nc:attribute name="type" value="gmd:CI_OnLineFunctionCode"/>
                     <nc:attribute name="codeList"
                                   value="http://www.ngdc.noaa.gov/metadata/published/xsd/schema/resources/Codelist/gmxCodelists.xml#CI_OnLineFunctionCode"/>
                     <nc:attribute name="codeListValue" value="information"/>
                     <nc:attribute name="value" value="information"/>
                  </nc:group>
               </nc:group>
            </nc:group>
            <nc:group name="gmd:role">
               <nc:attribute name="role" value="gmd:role"/>
               <nc:attribute name="type" value="gmd:CI_RoleCode"/>
               <nc:attribute name="codeList"
                             value="http://www.ngdc.noaa.gov/metadata/published/xsd/schema/resources/Codelist/gmxCodelists.xml#CI_RoleCode"/>
               <nc:attribute name="codeListValue" value="custodian"/>
               <nc:attribute name="value" value="custodian"/>
            </nc:group>
         </nc:group>
         <nc:group name="gmd:citedResponsibleParty_d1e49">
            <nc:attribute name="role" value="gmd:citedResponsibleParty"/>
            <nc:attribute name="type" value="gmd:CI_ResponsibleParty"/>
            <nc:group name="gmd:organisationName">
               <nc:attribute name="gco:nilReason" value="inapplicable"/>
            </nc:group>
            <nc:group name="gmd:contactInfo">
               <nc:attribute name="role" value="gmd:contactInfo"/>
               <nc:attribute name="type" value="gmd:CI_Contact"/>
               <nc:group name="gmd:onlineResource">
                  <nc:attribute name="role" value="gmd:onlineResource"/>
                  <nc:attribute name="type" value="gmd:CI_OnlineResource"/>
                  <nc:group name="gmd:function">
                     <nc:attribute name="role" value="gmd:function"/>
                     <nc:attribute name="type" value="gmd:CI_OnLineFunctionCode"/>
                     <nc:attribute name="codeList"
                                   value="http://www.ngdc.noaa.gov/metadata/published/xsd/schema/resources/Codelist/gmxCodelists.xml#CI_OnLineFunctionCode"/>
                     <nc:attribute name="codeListValue" value="information"/>
                     <nc:attribute name="value" value="information"/>
                  </nc:group>
               </nc:group>
            </nc:group>
            <nc:group name="gmd:role">
               <nc:attribute name="role" value="gmd:role"/>
               <nc:attribute name="type" value="gmd:CI_RoleCode"/>
               <nc:attribute name="codeList"
                             value="http://www.ngdc.noaa.gov/metadata/published/xsd/schema/resources/Codelist/gmxCodelists.xml#CI_RoleCode"/>
               <nc:attribute name="codeListValue" value="custodian"/>
               <nc:attribute name="value" value="custodian"/>
            </nc:group>
         </nc:group>
      </nc:group>
   </nc:group>

 


 

Usage

Where are MD_Keyword objects?

UsageDescription and Xpath

The ISO MD_Keywords object includes fields for documenting keywords, keyword types and the keyword thesaurusName. The keyword thesaurusName is documented in a CI_Citation object.

/*/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:keyword

/*/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:type/gmd:MD_KeywordTypeCode

/*/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:thesaurusName

 

Keyword Content in CMR Metadata

Crosswalks


The table below reflects the Mends keyword vote item. The mapping of the ECHO keywords to their ISO equivalents are detailed in the Table below. In the case of some of the ECHO attributes, they also map to other ISO fields but this is not part of the vote e.g. Platform/LongName is also described under the EOS extension to acquisition information.


ECHO Source
ISO Xpath (with Keyword Type Code)
/*/ScienceKeywords/ScienceKeyword/CategoryKeyword/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords[gmd:type/gmd:MD_KeywordTypeCode='theme']/gmd:keyword/gco:CharacterString
/*/ScienceKeywords/ScienceKeyword/TopicKeyword/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords[gmd:type/gmd:MD_KeywordTypeCode='theme']/gmd:keyword/gco:CharacterString
/*/ScienceKeywords/ScienceKeyword/TermKeyword/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords[gmd:type/gmd:MD_KeywordTypeCode='theme']/gmd:keyword/gco:CharacterString
/*/ScienceKeywords/ScienceKeyword/VariableLevelKeyword/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords[gmd:type/gmd:MD_KeywordTypeCode='theme']/gmd:keyword/gco:CharacterString
/*/ScienceKeywords/ScienceKeyword/DetailedVariableKeyword/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords[gmd:type/gmd:MD_KeywordTypeCode='theme']/gmd:keyword/gco:CharacterString
/*/SpatialKeywords/Keyword/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords[gmd:type/gmd:MD_KeywordTypeCode='place']/gmd:keyword/gco:CharacterString
/*/TemporalKeywords/Keyword/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords[gmd:type/gmd:MD_KeywordTypeCode='temporal']/gmd:keyword/gco:CharacterString
/*/ArchiveCenter/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords[gmd:type/gmd:MD_KeywordTypeCode='dataCenter']/gmd:keyword/gco:CharacterString
/*/Campaigns/Campaign/ShortName > /*/Campaigns/Campaign/LongName/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords[gmd:type/gmd:MD_KeywordTypeCode='project']/gmd:keyword/gco:CharacterString
/*/Platforms/Platform/ShortName > /*/Platforms/Platform/LongName/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:keyword/gco:CharacterString
/*/Platforms/Platform/Instruments/Instrument/ShortName >/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords[gmd:type/gmd:MD_KeywordTypeCode='instrument']/gmd:keyword/gco:CharacterString
/*/Platforms/Platform/Instruments/Instrument/LongName/gmi:MI_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:keyword/gco:CharacterString

xPath Note: The xPaths included in this table use several wildcards. // means any path, so //gmd:CI_ResponsibleParty indicates a gmd:CI_ResponsibleParty anywhere in an XML file. /*/ indicates a single level with several possible elements. This usually indicates one of several concrete realizations of an abstract object. For example /*/gmd:identificationInfo could be gmd:MD_Metadata/gmd:identificationInfo or gmi:MI_Metadata/gmd:identificationInfo and gmd:identificationInfo//*/gmd:descriptiveKeywords could be gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords or gmd:identificationInfo/srv:SV_ServiceIdentification/gmd:descriptiveKeywords.


UserEditsCommentsLabels
John Kozimor 3600
Ted Habermann 500
Ross Bagwell 100
Minnie Wong 003