GopherCluster v 0.1
-------------------

Hiya!  This is a small collection of scripts to add 3D clustered
searches to your gopher server for use with GopherVR.  What's a
cluster search you ask?

A cluster is a set of related documents.  A cluster search does a
normal search, but shows you the (hopefully relevant) clusters that
contain the search results.

A '3D cluster search' allows you to visualize these clusters more
easily.  It groups each cluster into a 'stonehenge' arrangement, with
a cluster title above.  The matching documents are wider, taller and
fatter than the other documents so you can easily pick them out.
Future versions will change the color too...

Requirements
------------

You'll need a Unix gopher server to execute the searches for you.
You'll also want perl v5 to run the scripts.

If you want semantic based clustering you'll need to index your
documents with WAIS, plus have a machine with gobs of memory to build
the clusters..

You may want ispell to find word roots for you.  This can
significantly reduce the size of the indices.  See the ClusterWords.pl
script for more info..

Also, you will need to have some sort of indexing software installed
on your server to generate the hits for the clustering engine.  This
software can be whatever you like.


Setting up the scripts
----------------------

It's pretty simple to set up a cluster search.  The easiest way to
build clusters is to use your current directory structure of your
gopher server.  Use the 'dircluster.pl' script to do this.  

The dircluster.pl script scans an indexed area of your gopher server
for .cache files.  It makes each .cache file into a cluster.  Alas
this won't work if you're using the -C flag on your server.

The other way to generate clusters is with a clustering algorithm.
The algorithm looks at the words in the documents and attempts to find
collections of documents that are similar in word use.  The script
that implements this algorithm is 'WaisCluster.pl'

Here's an example of indexing a collection of recipes.

  1) extract the software somewhere in your gopher-data directory
     (preferably in {gopher-data}/bin)

  2) Make a directory to hold the clusters.
     
      mkdir recipe.clusters

  3) Go in there

      cd recipe.clusters

  4) Run the directory cluster generator:

      ../dircluster.pl {gopher-data}/documents

     or use the mathematically correct clustering code:

      ../WaisCluster.pl {gopher-data}/documents/.waisindex/index.cat


  5) Edit the Searcher shell script so that it points to your index

print "1Clustered search of Recipes for $Search\texec:spinaltap.micro.umn.edu 70 7/fun/Recipes /home/arcwelder/gopher-data/Cluster/DirClusters $Search:/bin/BuildClusters.pl\t$ENV{'SERVER_NAME'}\t$ENV{'SERVER_PORT'}\t+\r\n";

     You will need to edit this so that the name, host and port is
     correct.   You can add multiple cluster searches here for
     convenience. 

     The format for the arguments in the gopher selector string is:
         Searchhost Searchport Searchselstr Clustersdirectory
       

Voila!  Search away...
