TRAVELER: the poor-man's combined veronica and what's new server
========

by Joaquim Baptista (px@fct.unl.pt),
based on whatsnewd by Carl M. Kadie, with thanks to the veronica team.

The "traveler" server can do the following tricks:
- Tell what interesting items were added to a gopher tree since some
  time in the past;
- Perform searches over the interesting items of a gopher tree;
- Perform veronica searches, ie, do a search using the veronica sintax.

HOW IT WORKS
------------
The system can be explained better with the help of a metaphor.  Imagine
yourself in the old medieval days, when there were no newspapers, no
TV news, nor, in fact, any organized way to difuse information.  In those
times, the travellers carried the news.  When going from place to place,
they would hear and repeat stories at each stop.

That is very much what the traveller programs do.  A set of
specialised programs travel regularly through gopherspace, including
ftp servers and local filesystems, ommiting uninteresting items.
A different program accumulates the results, and creates a memory
of what items exist, and when were they first seen.  Finally, a
go4gw deamon answers questions.  The query language allows queries
on the name, type, path, host, and port, and also on depth and age
of the item.

TIME SEARCHES
-------------
To ask what has been added, you suply either a relative time or a GMT
time.  The relative time is a sequence of numbers and time units, such
as:

    1 day 10 hours

The server understands "years", "months", "weeks", "days", "hours",
"minutes", and "seconds".  They can all be abreviated.  A single "m" is
taken to represent minutes.

In alternative, one can use a local time, consisting of year, date, time,
or a combination of these. An year is a 4-digit string such as 1993.  A
date is either "day month" (23 Apr) or "month day" (Apr 23).  A time
resembles "hh:mm" (1:59).  So, the following string is a valid time:

    1993 Apr 23 2:00

VERONICA SEARCHES
-----------------
The veronica searches follow the boolean syntax of the IUBIO additions
to the wais server.

Each word in a search denotes the set of documents that contain it.
Word* stands for the set of words that start with 'Word'.  As an
extension, *Word and *Word* stand for words that end or include 'Word',
respectively.  The searches are evaluated from left to right, using
neither precedence nor parenthesis.

- word word          Denotes the union of the two sets.
- word and word      Denotes the intersection of the two sets.
- word not word      Denotes the subtraction of the two sets.

GENERAL SEARCHES
----------------
To search for particular menu items, use a sequence of conditions
"KEYWORD OPERATOR VALUE":
- The KEYWORD can be one of "name", "type", "path", "host" and "port",
  referring to the corresponding fields of the gopher item;
- The operator can be "=", "!=", "~" and "=~", meaning equal, not equal,
  includes and does not include.  The last two operators accept perl
  regular expressions.
- The value can be a word, a natural number, or a string enclosed in
  single (') or double (") quotes.

For clarity, the conditions can optionally be separated with "and", "&"
or "&&".  Here are examples of valid queries:

    Path ~ /Software/
    Name = "Weather map"
    Name ~ Univ  &&  Host ~ pt$

In addition, "veronica ..." can be used to add a veronica search to
a general search.

The values after the operators "=" and "!=" are case sensitive, but
nothing else is.

SEARCH LIMIT
------------
The number of items returned by a search can be specified by adding
"limit=number" to a general search.

COMBINED SEARCHES
-----------------
Time searches can be combined with other searches.  This enables the
search for new items in a part of a gopher tree.  For instance,

    1 month && path ~ "^./Software/"

will search the subtree starting with "Software" for items added in
the last month.

BOOKMARKS
---------
After a search, you are offered an item labeled "Bookmark".  If you
save the bookmark and enter it again later, it will search for items
added since the time it was saved.

UPDATE INTERVAL
---------------
The information on the server concerning servers at FCT/UNL is updated
daily at about 05:00 CET.  Information about other servers is updated
weekly.  It is generally useless to search for time periods smaller
than the update interval.

REQUEST FOR COMMENTS
--------------------
This server is highly experimental.  If you experience any difficulties,
or if you feel that the server can be improved, then I'd like to hear
from you.  Please send email to px@fct.unl.pt.
