OAI-PMH

Aus GISpunkt HSR
Wechseln zu: Navigation, Suche

'Open Archives Initiative Protocol for Metadata Harvesting' (OAI-PMH). Ein Protokoll zum Einsammeln und Weiterverarbeiten von Metadaten.

  • An english documentation follows below.
  • Zum gepflegten HowTo OAI-PMH mit Kurzfassung (deutsch).

Siehe auch:


Description

This is part of a discussion about open source geodata (OSGeodata).

OAI-PMH is among the first on our short list for a metadata exchange protocol for the discovery of geodata. For OAI-PMH there exist quite some open source tools (see Weblinks).

What's left to do anyway is:

  1. Define a (lightweight) metadata exchange model.
  2. Make implementations for data providers. => See weblinks below or this tutorial (steps 1 to 8).

OAI-PMH is an metadata exchange protocol of type harvesting procotol as compared to search protocols. The protocol combines two so called providers: A data provider which serves XML metadata and a search provider (a harvester) which saves downloaded XML metadata in a searchable index.

Being an flexible protocol it does not depend on a single information model. The default, unqualified Dublic Core, can be extended or replaced by domain specific information models (see OSGeodata metadata exchange model).

  • Leightweight:
    • A low barrier interoperability specification
    • HTTP based, GET / POST requests, XML responses, there for RESTful, XML machinery only as needed.
  • Clear concepts:
    • Designed around metadata harvesting model; no live requests!
    • Metadata about resources, mandates unqualified Dublin Core (oai_dc) as default
    • Not a search protocol! That could be for example enhanced or merged versions of OpenSearch/GeoRSS and SRU/SRW besides WFS.
  • Extendable: Has extension mechanism for more domain specific metadata models, like the tbd OSGeodataMetadataModel
  • Stable: OAI has committed to making subsequent revisions of the protocol backwards compatible.
  • Established: Implemented - among others - by Google, CiteSeer and MSN as well as by dozens of open source tools, like OAICat (Java) or mod_oai (C, installed at 500 sites); see more tools in the Weblinks section below.

Sizes compared to SOAP: A OAI-PMH record is about 2,4 kB; a set of 100 records 18 kB. In SOAP a record is about 4,7 kB; a set of 100 records is 179 kB.

See OSGeodata_Discovery for a discussion of alternatives.

Architecture

OAI-PMH does harvesting and indexing before hand; so it scales and search functionality is up innovative search services as compared to distributed search in CAT/CSW (see below).

OAI-PMH uses following denotations of two logical groups of services and uses these for its client/server model (data=server, service=client): (from: Implementing the OAI-PMH - an introduction)

  • Data Providers (Open Archives, Repositories)
    • handle deposit/publishing of resources in archive
    • expose metadata about resources in archive
    • refer to entities who possess data/metadata and are willing to share this with others (internally or externally) via well-defined protocols (e.g. database servers or simple XML files).
    • normally: free access of metadata
    • not necessarily: free access to full texts / resources
  • Service Providers
    • are entities who harvest and store data from Data Providers through OAI interfaces in order to provide higher-level services to users (e.g. search engines)
    • offer single user-interface across all harvested metadata
    • offer (value-added) service on the basis of the metadata
    • may select certain subsets from Data Providers (set hierarchy, date stamp)
    • may enrich metadata

Note: Data provider may also be responsible for human-oriented (i.e. Web) interface to archive both functions may be offered by same 'service'.

OAI-PMH Architecture.png

Comparison of WFS, CAT/CSW and OAI-PMH

OAI-PMH vs. WFS or CSW

Why a comparison of OAI-PMH with WFS and not with CSW 2.1? CAT/CSW is based on a distributed query architecture and there's redundant spec. and therefore code to WFS. So, why another protocol when there is WFS?

  • OAI-PMH is a simple and strictly RESTful harvesting protocol based on Dublin Core (since 1995) whereas WFS is a query protocol which allows a RESTful or SOAP client to retrieve geospatial data encoded in GML (since 2000). See geodata discovery for more information about these two approaches.
  • WFS though originated in GIS covers a smaller community than OAI-PMH which today has a larger user base and is supported even by Google and Yahoo!.
  • As compared to CSW which does disctributed searching, OAI-PMH does gather/harvest metadata. So search in WFS/CSW is at best limited to the slowest server and to a least denominator of implemented specs because each server needs to implement exactly the same query functionality.
  • Both have in common that they can be made (WFS) or are (OAI-PMH) RESTful and both can be profiled to respond an metadata information model (to be defined, see metadata information model).
  • WFS needs to be profiled (spec. size is ~200 p.) whereas OAI-PMH needs probably to be extended (spec. size is ~50 p.) - so WFS seems more complex and more costly to implement or adapt but much depends on the needs (make sophisticated queries vs. harvesting?) and underlying the architecture (distributed online services vs. local indexing).
  • Both need a metadata information model.


