﻿[[CatPackage]]

== Catalogue extension package

=== Introduction

A central component of a deployed suite of integrated OGC web services is a
catalogue.  The catalogue encapsulates the knowledge of the system making the
resources that the system offers and the associations between those resources
discoverable to both internal components of the system as well as external
clients.

For this Testbed-12 work item, the CSW-ebRIM profile (see OGC 07-110r4), a
profile of the OGC catalogue (see OGC 07-006r1) that uses ebRIM (see OASIS
regrep-rim-3.0-os), is chosen as the primary catalogue.  This choice is
motivated by the fact that ebRIM is a flexible meta-model that already includes
structures to register resources and the associations between them as well as
allow resource to be classified using internal as well as external
classification schemes.

The primary means of harvesting or registering an OGC web service into a
CSW-ebRIM catalogue is to use the Harvest operation (see OGC 07-110r4, Clause
14) to read the service’s capabilities document and then map that document into
the catalogue’s ebRIM information model.

This clause defines a service integration ebRIM package that encapsulates all
the identifiers, associations and classification schemes necessary to allow an
OGC CSW-ebRIM catalogue to register OGC web services, the resource those
services offer and the associations between those services, their offerings and
other OGC and non-OGC resources.

=== Identifiers

==== Introduction

This clause defines a set of identifiers that shall be used to map the
capabilities document of an OGC web service into the ebRIM information model
of an OGC web registry service (see OGC 07-110r4).

==== Identifiers for OGC web services for ebRIM

The table _<<assoc_service_identifiers,Service Type Identifiers>>_ defines a
standard set of service type identifiers for OGC web services.  These
identifiers are used to define classification nodes within the ebRIM model
that allow ebRIM Service records to be classified according to the type of
service being represented.  The canonical ebRIM service type classification
scheme is defined in Annex B.

These identifiers may also be used as the value of a slot, named
_<<slot_name_identifiers,"resourceType">>_ that may also be used to tag a
service record with the type of OGC web service it represents.

==== Identifier for the content of OGC web services for ebRIM

The table _<<assoc_content_identifiers,Content Type Identifier>>_ defined a set
of identifier that may be used as the value of the "objectType" parameter
within ebRIM to identify the type of OGC web service content being represented
by the catalogue record.  These identifiers are used to extend the canonical
ebRIM object type classification scheme (see Annex B).

==== Identifiers for OGC documents for ebRIM

The following table lists a set of identifiers for OGC and non-OGC document
types commonly used to describe OGC resources.  These identifiers are used to
define a canonical ebRIM classification scheme named HarvestResourceType (see
Annex B).

[[document_identifier]]
.OGC Document Type Identifiers for ebRIM
[options="headers",width="90%",cols="50%,50%"]
|===
| Identifier | Description

| urn:ogc:documentType:capabilities:wis
| WIS capabilities document

| urn:ogc:documentType:capabilities:wfs
| WFS capabilities document

| urn:ogc:documentType:capabilities:wms
| WMS capabilities document

| urn:ogc:documentType:capabilities:wmts
| WMTS capabilities document

| urn:ogc:documentType:capabilities:wcs
| WCS capabilities document

| urn:ogc:documentType:metadata:fgdc
| Metadata document conforming to the FGDC standard.

| urn:ogc:documentType:metadata:anzlic
| Metadata document conforming to the ANZLIC standard.

| urn:ogc:documentType:metadata:iso19139
| Metadata document conforming to the ISO 19139 standard.

| urn:ogc:documentType:metadata:iso19119
| Metadata document conforming to the ISO 19119 standard.

| urn:ogc:documentType:metadata:iso19115
| Metadata document conforming to the ISO 19115 standard.

| urn:ogc:documentType:ebxml-regrep:classificationScheme
| A metadata document containing an ebRIM classification scheme.

| urn:ogc:documentType:symbologyEncoding
| A symbology encoding document.

| urn:ogc:documentType:schema:xml
| An XML schema document.
|===

