Submit a Query

Verb name: Search
Verb version: 1.0
Required arguments: field, value, op
Optional arguments: set, sort, startResult, resultSize
MIMETYPE of response: text/xml

Verb Description

Specifies a search request to an index server. Arguments indicate search criteria and the order and amount of search results to be returned. The response is a structured list of documents that match the search criteria, and includes a results summary. It is possible to request the results summary only.

Arguments

The arguments field[n] and value[n] enumerate, beginning with 1. For op[n], see below. [if we set a max value for n (in the 3-5 range), we can write a schema to validate responses.]

Supported values for bibliographic field arguments may vary among index servers. The DescribeVerb verb returns the set of field values supported by a particular server. The arguments and values that must be submitted and/or supported are marked "required" in the following:

Rules for field matching: the value of the value argument is treated as a single string (word or phrase) and matched exactly as submitted; the wild card symbol * should be used to indicate truncation.

Operator Precedence: queries are assumed to be submitted using Reverse Polish Notation (RPN). See the separate document on RPN Notation

Response

Unless there is an error, all responses include a single resultsSummary and zero to many record elements.

A well-formed query that executes properly and yet has no matches is not considered an error. In this case, a resultsSummary would be returned, but no record elements.

Error Codes

Examples

Request

http://some.cgm.server/script?protocol=CGM
	&verb=Search&ver=1.0&set=math&endResult=100
	&field1=author&value1=todhunter&field2=title
	&value2=trigonometry&op2=and

Response

<?xml version="1.0" encoding="UTF-8"?>
  <CGM>
    <responseDate>2002-10-01T19:20:30Z</responseDate>
    <request verb="Search" ver="1.0" set="math" resultSize="100"
             field1="author" value1="todhunter" field2="title"
             value2="trigonometry" op2="and">
             http://some.cgm.server/script</request>
    <Search ver="1.0">
      <resultsSummary set="math" sort="title" totalResults="2"
                      startResult="1" resultSize="2" />
      <record>
        <identifier>cul.math/98765432</identifier>
        <title>Fun with Trigonometry</title>
        <author>Todhunter, I.</author>
        <author>Disney, W.</author>
        <pubdate>1888</date>
        <rank>2859</rank>
      </record>
      <record>
        <identifier>cul.math/00640001</identifier>
        <title>Spherical Trigonometry</title>
        <author>Todhunter, I.</author>
        <pubdate>1886</date>
        <rank>2857</rank>
      </record>
    </Search>
  </CGM>

Request

http://some.cgm.server/script?protocol=CGM
	&verb=Search&ver=1.0&set=math&startResult=0
	&field1=fulltext&value1=geometry&field2=fulltext
	&value2=trigonometry&op2=and
http://some.cgm.server/script?protocol=CGM
	&verb=Search&ver=1.0&set=math&resultSize=0
	&field1=fulltext&value1=geometry&field2=fulltext
	&value2=trigonometry&op2=and

These two requests are equivalent. The response below is to the first one.

Response

<?xml version="1.0" encoding="UTF-8"?>
  <CGM>
    <responseDate>2002-10-02T19:20:30Z</responseDate>
    <request verb="Search" ver="1.0" set="math" startResult="0"
             field1="fulltext" value1="geometry" field2="fulltext"
             value2="trigonometry" op2="and">
             http://some.cgm.server/script</request>
    <Search ver="1.0">
      <resultsSummary set="math" sort="title" totalResults="1024"
                      startResult="0" resultSize="0" />
    </Search>
  </CGM>

Request

http://some.cgm.server/script?protocol=CGM
	&verb=Search&ver=1.0&set=math
	&field1=author&value1=bush&field2=fullbib
	&value2=basic%20counting&op2=and

Response

<?xml version="1.0" encoding="UTF-8"?>
  <CGM>
    <responseDate>2002-10-02T19:20:30Z</responseDate>
    <request verb="Search" ver="1.0" set="math" field1="author"
             value1="bush"field2="fullbib" value2="basic counting"
             op2="and">http://some.cgm.server/script
             </request>
    <Search ver="1.0">
      <resultsSummary set="math" sort="title" totalResults="0"
                      startResult="0" resultSize="0" />
    </Search>
  </CGM>

Verb History

Substantial reworking and extension of Dienst verb SearchBoolean, version 5.0.


Display a Document in Local Viewer

Verb name: Display
Verb version: 1.0
Required arguments: id
Optional arguments: none
MIMETYPE of response: will depend on request and viewer mechanism

Verb Description

Request to view a document in a repository's local viewer.

Arguments

Response

A repository can display a document however it chooses.

Error Codes

Examples

Request

http://some.cgm.server/script?protocol=CGM
	&verb=Display&ver=1.0&id=cul.math/00640001

Verb History

New to CGM.