ICSM ISO19115-1 Metadata Best Practice Guide

Contains Operations ★★★★

Once a service is discovered, potential users need to know what operations the service provides and on what resources it operates. Provision of the specifics of the operations allows such evaluation and use.

   
Element Name containsOperations
Parent MD_Metadata.identificationInfo>SV_ServiceIdentification
Class/Type SV_OperationMetadata
Governance Common ICSM
Purpose Evaluation, Use
Audience machine resource - ⭑ ⭑ ⭑ ⭑
  general - ⭑ ⭑ ⭑
  resource manager - ⭑ ⭑
  specialist - ⭑ ⭑ ⭑ ⭑
Metadata type structural

Definition

provides information about the operations that comprise the service

ISO Requirements

This is an ISO optional element. There may be zero or many [0..*] containsOperations entries for the cited resource in the SV_ServiceIdentification package of class SV_OperationMetadata in a metadata record for a service resource.

Discussion

It is useful when documenting a service to document the particular operations that the service can be called upon to do. As many of the services we may call will have operations that summarise the operations that the service provides it may be better to document this one service in order not to duplicate or cause confusion. GetCapabilities would be an example of this as would an OpenAPI endpoint as implemented in OGC API common based services.

ICSM Best Practice Recommendations

Therefore - if a potential client of a service is to use such service once discovered, descriptions of the functionality and use of operations provided should be documented in metadata of a geospatial service. When there exists an operation that details the operations available, such as GetCapabilities or an OpenAPI/Swagger endpoint, it is recommended that this operation be captured here. Further operations detailed by such a service need not be detailed here. At a minimum, the ICSM recommended sub-elements to be populated include operationName, distributedComputingEnvironment, operationDescription, connectPoint.

Other Optional Sub-Elements

DCPList - codelist

There are 10 options to choose from in the Distributed Computing Platform code list (DCPList). At least one must be chosen when describing a service operation. As the use of this codelist has not been agreed upon, current ICSM guidance is to use webService as default value unless there is clear reason otherwise. Available values are as follows:

Outstanding Issues

Distributed Computing Platform Codelist The mandatory selection of DCPList values presents some area for disagreement and varied implementation. The values available and guidance of their use and purpose is lacking.

Other Notes

OGC API Notes - The `containsOperations’ equivalent in OGC API Records (under development) will likely describe the operations available on a single path. A Path Item MAY be empty, due to ACL constraints. The path itself is still exposed to the document viewer but they will not know which operations and parameters are available.

Crosswalk considerations

ISO 19119/19139

None Known

Dublin core / CKAN / data.gov.au

None Known

DCAT

operationDescription maps to dcat:endpointDescription connectPoint maps to dcat:endpointURL

RIF-CS

connectPoint maps to Location/Electronic/@type=’url’

Also Consider

Coupled Resource - Present an option to connect a coupled resource to a particular operation.

Examples

GA

{example - if any useful}

ABARES

{example - if any useful}

Others

{### who - example - if any useful}}

XML -

<mdb:MD_Metadata>
....
 <mdb:identificationInfo>
   <srv:SV_ServiceIdentification>
   ....
     <srv:containsOperations>
       <srv:SV_OperationMetadata>
        <srv:operationName>
          <gco:CharacterString>GetCapabilities</gco:CharacterString>
        </srv:operationName>
        <srv:distributedComputingPlatform>
          <srv:DCPList codeList="http://standards.iso.org/iso/19115/resources/Codelists/cat/codelists.xml#DCPList"
                codeListValue="WebServices"/>
        </srv:distributedComputingPlatform>
        <srv:operationDescription>
          <gco:CharacterString>Description of available operations</gco:CharacterString>
        </srv:operationDescription>
        <srv:connectPoint>
          <cit:CI_OnlineResource>
           <cit:linkage>
             <gco:CharacterString>https://my.webite.io/cgi-bin/wfs?SERVICE=WFS&amp;VERSION=1.0.0&amp;REQUEST=GetCapabilities</gco:CharacterString>
           </cit:linkage>
           <cit:protocol>
             <gco:CharacterString>OGC:WFS</gco:CharacterString>
           </cit:protocol>
           <cit:name gco:nilReason="missing">
             <gco:CharacterString/>
           </cit:name>
           <cit:description gco:nilReason="missing">
             <gco:CharacterString/>
           </cit:description>
           <cit:function>
             <cit:CI_OnLineFunctionCode codeList="http://standards.iso.org/iso/19115/resources/Codelists/cat/codelists.xml#CI_OnLineFunctionCode"
                          codeListValue=""/>
           </cit:function>
          </cit:CI_OnlineResource>
        </srv:connectPoint>
       </srv:SV_OperationMetadata>
     </srv:containsOperations>
    ....   
   </srv:SV_ServiceIdentification>
 </mdb:identificationInfo>
....
</mdb:MD_Metadata>

\pagebreak

UML diagrams

Recommended elements highlighted in yellow

Contains Operation

\pagebreak