Harvesting OGC web service is accomplished by reading and mapping the service’s
capabilities document into the information model of the CSW-ebRIM catalogue.  A
service’s capabilities document can be identified by a client providing the
complete URL to the capabilities document (e.g. http://www.someserver.com/wfs?service=WFS&request=GetCapabilities) or by providing the baseURL of the OGC web
service and letting the catalogue form the necessary GetCapabilities request.
The latter case gives the catalogue server more control about what to harvest
especially in the case of a suite of OGC web services offered through a WIS.
The following set of identifiers may be used in the latter case to identify
that a base URL is being used to identify the capabilities document of the OGC
web service – and thus the catalogue needs to formulate a complete
GetCapabilities request in order to obtain the capabilities document.  These
identifiers will typically be used as the values of the _resourceType_
parameter of the CSW Harvest operation.

[[service_base_urls]]
.Identifiers for Service Base URLs for ebRIM
[options="headers",width="70%",cols="60%,40%"]
|===
| Identifier | Description

| urn:ogc:baseUrl:service:wis
| WIS base URL.

| urn:ogc:baseUrl:service:wfs
| WFS base URL.

| urn:ogc:baseUrl:service:wos
| WOS base URL.

| urn:ogc:baseUrl:service:wms
| WMS base URL.

| urn:ogc:baseUrl:service:wmts
| WMTS base URL.

| urn:ogc:baseUrl:service:wps
| WPS base URL.

| urn:ogc:baseUrl:service:csw
| CSW base URL.

| urn:ogc:baseUrl:service:wrs
| WRS base URL.

| urn:ogc:baseUrl:service:gss
| GSS base URL.
|===

==== Identifiers for associations for ebRIM

The table _<<assoc_rel_identifiers>>_ defines a set of identifier for
association types that may exist between two resources represented in ebRIM.
The identifiers in this table are used to extent the canonical ebRIM
association type classification scheme (see Annex B).

These values shall be used as the value of the "associationType" property of
the Association object within ebRIM to represent the type of association
between registered resources.

The following table lists association identifiers that are useful in the
context of OGC service integration and are already defined in the canonical
ebRIM AssociationType classification scheme.

[[extra_assoc_ids]]
.Additional Association Type Identifiers for ebRIM
[options="headers",width="90%",cols="30%,70%"]
|===
| Identifier | Description

| urn:oasis:names:tc:ebxml-regrep:AssociationType:HasMember
| Associates two resources where one resource is a collection and the other resource is a member of that collection (e.g. a collection of WMS layers that share a common theme).

| urn:oasis:names:tc:ebxml-regrep:AssociationType:OffersService
| Associates two resources where one resource is a web integration service and the other resource is another OGC web service offered by the WIS.
|===

==== Identifiers for ebRIM slot names

The ebRIM model provides extensible metadata via a slot mechanism.  Slots are a
name and value list pair that provides additional metadata about a registered
object.  Among other things, slots are used in this standard to map values
found in an OGC’s capabilities document into the ebRIM model.

The following table lists a set of identifiers that may be used as the value of
the "name" parameter of a slot.  These identifiers are used to define a
canonical ebRIM SlotName classification scheme.

[[slot_name_identifiers]]
.Slot Name Identifiers for ebRIM
[options="headers",width="90%",cols="30%,70%"]
|===
| Identifier | Description

| accessConstraints
| Describes any access constraints associated with the resource.

| baseTableName
| The base table name within an RDBMS used to store a resource.

| baseUrl
| The base URL of the resource (e.g. the base URL of a service)

| contactInstructions
| Instruction for contacting a responsible party for the resource.

| crs
| A CRS associated with the resource.

| fees
| Any fees associated with obtaining the resource or a copy of the resource.

| hasRepositoryItem
| A Boolean flag indicating that the catalogue record representing a resource also has an associated repository item entry.

| hoursOfService
| Any hours of service associated with the resource.

| keyword
| A list of keywords associated with the resource.

| layerLimit
| The layer limit associated with a WMS service.

| legendUrl
| The legend URL for a WMS.

| method
| HTTP method name for a service binding.

| maxHeight
| The maximum map height that a WMS can serve.

| maxWidth
| The maximum map width that a WMS can serve.

| onlineResource
| May be used to provide a reference to the provider of the resource.

| outputFormat
| A list of formats indicating the representations available for the resource.

| position
| The position with an organization if the resource is a person.

| queryable
| A Boolean indicating whether a WMS map layer is queryable.

| resourceType
| A subtype for a resource represented in a CSW-ebRIM catalogue.  This slot is typically used to differentiate one OGC web service type from another.

| role
| A role associated with a resource.

| supportedVersions
| The list of supported version of the resource; typically supported server versions.

| scheme
| An identifier from a classification scheme that is associated with the resource.

| spatialPropertyName
| The name of the spatial property of a resource (e.g. the spatial property name of a WFS feature type)

| spatialPropertyType
| The type of the spatial property of a resource (e.g. the spatial property of a WFS is of type POINT)

| supportedOperations
| A list of operations supported by the resource.

| targetNamespace
| A namespace associated with the resource.

| title
| A human-readable title associated with a resource.

| url
| A URL associated with a resource.  Typically used to provide a link for accessing the resource directly.

| where
| A location or geometry associated with a resource
|===

NOTE: The complete identifier is formed by appending the value in the Identifier
      column to the prefix "urn:ogc:ebxml-regrep:slotName:".
 
==== Identifiers for data types for ebRIM

The following tables list identifiers for spatial and non-spatial data types.
These values may be used to indicate the value type of a slot parameter.  The
identifiers in Table 11 are defined in the ebRIM standard (see OASIS
regrep-rim-3.0-os).  The identifiers in Table 12 are defined as part of the
Basic Package of the csw-ebRIM standard (see OGC 07-144r4).

[[datatype_identifiers]]
.Datatype Identifiers
[options="headers",width="80%",cols="70%,30%"]
|===
| Identifier | Description

| urn:oasis:names:tc:ebxml-regrep:DataType:Boolean
| Boolean

| urn:oasis:names:tc:ebxml-regrep:DataType:Date
| Date

| urn:oasis:names:tc:ebxml-regrep:DataType:DateTime
| DateTime

| urn:oasis:names:tc:ebxml-regrep:DataType:Double
| Double

| urn:oasis:names:tc:ebxml-regrep:DataType:Float
| Float

| urn:oasis:names:tc:ebxml-regrep:DataType:Integer
| Integer

| urn:oasis:names:tc:ebxml-regrep:DataType:Number
| Number

| urn:oasis:names:tc:ebxml-regrep:DataType:Raw
| Raw

| urn:oasis:names:tc:ebxml-regrep:DataType:String
| String

| urn:oasis:names:tc:ebxml-regrep:DataType:Unknown
| Unknown

| urn:oasis:names:tc:ebxml-regrep:DataType:URI
| URI
|===

[[spatial_datatype_identifiers]]
.Spatial Datatype Identifiers
[options="headers",width="80%",cols="70%,30%"]
|===
| Identifier | Description

| urn:ogc:def:dataType:ISO-19107:GM_Point
| Point

| urn:ogc:def:dataType:ISO-19107:GM_Curve
| Line

| urn:ogc:def:dataType:ISO-19107:GM_Surface
| Polygon

| urn:ogc:def:dataType:ISO-19107:GM_MultiPoint
| Multi-point

| urn:ogc:def:dataType:ISO-19107:GM_MultiCurve
| Multi-line

| urn:ogc:def:dataType:ISO-19107:GM_MultiSurface
| Multi-polygon

| urn:ogc:def:dataType:ISO-19107:GM_Aggregate
| Geometry collection

| urn:ogc:def:dataType:ISO-19107:GM_Object
| Geometry object of any type
|===

=== Classification schemes for ebRIM

Annex B defines an ebRIM packages for service integration that defines that
following classification schemes: ServiceTypes, HarvestResourceTypes, SlotNames.

=== Mapping OGC capabilities documents into ebRIM

==== Introduction 

The process of registering an OGC web service into the catalogue involves
reading the service’s capabilities document and then mapping the contents of
that document into ebRIM thus making the information discoverable to catalogue
clients.

OGC capabilities documents are composed of a number of sections some of which
are common to all services and some of which are specific to a particular
service.  This clause describes the mapping of the common sections into ebRIM
and further describes the mapping of the content sections for the WIS, WMS,
WMTS, WFS and WCS services into ebRIM.

==== ServiceIdentification section

The following table maps the element of the ServiceIdentification section of an
OGC capabilities document into ebRIM.

[[map_serviceid_section]]
.Mapping of ServiceIdentification Section into ebRIM
[options="headers",width="90%",cols="30%,70%"]
|===
| OGC Capabilities XPath | ebRIM XPath

| Title
| Service/Slot[@name="Title"]/ValueList/Value[1]

| Abstract
| Service/Description/LocalizedString/@value

| Keywords
| Service/Slot[@name="keyword"]/ValueList/Value[1..*]

| ServiceType
| Service/Slot[@name="resourceType"]/ValueList/Value[1]

| ServiceTypeVersion
| Service/Slot[@name="supportedVersion"]/ValueList/Value[1..*]

| Fees
| Service/Slot[@name="fees"]/ValueList/Value[1]

| AccessConstraints
| Service/Slot[@name="accessConstraints]/ValueList/Value[1]
|===

==== ServiceProvider section

The following table maps the elements of the ServiceProvider section of an OGC
capabilities document into ebRIM.

[[map_service_provider]]
.Mapping of ServiceProvider Section into ebRIM
[options="headers",width="90%",cols="30%,70%"]
|===
| OGC Capabilities XPath | ebRIM XPath

| ProviderName
| Organization/Name

| ProviderSite
| Organization/Slot[@name="onlineResource"]/ValueList/Value[1]

| ServiceContact
| see _<<service_contact>>_
|===

NOTE: Organization/@parent = Service/@lid

[[service_contact]]
.Mapping of ServiceProvider/ServiceContact into ebRIM
[options="headers",width="90%",cols="30%,70%"]
|===
| OGC Capabilities XPath | ebRIM XPath

| ServiceContact/IndividualName
| Person/PersonName/@lastName

| ServiceContact/PostitionName
| Person/Slot[@name="position"]/ValueList/Value[1]

| ServiceContact/Role
| Person/Slot[@name="role"]/ValueList/Value[1]

| ServiceContact/ContactInfo
| see _<<contact_info>>_
|===

NOTE: Organization/@primaryContact = Person/@lid

[[contact_info]]
.Mapping of ServiceProvider/ServiceContact/ContactInfo into ebRIM
[options="headers",width="90%",cols="30%,70%"]
|===
| OGC Capabilities XPath | ebRIM XPath

| OnlineResource
| Organization/Slot[@name="onlineResource"]/ValueList/Value[1]

| HoursOfService
| Organization/Slot[@name="hoursOfService"]/ValueList/Value[1]
   
| ContactInstructions
| Organization/Slot[@name="contactInstructions]/ValueList/Value[1]
   
| Phone/Voice
| Person/TelephoneNumber/[@phoneType="Voice"]/number
   
| Phone/Facsimile
| Person/TelephoneNumber/[@phoneType="ContactInfo"]/number
   
| Address/DeliveryPoint
| Organization/Address/@streetNumber

| Address/City
| Organization/Address/@city

| Address/AdministrativeArea
| Organization/Address/@stateOrProvince

| Address/PostalCode
| Organization/Address/@postalCode

| Address/Country
| Organization/Address/@country

| Address/ElectronicMailAddress
| Organization/EmailAddress/@address
|===

==== OperationsMetadata section

The following table maps the elements of the OperationsMetadata section of an
OGC capabilities document into ebRIM.

[[map_operations_metadata]]
.Mapping of OperationsMetadata Section into ebRIM
[options="headers",width="90%",cols="30%,70%"]
|===
| OGC Capabilities XPath | ebRIM XPath

| Operation/@name
| ServiceBinding/Name/LocalizedString/@value

| Operation/DCP/HTTP/Get/@xlink
| ServiceBinding/@accessURI

| ServiceBinding/Slot[@name="method"]/ValueList/Value[1]=GET
| Operation/DCP/HTTP/Post/@xlink

| ServiceBinding/@accessURI
| ServiceBinding/Slot[@name="method"]/ValueList/Value[1]=POST
|===

==== Content section

===== Introduction

This clause defines the mapping of the content sections of the WIS, WMS, WFS
and WCS into the ebRIM model.

==== WIS content

The content section of a WIS is simply of list of ServiceIdentification sections
describing the set of services that the WIS offers.  The content section of a
WIS is not harvested directly.  Rather each service listed in the WIS content
section is harvested and an _<<extra_assoc_ids,OffersService>>_ association is
registered between the WIS and the harvested child service.

=====  WMS content

===== WMS theme

The following table maps the metadata describing a WMS layer that contains
nested layers into ebRIM.  Layers that in turn contain child layers are
referred to as themes in this standard.   

The relationship between a WMS offering a theme and the theme itself shall be
encoded in ebRIM using the _<<ogc_assoc_ids,operatesOn>>_ association.

The relationship between a WMS layer or theme and its child WMS layers shall be
encoded in ebRIM using the _<<extra_assoc_ids,HasMember>>_ association.

.Mapping of WMS Theme metadata into ebRIM
[options="headers",width="90%",cols="30%,70%"]
|===
| OGC Capabilities XPath | ebRIM XPath

| Name
| ExtrinsicObject[@objectType="wms:theme"]/Name/LocalizedString/@value

| Description/Title
| ExtrinsicObject[@objectType="wms:theme"]/Slot[@name="title"]/ValueList/Value[1]

| Description/Abstract
| ExtrinsicObject[@objectType="wms:theme"]/Description/LocalizedString/@value

| Description/Keywords
| ExtrinsicObject[@objectType="wms:theme"]/Slot[@name="keyword"]/ValueList/Value[1..*]

| CRS
| ExtrinsicObject[@objectType="wms:theme"]/Slot[@name=crs]/ValueList/Value[1]

| EX_GeographicBoundingBox or BoundingBox
| ExtrinsicObject[@objectType="wms:theme"]/Slot[@name="where" && @type="urn:ogc:def:dataType:ISO-19107:2003:GM_Envelope]/ValueList/Value[1..*]

| LegendURL | ExtrinsicObject[@objectType="wms:theme"]/Slot[@name="legendURL"]/ValueList/Value[1]=LegendURL/onlineResource +
ExtrinsicObject[@objectType="wms:theme"]/Slot[@name="legendURL"]/ValueList/Value[2]=LegendURL/Format +
ExtrinsicObject[@objectType="wms:theme"]/Slot[@name="legendURL"]/ValueList/Value[3]=LegendURL/width +
ExtrinsicObject[@objectType="wms:theme"]/Slot[@name="legendURL"]/ValueList/Value[4]=LegendURL/height

| Layer (child)
| Each child layer is encoded into ebRIM as a sub-theme of _<<wms_layer_map,WMS layer>>_.  The association between a layer and a child layer or theme is encoded into ebRIM using the _<<extra_assoc_ids,HasMember>>_ association.
|===

===== WMS layer

The following table maps the metadata describing a WMS layer into ebRIM.  
The relationship between a WMS offering a layer and the layer itself shall be
encoded in ebRIM using the _<<ogc_assoc_ids,operatesOn>>_ association.

The relationship between a WMS theme and a WMS layer it contains shall be
encoded in ebRIM using the _<<extra_assoc_ids,HasMember>>_ association.

[[wms_layer_map]]
.Mapping of WMS Layer metadata into ebRIM
[options="headers",width="90%",cols="30%,70%"]
|===
| OGC Capabilities XPath | ebRIM XPath

| Name
| ExtrinsicObject[@objectType="wms:layer"]/Name/LocalizedString/@value

| Description/Title
| ExtrinsicObject[@objectType="wms:layer"]/Slot[@name="title"]/ValueList/Value[1]

| Description/Abstract
| ExtrinsicObject[@objectType="wms:layer"]/Description/LocalizedString/@value

| Description/Keywords
| ExtrinsicObject[@objectType="wms:layer"]/Slot[@name="keyword"]/ValueList/Value[1..*]

| CRS
| ExtrinsicObject[@objectType="wms:layer"]/Slot[@name=crs]/ValueList/Value[1]

| EX_GeographicBoundingBox or BoundingBox
| ExtrinsicObject[@objectType="wms:layer"]/Slot[@name="where" && @type=" urn:ogc:def:dataType:ISO-19107:2003:GM_Envelope]/ValueList/Value[1..*]

| LegendURL |ExtrinsicObject[@objectType="wms:layer"]/Slot[@name="legendURL"]/ValueList/Value[1]=LegendURL/onlineResource +
ExtrinsicObject[@objectType="wms:layer"]/Slot[@name="legendURL"]/ValueList/Value[2]=LegendURL/Format +
ExtrinsicObject[@objectType="wms:layer"]/Slot[@name="legendURL"]/ValueList/Value[3]=LegendURL/width +
ExtrinsicObject[@objectType="wms:layer"]/Slot[@name="legendURL"]/ValueList/Value[4]=LegendURL/height

|===

===== WMTS content

====== WMTS themes

The following table maps the metadata describing a WMTS theme into ebRIM.  In
addition to these mappings, an _<<ogc_assoc_ids,operatesOn>>_ association shall
be created between the service offering the WMTS layer and the WMTS layer
itself.

The relationship between a theme, its sub-themes and any WMTS layers shall be
encoded in ebRIM using the _<<extra_assoc_ids,HasMember>>_ association.

.Mapping of WMTS Theme metadata into ebRIM
[options="headers",width="90%",cols="30%,70%"]
|===
| OGC Capabilities XPath | ebRIM XPath

| Title
| ExtrinsicObject[@objectType="wmts:theme"]/Slot[@name="title"]/ValueList/Value[1]

| Abstract
| ExtrinsicObject[@objectType="wmts:theme"]/Description/LocalizedString[@value="…"]

| Keywords
| ExtrinsicObject[@objectType="wmts:theme"]/Slot[@name="keyword"]/ValueList/Value[1..*]

| Identifier
| ExtrinsicObject[@objectType="wmts:theme"]/Name/LocalizedString/@value[1]

| LayerRef
| This is encoded in ebRIM as a _<<extra_assoc_ids,HasMember>>_ association between the theme and each child layer.
|===

====== WMTS layers
The following table maps the metadata describing a WMTS layer into ebRIM.  In
addition to these mappings, an _<<ogc_assoc_ids,operatesOn>>_ association shall
be created between the service offering the WMTS layer and the WMTS layer
itself.

.Mapping of WMTS Layer metadata into ebRIM
[options="headers",width="90%",cols="30%,70%"]
|===
| OGC Capabilities XPath | ebRIM XPath

| Title
| ExtrinsicObject[@objectType="wmts:layer"]/Slot[@name="title"]/ValueList/Value[1]
   
| Abstract
| ExtrinsicObject[@objectType="wmts:layer"]/Description/LocalizedString[@value="…"]

| Keywords
| ExtrinsicObject[@objectType="wmts:layer"]/Slot[@name="keyword"]/ValueList/Value[1..*]

| WGS84BoundingBox
| ExtrinsicObject[@objectType="wmts:layer"]/Slot[@name="where" && @type=" urn:ogc:def:dataType:ISO-19107:2003:GM_Envelope]/ValueList/Value[1..*]

| Identifier
| ExtrinsicObject[@objectType="wmts:layer"]/Name/LocalizedString/@value

| LegendURL |ExtrinsicObject[@objectType="wmts:layer"]/Slot[@name="legendURL"]/ValueList/Value[1]=href +
ExtrinsicObject[@objectType="wmts:layer"]/Slot[@name="legendURL"]/ValueList/Value[2]=format +
ExtrinsicObject[@objectType="wmts:layer"]/Slot[@name="legendURL"]/ValueList/Value[3]=minScaleDenominator +
ExtrinsicObject[@objectType="wmts:layer"]/Slot[@name="legendURL"]/ValueList/Value[4]=maxScaleDenominator +
ExtrinsicObject[@objectType="wmts:layer"]/Slot[@name="legendURL"]/ValueList/Value[5]=width +
ExtrinsicObject[@objectType="wmts:layer"]/Slot[@name="legendURL"]/ValueList/Value[6]=height

| Format
| ExtrinsicObject[@objectType="wmts:layer"]/Slot[@name="outputFormat"]/ValueList/Value[1..*]
|===

===== WFS feature types

The following table maps the metadata describing a WFS feature type into ebRIM.
In addition to these mappings, an _<<ogc_assoc_ids,operatesOn>>_ association
shall be created between the service offering the feature type and the feature
type itself. 

.Mapping of WFS FeatureType metadata into ebRIM
[options="headers",width="90%",cols="30%,70%"]
|===
| OGC Capabilities XPath | ebRIM XPath

| Name
| ExtrinsicObject[@objectType="wfs:featureType"]/Name/LocalizedString/@value

| Title
| ExtrinsicObject[@objectType="wfs:featureType"]/Slot[@name="title"]/ValueList/Value[1]

| Abstract
| ExtrinsicObject[@objectType="wfs:featureType"]/Description/LocalizedString/@value

| Keywords
| ExtrinsicObject[@objectType="wfs:featureType"]/Slot[@name="keyword"]/ValueList/Value[1..*]

| DefaultCRS or OtherCRS |ExtrinsicObject[@objectType="wfs:featureType"]/Slot[@name="crs"]/ValueList/Value[1]=DefaultCRS +
ExtrinsicObject[@objectType="wfs:featureType"]/Slot[@name="crs"]/ValueList/Value[2..*]=OtherCRS

| OutputFormats
| ExtrinsicObject[@objectType="wfs:featureType"]/Slot[@name="outputFormat"]/ValueList/Value[1..*]

| WGS84BoundingBox
| ExtrinsicObject[@objectType="wfs:featureType"]/Slot[@name="where" && @type=" urn:ogc:def:dataType:ISO-19107:2003:GM_Envelope]/ValueList/Value[1..*]

| MetadataURL
| ExtrinsicObject[@objectType="wfs:featureType"]/Slot[@name="metadataURL"]/ValueList/Value[1]
|===

===== WCS Coverage

The following table maps the metadata describing a WCS coverage offering into
ebRIM.  In addition to these mappings, an _<<ogc_assoc_ids,operatesOn>>_
association shall be created between the service offering the coverage and the
coverage itself. 

.Mapping of WCS Coverage Offering into ebRIM
[options="headers",width="90%",cols="30%,70%"]
|===
| OGC Capabilities XPath | ebRIM XPath

| Title
| ExtrinsicObject[@objectType="wcs:coverage"]/Slot[@name="title"]/ValueList/Value[1]

| Abstract
| ExtrinsicObject[@objectType="wcs:coverage"]/Description/LocalizedString/@value

| Keywords
| ExtrinsicObject[@objectType="wcs:coverage"]/Slot[@name="keyword"]/ValueList/Value[1..*]

| WGS84BoundingBox or BoundingBox
| ExtrinsicObject[@objectType="wcs:coverage"]/Slot[@name="where" && @type="urn:ogc:def:dataType:ISO-19107:2003:GM_Envelope"]/ValueList/Value[1..*]

| CoverageId
| ExtrinsicObject[@objectType="wcs:coverage"]/Name/LocalizedString/@value

| CoverageSubtype
| ExtrinsicObject[@objectType="wcs:coverage"]/Slot[@name="resourceType"]/ValueList/Value[1]
|===

=== GetAssociations stored query

CSW-ebRIM implementations shall implement a stored query named "GetAssociations"
that allows clients to query associations in the catalogue.  The prototype of
the stored query shall be: 

----
getAssociations( sourceId anyURI, localSourceId string,
                 associationType TokenOrAnyURI,
                 targetId anyURI, localTargetId string )
----

The methods shall behave as described for the_<<getAssociations_request,GetAssociations operation>>_.
