1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- fictive yaz-frontend plus zeerex-explain plus retrieval info format -->
3 <zeerex xmlns="http://indexdata.com/yaz"
4 xmlns:dc="http://purl.org/dc/elements/1.1/"
7 <listen id="public" tcp="@" port="9900"/>
8 <listen id="internal" unix="/var/tmp/socket"/>
10 <protocol id="sru" sru_get="true" sru_post="true" sru_soap="true"/>
11 <protocol id="sru_get" sru_get="true"/>
12 <protocol id="z3950" z3950="true"/>
15 <protocol id="rss" rss="true" />
16 <protocol id="oai" oai="true" />
17 <protocol id="http" http="true" />
20 <implementation id="metaproxy" version="1.0">
21 <dc:title>Metaproxy</dc:title>
22 <dc:source>http://www.indexdata.dk/zebra</dc:source>
27 <listen refid="public"/>
28 <listen refid="internal"/>
29 <protocol refid="sru"/>
30 <protocol refid="z3950"/>
32 <database name="Default">
33 <!-- host and port can be different from listen socket
34 due to firewalling!!! -->
35 <target host="server1.mydomain" port="80"/>
40 <password>squirrelfish</password>
43 <indexInfo refid="indexes_cql_pqf"/>
48 <directory>/var/www/s1</directory>
49 <config>config.cfg</config>
50 <cql2rpn>../etc/pqf.properties</cql2rpn>
56 <protocol refid="sru"/>
57 <protocol refid="z3950"/>
58 <target host="some.server.com" port="8000"/>
61 <protocol refid="z3950"/>
62 <target host="some.other.server.com" port="1234"/>
69 <indexInfo id="indexes_cql_pqf">
70 <set name="cql" identifier="info:srw/cql-context-set/1/cql-v1.1">
71 <title>CQL Standard Set</title>
73 <set name="rec" identifier="info:srw/cql-context-set/2/rec-1.0">
74 <title>Record Standard Set</title>
76 <set name="dc" identifier="info:srw/cql-context-set/1/dc-v1.1">
77 <title>Dublin Core Set</title>
79 <set name="bib1" identifier="1.2.840.10003.3.1">
80 <title>BIB-1 Z39.50 Standard Set</title>
84 <!-- CQL standard index -->
85 <index search="true" scan="true" sort="false">
86 <title lang="en">CQL Server Choice</title>
87 <map><name set="cql">serverChoice</name></map>
89 <attr type="1" set="bib1">text</attr>
92 <index search="true" scan="true" sort="false">
93 <title lang="en">CQL All</title>
94 <map><name set="cql">all</name></map>
96 <attr type="1" set="bib1">text</attr>
100 <!-- Record ID index -->
101 <index search="true" scan="true" sort="false">
102 <title lang="en">Record ID</title>
103 <map><name set="rec">id</name></map>
105 <attr type="1" set="bib1">rec_id</attr>
106 <attr type="4" set="bib1">3</attr>
111 <!-- Dublin Core Indexes -->
112 <index search="true" scan="true" sort="false">
113 <title lang="en">DC Title</title>
114 <map><name set="dc">title</name></map>
116 <attr type="1" set="bib1">dc_title</attr>
119 <index search="true" scan="true" sort="false">
120 <title lang="en">DC Creator</title>
121 <map><name set="dc">creator</name></map>
123 <attr type="1" set="bib1">dc_creator</attr>
126 <index search="true" scan="true" sort="false">
127 <title lang="en">DC Subject</title>
128 <map><name set="dc">subject</name></map>
130 <attr type="1" set="bib1">dc_subject</attr>
133 <index search="true" scan="true" sort="false">
134 <title lang="en">DC Description</title>
135 <map><name set="dc">description</name></map>
137 <attr type="1" set="bib1">dc_description</attr>
140 <index search="true" scan="true" sort="false">
141 <title lang="en">DC Publisher</title>
142 <map><name set="dc">publisher</name></map>
144 <attr type="1" set="bib1">dc_publisher</attr>
147 <index search="true" scan="true" sort="false">
148 <title lang="en">DC Contributor</title>
149 <map><name set="dc">contributor</name></map>
151 <attr type="1" set="bib1">dc_contributor</attr>
154 <index search="true" scan="true" sort="false">
155 <title lang="en">DC Date</title>
156 <map><name set="dc">date</name></map>
158 <attr type="1" set="bib1">dc_date</attr>
161 <index search="true" scan="true" sort="false">
162 <title lang="en">DC Type</title>
163 <map><name set="dc">type</name></map>
165 <attr type="1" set="bib1">dc_type</attr>
168 <index search="true" scan="true" sort="false">
169 <title lang="en">DC Format</title>
170 <map><name set="dc">format</name></map>
172 <attr type="1" set="bib1"></attr>
175 <index search="true" scan="true" sort="false">
176 <title lang="en">DC Identifier</title>
177 <map><name set="dc">identifier</name></map>
179 <attr type="1" set="bib1">dc_identifier</attr>
182 <index search="true" scan="true" sort="false">
183 <title lang="en">DC Source</title>
184 <map><name set="dc">source</name></map>
186 <attr type="1" set="bib1">dc_source</attr>
189 <index search="true" scan="true" sort="false">
190 <title lang="en">DC Language</title>
191 <map><name set="dc">language</name></map>
193 <attr type="1" set="bib1">dc_language</attr>
196 <index search="true" scan="true" sort="false">
197 <title lang="en">DC Relation</title>
198 <map><name set="dc">relation</name></map>
200 <attr type="1" set="bib1">dc_relation</attr>
203 <index search="true" scan="true" sort="false">
204 <title lang="en">DC Coverage</title>
205 <map><name set="dc">coverage</name></map>
207 <attr type="1" set="bib1">dc_coverage</attr>
210 <index search="true" scan="true" sort="false">
211 <title lang="en">DC Rights</title>
212 <map><name set="dc">rights</name></map>
214 <attr type="1" set="bib1">dc_rights</attr>
226 <!-- searchRetrieve settings -->
228 <!-- default context set -->
229 <default type="contextSet">cql</default>
231 <default type="index">all</default>
233 <!-- default relation -->
234 <default type="relation">=</default>
236 <!-- relation supported by the server or index -->
237 <supports type="relation"><</supports> <!-- 2=1 OK -->
238 <supports type="relation"><=</supports> <!-- 2=2 OK -->
239 <supports type="relation">=</supports> <!-- 2=3 OK -->
240 <supports type="relation">>=</supports> <!-- 2=4 OK -->
241 <supports type="relation">></supports> <!-- 2=5 OK -->
242 <!-- <supports type="relation"><></supports> --><!-- 2=6 DEAD !!! -->
243 <!-- <supports type="relation">all</supports> --><!-- 2=3 OK -->
244 <!-- <supports type="relation">any</supports> --><!-- 2=3 OK -->
246 <!-- relation modifier supported by the server or index -->
247 <!-- MARC: So I promise that you can use 'title <>/stem fish' , but it
248 really defaults to 'title =/stem fish' ??? And nobody cares ???-->
249 <!-- <supports type="relationModifier">relevant</supports> --><!-- 2=102 OK, makes no difference .. sic -->
250 <!-- <supports type="relationModifier">phonetic</supports> --> <!-- 2=100 DEAD -->
251 <!-- <supports type="relationModifier">stem</supports> --> <!-- 2=101 DEAD !! -->
253 <!-- support proximity (Empty) -->
254 <!-- <supports type="proximity"></supports> --> <!-- DEAD, title = (house prox/distance=1/unit=word the) FAILS -->
257 <!-- proximity modifier supported by the server or index
258 (relation, distance, unit, ordering) -->
259 <!-- <supports type="proximityModifier"></supports> -->
261 <!-- boolean modifier supported by the server or index -->
262 <!-- <supports type="booleanModifier"></supports> -->
264 <!-- masking character supported (* or ?) -->
265 <supports type="maskingCharacter">*</supports>
266 <supports type="maskingCharacter">?</supports>
268 <!-- anchoring supported? (^ character) -->
269 <!-- MARC: how do I express that I only support left anchoring in
270 the beginning of the field ( bib1 3=1 ), but no right anchoring ?? -->
271 <!-- MIKE: You can't. The ZeeRex documentation should be changed
272 to allow this, as <supports type="anchoring">left</supports> -->
273 <!-- <supports type="anchoring"></supports> -->
275 <!-- empty terms supported (Empty) -->
276 <supports type="emptyTerm"></supports>
279 <!-- sorting settings -->
281 <!-- server support sort -->
282 <!-- <supports type="sort"></supports> -->
284 <!-- supported sortmodifier (ascending, missingValue, caseSensitive) -->
285 <!-- <supports type="sortModifier"></supports> -->
286 <!-- MIKE: this is for the new CQL "sortby" sorting, which Zebra
287 doesn't yet do at all, so you're right to omit this for now. -->
289 <!-- presentation settings -->
291 <!-- default number of records that a server will return at once -->
292 <default type="numberOfRecords">0</default>
294 <!-- default schema used for retrieved records -->
295 <default type="retrieveSchema">dc</default>
297 <!-- default stylesheet URL, or if stylesheets are supported -->
298 <setting type="stylesheet">docpath/sru.xsl</setting>
300 <!-- default record packing returned (string or xml) -->
301 <default type="recordPacking">xml</default>
303 <!-- maximum number of records that a server will return at once -->
304 <!-- <setting type="maximumRecords">1000</setting> -->
306 <!-- support result sets (Empty) -->
307 <!-- <supports type="resultSets"></supports> -->
309 <!-- XPath retrieval supported -->
310 <!-- <supports type="recordXPath"></supports> -->
313 <!-- scan settings -->
315 <!-- scan operation supported -->
316 <supports type="scan"></supports>
318 <!-- default number of terms to be returned in scan -->
319 <default type="numberOfTerms">20</default>
323 <!-- other server settings -->
325 <!-- older version of the protocol supported -->
326 <!-- <supports type="version">1.1</supports> -->
328 <!-- number of seconds that a result set will be maintained for -->
329 <setting type="resultSetTTL">0</setting>
331 <!-- A type of extraRequestData available in the
332 searchRetrieveRequest. The extra*Data fields are represented as two
333 space separated words, the first the identifier for the extension and
334 the second the individual element name from the extension. If there is
335 only one word, then it is the extension id and all elements from
336 within are supported. -->
337 <!-- <supports type="extraSearchData"></supports> -->
338 <!-- MIKE: we could explain x-pquery here -->
339 <!-- MARC: I talked to Adam about this. We should make a new 'x-type'
340 with possible values PQF, CQL, CCL , .. such that 'query' still is
341 obligatory, and carries the query string, be it PQF, CCL, or CQL. -->
342 <!-- MIKE: Yes, that would be _much_ better -->
344 <!-- A type of extraRequestData available in the explainRequest -->
345 <!-- <supports type="extraExplainData"></supports> -->
347 <!-- A type of extraRequestData available in the scanRequest -->
348 <!-- <supports type="extraScanData"></supports> -->
349 <!-- MIKE: we could explain x-pscan here -->
350 <!-- MARC: re-use of 'x-type' here .. drop 'x-pscan' -->
352 <!-- The URI identifier of a supported profile -->
353 <!-- MARC: what's this ?? -->
354 <!-- <supports type="profile"></supports> -->
355 <!-- MIKE: this is a very good thing, which we should use when the
356 time is right. A "profile" is a complete set of
357 specifications for using Z39.50 and/or SRU within a
358 particular application domain. We should write a (brief)
359 "Alvis Profile for SRU", assign it an opaque identifier URI,
360 and point to it here. (Not today, though!) -->
361 <!-- MARC: so this is some HTML prosa text ?? -->
362 <!-- MIKE: see for example
363 http://zthes2.z3950.org/srw/zthes-srw-1.0.html