<?xml version="1.0"?>
<?cocoon-process type="xslt"?>
<?xml-stylesheet href="dienst.xsl" type="text/xsl"?>
<!DOCTYPE SERVICE SYSTEM "dienst.dtd">
<SERVICE>
<SERVNAME>Index Service</SERVNAME>
<SERVDESC><P>The index service searches a set of descriptions of documents and return handles for those that match.  Typically an index service operates by harvesting metadata from one or more Repository services and storing that metadata in an easily searched index.  For more information, please see:  <A HREF="http://www.cs.cornell.edu/cdlrg/dienst/protocols/DienstProtocol.htm#4.2%20Index%20Service">http://www.cs.cornell.edu/cdlrg/dienst/protocols/DienstProtocol.htm#4.2%20Index%20Service</A>.</P></SERVDESC>
<BODY>
<VERB>
<VERBFUNC>Describe Verb</VERBFUNC>
<VERBNAME>Describe-Verb</VERBNAME>
<VERBVER>2.0</VERBVER>
<NSF-DFG>req</NSF-DFG>
<FIXEDARGS>value <!-- verb --></FIXEDARGS>
<KEYWDARGS> none</KEYWDARGS>
<MIMETYPE>text/xml</MIMETYPE>
<STATUSCODES>200, 400</STATUSCODES>
<VERBDESC><P>Returns a structured response that contains a list, where each element of the list provides information on a version of the specified verb that is supported by this service. The following information may be provided at the verb or version level.</P>
<UL>
<LI><TT>description</TT>, description of the verb or a specific version</LI>
<LI><TT>note</TT>, information pertaining to the verb or a specific version</LI>
</UL>
<P>Each element of the list contains the following information:</P>
<UL>
<LI><TT>version number</TT> of the verb.</LI>
<LI><TT>arguments</TT>, a list of the names of the   <TT>fixed</TT> and <TT>keyword</TT> arguments, if any, accepted by the   verb <I>in that version</I>.</LI>
<LI><TT>example</TT> template of request to this repository, with fixed argument indicated in brackets</LI>
<LI><TT>returns</TT> optional, contains information about response format. </LI>
</UL>
<P>Note that a service may implement more than one version of a verb.</P></VERBDESC>
<EX-REQUEST>Protocol=Dienst;Service=Index;ver=2.0;verb=Describe-Verb;value=SearchBoolean <!-- was:  /Dienst/Index/2.0/Describe-Verb/SearchBoolean --></EX-REQUEST>
<EX-RESPONSE>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;Describe-Verb version="2.0"&gt;
    &lt;Verb name="SearchBoolean"&gt;
      &lt;description&gt;Handles search requests for this index server.
      &lt;/description&gt;
      &lt;version id="6.0"&gt;
        &lt;example&gt;http://broker.umdl.umich.edu/cgi/b/broker/broker?protocol=Dienst;Service=Index;ver=6.0;verb=SearchBoolean&lt;/example&gt;
<!-- I guess we need a change to the data model or to "arguments" -->
        &lt;arguments&gt;
          &lt;keyword&gt;
            &lt;arg name="title" /&gt;
            &lt;arg name="itemno" /&gt;
            &lt;arg name="author" /&gt;
            &lt;arg name="pubtype" /&gt;
            &lt;arg name="subject" /&gt;
            &lt;arg name="language" /&gt;
            &lt;arg name="fullbib" /&gt;
            &lt;arg name="abstract" /&gt;
            &lt;arg name="pubdate" /&gt;
            &lt;arg name="publisher" /&gt;
            &lt;arg name="authority" /&gt;
            &lt;arg name="added-after" /&gt;
          &lt;/keyword&gt;
        &lt;/arguments&gt;
        &lt;arguments&gt;
          &lt;keyword&gt;
            &lt;arg name="fieldN" /&gt;
            &lt;arg name="valueN" /&gt;
            &lt;arg name="opN" /&gt;
          &lt;/keyword&gt;
        &lt;/arguments&gt;
        &lt;arguments&gt;
          &lt;keyword&gt;
            &lt;arg name="and" /&gt;
            &lt;arg name="or" /&gt;
            &lt;arg name="not" /&gt;
            &lt;arg name="within" /&gt;
            &lt;arg name="including" /&gt;
          &lt;/keyword&gt;
        &lt;/arguments&gt;
      &lt;/version&gt;
    &lt;/Verb&gt;
  &lt;/Describe-Verb&gt;</EX-RESPONSE>
