NformatiX_medium.jpg

 

Software For Full Text Information Retrieval:

Installation


Home | Installation | Usage | FAQs | Utilities | Architecture | QA | Mailing List | License | Author | Download | Thanks



home.jpg
installation.jpg
usage.jpg
FAQs.jpg
utilities.jpg
architecture.jpg
QA.jpg
mailinglist.jpg
license.jpg
author.jpg
download.jpg
thanks.jpg

To install the rel programs from the top level directory:

  1. the rel programs are distributed as a tape archive, rel.tar.gz, and compressed with the GNU gzip program, which is available via anonymous ftp from ftp://prep.ai.mit.edu/pub/gnu/:

    1. gnunzip rel.tar.gz, to uncompress the tape archive

    2. tar xvf rel.tar, to install the tape archive

  2. cd to the top of the rel source directory, rel/:

    1. make, to make the executables

    2. make install, to install the executables

    3. make installman, to install the manual pages

To install the rel programs from a directory in the source tree:

  1. cd to the rel directory

    1. If necessary, alter the comments in the Makefile to chose an appropriate compiler. The System V, BSD compiler option should work, but using the GNU gcc compiler option will be beneficial if using gcc as a development system.

    2. The Makefile define, FSE_CONTINUE, controls the program behavior during the file system exceptions, error opening file, and error opening directory-if defined, the program will continue under these exceptions, and if not defined, the program will shutdown under these exceptions. If the program is running as a server in a client server architecture, then it is advisable that FSE_CONTINUE should not be defined, otherwise, it is advisable that it should.

    3. Note: some compilers may require a -D_POSIX_SOURCE to be added to CFLAGS in the Makefile (like NextStep, for example.)

    4. Some older ANSI C compilers do not have a type for ssize_t, and if this is the case, it should be typedef'ed as an int in rel.h by removing the #ifndef __STDC__ compiler directive/construct around the ssize_t typedef (like the older GNU gcc compilers, for example.)

    5. If there are any problems, start by browsing through the "Porting issues:" section, below.

  2. make

  3. if all goes well, test rel by:

    
      ./rel stdio /usr/include
    
              

    which should list all of the files in the /usr/include directory that contain "stdio," in order of the files that contain the most matches-presumably, stdio.h has the most instances

  4. install the rel executable someplace in the executable path

  5. install either rel.1 or rel.catman in one of the man directories

    
      (rel.catman was produced by nroff -man rel.1 > rel.catman)
    
              
  6. the sources were maintained with rcs/cvs-the rcs id's in the sources are valid and can be re-established for formal maintenence procedures, if desired; see "man rcs" for details

  7. the file "QA.METRICS" explains the remedial quality process the sources were subjected too, (primarily, static analysis, with McCabe and Halstead metrics provided.) The process is inadequate for commercial or mercantile applications, but could serve as a starting reference for a more robust process, if desired, that should begin with a "code walk through."

The source was written with extensibility as an issue. To alter character transliterations, see uppercase.c for details. For enhancements to phrase searching and hyphenation suggestions, see translit.c.

The program is capable of running as a wide area, distributed, full text information retrieval system. A possible scenario would be to distribute a large database in many systems that are internetworked together, presumably via the Unix inet facility, with each system running a copy of the program. Queries would be submitted to the systems, and the systems would return individual records containing the count of matches to the query, and the file name containing the matches, perhaps with the machine name, in such a manner that the records could be sorted on the "count field," and a network wide "browser" could be used to view the documents, or a script could be made to use the "r suite" to transfer the documents into the local machine. Obviously, the queries would be run in parallel on the machines in the network for enhanced performance-concurrency would not be an issue. See the function, main(), in rel.c for suggestions.

The source documentation begins in rel.c, and is quite verbose-my apologies. See rel.c for the particulars, and some extensibility suggestions.

Porting issues:

  1. the program uses POSIX compliant file/directory handling functions. The structures, types, and functions used for file/directory handling are:

    
      in searchfile.c:
    
          ssize_t count; /* count of bytes read from the file */
          struct flock lockfile; /* file locking structure */
          struct stat buf; /* structure to obtain file size */
    
          open (filename, O_RDONLY, S_IREAD)
          fcntl (infile, F_SETLKW, &lockfile)
          fstat (infile, &buf)
          read (infile, (char *) page, count)
          (close (infile) != 0)
    
      in searchpath.c:
    
          DIR *dirp; /* reference to the directory for a recursion */
          struct dirent *dire; /* reference to directory path */
    
          opendir (name)
          readdir (directory->dirp)
          closedir (directory->dirp
    
              
  2. error messages for system level interrupts are included in message.c and message.h. This file allows a significant level of system environment customization. See message.c for details.

The installation directories can be changed by editing the EXECUTABLES and MANPAGES definitions in the top level Makefile. There is additional information in the README and INSTALL files in each directory of the source tree.


A license is hereby granted to reproduce this software source code and to create executable versions from this source code for personal, non-commercial use. The copyright notice included with the software must be maintained in all copies produced.

THIS PROGRAM IS PROVIDED "AS IS". THE AUTHOR PROVIDES NO WARRANTIES WHATSOEVER, EXPRESSED OR IMPLIED, INCLUDING WARRANTIES OF MERCHANTABILITY, TITLE, OR FITNESS FOR ANY PARTICULAR PURPOSE. THE AUTHOR DOES NOT WARRANT THAT USE OF THIS PROGRAM DOES NOT INFRINGE THE INTELLECTUAL PROPERTY RIGHTS OF ANY THIRD PARTY IN ANY COUNTRY.

So there.

Copyright © 1994-2011, John Conover, All Rights Reserved.


Comments and/or bug reports should be addressed to:

john@email.johncon.com

http://www.johncon.com/
http://www.johncon.com/ntropix/
http://www.johncon.com/ndustrix/
http://www.johncon.com/nformatix/
http://www.johncon.com/ndex/
John Conover
john@email.johncon.com
January 6, 2004



Home | Installation | Usage | FAQs | Utilities | Architecture | QA | Mailing List | License | Author | Download | Thanks


Copyright © 1994-2011 John Conover, john@email.johncon.com. All Rights Reserved.
Last modified: Tue Mar 1 18:16:31 PST 2011 $Id: installation.html,v 1.0 2011/03/02 02:19:56 conover Exp $
Valid HTML 4.0!