Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
SESIP-0716-DN1
CSW Best Practices
ESIP Summer Meeting 2016
July 19-22 2016
Doug Newman (NASA Earthdata – Raytheon)
Andrew Mitchell (NASA Earthdata)
The material is based upon work supported by the National Aeronautics and
Space Administration under Contract Number NNG15HZ39C
https://ntrs.nasa.gov/search.jsp?R=20160009282 2020-05-27T07:40:51+00:00Z
SESIP-0716-DN1
2
Agenda
• What is CSW?
• Why CSW and Best Practices?
• GetCapabilities
• GetRecords
• GetRecordById
• DescribeRecord
• GetDomain
SESIP-0716-DN1
WHAT IS CSW?
SESIP-0716-DN1
4
Catalog Service for the Web
From OGC website:
‘Catalog services support the ability … search collections of descriptive information (metadata) for data, services, and related information objects. ... Catalogue services are required to support the discovery and binding to registered information resources within an information community.
OGC Catalog interface standards specify the interfaces, bindings, and a framework for defining application profiles required to publish and access digital catalogs of metadata for geospatial data, services, and related resource information...’
SESIP-0716-DN1
WHY CSW & BEST
PRACTICES?
SESIP-0716-DN1
6
Why?
• It is a widely-used earth data discovery
standard
• CWIC maintains a CSW framework for
interoperability
• OGC specs are verbose and, in our
opinion, difficult to interpret. Best practices
may help
SESIP-0716-DN1
GETCAPABILITIES
SESIP-0716-DN1
8
Take this seriously
• Many implementations do a poor job at
describing their service properly
• This method is key to getting clients to use
your API
• This is the gateway to your API. If you do
this poorly then confidence will be low with
respect to the rest of your API
SESIP-0716-DN1
GETRECORDS
SESIP-0716-DN1
10
Support GET
• GET is more user-friendly
• But complex queries are difficult with GET
so…
• Support a subset of your queries with GET
– Free text
– Bounding box
– Temporal range
SESIP-0716-DN1
11
Is summary necessary?
• Getting a list of ids seems useful
• Getting some intermediary representation
of the metadata seems a throw back to the
days when ‘bandwidth was tight’
SESIP-0716-DN1
GETRECORDBYID
SESIP-0716-DN1
13
Is this necessary?
• It is mandatory but…
• GetRecords allows you to get the full
metadata associated with a result set.
• Might be useful from a ‘canonical
metadata reference’ context but that
should really be the domain of other APIs
or landing pages
SESIP-0716-DN1
DESCRIBEDRECORD
SESIP-0716-DN1
15
Of little use
• The ability to return schemas that are
publicly available and defined in the
GetCapabilties response seems
unnecessary
• Being able to subset that schema seems a
throw back to times when bandwidth was
tight.
SESIP-0716-DN1
GETDOMAIN
SESIP-0716-DN1
17
Of some use
• For controlled vocabularies this is useful
functionality.
• Elsewhere, not so much
SESIP-0716-DN1
IN GENERAL
SESIP-0716-DN1
19
Support GET wherever you can
• GET is much more user-friendly than
POST.
• Reserve POST support for complex
queries like GetRecords
SESIP-0716-DN1
20
Support formats beyond minimum
• OGC mandates the GMD ISO profile. This
is somewhat out of date
SESIP-0716-DN1
21
Showing it’s age
• A lot of the architectural considerations of
CSW have made based on the way the
world was some years ago.
• Verbose metadata results are no longer a
problem
• One would hope 3.0 improves this but…
SESIP-0716-DN1
22
Comparison with OpenSearch
• It’s not nearly as much fun
• It’s not RESTful – no hypermedia
• The connection between collection and
granules is not tightly coupled
• Specification of API is not as compact
(GetCapabilies + GetDomain ~= OSDD)
SESIP-0716-DN1
QUESTIONS?
SESIP-0716-DN1
24
This material is based upon work
supported by the National
Aeronautics and Space
Administration under Contract
Number NNG15HZ39C.