</VERB>
<VERB>
<VERBFUNC>Get Tags Returned from a Query</VERBFUNC>
<VERBNAME>Header-Tags</VERBNAME>
<VERBVER>1.0</VERBVER>
<NSF-DFG>mod</NSF-DFG>
<FIXEDARGS>none </FIXEDARGS>
<KEYWDARGS> none</KEYWDARGS>
<MIMETYPE>text/xml</MIMETYPE>
<STATUSCODES>200, 400</STATUSCODES>
<VERBDESC><P>Return a structured response that is a list of the information elements that are returned from a SearchBoolean request.</P></VERBDESC>
<EX-REQUEST>Protocol=Dienst;Service=Index;ver=1.0;verb=Header-Tags <!-- was:  /Dienst/Index/1.0/Header-Tags --></EX-REQUEST>
<EX-RESPONSE>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;Header-Tags version="1.0"&gt;
    &lt;tag&gt;handle&lt;/tag&gt;
    &lt;tag&gt;rank&lt;/tag&gt;
    &lt;tag&gt;author&lt;/tag&gt;
    &lt;tag&gt;title&lt;/tag&gt;
    &lt;tag&gt;date&lt;/tag&gt;
  &lt;/Header-Tags&gt;
</EX-RESPONSE>
</VERB>
<VERB>
<VERBFUNC>Submit a Query</VERBFUNC>
<VERBNAME>SearchBoolean</VERBNAME>
<VERBVER>6.0</VERBVER>
<NSF-DFG>mod</NSF-DFG>
<FIXEDARGS>none </FIXEDARGS>
<KEYWDARGS> see below</KEYWDARGS>
<MIMETYPE>text/xml</MIMETYPE>
<STATUSCODES>200, 400</STATUSCODES>
<VERBDESC><P>Specifies a search request to the index server. Keyword Arguments are a set of bibliographic fields and values specifying the search criteria. Returns a structured response that is a list of each document that matches the search criteria.  Each element of the list has the following contents:</P>
<UL>
<LI>The <TT>handle</TT> of the document. </LI>
<LI>The <TT>relevance information<!-- replaces "ranking score" --></TT> of the document for 
  the specific query, if available.  </LI>
<LI>The <TT>free-text title</TT> of the document, 
  if available </LI>
<LI>The <TT>author(s)</TT> of the document, if 
  available.<!--   Multiple authors are delimited by a colon (:) character.  -->  Each 
  author is in <TT>last, first middle</TT> format. </LI>
<LI>The <TT>date of publication</TT> of the 
  document in ISO 8601 format.  The exact meaning of the term "date of 
  publication" is determined by the administrator of the index service.  It 
  is included in the record that is returned so that user interface services may 
  use the date for ordering of a result set. </LI>
</UL>
<P>Note that clients should not assume any logical ordering of the records 
returned.</P>
<P>Bibliographic Field Arguments:</P>
<P>Valid bibliographic field arguments can vary among index servers.  
  The <TT>Describe-Verb</TT> verb returns the set of field 
  arguments for a particular server.  The minimal and standard set of 
  bibliographic field arguments is as follows:</P>
<UL>
<LI><B>Parameters</B> (available in enumerated form, as in field1, field2, etc.)<UL>
<LI>field</LI>
<LI>value</LI>
<LI>operator</LI></UL></LI>
<LI><B>Fields searched</B><UL>
<LI>title (req)</LI>
<LI>itemno (opt)</LI>
<LI>author (req)</LI>
<LI>pubtype (req, indicates whether monograph or serial))</LI>
<LI>subject (opt)</LI>
<LI>language (req)</LI>
<LI>fullbib (req)</LI>
<LI>abstract (opt)</LI>
<LI>pubdate (req)</LI>
<LI>publisher (req)</LI>
</UL></LI>
<LI><B>Operators</B><UL>
<LI>and (req)</LI>
<LI>or (req)</LI>
<LI>not (opt)</LI>
<LI>within (opt)</LI>
<LI>including (opt)</LI>
</UL></LI></UL>
<!-- replaced by our list <DL>
<DT><TT>title</TT></DT>
<DD>words from the title. </DD>
<DT><TT>author</TT> </DT>
<DD>author&#8217;s last or first name. </DD>
<DT><TT>abstract</TT> </DT>
<DD>words from the abstract. </DD>
<DT><TT>keywords</TT> </DT>
<DD>words from the any of the fields. </DD>
<DT><TT>boolean</TT> </DT>
<DD>The connective between the above operators, either <TT>and</TT> (the 
  default) or <TT>or</TT>. </DD></DL> -->
