ISO Components

From NOAA Environmental Data Management Wiki


A complete documentation collection includes a variety of information about people, websites, documents, archives, processing systems, and many other things. In many cases these items are included in multiple collections. For example, a single person may be the metadata contact for many collections, a single archive may be a distributor for many datasets, a single platform may be used for many datasets, etc. These repeatable items are termed components (they have also been called fragments) and collections that include them are called composites. This concept has been implemented in several self-contained metadata management systems. This page explores how it might be implemented in a services oriented architecture.

Composites/Components in the Repository

Composite/Component Repository
This Figure illustrates one approach to implementing composites and components in a documentation repository. In this case the components (colored boxes) are generated from a variety of relational databases. These might be databases of people, or LDAP servers, citation databases, accession tracking databases, or whatever. The components are provided as xml by the database in response to a query that specifies the ID for a particular component.

The Record Repository holds the structure of the metadata records and information about where specific components (identified by unique identifiers) fit into that structure. The components are referenced from these structures rather than being included. These are referred to as unresolved composites. They would generally not be shared with the public.

The Record Cache holds complete records that include all resolved components. These are available to users in a Web Accessible Folder for translation into different views or for harvest into data discovery portals. The unresolved records are generally not available to users, although there could be situations in which they request access to those records.

Component Search

Identifying Components in the Repository

Components must be identified using unique identifiers implemented as id or UUID attributes. The id attributes have some significant restrictions and are not globally unique, so in our examples we use UUIDs. This example shows a CI_OnlineResource component that describes the home page for the Defense Meteorological Satellite Program (DMSP) Archive at the National Geophysical Data Center (NGDC). The component includes a default function=information for this URL (see discussion below to reference this URL with a different function). Note that this component contains all of the required and optional fields for this CI_OnlineResource:

<gmd:CI_OnlineResource uuid="842068ED7ACB3919E040AC8C5AB45DED">
    <gmd:linkage>
        <gmd:URL>http://www.ngdc.noaa.gov/dmsp/index.html</gmd:URL>
    </gmd:linkage>
    <gmd:protocol>
        <gco:CharacterString xmlns:gco="http://www.isotc211.org/2005/gco">HTML</gco:CharacterString>
    </gmd:protocol>
    <gmd:applicationProfile>
        <gco:CharacterString xmlns:gco="http://www.isotc211.org/2005/gco"/>
    </gmd:applicationProfile>
    <gmd:name>
        <gco:CharacterString xmlns:gco="http://www.isotc211.org/2005/gco"/>
    </gmd:name>
    <gmd:description>
        <gco:CharacterString xmlns:gco="http://www.isotc211.org/2005/gco">DMSP Satellites Homepage</gco:CharacterString>
    </gmd:description>
    <gmd:function>
        <gmd:CI_OnLineFunctionCode
           codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_OnLineFunctionCode"
           codeListValue="information">information</gmd:CI_OnLineFunctionCode>
    </gmd:function>
</gmd:CI_OnlineResource>

Searching the Component Repository

Docucomp

Default Values, Codes, and Optional Values

The composite/component idea works very well in cases where the components are completely self-contained and can be included "as is" in the composite records. This condition is met in many cases in the ISO Standard, but there are some exceptions that need to be understood in order to apply the concept correctly. These exceptions are generally related to optional elements and codes in the components. For example, consider the CI_OnlineResource object. It includes six elements, one of which (linkage) is required, and one of which (function) has five possible values:

+ linkage : URL
+ protocol [0..1] : CharacterString
+ applicationProfile [0..1] : CharacterString
+ name [0..1] : CharacterString
+ description [0..1] : CharacterString
+ function [0..1] : CI_OnLineFunctionCode (download, information, offlineAccess, order, or search)

It is clear that CI_OnlineResource is a good candidate for a component as the same web page will almost certainly be referenced from multiple metadata records. This works well as long as the optional values and the function code are the same in all of these situations (i.e. function = information in the example above). In those cases, the compact reference to the component shown below works well. If the default values in the component are not appropriate, other optional values and different code values can be specified in the reference to the component.

A compact reference with just a URL works well for situations in which all of the defaults are appropriate, but it does not work in the case where non-default values are required. For example, if the metadata required referencing this URL with a CI_OnlineFunctionCode of download, rather than the default value of information, the component would be represented in the composite as:

