c19dde29fd29e56662feb0660ff30e6b39bdd539
[metaproxy-moved-to-github.git] / etc / zeerex-explain.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2
3 <!-- $Id: zeerex-explain.xml,v 1.3 2006-09-08 12:52:02 marc Exp $ -->
4
5 <!-- this file configures the SRU/SRW explain response -->
6 <!-- see: http://explain.z3950.org/dtd/commentary.html -->
7 <!-- validate this using zeerex-2.0.xsd -->
8 <!-- http://explain.z3950.org/dtd/zeerex-2.0.xsd -->
9 <!-- Extensions see: http://explain.z3950.org/dtd/extensions.html -->
10 <!-- Other info:  Z39.92 -->
11
12 <explain xmlns="http://explain.z3950.org/dtd/2.0/"
13          xmlns:izx="http://indexdata.com/zeerex/1.0">
14
15   <!-- try stylesheet url: http://./?stylesheet=docpath/sru2.xsl -->
16   <serverInfo protocol="SRW/SRU/Z39.50">
17
18     <host>foo.indexdata.dk</host>
19     <port>80</port>
20     <!-- <database numRecs="1314" lastUpdate="2006-03-15 09-05-33">
21          Default</database> -->
22     <database>Default</database>
23         <!--<authentication>
24       <user>azaroth</user>
25       <group>agroup</group>
26       <password>squirrelfish</password>
27     </authentication>-->
28   </serverInfo>
29
30   <databaseInfo>
31
32     <title lang="en" primary="true">Metaproxy SRU/SRW/Z39.50 server</title>
33
34     <description lang="en" primary="true">
35       Test ZeeRex Explain for SRU  and CQL-to-PQF query Metaproxy filter
36     </description>
37
38     <author>Marc Cromme, Index Data Aps, 
39             http://www.indexdata.dk</author>
40
41     <contact>Marc Cromme, marc(at)indexdata(dot)com</contact>
42
43     <!--<langUsage codes="en fr">
44         The records are in English and French.
45         </langUsage>  -->
46     <!-- <extend>Partially crawled web data</extend> -->
47    
48     <history>
49       Implemented for Talis
50     </history>
51
52     <implementation  identifier="Metaproxy" version="0.??">
53       <title>Index Data Metaproxy http://www.indexdata.dk</title>
54     </implementation>
55     
56     <links> 
57       <link type="z39.50">http://foo.indexdata.dk:80</link>
58       <link type="srw">http://foo.indexdata.dk:80</link>
59       <link type="sru">http://foo.indexdata.dk:80</link>
60     </links>
61     
62   </databaseInfo>
63
64   <!--
65   <metaInfo>
66     <dateModified>2002-03-29 19:00:00</dateModified>
67     <aggregatedFrom> z39.50r://gondolin.hist.liv.ac.uk:210/IR-Explain-1?
68                    id=ghlau-1;esn=F;rs=XML </aggregatedFrom>
69     <dateAggregated>2002-03-30 06:30:00</dateAggregated>
70   </metaInfo>
71   -->
72
73
74
75   <!-- tricky problem of mapping PQF to CQL or 
76        other query forms (Opensearch?? -->
77   <!--
78   PQF query language evaluation in most natural order
79   boolean:            @and, @or, @not, @prox
80   boolean modifier:   @prox exclusion distance ordered relation which unit 
81                       @prox 0 3 1 2 k 2 term1 term2
82   attrset:            bib-1, exp-1, gils
83   1=Use:              4=Title 7=ISBN 8=ISSN 30=Date 62=Abstract 
84                       1003=Author 1016=Any
85   4=Structure:        1=Phrase  2=Word  3=Key  4=Year  5=Date  6=WordList
86   2=Relation:         1<   2<=  3=  4>=  5>  6!=  102=Relevance
87   5=Truncation:       1=Right  2=Left  3=L&R  100=No  101=#  102=Re-1  103=Re-2
88   6=Completeness:     1=Incompl subfield  2=Complete subfield  3=Complete field
89   3=Position:         1=First in Field  2=First in subfield  3=Any position
90   term:               fish, "fish and chips"
91   regexp:             ...
92   -->
93   <!--
94   CQL query language evaluation in most natural order
95   boolean:            and, or, not, prox
96   boolean mod set:    and/rel.sum (cql is default)
97   boolean modifier:   distance, unit, ordered, unordered
98   boolean mod rel:    =, <, >, prox/distance=1, prox/distance>2
99   boolean mod qual:   prox/distance=1/unit=word, prox/distance>2/ordered 
100   set name:           cql, rec, dc
101   index name:         cql.all, cql.serverChoice, rec.id, dc.title
102   relation:           <, <=, =, >, >=, <>, exact, all, any
103   relation mod set:   cql (default), rel
104   relation mod name:  relevant, phonetic, stem 
105                       any/relevant/rel.CORI 
106   relation mod qual:  word, string, isoDate, number, uri, masked, unmasked
107                       =/relevant=word
108   anchoring:          ^left, right^, "^cat in the hat" 
109   masking char:       *, ?, c*t, c?t 
110   term:               fish, "fish and chips"
111   -->
112
113   <queryInfo
114       xmlns="http://indexdata.com/query"
115       version="1.0">
116     <syntax name="cql" 
117             identifier=""
118             location="">
119       <boolean name="and"/>
120       <boolean name="or"/>
121       <boolean name="not"/>
122       <!--
123       <boolean name="prox">
124         <boolean_mod_rel name="="/>
125         <boolean_mod name="distance">
126           <boolean_mod_rel name="="/>
127           <boolean_mod_rel name="&lt;"/>
128           <boolean_mod_rel name="&gt;"/>
129         </boolean_mod>
130         <boolean_mod name="unit">
131           <boolean_mod_qual name="sentence"/>
132           <boolean_mod_qual name="word"/>
133         </boolean_mod>
134         <boolean_modifier name="ordered" name=""/>
135         <boolean_modifier name="unordered" name=""/>
136       </boolean>
137       -->
138
139       <relation name="=" default="true"/>
140
141       <set name="cql" default="true" 
142            identifier="info:srw/cql-context-set/1/cql-v1.1">
143         <title>CQL Standard Set</title>
144         <index name="all" default="true">
145           <relation name="=" default="true">
146             <relation_mod_set name="cql" default="true">
147               <relation_mod name="relevant"/>
148             </relation_mod_set>
149             <relation_mod_set name="rel">
150               <relation_mod name="foo"/>
151               <relation_mod name="bar"/>
152             </relation_mod_set>
153           </relation>
154           <mask name="*"/>
155           <mask name="?"/>
156           <anchor name="^" type="right"/>
157           <anchor name="^" type="left"/>
158         </index>
159         <index name="serverChoice"/>
160       </set>
161       <set name="rec" identifier="info:srw/cql-context-set/2/rec-1.0">
162         <title>Record Standard Set</title>
163         <index name="id" default="true"/>
164       </set>
165       <set name="dc" identifier="info:srw/cql-context-set/1/dc-v1.1">
166         <title>Dublin Core Set</title>
167         <index name="title"/>
168         <index name="description"/>
169         <index name="author" identifier="creator"/>
170         <index name="creator"/>
171         <index name="date">
172           <relation name="=" default="true"/>
173           <relation name="&lt;"/>
174           <relation name="&gt;"/>
175         </index>
176         <index name="publisher"/>
177       </set>
178     </syntax>
179     <syntax name="pqf" 
180             identifier=""
181             location="">
182       <set name="bib1" identifier="1.2.840.10003.3.1">
183         <title>BIB-1 Z39.50 Standard Set</title>
184         <structure name="2" default="true"/>
185         <structure name="1"/>
186         <relation name="3"/>
187         <truncation name="100"/>
188         <completeness name="3"/>
189         <position name="3"/>
190         <use name="4">
191           <title>Title</title>
192         </use>
193         <use name="7">
194           <title>ISBN</title>
195           <structure name="3">
196             <relation name="3" default="true"/>
197             <relation name="1"/>
198             <relation name="4"/>
199           </structure>
200         </use>
201         <use name="8">
202           <title>ISSN</title>
203           <structure name="3"/>
204         </use>
205         <use name="30">
206           <title>Date</title>
207           <structure name="5"/>
208         </use>
209         <use name="62">
210           <title>Abstract</title>
211         </use>
212         <use name="1003">
213           <title>Author</title>
214         </use>
215         <use name="1016">
216           <title>Any</title>
217           <structure name="2">
218             <relation name="3" default="true"/>
219             <relation name="102">
220               <truncation name="100" default="true"/>
221               <truncation name="101"/>
222               <truncation name="102"/>
223             </relation>
224           </structure>
225         </use>
226       </set>
227       <set name="exp1" identifier="">
228         <title>Explain Z39.50 Standard Set</title>
229       </set>
230       <set name="gils" identifier="">
231         <title>Gils Z39.50 Standard Set</title>
232       </set>
233     </syntax>
234     <syntax name="ccl" 
235             identifier=""
236             location="">
237       <title xml:lang="en">CCL Query Language - English Configuration</title>
238       <title xml:lang="da">CCL Søgesprog - Dansk Konfiguration</title>
239       <boolean xml:lang="en" name="and" default="true" identifier="and"/>
240       <boolean xml:lang="en" name="or" identifier="or"/>
241       <boolean xml:lang="en" name="not" identifier="not"/>
242       <boolean xml:lang="da" name="og" default="true" identifier="and"/>
243       <boolean xml:lang="da" name="eller" identifier="or"/>
244       <boolean xml:lang="da" name="ikke" identifier="not"/>
245
246       <relation name="=" default="true"/>
247
248       <index xml:lang="en" name="title"/>
249       <index xml:lang="en" name="description" default="true"/>
250       <index xml:lang="en" name="author" identifier="creator"/>
251       <index xml:lang="en" name="creator"/>
252       <index xml:lang="en" name="publisher"/>
253       <index xml:lang="da" name="titel" identifier="title"/>
254       <index xml:lang="da" name="beskrivelse"  default="true" 
255              identifier="description"/>
256       <index xml:lang="da" name="author" identifier="creator"/>
257       <index xml:lang="da" name="ophav" identifier="creator"/>
258       <index xml:lang="da" name="editor" identifier="publisher"/>
259     </syntax>
260   </queryInfo>
261
262
263
264   <indexInfo>
265     <set name="cql" identifier="info:srw/cql-context-set/1/cql-v1.1">
266       <title>CQL Standard Set</title>
267     </set>
268     <set name="rec" identifier="info:srw/cql-context-set/2/rec-1.0">
269       <title>Record Standard Set</title>
270     </set>
271     <set name="dc" identifier="info:srw/cql-context-set/1/dc-v1.1">
272       <title>Dublin Core Set</title>
273     </set>
274     <set name="bib1" identifier="1.2.840.10003.3.1">
275       <title>BIB-1 Z39.50 Standard Set</title>
276     </set>
277
278
279     <!-- CQL standard index -->
280     <index search="true" scan="true" sort="false">
281       <title lang="en">CQL Server Choice</title>
282       <map><name set="cql">serverChoice</name></map>
283       <map>
284         <attr type="1" set="bib1">text</attr>
285       </map>
286     </index>
287     <index search="true" scan="true" sort="false">
288       <title lang="en">CQL All</title>
289       <map><name set="cql">all</name></map>
290       <map>
291         <attr type="1" set="bib1">text</attr>
292       </map>
293     </index>
294
295     <!-- Record ID index -->
296     <index search="true" scan="true" sort="false">
297       <title lang="en">Record ID</title>
298       <map><name set="rec">id</name></map>
299       <map>
300         <attr type="1" set="bib1">rec:id</attr>
301         <attr type="4" set="bib1">3</attr>
302       </map>
303     </index>    
304
305     <!-- Dublin Core Indexes -->
306     <index search="true" scan="true" sort="false">
307       <izx:cost value="0"/>
308       <title lang="en">DC Title</title>
309       <map><name set="dc">title</name></map>
310       <map>
311         <attr type="1" set="bib1">dc:title</attr>
312       </map>
313     </index>
314     <index search="true" scan="true" sort="false">
315       <title lang="en">DC Creator</title>
316       <map><name set="dc">creator</name></map>
317       <map>
318         <attr type="1" set="bib1">dc:creator</attr>
319       </map>
320     </index>
321     <index search="true" scan="true" sort="false">
322       <title lang="en">DC Subject</title>
323       <map><name set="dc">subject</name></map>
324       <map>
325         <attr type="1" set="bib1">dc:subject</attr>
326       </map>
327     </index>
328     <index search="true" scan="true" sort="false">
329       <title lang="en">DC Description</title>
330       <map><name set="dc">description</name></map>
331       <map>
332         <attr type="1" set="bib1">dc:description</attr>
333         <!-- <attr type="2" set="bib1">102</attr> -->
334       </map>
335     </index>
336     <index search="true" scan="true" sort="false">
337       <title lang="en">DC Publisher</title>
338       <map><name set="dc">publisher</name></map>
339       <map>
340         <attr type="1" set="bib1">dc:publisher</attr>
341       </map>
342     </index>
343     <index search="true" scan="true" sort="false">
344       <title lang="en">DC Contributor</title>
345       <map><name set="dc">contributor</name></map>
346       <map>
347         <attr type="1" set="bib1">dc:contributor</attr>
348       </map>
349     </index>
350     <index search="true" scan="true" sort="false">
351       <title lang="en">DC Date</title>
352       <map><name set="dc">date</name></map>
353       <map>
354         <attr type="1" set="bib1">dc:date</attr>
355       </map>
356     </index>
357     <index search="true" scan="true" sort="false">
358       <title lang="en">DC Type</title>
359       <map><name set="dc">type</name></map>
360       <map>
361         <attr type="1" set="bib1">dc:type</attr>
362       </map>
363     </index>
364     <index search="true" scan="true" sort="false">
365       <title lang="en">DC Format</title>
366       <map><name set="dc">format</name></map>
367       <map>
368         <attr type="1" set="bib1"></attr>
369       </map>
370     </index>
371     <index search="true" scan="true" sort="false">
372       <title lang="en">DC Identifier</title>
373       <map><name set="dc">identifier</name></map>
374       <map>
375         <attr type="1" set="bib1">dc:identifier</attr>
376       </map>
377     </index>
378     <index search="true" scan="true" sort="false">
379       <title lang="en">DC Source</title>
380       <map><name set="dc">source</name></map>
381       <map>
382         <attr type="1" set="bib1">dc:source</attr>
383       </map>
384     </index>
385     <index search="true" scan="true" sort="false">
386       <title lang="en">DC Language</title>
387       <map><name set="dc">language</name></map>
388       <map>
389         <attr type="1" set="bib1">dc:language</attr>
390       </map>
391     </index>
392     <index search="true" scan="true" sort="false">
393       <title lang="en">DC Relation</title>
394       <map><name set="dc">relation</name></map>
395       <map>
396         <attr type="1" set="bib1">dc:relation</attr>
397       </map>
398     </index>
399     <index search="true" scan="true" sort="false">
400       <title lang="en">DC Coverage</title>
401       <map><name set="dc">coverage</name></map>
402       <map>
403         <attr type="1" set="bib1">dc:coverage</attr>
404       </map>
405     </index>
406     <index search="true" scan="true" sort="false">
407       <title lang="en">DC Rights</title>
408       <map><name set="dc">rights</name></map>
409       <map>
410         <attr type="1" set="bib1">dc:rights</attr>
411       </map>
412     </index>
413
414   </indexInfo>
415
416   <!-- Z39.50 stuff ... not allowed in one and the same explain together with 
417        <schemaInfo>, sic ..
418   <recordInfo>
419     <recordSyntax identifier="1.2.840.10003.5.109.10">
420       <elementSet name="F">
421         <title lang="en" primary="true">Full XML Record</title>
422       </elementSet>
423       <elementSet name="B">
424         <title lang="en" primary="true">Brief XML Record</title>
425       </elementSet>
426     </recordSyntax>
427   </recordInfo>
428   -->
429
430   <retrievalInfo 
431       xmlns="http://indexdata.com/retrieval"
432       version="1.0">
433     <retrieval 
434         syntax="grs-1"
435         identifier="1.2.840.10003.5.105"
436         location="http://www.loc.gov/z3950/agency/asn1.html#RecordSyntax-generic"/>
437     <retrieval 
438         syntax="marc21" 
439         identifier="1.2.840.10003.5.10"
440         location="http://www.loc.gov/marc/">
441       <title lang="en">Marc21</title>
442       <elementset name="F">
443         <title lang="en" primary="true">Full Marc21 Record</title>
444         <backend syntax="usmarc" name="F"/>
445       </elementset>
446       <elementset name="B">
447         <title lang="en" primary="true">Brief Marc21 Record</title>
448         <backend syntax="usmarc" name="B"/>
449       </elementset>
450     </retrieval>
451
452     <retrieval 
453         syntax="xml" 
454         identifier="1.2.840.10003.5.109.10"
455         location="http://www.w3.org/XML/">
456         <!-- location="http://www.w3.org/TR/2006/REC-xml-20060816/"  -->
457       <title lang="en">XML</title>
458       <elementset
459           identifier="info:srw/schema/1/marcxml-v1.1"
460           location="http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd"
461           name="marcxml">
462         <title lang="en">MarcXML</title>
463         <backend syntax="usmarc" name="F"/>
464         <convert>
465           <marc inputformat="marc" outputformat="marcxml"
466                 inputcharset="marc-8"/>
467         </convert>
468       </elementset>
469       
470       <elementset 
471           name="marcxchange">
472         <title lang="en">Marc XChange</title>
473         <backend syntax="usmarc" name="F"/>
474         <convert>
475           <marc inputformat="marc" outputformat="marcxchange"
476                 inputcharset="marc-8"/>
477         </convert>
478       </elementset>
479       
480       <elementset 
481           identifier="info:srw/schema/1/dc-v1.1"
482           location="http://www.loc.gov/standards/sru/dc-schema.xsd"
483           name="dc">
484         <title lang="en">Dublin Core</title>
485         <backend syntax="usmarc" name="F"/>
486         <convert>
487           <marc inputformat="marc" outputformat="marcxml"
488                 inputcharset="marc-8"/>
489           <xslt stylesheet="../etc/MARC21slim2DC.xsl"/>
490         </convert>
491       </elementset>
492     </retrieval>
493   </retrievalInfo>
494
495 <!--
496   <schemaInfo>
497     <schema identifier="info:srw/schema/2/rec-1.0"
498             location="http://srw.cheshire3.org/schemas/rec/1.0/rec.xsd" 
499             name="rec"
500             retrieve="true">
501       <title lang="en">Record Metadata</title>
502       
503     </schema>
504     <schema identifier="info:srw/schema/1/dc-v1.1"
505             location="http://www.loc.gov/standards/sru/dc-schema.xsd" 
506             name="dc"
507             retrieve="true">
508       <title lang="en">Dublin Core</title>
509     </schema>
510     <schema identifier="info:srw/schema/1/mods-v3.0"
511             location="http://www.loc.gov/standards/mods/v3/mods-3-0.xsd"
512             name="mods"
513             retrieve="true">
514       <title lang="en">Mods</title>
515     </schema>
516     <schema identifier="info:srw/schema/1/marcxml-v1.1"
517             location="http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd"
518             name="marcxml"
519             retrieve="true">
520       <title lang="en">MarcXML</title>
521     </schema>
522   </schemaInfo>
523 -->
524  
525   <configInfo>
526
527     <!-- searchRetrieve settings -->
528
529     <!-- default context set -->
530     <default type="contextSet">cql</default>
531
532     <default type="index">all</default>
533
534     <!-- default relation -->
535     <default type="relation">=</default>
536
537     <supports type="relation" 
538               izx:type="2" izx:set="bib1" izx:value="1">&lt;</supports>
539     <supports type="relation" 
540               izx:type="2" izx:set="bib1" izx:value="2">&lt;=</supports>
541     <supports type="relation"
542               izx:type="2" izx:set="bib1" izx:value="3">=</supports> 
543     <supports type="relation"
544               izx:type="2" izx:set="bib1" izx:value="4">&gt;=</supports>
545     <supports type="relation"
546               izx:type="2" izx:set="bib1" izx:value="5">&gt;</supports>
547
548
549     <!-- <supports type="relation">&lt;&gt;</supports> --><!-- 2=6 DEAD !!! -->
550     <!-- <supports type="relation">all</supports> --><!-- 2=3 OK -->
551     <!-- <supports type="relation">any</supports> --><!-- 2=3 OK -->
552
553     <supports type="relationModifier"
554               izx:type="2" izx:set="bib1" izx:value="102">relevant</supports>
555
556     <!-- <supports type="relationModifier"
557               izx:type="2" izx:set="bib1" izx:value="100">phonetic</supports> -->
558     <!-- <supports type="relationModifier"
559               izx:type="2" izx:set="bib1" izx:value="101">stem</supports> -->
560
561
562     <!-- support proximity (Empty) -->
563     <!-- <supports type="proximity"></supports> --> <!-- DEAD,  title = (house prox/distance=1/unit=word  the) FAILS -->
564
565
566     <!-- proximity modifier supported by the server or index 
567          (relation, distance, unit, ordering) -->
568     <!-- <supports type="proximityModifier"></supports> -->
569
570     <!-- boolean modifier supported by the server or index -->
571     <!-- <supports type="booleanModifier"></supports> -->
572
573     <!-- masking character supported (* or ?) -->
574     <supports type="maskingCharacter">*</supports>
575     <supports type="maskingCharacter">?</supports>
576
577     <!-- anchoring supported? (^ character) -->
578     <!-- MARC: how do I express that I only support left anchoring in 
579          the beginning of the field ( bib1 3=1 ), but no right anchoring ?? -->
580     <!-- MIKE: You can't.  The ZeeRex documentation should be changed
581          to allow this, as <supports type="anchoring">left</supports> -->
582     <!-- <supports type="anchoring"></supports> -->
583
584     <!-- empty terms supported (Empty) -->
585     <!-- MARC: what's the use case of this ?? -->
586     <!-- MIKE: lots of uses!  For example, scanning from the very
587          start of the index with 'scan @attr 1=text ""'.  Or searching
588          for bibliographic records with no title, etc. -->
589     <!-- MARC: I see, and we can if we always use '""' 
590          (the empty string), as in 'scan @attr 1=text ""' -->
591     <supports type="emptyTerm"></supports>
592
593
594     <!-- sorting settings -->
595
596     <!-- default schema used in sorting, in short name form -->
597     <!-- <default type="sortSchema"></default> -->
598     <!-- MIKE: deprecated -->
599
600     <!-- server support sort -->
601     <!-- MARC: why stating this redundant info here?? it's already in the 
602          <index sort="true" attribute -->
603     <!-- MIKE: that's not quite the same thing.  This is saying
604          whether the server can do sorting at all.  Since
605          sort="true|false" attributes can be omitted entirely from
606          indexes, you can't deduce from a set of <index> elements
607          without sorting specified that the server doesn't support
608          sorting -->
609     <!-- MARC: which ought to be the same thing than saying that sorting is 
610          _not_ possible. In short,  one simple <index sort="true" attribute
611          should be enough to tell that sorting _is_ possible. Or we have the 
612          same discussion about overruling general sorting capabilities in 
613          specific indexes ?? Quite confusing ... -->
614     <!-- MIKE: no, within an <index>, saying sort="true" means that
615          you can sort on it, sort="false" means that you can't, and
616          not saying anything means you're not saying anything.  Three
617          different cases.   That's as it should be, since Explain
618          records might be auto-generated by systems that can't do the
619          necessary probes.  So a ZeeRex record might not have "sort"
620          attributes on any of its <index>es, but still say that
621          sorting is supported.  The client (or user) has to experiment
622          to find out what indexes support it.  Check the mailing list
623          archives if you want a rationale, I forget the details. -->
624     <!-- <supports type="sort"></supports> -->
625
626     <!-- supported sortmodifier (ascending, missingValue, caseSensitive) -->
627     <!-- <supports type="sortModifier"></supports> -->
628     <!-- MIKE: this is for the new CQL "sortby" sorting, which Zebra
629          doesn't yet do at all, so you're right to omit this for now. -->
630
631     <!-- presentation settings --> 
632
633     <!-- default number of records that a server will return at once  -->
634     <default type="numberOfRecords">0</default>
635
636     <!-- default schema used for retrieved records -->
637     <default type="retrieveSchema">index</default>
638     <!-- MIKE: That's not what I get by default.  A URL such as
639 http://localhost:1314/Default?version=1.1&operation=searchRetrieve&query=1&maximumRecords=10
640          gives me a weird sort of hybrid record with <metadata>
641          sections and <z:index> elements.  Unfortunately, the SRU
642          response doesn't see to explicitly state what schema is
643          used. -->
644      <!-- MARC: Right, the default seems to be the 'index' schema. I have to 
645           talk to Adam to get a better way to choose the default schema -->
646
647     <!-- default stylesheet URL, or if stylesheets are supported -->
648     <!-- MARC: here I want to express: no default, but you kan use this 
649          and only this one - should I use 'setting' ?? -->
650     <!-- MIKE: There is no way to say this at present, but what you
651          suggest is sensible.  Please suggest it to the list -->
652     <setting type="stylesheet">docpath/sru.xsl</setting>
653
654     <!-- default record packing returned (string or xml) -->
655     <default type="recordPacking">xml</default>
656
657     <!-- maximum number of records that a server will return at once -->
658     <!-- <setting type="maximumRecords">1000</setting> -->
659
660     <!-- support result sets (Empty) -->
661     <!-- MARC: this one is for result sets in Z39.50, right ?? -->
662     <!-- MIKE: No, this also applies for SRU -->
663     <!-- MARC: Rrrrriiiight! That's why the section about this is called
664          <schemaInfo>, and the word resultSet never appears in a SRU Explain.
665          Very intuitive! -->
666     <!-- MIKE: I don't understand what point you're making.  SRU, like
667          Z39.50, has specifications for how to do result sets.  But I
668          don't know whether Zebra supports them or not -->
669     <!-- MARC: open question, then, I'll better comment out -->
670     <!-- <supports type="resultSets"></supports>  --> 
671
672     <!-- XPath retrieval supported -->
673     <!-- <supports type="recordXPath"></supports> -->
674
675
676     <!-- scan settings -->
677
678     <!-- scan operation supported -->
679     <supports type="scan"></supports>
680
681     <!-- default number of terms to be returned in scan -->
682     <default type="numberOfTerms">20</default>
683
684
685
686     <!-- other server settings -->
687
688     <!-- older version of the protocol supported  -->
689     <!-- MARC: why only older versions of the protocol ?? It seems 
690          natural just to list what you understand, including the one the
691          client sucesfully used --> 
692     <!-- MIKE: it may seem natural, but it ain't what it means! -->
693     <!-- MARC: but makes sense, and makes determining the list of protocol 
694          versions easier in a thin client -->
695     <!-- MIKE: if you want to change the meaning of this, then propose
696          it on-list.  I doubt you'll get much support.  Thin clients
697          won't use this anyway, they will just speak one version and
698          hope for the best -->
699     <!-- <supports type="version">1.1</supports> -->
700
701     <!-- number of seconds that a result set will be maintained for -->
702     <setting type="resultSetTTL">0</setting>
703
704     <!-- A type of extraRequestData available in the
705          searchRetrieveRequest. The extra*Data fields are represented as two
706          space separated words, the first the identifier for the extension and
707          the second the individual element name from the extension. If there is
708          only one word, then it is the extension id and all elements from
709          within are supported. -->
710     <!-- <supports type="extraSearchData"></supports> -->
711     <!-- MIKE: we could explain x-pquery here -->
712     <!-- MARC: I talked to Adam about this. We should make a new 'x-type'
713          with possible values PQF, CQL, CCL , .. such that 'query' still is
714          obligatory, and carries the query string, be it PQF, CCL, or CQL. -->
715     <!-- MIKE: Yes, that would be _much_ better -->
716
717     <!-- A type of extraRequestData available in the explainRequest -->
718     <!-- <supports type="extraExplainData"></supports> -->
719
720     <!-- A type of extraRequestData available in the scanRequest -->
721     <!-- <supports type="extraScanData"></supports> -->
722     <!-- MIKE: we could explain x-pscan here -->
723     <!-- MARC: re-use of 'x-type' here .. drop 'x-pscan' -->
724
725     <!-- The URI identifier of a supported profile -->
726     <!-- MARC: what's this ?? -->
727     <!-- <supports type="profile"></supports> -->
728     <!-- MIKE: this is a very good thing, which we should use when the
729          time is right.  A "profile" is a complete set of
730          specifications for using Z39.50 and/or SRU within a
731          particular application domain.  We should write a (brief)
732          "Alvis Profile for SRU", assign it an opaque identifier URI,
733          and point to it here.  (Not today, though!) -->
734     <!-- MARC: so this is some HTML prosa text ?? -->
735     <!-- MIKE: see for example
736         http://zthes2.z3950.org/srw/zthes-srw-1.0.html
737         -->
738   </configInfo>
739    
740 </explain>