<P>Scope Argument:</P>
<P>Two additional fields are available:  <!-- Two additional arguments are not affected by the boolean, rather it is always considered to be joined with "and" to the Bibliographic Field Arguments.--></P>
<DL>
<DT><TT>authority</TT> </DT>
<DD>the name of the authority in the index server to which the search is to be   limited. The default is <TT>all</TT> authorities. The <TT>authority</TT> argument may be repeated, in which case the the search is carried out in each authority (effectively or&#8217;ing the authority arguments).</DD>
<DT><TT>added-after</TT></DT>
<DD>limits the list to those 
  handles for documents that were added or modified since <I>time</I>, a 
  universal time expressed in ISO 8601 format. If the server is not able to 
  determine date of modification to the resolution of a day, or if the server is 
  not able to selectively extract records on a time scale of a day, the server 
  may return additional records, e.g. all those modified during the week, month, 
  or even century containing the date. </DD></DL>
<P>Rules for bibliographic field matching:  A token in a field is either an unquoted word or a quoted string. Tokens are matched to bibliographic entries according to the following rules:</P>
<UL>
<LI>Words or phrases are matched exactly as submitted; the wild card symbol <TT>*</TT> should be used to indicate truncation.<!-- replaces:  A word matches any word in the respective field that begins with  respective word. For example, the word <TT>comp</TT> matches "computer", "computation", "comprehensive", etc.--> </LI>
<LI><!-- removed:  The value for a keyword field may contain the logical connectors "and" and "or". For example, "robotics or vision" in the <TT>abstract</TT> field, will return documents that have the word "robotics" or "vision" in their abstracts.  "robotics and vision" in the <TT>abstract</TT> field, will return documents that have both the word "robotics" and "vision" in their abstracts. Multiple words that are not separated by "and" are assumed to be "and" separated. For example, "computer vision" in the <TT>abstract</TT> field, will return documents that have both the words "computer" and "vision" in their abstracts. Finally, parentheses may be used to group words. For example, "Gries or (Teitelbaum and Field)" in the <TT>author</TT> field, will return documents authored by "Gries" or by "Teitelbaum" and "Field". --></LI>
</UL>
</VERBDESC>
<EX-REQUEST>Protocol=Dienst;Service=Index;ver=6.0;verb=SearchBoolean;field1=author;value1=davis;op1=or;field2=author;value2=fox <!-- was:  /Dienst/Index/5.0/SearchBoolean?author=davis+or+fox --></EX-REQUEST>
<EX-REQUEST>Protocol=Dienst;Service=Index;ver=6.0;verb=SearchBoolean;field1=author;value1=donald;op1=and;field2=title;value2=robot <!-- was:  /Dienst/Index/5.0/SearchBoolean?author=donald&amp;title=robot --></EX-REQUEST>
<EX-REQUEST>Protocol=Dienst;Service=Index;ver=6.0;verb=SearchBoolean;field1=author;value1=donald;op1=or;field2=title;value2=computer+vision;op2=and;field3=authority;value3=xxx <!-- was:  /Dienst/Index/5.0/SearchBoolean?author=donald&amp;title=computer+vision&amp;boolean=or&amp;authority=xxx --></EX-REQUEST>
<EX-RESPONSE>
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;SearchBoolean version="6.0"&gt;
    &lt;record&gt;
       &lt;handle&gt;handlecorp/1112&lt;/handle&gt;
       &lt;rank&gt;2857&lt;/rank&gt;
       &lt;author&gt;Doe, J.&lt;/author&gt;
       &lt;author&gt;Public, J. Q.&lt;/author&gt;
       &lt;title&gt;Answering Queries&lt;/title&gt;
       &lt;date&gt;19941106&lt;/date&gt;
    &lt;/record&gt;
    &lt;record&gt;
       &lt;handle&gt;handlecorp/1110&lt;/handle&gt;
       &lt;rank&gt;2859&lt;/rank&gt;
       &lt;author&gt;Mouse, M.&lt;/author&gt;
       &lt;author&gt;Disney, W.&lt;/author&gt;
       &lt;title&gt;Success with Cartoons&lt;/title&gt;
       &lt;date&gt;19941106&lt;/date&gt;
    &lt;/record&gt;
  &lt;/SearchBoolean&gt;</EX-RESPONSE>
</VERB>
<VERB>
<VERBFUNC>List Verbs</VERBFUNC>
<VERBNAME>List-Verbs</VERBNAME>
<VERBVER>2.0</VERBVER>
<NSF-DFG>yes</NSF-DFG>
<FIXEDARGS>none </FIXEDARGS>
<KEYWDARGS>none</KEYWDARGS>
<MIMETYPE>text/xml</MIMETYPE>
<STATUSCODES>200, 400</STATUSCODES>
<VERBDESC><P>Returns a structured response containing the name of the verbs defined by this service.</P></VERBDESC>
<EX-REQUEST>Protocol=Dienst;Service=Index;ver=2.0;verb=List-Verbs <!-- was:  /Dienst/Index/2.0/List-Verbs --></EX-REQUEST>
<EX-RESPONSE>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;List-Verbs version="2.0"&gt;
    &lt;verb&gt;SearchBoolean&lt;/verb&gt;
    &lt;verb&gt;List-Verbs&lt;/verb&gt;
  &lt;/List-Verbs&gt;</EX-RESPONSE>
</VERB>
</BODY>
</SERVICE>