<gmd:distributorTransferOptions>
    <gmd:MD_DigitalTransferOptions>
        <gmd:onLine>
            <gmd:onlineResource xlink:href="http://www.ngdc.noaa.gov/docucomp/842068ED7ACB3919E040AC8C5AB45DED">
                <gmd:CI_OnlineResource>
                    <gmd:linkage gco:nilReason="template"/>
                    <gmd:function>
                        <gmd:CI_OnLineFunctionCode
                        codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_OnLineFunctionCode"
                        codeListValue="download">download</gmd:CI_OnLineFunctionCode>
                    </gmd:function>
                </gmd:CI_OnlineResource>
            </gmd:onlineResource>
        </gmd:onLine>
    </gmd:MD_DigitalTransferOptions>
</gmd:distributorTransferOptions>

Note that it is not generally correct to include content in an XML element that is defined using an xlink. In this case, this unresolved XML is internal to the Documentation Repository, it is not published. The xlink and the additional information are interpreted by a custom resolver application that converts the unresolved composite to a resolved composite that is published.

The gmd:linkage element in this example is a required element that is provided by the component. It is represented in the composite with a nilReason = template so that the unresolved composite will validate using the ISO 19139 schema.

The CI_ResponsibleParty case is similar to the CI_OnlineResource except that the CI_RoleCode is required. In those cases the CI_RoleCode must be specified as a default or in the reference in order for the record to validate.

Referencing Components From Composites

Components are referenced from composite records using the the xlink standard. This involves specifying the location of the component rather than the content of the component in the composite XML. The most compact form for an xlink reference is:

<gmd:distributorTransferOptions>
    <gmd:MD_DigitalTransferOptions>
        <gmd:onLine>
            <gmd:onlineResource xlink:href="http://www.ngdc.noaa.gov/docucomp/842068ED7ACB3919E040AC8C5AB45DED"/>
        </gmd:onLine>
    </gmd:MD_DigitalTransferOptions>
</gmd:distributorTransferOptions>

and the content of the component is retrieved from http://www.ngdc.noaa.gov/docucomp/842068ED7ACB3919E040AC8C5AB45DED

Web Service for resolving components

Creating an Unresolved Record

Unresolved records are created from composite records. This process is called unresolving. Below are the steps for manually unresolving a composite metadata record.

1. Identify Components: Any snippets of XML that are repeated in more then one record are good candidates to become components.
2. Acquire UUID: Components are identified and retrieved by UUID. UUID's are generally 32 character identifiers that are guaranteed to be globally unique. It's recommended that you have access to list of UUID's for use in constructing xlink references. There are multiple web sites that will generate UUID for free such as ITU.
3. Create xlink reference: An xlink href reference to a component takes the following form in Docucomp.
xlink:href="http://www.ngdc.noaa.gov/docucomp/842068ED7ACB3919E040AC8C5AB45DED"
To create an xlink reference append a new UUID to the the docucomp web service URN.
xlink:href="http://www.ngdc.noaa.gov/docucomp/ add UUID"
4. Insert xlink href reference: The xlink reference is inserted into the parent element of the component.
<gmd:onlineResource xlink:href="http://www.ngdc.noaa.gov/docucomp/842068ED7ACB3919E040AC8C5AB45DED"/>
In this example the xlink is referencing a gmd:CI_OnlineResource component which is the child element contained within gmd:onlineResource.
5. Insert an xlink title attribute: The xlink title attribute provides a human understandable name to the component.
xlink:href="http://www.ngdc.noaa.gov/docucomp/842068ED7ACB3919E040AC8C5AB45DED" xlink:title="DMSP Satellites Homepage"
6. Remove the Components: This step is now as simple as cut and paste. Cut each component out of the unresolved record and paste a copy into a new xml document. The components are the chunks of child xml referenced by the xlink hrefs. When complete there should be no more child chunks of xml descending from elements where xlink component references are present.
7. Verify XML is well formed: With all the cutting pasting it's easy to make simple xml structure errors. Make sure your unresolved record is well formed prior to resolving. Your unresolved record will not resolve unless it's well formed.

Validation

Being able to validate unresolved composites as they are being created is critical. This can be difficult in the common case in which the component is providing required material. Consider the CI_OnlineResource case shown above. The compact case validates because the CI_OnlineResource object is not included in the composite XML. In the second case, with the non-default function code, the linkage element is required for validation. The nilReason attribute is included in this case so that the XML will validate.

Templates

We are developing a set of component templates that can be used as starting material:

Examples

CI_OnlineResource

This example shows a complete CI_OnlineResource component with a default function = information. The unique identifier is given as a uuid attribute in the root element for the component:

