Questions:
----------

1) If ifile doesn't work properly, where can I get information on the
   errors that have occured?
2) Can I use ifile to filter only a portion of my mail?
3) What is the news2mail script for?
4) Where can I get more information about ifile and download ifile?
5) Where/How does ifile store information about my organizational
   preferences?
6) Are there any ifile mailing lists?
7) What is ifile?
8) Is it possible to have ifile NOT filter mail to a certain mailbox?
9) All my mail is being filtered to my inbox.  What's wrong?

Answers:
--------

1) If ifile doesn't work properly, where can I get information on the
   errors that have occured?

Most ifile executables keep a log file in /tmp which gives information
about what actions the executable performed during its last run.  The
files are named according to the convention "<executable name>.info".
This is the best place to get information about the execution of ifile.

If you find out that the ifile binary caused the problem and as a
result dumped core, you might be able to get useful information using
gdb and the core file: "gdb ifile core".

----------

2) Can I use ifile to filter only a portion of my mail?

Yes, but only if you have another filter to do the preprocessing which
can call ifile for mail which does not match other patterns.  If you
are using the MH system, an easy answer to this question is to use
slocal.  To use slocal, you would create a .maildelivery file (with
0600 permissions) in your home directory with filtering rules, one of
those being a rule to filter all remaining mail through ifile.  An
example .maildelivery file might look like this:

from ifile-discuss ^ ? "/usr/lib/mh/rcvstore +ifile"
from joe ^ ? "/usr/lib/mh/rcvstore +friends"
default - ^ ? "ifile"

Anything from ifile-discuss or joe would always get filtered to a
specific folder and all other mail would be filtered according to
ifile's filtering method.

----------

3) What is the news2mail script for?

This script was written by Chris Browne <cbbrowne@hex.net> under the
assumption that you have a newsfeed on your personal machine.  The
idea is that news isn't always posted to the group/groups to which it
best pertains.  This script will allow you to have your news filtered
through ifile in similar fashion to the way mail is filtered.  Thus,
for each of the newsgroup mailboxes you have set up in your mail
program, only the relevant articles from a particular newsgroup will
end up in that mailbox.  One can see that this might be quite useful
for ridding spam from the news you receive.

Please read news2mail.perl for details.  news2mail.perl MUST be edited
before it will be usable with your system!

----------

4) Where can I get more information about ifile and download ifile?

ifile is available for download at
http://www.cs.cmu.edu/~jr6b/ifile/ftp/ or
ftp://ftp.cs.cmu.edu/user/jr6b/ifile/

----------

5) Where/How does ifile store information about my organizational
   preferences?

ifile keeps a file in your home directory named ".idata" which has
information on the frequency of words in each of your mailboxes.  Any time
new mail is filtered, statistics on the words in the document are stored
in this file.  Any time mail is moved from one mailbox to another, this
data file is updated accordingly.

When ifile makes a decision on where to filter a piece of mail,
it does so by comparing the word frequencies in the mail to the folder
frequencies in the database.  ifile filters the mail in the folder which
has the closest match.  

----------

6) Are there any ifile mailing lists?

ifile has two mailing lists which you are invited to join if you end
up becoming a user of ifile.  The two mailing lists are
ifile-announce@cs.cmu.edu and ifile-discuss@cs.cmu.edu.  The discuss
mailing list receives all of the announce mail, so you only need to
subscribe to one of the two.  To subscribe, just send mail to me
(jr6b+@andrew.cmu.edu) with a subject of "subscribe" followed by the
name of the list you wish to join.  As of 12/24/97, I handle these by
hand, so you're welcome (in fact encouraged) to say "hi" and tell me
what you think of ifile in the subscription e-mail.

----------

7) What is ifile?

ifile is a general mail filtering system which uses a modern-day text
learning algorithm to intelligently filter mail according to the way
the user tends to organize mail.

ifile is different from other mail filtering programs in three major
ways:

   1. ifile does not require the user to generate a set of rules in
      order to successfully filter mail 
   2. ifile uses the entire content of messages for filtering purposes 
   3. ifile learns as the user moves incorrectly filtered messages to
      new mailboxes 

ifile is not dependent upon any specific mail system and should be
adaptable to any mail system which allows an outside program to
perform mail filtering.  Currently, ifile has been adapted to the MH
and EXMH mail systems.

----------

8) Is it possible to have ifile NOT filter mail to a certain mailbox?

Yes, of course the implementation is highly client dependent.  For EXMH or
MH, one would create a file named ".skip_me" in the directory corresponding
to the mailbox you wish ifile to ignore.  Once this file is created, ifile
will no longer filter mail to that mailbox

----------

9) All my mail is being filtered to my inbox.  What's wrong?

One possible problem is that one of your ifile executables is not in
the PATH of the environment under which your mail client runs.  One
telltale sign of this problem is that the mail messages which are
filtered to your inbox will have the header "X-filter: => inbox".
Normally, when ifile filters your mail, it adds a header similar to
"X-filter: ifile 0.6.2 => friends" to each message it processes.  The
"ifile 0.6.2" string comes from the ifilter.<mail_client> program
calling "ifile --version".  If ifile is not executable, then
ifilter.<mail_client> will read an empty string.

Another possible problem is that ifile is causing a segmentation fault
during its execution.  One way to detect this is to examine the /tmp/ifile.info
file.  Each major operation (reading messages, reading/writing database and
calculating ratings) should print two lines to the ifile.info file, one to
indicate the start of the task and one to indicate it's completion.  If
any operations have a starting line but no completion line, a segmentation
fault most likely happened.  If you're not an experienced C hacker, your
best bet would be to send e-mail to <jr6b@andrew.cmu.edu> describing your
problem.

$Id: FAQ,v 1.6 1998/02/03 03:28:23 jr6b Exp $
