MXG and OpenSearch
Those of you interested in lowering the barriers to inter-system searching should be interested in the work of the NISO MetaSearch Initiative. This group has been nibbling at the interoperability problem for some time and Task Group 3 (Search/Retrieve) has developed the MXG (for Metasearch XML Gateway) protocol. What this amounts to is a prescribed way to dumb-down SRU, almost all the way to Open Search, but doing it in a way that is compatible with SRU. The idea of all this is that, sooner or later, your system is going to need at least some of the facilities of SRU and using a protocol that is at least compatible to it will make everyone's life easier when that day comes.
Ralph LeVan has been active in both the SRU and MXG work (the Metasearch XML Gateway Implementors Guide is mostly his work) and has produced a 'Functional Matrix' that compares OpenSearch, the three levels of MXG, and SRU:
| OS 1.0 | MXG L1 | MXG L2 | MXG L3 | SRU | |
|---|---|---|---|---|---|
| Request Record Starting Point | • | • | • | • | • |
| Request Number of Records | ◊ | • | • | • | • |
| Request Record Schema | . | ◊ | • | • | • |
| Defined Query Grammar | . | . | . | ◊ | • |
| Specify sort Order | . | . | . | . | • |
| Specify Ranking Order | . | . | . | . | ◊ |
| Diagnostic Messages | . | • | • | • | • |
| XML Response | ◊ | • | • | • | • |
| Record Count In Response | ◊ | • | • | • | • |
| Records In Known Schema | ◊ | • | • | • | • |
• = Full Support, ◊ = Limited Support
I extracted this matrix from a presentation by Ralph and LC's Ray Denenberg at the Computers in Libraries 2006 workshop on Interoperability Standards and Searching Multiple Repositories.
Here's a short description of the MXG levels from the Implementors Guide:
- Level 1 defines a standard URL which will accommodate arbitrary query grammars.
- Level 2 extends Level 1 by adding the requirement that servers provide a standard XML record that defines the capabilities of the server.
- Level 3 extends Level 2 by adding the requirement that servers support a standard query grammar: CQL
It's probably worth mentioning that Levels 1 and 2 are non-compliant subsets of SRU. The recent SRU Implementors Group Meeting Report has a discussion of the effort to harmonize SRU with OpenSearch. It's actually fairly interesting reading -- SRU is under active development. Among other things mentioned is the definition of an OAI-PMH profile for SRU, something we've been doing here in OCLC Research for some time (i.e. OAI over SRU).
Thanks to Eric Childress for suggesting this post.
Thanks also to Ray Denenberg who pointed out the SRU meeting report and that the move towards compatibility between OpenSearch and SRU isn't currently being driven by the Metasearch initiative.
--Th

I disagree with OpenSearch being dumb, as simple is not the same thing as dumb :-)
Although I do like MXG, given the little I know about it: http://www.faganfinder.com/wp/2005/10/11/743/
Posted by: Michael Fagan | April 05, 2006 at 20:45
Oh, I should add that I was talking about OpenSearch 1.1, not 1.0 as is shown in the matrix.
Posted by: Michael Fagan | April 05, 2006 at 20:49