<?xml version="1.0" encoding="UTF-8"?>
<gmd:CI_OnlineResource xmlns:gmd="http://www.isotc211.org/2005/gmd" xmlns:gco="http://www.isotc211.org/2005/gco" uuid="842068ED7ACB3919E040AC8C5AB45DED">
    <gmd:linkage>
        <gmd:URL>http://www.ngdc.noaa.gov/dmsp/index.html</gmd:URL>
    </gmd:linkage>
    <gmd:protocol>
        <gco:CharacterString>HTML</gco:CharacterString>
    </gmd:protocol>
    <gmd:applicationProfile/>
    <gmd:name/>
    <gmd:description>
        <gco:CharacterString>DMSP Satellites Homepage</gco:CharacterString>
    </gmd:description>
    <gmd:function>
        <gmd:CI_OnLineFunctionCode codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_OnLineFunctionCode" codeListValue="information">information</gmd:CI_OnLineFunctionCode>
    </gmd:function>
</gmd:CI_OnlineResource>

The compact reference to this component is:

<gmd:onLine xlink:href="http://www.ngdc.noaa.gov/docucomp/842068ED7ACB3919E040AC8C5AB45DED" xlink:title="DMSP Home Page"/>

A reference with a different CI_OnLineFunctionCode looks like:

<gmd:onLine>
    <gmd:onlineResource xlink:href="http://www.ngdc.noaa.gov/docucomp/842068ED7ACB3919E040AC8C5AB45DED">
        <gmd:CI_OnlineResource>
            <gmd:linkage gco:nilReason="template"/>
            <gmd:function>
                <gmd:CI_OnLineFunctionCode
                    codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_OnLineFunctionCode"
                    codeListValue="download">download</gmd:CI_OnLineFunctionCode>
            </gmd:function>
        </gmd:CI_OnlineResource>
    </gmd:onlineResource>
</gmd:onLine>

CI_ResponsibleParty

This example shows a complete CI_ResponsibleParty component with a default role = custodian. The unique identifier is given as a uuid attribute in the root element for the component:

<gmd:CI_ResponsibleParty uuid="8294BEE08AD7359FE040AC8C5AB460D1">
    <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:contactInfo>
        <gmd:CI_Contact>
            <gmd:phone>
                <gmd:CI_Telephone>
                    <gmd:voice>
                        <gco:CharacterString>(303) 497-5099</gco:CharacterString>
                    </gmd:voice>
                    <gmd:facsimile>
                        <gco:CharacterString>(303) 497-6513</gco:CharacterString>
                    </gmd:facsimile>
                </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>

The compact reference for this component is:

<gmd:contact xlink:href="http://www.ngdc.noaa.gov/docucomp/8294BEE08AD7359FE040AC8C5AB460D1" xlink:title="Anna Milan"/>

A reference with a different role is:

<gmd:contact xlink:href="http://www.ngdc.noaa.gov/docucomp/8294BEE08AD7359FE040AC8C5AB460D1">
    <gmd:CI_ResponsibleParty>
        <gmd:individualName gco:nilReason="template"/>
        <gmd:role>
            <gmd:CI_RoleCode
            codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_RoleCode"
            codeListValue="pointOfContact">pointOfContact</gmd:CI_RoleCode>
        </gmd:role>
    </gmd:CI_ResponsibleParty>		
</gmd:contact>

MD_MetadataExtensionInformation

<gmd:MD_MetadataExtensionInformation>
      <gmd:extensionOnLineResource
        xlink:href="http://www.ngdc.noaa.gov/docucomp/component/00362270-9ce0-11e0-aa82-0800200c9a66"
        xlink:title="Metadata Extension Information"/>
</gmd:MD_MetadataExtensionInformation>

CI_Citations / Keywords

The keyword lists maintained by NASA's Global Change Master Directory are referenced from many metadata records and, as such, are one of the most common uses of components. An ISO keyword section with a single keyword and a minimal citation to the GCMD keywords looks like:

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

A more complete citation would include contact information (address, phone numbers, and e-mail address) and a URL for accessing or downloading the current keyword list. This would be considerably longer and would best be maintained in one place and referenced from many. This is exactly what components do. This keyword section with a CI_Citation component looks like:

<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="theme">theme</gmd:MD_KeywordTypeCode>
        </gmd:type>
        <gmd:thesaurusName xlink:href="http://wwwdev.ngdc.noaa.gov/docucomp/227737d0-428b-11df-9879-0800200c9a66"/>
    </gmd:MD_Keywords>                
</gmd:descriptiveKeywords>