CAT/CSW

CAT stands for 'Catalogue Services Specification' and CSW is the HTTP binding part of it. Distributed query like in CAT/CSW means that search is at best limited to the slowest server and to a least denominator of implementations. That is because in a distributed query each server needs to implement exactly the same (OGC filter) functionality.


WFS

  • WFS is short for 'Web Feature Service'.
  • Spec. size: About 100 pages plus mandatory reference to Filter spec. of about 40 pages, plus reference to GML 2 (60 pages).
  • Background: A de-facto standard in GIS world owned by OGC
  • Request operations (Basic WFS, read only WFS):
    • GetCapabilities - describe service capabilities;
    • DescribeFeatureType - describe structure of a feature type
    • GetFeature - retrieve feature instances
  • Query:
    • Standard query (c.f. Filter) includes spatial constraints (but no temporal?)
  • Response:
    • Must be GML 2 and may be other XML encodings.
  • Peculiarities:
    • Knows version negotiation (which isn't implemented yet...)
    • Uses URN as unique identifier
  • Availability and outreach of services, tools and (open source) software:
  • Expected changes to spec. (profile or extension):
    • Profile to KVP binding
    • Profile Filter to Boolean and Wildcard matches as well as 'within'
    • ...

OAI-PMH

  • OAI-PMH is short for 'Open Archives Initiative Protocol for Metadata Harvesting'. Note this is not a search protocol - that could be for example enhanced or merged versions of OpenSearch/GeoRSS and SRU/SRW besides WFS.
  • Spec. size: Version 2.0 still is < 50 pages(!)
  • Background: Was initiated by libraries, universities, museums and galleries to 'open access' (OA) free online availability of digital content.
  • Request operations (* denotes an operation which is minimally needed for a first implementation):
    • Identify (*) - describe an archive (similar to WFS' GetCapabilities)
    • ListMetadataFormats (*) - retrieve available metadata formats from archive
    • ListIdentifiers - abbreviated form of ListRecords, retrieving only headers
    • ListRecords (*) - harvest records from a repository (similar to WFS' GetFeature)
    • GetRecord - retrieve individual metadata record from a repository (also similar to WFS' GetFeature)
    • ListSets - retrieve set structure of a repository (optional)
  • Query:
    • Standard query includes temporal constraints (but no spatial yet).
  • Response:
    • Either an encoded error or unqualified Dublin Core XML or another format announced with ListMetadataFormats.
  • Peculiarities:
    • For identifiers URI must be used (similar requirement to WFS).
    • Has no version negotiation (but see operation Identify)
    • Knows incremental update (through a resumption token) but which is only sensibel when a response contains more than 1000 records.
    • Another spec. was released called 'OAI Static Repository and an OAI Static Repository Gateway'
    • OAI-PMH may respond results in compressed form which is handled at the HTTP-level (how RESTful!)
  • Availability and outreach of services, tools and (open source) software:
    • Open source software see OAI-PMH tools
    • Gateways available from publishing files to others
    • Google reads it as a Sitemaps file (how to submit), Yahoo! and Internet Archive uses it among others.
  • Expected changes to spec. (profile or extension):
    • special treatment of ID's?
    • Need to be extended if spatial constraints are needed here
    • Add version negotiation?
    • ...?

Specifications

The best thing to do in order to understand OAI-PMH check out the OAI Repository Explorer here at the official OAI-PMH tools page. More Tools and Demos see Weblinks section below.

Specifications:

See also HowTo OAI-PMH (german).

OAI-PMH implementations

In the domain of scholar knowledge dissemination they discuss similar issues like we have here. See e.g. Introduction to the IESR: A Registry of Collections and Services, by Hill and Ann Apps, MIMAS, Univ. of Manchester, 2006. (IESR's Extension to OAI-PMH Dublin Core)

Data Provider Services, demos and examples:

Service Providers:

Software and Tools:

Weblinks