Zthes

Zthes profile for SRU, version 1.0

2nd May 2006

Mike Taylor
$Id: zthes-srw-1.0.html,v 1.7 2006-05-02 13:16:27 mike Exp $

1. Introduction

This document provides a set of specifications prescribing the use of SRU to navigate remote thesauri. An SRU server conforming to this profile can expose its thesaurus to any conforming client, enabling its use in many applications. The profile applies both to ``SRU Classic'' (using HTTP GET as its transport) and SRU over SOAP (previously known as SRW).

This document is to be read in conjunction with version 1.0 of the Zthes abstract model.

This version of the Zthes SRU profile, 1.0, corresponds to version 1.0 of the Zthes Z39.50 profile.

The identifier for this profile is the URI http://zthes.z3950.org/srw/1.0/

2. Searching

Queries in SRU are expressed in CQL (Contextual Query Language), using indexes drawn from the CQL, Record Metadata (Rec) and Dublin Core (DC) context sets, and from version 1.0.1 (not version 1.0) of the Zthes context set.

Servers must support searches on the following indexes:

Context Set Index Name Search in Element
Record Metadata identifier termID
Dublin Core title termName
Zthes qual termQualifier
CQL anywhere all elements

In a Zthes record, the term-name is considered to be the title, hence the use of the dc.title index to search it.

(It's cute, but completely accidental, that the four core queries use indexes taken from four different context sets.)

Servers are also encouraged to support searches using the following additional indexes:

Context Set Index Name Search in Element
Zthes admin thesAdmin
Zthes type termType
Record Metadata languageCode termLanguage
Zthes vocab termVocabulary
Zthes cat termCategory
Zthes status termStatus
Zthes approval termApproval
Dublin Core description termNote
Record Metadata creationDate termCreatedDate
Record Metadata creationAgentName termCreatedBy
Record Metadata lastModificationDate termModifiedDate
Record Metadata lastModificationAgentName termModifiedBy
Record Metadata modificationAgentName either termCreatedBy
or termModifiedBy
Zthes nt, bt, use, uf, rt, le relatedTermID

3. Retrieval

Servers should support retrieval using version 1.0 of the Zthes XML schema. This schema's identifying URI in SRU is http://zthes.z3950.org/xml/1.0/

4. Explain

Information about SRU-accessible Zthes services may be described using SRU's explain service, ZeeRex, as follows:

  • A database can be recognised as a Zthes-compliant thesaurus if the ZeeRex record describing it has in its <configInfo> section a <supports> element with type="profile" and containing the identifier URI of this profile:
    <supports type="profile">http://zthes.z3950.org/srw/1.0/</supports>
           
  • A content database's ZeeRex record can indicate that one of its indexes uses a specified Zthes database as an authority by including a <configInfo> element inside the relevant <index> element, with type equal to zthesDatabase and with its content being the URL of the Zthes service. For example:
    <index>
      <!-- ... -->
      <configInfo>
        <supports type="zthesDatabase">http://sru.zthes.z3950.org/xyz</supports>
      </configInfo>
    </index>
           

5. Examples

The following examples are URLs using SRU-over-HTTP-GET transport. The URLs are here broken over multiple lines for clarity, but in use must consist of a single long line.

5.1. Get the term whose unique identifier is 12345

http://zthes.example.com/sru/mythes?
	version=1.1&
	operation=searchRetrieve&
	query=rec.identifier=12345&
	maximumRecords=1&
	recordSchema=zthes
     

5.2. Find all narrower terms of terms 12345

http://zthes.example.com/sru/mythes?
	version=1.1&
	operation=searchRetrieve&
	query=zthes.nt=12345&
	maximumRecords=9999
     

(The previous example explicitly requested the zthes record schema; however, this should not be necessary when interrogating a Zthes-profiled server, so the recordSchema parameter was omitted from this example.)