The citation for the GCMD is given as an xlink to a web service that serves a component referenced by a UUID. The metadata manager using that citation does not need to worry about the details because the component that is linked to contains the up-to-date citation. Note that the xlink is resolved as the record is published, so users see the entire citation instead of the xlinks.

References to other GCMD keyword sets are:

Programs

Many datsets are part of programs that includes multiple networks or Network that includes multiple platforms. The aggregationInfo object is used to include these relationships in the metadata. A good example is the IOOS Program that includes many observations made and models run by partners in several regional associations. The metadata for these observations and models all include an gmd:MD_AggregateInformation object that describes the IOOS Program:

<gmd:MD_AggregateInformation uuid="c2e16968-5e3e-11df-a08a-0800200c9a66" xmlns:gco="http://www.isotc211.org/2005/gco" xmlns:gmd="http://www.isotc211.org/2005/gmd">
  <gmd:aggregateDataSetName>
    <gmd:CI_Citation>
      <gmd:title>
        <gco:CharacterString>The U.S. Integrated Ocean Observing System</gco:CharacterString>
      </gmd:title>
      <gmd:date gco:nilReason="inapplicable"/>
      <gmd:citedResponsibleParty>
        <gmd:CI_ResponsibleParty>
          <gmd:organisationName>
            <gco:CharacterString>U.S. Integrated Ocean Observing System</gco:CharacterString>
          </gmd:organisationName>
          <gmd:contactInfo>
            <gmd:CI_Contact>
              <gmd:onlineResource>
                <gmd:CI_OnlineResource>
                  <gmd:linkage>
                    <gmd:URL>http://ioos.gov/</gmd:URL>
                  </gmd:linkage>
                  <gmd:name>
                    <gco:CharacterString>U.S. Integrated Ocean Observing System Home Page</gco:CharacterString>
                  </gmd:name>
                  <gmd:description>
                    <gco:CharacterString>The Integrated Ocean Observing System (IOOS®) is a federal, regional, and private-sector partnership working to enhance our ability to collect, deliver, and use ocean information.
                      IOOS delivers the data and information needed to increase understanding of our oceans and coasts, so decision makers can take action to improve safety, enhance the economy, and protect the
                      environment. </gco:CharacterString>
                  </gmd:description>
                  <gmd:function>
                    <gmd:CI_OnLineFunctionCode codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_OnLineFunctionCode" codeListValue="information">information</gmd:CI_OnLineFunctionCode>
                  </gmd:function>
                </gmd:CI_OnlineResource>
              </gmd:onlineResource>
            </gmd:CI_Contact>
          </gmd:contactInfo>
          <gmd:role>
            <gmd:CI_RoleCode codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_RoleCode" codeListValue="pointOfContact">pointOfContact</gmd:CI_RoleCode>
          </gmd:role>
        </gmd:CI_ResponsibleParty>
      </gmd:citedResponsibleParty>
    </gmd:CI_Citation>
  </gmd:aggregateDataSetName>
  <gmd:associationType>
    <gmd:DS_AssociationTypeCode codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#DS_AssociationTypeCode" codeListValue="largerWorkCitation">largerWorkCitation</gmd:DS_AssociationTypeCode>
  </gmd:associationType>
  <gmd:initiativeType>
    <gmd:DS_InitiativeTypeCode codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#DS_InitiativeTypeCode" codeListValue="program">program</gmd:DS_InitiativeTypeCode>
  </gmd:initiativeType>
</gmd:MD_AggregateInformation>

The compact reference to this object is:

<gmd:aggregationInfo xlink:href="http://www.ngdc.noaa.gov/docucomp/c2e16968-5e3e-11df-a08a-0800200c9a66" xlink:title="U.S. IOOS Program"/>

MD_ReferenceSystem

The EPSG 4326 Reference System is generic lat/lon and is used in many environmental datasets. The reference is:

<gmd:referenceSystemInfo xlink:href="http://www.ngdc.noaa.gov/docucomp/bb3bd940-5d51-11df-bb8e-0002a5d5c51b" xlink:title="urn:ogc:def:crs:EPSG:4326"/>

MI_Operation

