X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=README;h=ae0e61ba017d740fe8d4a6d4873acf29dbcd0adf;hp=d144894ae5491a326f7e31f34dde2cf34a26356d;hb=59526fbbf2e3b54ce94b3e79e6c7fef9e4f456fb;hpb=c6860bd2b0d52f5f53dd01f0f1857f5d310108ba diff --git a/README b/README index d144894..ae0e61b 100644 --- a/README +++ b/README @@ -1,85 +1,105 @@ - * Copyright (C) 1995-1996, Index Data. - * See the file LICENSE for details. - * Sebastian Hammer, Adam Dickmeiss +Copyright (C) 1995-2001, Index Data ApS. +See the file LICENSE for details. -Compilation and installation +Compilation and installation instructions for YAZ + $Id: README,v 1.34 2001-03-13 18:11:38 adam Exp $ The primary output of the source here is the lib/libyaz.a library, which contains support functions for implementing the server or client -role of Z39.50/SR. +role of Z39.50. -Two test-programs of interest are generated when you type 'make' at -the top level. server/ztest and client/client. Ztest is a dummy database -server which returns canned responses to all queries. It's good for -verifying that the protocol works ok, and ztest.c shows a minimalistic -implementation of the 'backend' interface. +Windows programmers: refer to the file windows.txt which describes how +to build the software using Microsoft Visual C++. -Client is a linemode Z39.50 client. It supports a fair amount of the -functionality of Z39.50v2/SR, but some things you need to enable or disable -by recompilation. Its primary purpose is to excersise the package, and -verify that the protocol works OK. It can be started by typing +On Unix, GNU configure is used to configure YAZ and generate Makefiles. +Type "./configure", then "make" to build YAZ. -client tcp:: +Note: If you are using the CVS snapshot of YAZ you must have autoconf, +automake and libtool installed. Before running configure generate +support files by running buildconf.sh which is part of YAZ. -at the UNIX prompt, to connect to a Z39.50 server, or +Two test-programs of interest are generated when you type 'make' at the +top level: ztest/yaz-ztest and client/yaz-client. Ztest is a dummy +database server which returns canned responses to all queries. It's good +for verifying that the protocol works ok, and ztest.c shows an +implementation of a 'backend' interface. -client osi:['/']: +yaz-client is a linemode Z39.50 client. It supports a fair amount of the +functionality of Z39.50v2/SR, but some things you need to enable or +disable by recompilation. Its primary purpose is to excersise the +package, and verify that the protocol works OK. It can be started by +typing -to connect to an OSI SR target (this requires mOSI-support). To connect to -the DANBIB test target, you might use: + yaz-client tcp::[/] -client osi:0103/find2.denet.dk:4500 +at the UNIX prompt, to connect to a Z39.50 server. Use '?' to get a list of the available commands. -The current query language is a bit awkward, but functional: - -query ::= ['@attrset' ] rpn -rpn ::= complex | simple | attr rpn -complex ::= operator rpn rpn -operator ::= '@and' | '@or' | '@not' | '@prox' proximity -simple ::= term | set. -term ::= | '"' ... '"'. -set ::= '@set' . -attr ::= '@attr' [] '=' . -proximity ::= exclusion distance ordered relation which unit -exclusion ::= '1' | '0' | 'void' -distance ::= -ordered ::= '1' | '0' -relation ::= -which ::= 'known' | 'private' -unit ::= +The current query language for the find command is a bit awkward, but +functional: + + query ::= ['@attrset' ] rpn + rpn ::= complex | simple | attr rpn + complex ::= operator rpn rpn + operator ::= '@and' | '@or' | '@not' | '@prox' proximity + simple ::= term | set. + term ::= | '"' ... '"'. + set ::= '@set' . + attr ::= '@attr' [] '=' . + proximity ::= exclusion distance ordered relation which unit + exclusion ::= '1' | '0' | 'void' + distance ::= + ordered ::= '1' | '0' + relation ::= + which ::= 'known' | 'private' + unit ::= Eg.: -Andersen + Andersen -"Hans Andersen" + "Hans Andersen" -@and @attr 1=1 andersen @attr 1=4 @attr 4=2 duckling + @and @attr 1=1 andersen @attr 1=4 @attr 4=2 duckling -@attrset Bib-1 @and @attr GILS 2=2008 Washington @attr 1=21 weather + @attrset Bib-1 @and @attr GILS 2=2008 Washington @attr 1=21 weather + +The sort command takes a sequence of sort specifications. A sort +specification holds a field (sort criteria) and is followed by flags. +If the sort critieria includes = it is assumed that the sort SortKey +is of type sortAttributes using Bib-1. The integer before the = is +the attribute type and the integer following the = is the attribute +value. If no = is in the SortKey it is treated as a sortfield-type +of type InternationalString. Flags observed are s (sort case +sensitive), i (sort case insensitive), < (ascending), > (descending). +Eg.: + 1=4 i< (use is title, insensitive, ascending). + Title s> (String Title, sensitive, descending). The directories: doc - Documentation. util - Various little utility functions. Logging, memory debugging, - primitive ISO 2709 presentation for the client, etc. + primitive ISO 2709 presentation for the yaz-client, etc. You'll + find the ASN.1 Compiler for YAZ here as well (yc.tcl). -odr - Open Data Representation. This module implements the BER +odr - Open Data Representation. This module implements the BER encoding rules. Documentation is found in the files odr-use.man and odr.txt. -asn - This module implements the Z39.50/SR protocol. The best way - to find out how it works is to look in the sample - client/server code in server/seshigh.c or yazlib/tst.c. The - interface is still wholly described by the file proto.h - which defines structure and type definitions for each of the - types introduced in the protocol specification. +z39.50 - This module implements the Z39.50 protocol. This module + does the same job as the old 'asn' module except that the source + files are auto-generated using an YAZ' ASN.1 Compiler (yaz-comp). + +zutil - This module implements a collection of Z39.50 utilities, such + as query parsing, EXTERNAL handling, etc. -comstack- This module implements the transport transparency +ill - This module implements the ISO ILL protocol. + +comstack - This module implements the transport transparency stack (COMSTACK). The comstack implements a generic interface for exchanging BER-encoded records over a network. It supports the 'American' mode of exchanging the records straight over @@ -91,26 +111,33 @@ rfc1006 - Xtimosi requires an implementation of the OSI transport notably) provide this. For others, we provide an implementation of the RFC1006 protocol (which is what ISODE-based implementations often use). This module is not - neeeded if you don't use xtimosi, and it's not included in the + needed if you don't use xtimosi, and it's not included in the libyaz.a library. server - This is the implementation of the server frontend. It provides event-handling and server managament functions, and calls the backend primitives (best documentation of these - is in the file include/backend.h). See server.txt. + is in the file include/yaz/backend.h). client - A demonstration client. If we come upon a good design for a higher level client API, that will live here. -include - The various header files. +ztest - A demonstration server that implements a backend. + +include/yaz - The various header files. -makelib - This is a simple utility that gathers the libraries from the - previous modules into libyaz.a. +lib - The libraries. Primarily libyaz.a. The makefile gathers the + libraries from previous modules into libyaz.a. -lib - The libraries. Primarily libyaz.a. +asn - Obsolete - replaced by the codecs in directory z39.50. + This module implements the Z39.50 protocol and is only provided + for backwareds compatibility. -To get more information or assistance, send mail to yaz-help@index.ping.dk. +To get more information or assistance, send mail to yaz-help@indexdata.dk. We maintain a mailing-list for the purpose of announcing new versions of the software, bug-reports, discussion etc. You can sign up by sending -mail to yaz-request@index.ping.dk. +mail to yaz-request@indexdata.dk and include the following command +command in your email: + subscribe yaz-l +