More relevant to the present research is Sloane's On-Line Encyclopedia of
Integer Sequences [18]. This search service allows users
to look up number sequences without knowing their name. For example, if a user
entered the sequence
1,2,3,5,8,13,21,34
,
the server would respond
with ``Fibonacci numbers.'' It is interesting to note that, although many
of the entries in the database include a program or formula to generate the
sequences, these programs do not seem to be used in searching the database.
A similar search service is Encyclopedia of Combinatorial
Structures [15].
Inductive Logic Programming (ILP) [2] is a branch of Machine
Learning. One application of ILP has been the automatic synthesis of programs
from examples and counter-examples. For example, given a language of list-manipulation
primitives (car, cdr, cons, and null) and a set of examples
an ILP system might synthesize the following Prolog-program for the
append predicate:
Obviously, this application of ILP is far more ambitious than A
goVista. While
both ILP and A
goVista produce programs from input
output
examples, ILP synthesizes them while A
goVista just retrieves them from
its database. The ILP approach is, of course, very attractive (we would
all like to have our programs written for us!), but has proven not to be
particularly useful in practice. For example, in order to synthesize
Quicksort from an input of sorting examples, a typical ILP system
would first have to be taught Partition from a set of examples
that split an array in two halves around a pivot element:
A
goVista is essentially a reverse definition dictionary for
Computer Science terminology. Rather than looking up a term
to find its definition (as one would in a normal dictionary),
a reverse definition dictionary allows you to look up the
term given its definition or an example. The DUDEN [7]
series of pictorial dictionaries is one example: to find
out what that strange stringed musical instrument with a
hand-crank and keys is called, you scan the musical
instruments pages until you find the matching picture of the
hurdy-gurdy. Another example
is The Describer's Dictionary [11] where
one can look up
mixture of gypsum or limestone with
sand and water and sometimes hair used primarily for walls
and ceilings
to find that this concoction is called
plaster.