This example shows a complete MI_Operation component. The unique identifier is given as a uuid attribute in the root element for the component:
<gmi:operation>
    <gmi:MI_Operation uuid="62651220-3770-11df-9879-0800200c9a66">
        <gmi:description>
            <gco:CharacterString>EPS is Europe's first polar orbiting operational
                meteorological satellite system, and it is the European contribution to
                the Initial Joint Polar-Orbiting Operational Satellite System (IJPS).
                This is an agreement between EUMETSAT and NOAA. In this joint
                European-US polar satellite system, EUMETSAT has the operational
                responsibility for the "morning orbit" with the MetOp satellites.
                EUMETSAT is responsible for the definition of the overall EPS system,
                the development and operations of the ground segment, and for the
                operation of the whole system.</gco:CharacterString>
        </gmi:description>
        <gmi:identifier>
            <gmd:MD_Identifier>
                <gmd:code>
                    <gco:CharacterString>EPS > EUMETSAT Polar System</gco:CharacterString>
                </gmd:code>
            </gmd:MD_Identifier>
        </gmi:identifier>
        <gmi:status>
            <gmd:MD_ProgressCode
                codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#MD_ProgressCode"
                codeListValue="onGoing">onGoing</gmd:MD_ProgressCode>
        </gmi:status>
        <gmi:type>
            <gmi:MI_OperationTypeCode
                codeList="http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#MI_OperationTypeCode"
                codeListValue="real">real</gmi:MI_OperationTypeCode>
        </gmi:type>
        <gmi:parentOperation gco:nilReason="inapplicable"/>
    </gmi:MI_Operation>
</gmi:operation>

The compact reference to this component is:

<gmi:operation xlink:href="http://www.ngdc.noaa.gov/docucomp/62651220-3770-11df-9879-0800200c9a66">

MI_Platform and MI_Instrument

Platforms and instruments are commonly used for multiple products, so they are good candidates for components. The component approach is particularly helpful in this case because metadata contacts at archives (where metadata is often created) typically are not experts in the instruments being used for measurements. The platform and instrument components can be created by experts and referenced from the metadata.


Platforms and Instruments
The ISO 19115-2 Standard is used to describe platforms and instruments used to make observations. These objects are related to one another using the MI_Platform/instrument and MI_Instrument/mountedOn roles (see UML diagram in this Figure). These relationships are illustrated schematically for a data set with two instruments and two platforms in the lower left corner of this Figure. Instrument_1 (I1) is mounted on Platform_2 (P2) and Instrument_2 (I2) is mounted on Platform_1 (P1). The XML describing these relationships is shown on the right side of the Figure. In this case UUIDs and xlink:hrefs are used to identify and reference the instruments and platforms.

'Note that references to platforms to instruments to platforms to instruments to ... can lead to an infinite loop of references and components. This loop can be avoided without losing information by using only the MI_Platform/instrument reference to connect platforms and instruments. For this reason the MI_Instrument/mountedOn links are shown as dashed lines in this Figure and omitted from the XML example.'

The XML implementing these relationships using UUIDs is shown below. The MI_Instrument and MI_Component objects are defined by references to the appropriate components (indicated by XML comments). The references are implemented using the uuidref attribute as a reference to an item that exists elsewhere in the document.

Defense Meteorological Satellite Program Platforms and Instruments

The Defense Meteorological Satellite Program (DMSP) has included many platforms and instruments throughout its life. This Table shows the platforms and some of instruments that have been used and the relationships between them. It shows, for example, that SSM/I instruments were mounted on six platforms (F10 - F15) and that the SSM/IS instrument was only mounted on two platforms (F16 and F17).

Instrument F10 F11 F12 F13 F14 F15 F16 F17
SSM/I X X X X X X
SSM/T X X X X X X
SSM/T2 X X X X X
SSM/IS X X

To capture the relationships between these platforms and instruments we will need four instrument components and eight platform components (Click the links to see the components): Instrument Names and Identifiers:

Platform Names and Identifiers:

The XML that shows how the relationships between the platforms and instruments are reflected in the metadata. The platforms F10-F12 are shown as component references. The others are expanded to show the links to the instrument components. The identifier and description elements are included with gco:nilReason attributes as a reminder that they are required. In a real case, these would have appropriate content.

