yaz_use_attribute_create based on get_attributeList DRY
[yaz-moved-to-github.git] / README
diff --git a/README b/README
index 054c9bd..3f26587 100644 (file)
--- a/README
+++ b/README
+YAZ toolkit
 
- * Copyright (C) 1995-1998, Index Data.
- * See the file LICENSE for details.
- * Sebastian Hammer, Adam Dickmeiss
+Copyright (C) 1995-2014 Index Data.
+See the file LICENSE for details.
 
-Compilation and installation for YAZ 
-  $Id: README,v 1.19 1998-01-07 12:59:27 adam Exp $
+The primary output of the source here is the YAZ library, which
+contains support functions for implementing the server or client
+role of Z39.50 and SRU.
 
-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.
+On Unix, GNU configure is used to configure YAZ and generate Makefiles.
+Type "./configure", then "make" to build YAZ. Read
+doc/installation.unix.html for details.
 
-Windows programmers: refer to the file windows.txt which describes
-how to compile the software using Microsoft Visual C++.
+On Windows, a MS Visual Studio makefile is provided (nmake). The commands
+  cd \win
+  nmake
+should do. Refer to doc/installation.win32.html for details.
 
-Two test-programs of interest are generated when you type 'make' at
-the top level: ztest/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.
+Note: If you are using the Git snapshot of YAZ you must have autoconf,
+automake, libtool and xsltproc installed. Before running configure, create
+support files by running buildconf.sh in the top-level directory of 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
+In any case refer to the documentation in sub directory doc or read
+it online at http://www.indexdata.com/yaz/
 
-client tcp:<hostname>:<port>
+File organisation:
 
-at the UNIX prompt, to connect to a Z39.50 server, or
+doc      Documentation.
 
-client osi:[<tsel>'/']<hostname>:<port>
+src      Source for the YAZ library.
 
-to connect to an OSI SR target (this requires mOSI-support). To connect to
-the DANBIB test target, you might use:
+util     Utility programs, ASN.1 compiler, MARC dump utility, and others.
 
-client osi:0103/find2.denet.dk:4500
+client   A demonstration client for testing the protocol. It's bug'n
+         ugly. But, it supports many features.
 
-Use '?' to get a list of the available commands.
+ztest    A demonstration server that implements a backend.
 
-The current query language is a bit awkward, but functional:
+etc      Various configuration files.
 
-query     ::= ['@attrset' <attribute-set>] rpn
-rpn       ::= complex | simple | attr rpn
-complex   ::= operator rpn rpn
-operator  ::= '@and' | '@or' | '@not' | '@prox' proximity
-simple    ::= term | set.
-term      ::= <word> | '"' <term> ... '"'.
-set       ::= '@set' <setname>.
-attr      ::= '@attr' [<attribute-set>] <number> '=' <number>.
-proximity ::= exclusion distance ordered relation which unit
-exclusion ::= '1' | '0' | 'void'
-distance  ::= <number>
-ordered   ::= '1' | '0'
-relation  ::= <number>
-which     ::= 'known' | 'private'
-unit      ::= <number>
-
-Eg.:
-
-Andersen
-
-"Hans Andersen"
-
-@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
-
-The directories:
-
-doc     - Documentation.
-
-util    - Various little utility functions. Logging, memory debugging,
-       primitive ISO 2709 presentation for the client, etc.
-
-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.
-
-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
-       TCP/IP, and uses Peter Furniss' XTIMOSI package over RFC1006.
-       Look for documentation in the file comstack.man.
-
-rfc1006 - Xtimosi requires an implementation of the OSI transport
-       layer with an XTI-based API. Some systems (HP and DEC,
-       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
-       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.
-
-client  - A demonstration client. If we come upon a good design for a
-       higher level client API, that will live here.
-
-ztest   - A demonstration server that implements a backend.
-
-include - 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.
+include/yaz The various header files.
 
 To get more information or assistance, send mail to yaz-help@indexdata.dk.
+Even better, sign on to the YAZ mailing list here:
+http://lists.indexdata.dk/cgi-bin/mailman/listinfo/yazlist
 
-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@indexdata.dk.