<gmi:acquisitionInformation>
  <gmi:MI_AcquisitionInformation>
    <gmi:instrument xlink:href="http://www.ngdc.noaa.gov/docucomp/8293FAD4B87075F2E040AC8C5AB4576F" xlink:title="SSM/I"/>
    <gmi:instrument xlink:href="http://www.ngdc.noaa.gov/docucomp/8293FAD4B8A075F2E040AC8C5AB4576F" xlink:title="SSM/IS"/>
    <gmi:instrument xlink:href="http://www.ngdc.noaa.gov/docucomp/8293FAD4B87375F2E040AC8C5AB4576F" xlink:title="SSM/T"/>
    <gmi:instrument xlink:href="http://www.ngdc.noaa.gov/docucomp/8293FAD4B87675F2E040AC8C5AB4576F" xlink:title="SSM/T2"/>
 
    <gmi:platform xlink:href="http://www.ngdc.noaa.gov/docucomp/8293A069645E322CE040AC8C5AB453FE" xlink:title="F10"/>
    <gmi:platform xlink:href="http://www.ngdc.noaa.gov/docucomp/8293A0696461322CE040AC8C5AB453FE" xlink:title="F11"/>
    <gmi:platform xlink:href="http://www.ngdc.noaa.gov/docucomp/8293A0696464322CE040AC8C5AB453FE" xlink:title="F12"/>
    <gmi:platform>      <!-- F13 -->
      <gmi:MI_Platform uuid="8293A0696467322CE040AC8C5AB453FE">
        <gmi:identifier gco:nilReason="template"/>
        <gmi:description gco:nilReason="template"/>
        <gmi:instrument xlink:href="http://www.ngdc.noaa.gov/docucomp/8293FAD4B87075F2E040AC8C5AB4576F" xlink:title="SSM/I"/>
        <gmi:instrument xlink:href="http://www.ngdc.noaa.gov/docucomp/8293FAD4B87375F2E040AC8C5AB4576F" xlink:title="SSM/T"/>
        <gmi:instrument xlink:href="http://www.ngdc.noaa.gov/docucomp/8293FAD4B87675F2E040AC8C5AB4576F" xlink:title="SSM/T2"/>
      </gmi:MI_Platform>
    </gmi:platform>
    <gmi:platform>       <!-- F14 -->
      <gmi:MI_Platform uuid="8293A069644C322CE040AC8C5AB453FE">
        <gmi:identifier gco:nilReason="template"/>
        <gmi:description gco:nilReason="template"/>
        <gmi:instrument xlink:href="http://www.ngdc.noaa.gov/docucomp/8293FAD4B87075F2E040AC8C5AB4576F" xlink:title="SSM/I"/>
        <gmi:instrument xlink:href="http://www.ngdc.noaa.gov/docucomp/8293FAD4B87375F2E040AC8C5AB4576F" xlink:title="SSM/T"/>
        <gmi:instrument xlink:href="http://www.ngdc.noaa.gov/docucomp/8293FAD4B87675F2E040AC8C5AB4576F" xlink:title="SSM/T2"/>
      </gmi:MI_Platform>
    </gmi:platform>
    <gmi:platform>      <!-- F15 -->
      <gmi:MI_Platform uuid="8293A069646A322CE040AC8C5AB453FE">
        <gmi:identifier gco:nilReason="template"/>
        <gmi:description gco:nilReason="template"/>
        <gmi:instrument xlink:href="http://www.ngdc.noaa.gov/docucomp/8293FAD4B87075F2E040AC8C5AB4576F" xlink:title="SSM/I"/>
        <gmi:instrument xlink:href="http://www.ngdc.noaa.gov/docucomp/8293FAD4B87375F2E040AC8C5AB4576F" xlink:title="SSM/T"/>
        <gmi:instrument xlink:href="http://www.ngdc.noaa.gov/docucomp/8293FAD4B87675F2E040AC8C5AB4576F" xlink:title="SSM/T2"/>
      </gmi:MI_Platform>
    </gmi:platform>
    <gmi:platform>      <!-- F16 -->
      <gmi:MI_Platform uuid="8293A069646D322CE040AC8C5AB453FE">
        <gmi:identifier gco:nilReason="template"/>
        <gmi:description gco:nilReason="template"/>
        <gmi:instrument xlink:href="http://www.ngdc.noaa.gov/docucomp/8293FAD4B8A075F2E040AC8C5AB4576F" xlink:title="SSM/IS"/>
      </gmi:MI_Platform>
    </gmi:platform>
    <gmi:platform>      <!-- F17 -->
      <gmi:MI_Platform uuid="8293A069647C322CE040AC8C5AB453FE">
        <gmi:identifier gco:nilReason="template"/>
        <gmi:description gco:nilReason="template"/>
        <gmi:instrument xlink:href="http://www.ngdc.noaa.gov/docucomp/8293FAD4B8A075F2E040AC8C5AB4576F" xlink:title="SSM/IS"/>
      </gmi:MI_Platform>
    </gmi:platform>
  </gmi:MI_AcquisitionInformation>
</gmi:acquisitionInformation>