|
Description  |
|
|
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates generally to message control systems, and
more particularly to improvements in electronic mail control systems.
Digital communication systems of the "electronic message" or "electronic
mail" type are well established. In such systems, several, (often a very
large number) of work stations are interconnected by a system which allows
users at the work stations to send messages to each other. Such messages
are the electronic equivalent of letters and memoranda.
2. Description of the Prior Art
Available prior art addresses the issue of handling mail messages in
general. For example, U.S. Pat. No. 4,745,559 to Willis et al teaches a
manner of incrementally increasing or decreasing the content of a local
data base; the required communications capacity of the system is reduced
by using set identifiers. The system is an information retrieval
communication network which is not described as being suitable to handle
electronic mail.
U.S. Pat. No. 4,750,135 to Boilen teaches a method of using filter sets or
local templates on a stream of data records to obtain user-created
reconstituted data records. There is no description therein suggesting
that the method is suitable for handling electronic mail.
U.S. Pat. No. 4,713,780 teaches a manner of electronically delivering a
document, but no mail sorting mechanism nor method is taught therein.
U.S. Pat. No. 4,745,595 to Muir et al. teaches an electronic mailbox system
wherein a plurality of similar data terminals are tied to a telephone
line. Any selected one of the data terminals can be made the controlling
terminal. However, this prior art system does not teach any filter for the
electronic mail messages.
A paper by Chang & Leung, entitled A Knowledge-Based Message Management
System, published in Vol. 6, No. 3, July 87 edition of Association for
Computing Machinery Transactions discloses a linguistic message filter
which can be applied to incoming messages. The filter determines whether
to transmit the full text of a screened message or a short alert message,
or to store the message for later transmission or processing. There is no
mention in the Chang and Leung paper regarding assigning a priority number
to incoming messages and presenting the messages without altering them,
certainly not in an order and sequence determined by the assigned priority
number as in the present invention.
In a typical system which the present invention relates to, there will
normally be a standard format defined for such messages (or, often, a
number of slightly different formats for different purposes). The format
will normally have several fields, including a sender field, a date field,
an addressee field, and a message body field; in addition, there will
often be further fields, including in particular a "copy-to" field and a
"subject" field. The addressee and copy-to fields will often each be
capable of holding more than one identifier, so that a message can be sent
to several addressees and copied to several more. (The "addressee" and
"copy-to" fields are normally functionally equivalent as far as the system
is concerned, with the distinction between the two being of significance
only to the users.)
In a typical prior art system, when a user generates a message, the system
will automatically transmit it to the addressees (including the
copy-to's). At each of the stations to which it is sent, it will be stored
in a folder (which may well be termed the "in-tray" folder). When the
users at that station choose to manually inspect the contents of the
in-tray, they will extract the various messages from it one after another,
inspect each, and take whatever action they think appropriate, such as
deleting the message, printing it out, or storing it in some other folder.
In practice, it is found that such a procedure can become burdensome,
because the number of messages which accumulates in the in-tray can become
so large that a considerable amount of time and effort is required for the
user to work through the accumulation of messages in the in-tray, to
manually sort the messages.
This invention provides a method and system which perform an automatic
sorting and prioritizing of the messages in the in-tray, so that, for
example, the user can deal with those messages of the highest priority
first, selectively in their entirety, regardless of the chronological
order in which the messages arrived at the user's location.
The object of the present invention is to provide such an improved
automatic message sorting and processing system, driven by user created
and modified rules, specifically for electronic mail.
SUMMARY OF THE INVENTION
The present invention provides a variety of features, which may be used
separately or in combination. Among these features are: prioritizing
electronic messages which have not yet been processed by the user;
proposing forward-to addressees; proposing folders of the user into which
the message may be copied; permitting forwarding and copying automatically
if desired; dealing with all messages, whatever their type (e.g. phone
messages, meeting announcements, reports); and processing all those and
only those messages addressed to the user. It permits a highly flexible
set of criteria to be defined for processing messages, in dependence on
the identity of the sender, the identities and numbers of the addressees
(direct and/or copy-tos), and the content of the message (subject and/or
message-body fields).
The invention in its broad form resides in method and mail system of the
type wherein a plurality of electronic mail messages are directed to a
user at a terminal, and wherein the plurality of incoming mail messages is
held in store in a main folder till accessed by the user for reading and
action, the invention including a message control system to non-manually
and automatically prioritize the plurality of messages selectively at any
predetermined time of day, based on and using user created and stored
files so that messages of relatively higher priority are sooner presented
to the user or dealt with appropriately as desired, as priority messages,
regardless of any chronological order in which messages were received for
the user; said message control system comprises: a message store unit for
storing incoming messages before prioritization; a rules control unit
means operable by the user to create and modify rules for prioritizing
received electronic mail messages; a rules storing means to hold in
storage any user created and modified rules; a rules test unit which
applies user created and modified rules to screen each message from the
messages, and assigns a priority code selected from a range predetermined
by the user to a screened message; and a message switch means responsive
to an assigned priority code for selectively routing said screened message
to a message main folder and forwarding to any other desired location,
whereby a plurality of incoming electronic mail messages is sorted and
screened using user created and modified rules for presenting to the user
more important ones of the messages as priority mail for appropriate
action.
BRIEF DESCRIPTION OF THE DRAWING
A message sorting and processing apparatus embodying these and other
features of a preferred embodiment of the invention will now be described,
by way of example, with reference to the drawings, in which:
FIG. 1 is a general block diagram of a preferred embodiment of the system;
and
FIG. 2 is a more detailed block diagram of the message and rules stores of
the system of FIG. 1.
DESCRIPTION OF PREFERRED EMBODIMENT
FIG. 1 shows in simplified form those parts of a work station which typify
an embodiment of the the present invention. It will be understood that the
work station will include other parts, not shown, providing general
data-processing facilities. Also, some or all of the functions of the work
station may in fact be implemented by means of a host computer shared by a
number of users and which presents to each user the facilities of an
independent work station under the sole control of that user.
Referring to FIG. 1, there is an I/O port 10 by means of which messages can
be transmitted to and received from other work stations, via a message
transmission network (which may include or consists of a host computer).
Incoming messages pass through the I/O port to a message store 11, which
holds them in readiness for processing by the rest of the apparatus. As
will be explained later, the apparatus operates in accordance with a set
of user created rules, and these are stored in a rules-store 12. The
messages are matched against the rules stored in a rules test unit 13
which controls a message switch 14. The messages stored in store 11 are
passed through the message switch back to the I/O port 10 for selective
transmission to other work stations, and on to a main folder store 15; the
folders include an in-tray folder 16 and other folders Folder-1 17,
Folder-2 18, etc.
Information about the messages is also stored in a message log unit 19. A
keyboard 20 enables the user to control the operation of the apparatus,
and is coupled to a monitor 21 on which various operations, and the
contents of the message log unit 19, can be displayed. A rules-control
unit 22 is coupled to the keyboard 20 and the rules store 12. The unit
enables the user to generate new rules and modify existing rules; existing
rules are extracted from the rules store 12 for this purpose, and new or
modified rules are returned to that store.
OPERATING MODES
The apparatus may be operated in either continuous or batch mode. In
continuous mode, each message is processed as it is received. This
involves applying all the rules in turn to an incoming message, and taking
the appropriate actions. In the batch mode, incoming messages are
accumulated in the message store 11, and processed at selected times; the
processing times may be pre-programmed into the system (e.g. at times 0845
and 1245, so that the processed messages are available for the user to
deal with when the user comes in the morning and back from lunch) or when
demanded by the user.
In the case where the apparatus operates on demand from the user, it
initially presents the user with an indication of the number of messages
in the message store 11. The user can then select whether the apparatus
shall operate in foreground mode, so that nothing else can be done until
the message processing has been completed, or in background mode, so that
the user can proceed with some other task, with the apparatus performing
the message processing in the intervals in which that other task is not
utilizing the resources of the work station.
The modes of operation described above can both be implicitly automatic.
The apparatus can also be operated in a manual mode. For this, the
apparatus presents the user with the proposed actions for each message,
but awaits confirmation from them before performing these actions. For
this, the apparatus preferably presents the proposed actions on the screen
21, to that the user can select the proposed actions one after another,
e.g. by means of a cursor, for performance or not. It may be desirable for
the screen to be split or windowed, so that the message can also be seen;
the message is preferably scrollable on its part of the screen for this.
Advantageously, the user may set the apparatus to process the messages
automatically for the current batch (i.e. the current contents of the
message store 11), but to revert to the manual mode thereafter.
If the user decides temporarily to bypass the use of the present apparatus,
then the messages in the message store 11 are simply transferred directly
to the in-tray folder 16. The user can then obtain an indexed listing of
them, read them, and otherwise process them in conventional manner.
There is a further mode, intermediate between the two modes described
above, in which the apparatus operates, but the only action taken is to
assign priorities to the messages as they are passed from the message
store 11 to the in-tray folder 16.
Means are also preferably provided whereby the user can pass a selected
message from the in-tray to the rules test unit 13. This enables the user
to determine what actions the rules recommend on a message which has
reached the in-tray without those actions having already been performed.
To forward a message to another user, it is convenient to utilize a
technique in which, from a formal point of view, a new message is
constructed. This involves generating appropriate fields for the new
message, the new addressee-field indicating the user to whom the message
is to be forwarded and the new sender-field indicating the user from whom
it is being forwarded. The contents of the new subject-field may depend on
the mode of operation; if the mode is automatic, then the contents of the
new subject-field may be copied from the subject-field of the original
message; if the mode involves monitoring or participation by the user,
then the system may offer the user the option of either inserting a new
subject or having the contents of the old subject field copied. The body
of the new message is constructed by concatenating all the fields of the
old message. This forwarding technique is known per se, and is accordingly
not dwelt upon at greater length herein.
Statistical information relating to the operation of the apparatus, e.g.
the total number of messages and the number of messages forwarded, is
accumulated in the message log unit 19. This information can be extracted
by the users if they wish to monitor and review the operation of the
apparatus.
When message processing has been completed, by whatever variation of mode,
the processed messages will be in the in-tray folder 16, in prioritized
order for the user to attend to. Of course, the users can choose to
transfer the messages directly to the in-tray, without processing, if they
so desire.
ORGANIZATION--DETAIL
FIG. 2 shows the organization of the message store 11, the rules store 12,
and the rules test unit 13. The message store 11 contains a plurality of
message storage units 25. Each new incoming message is stored in the next
free unit 25, and when the apparatus runs to evaluate messages, each
message in turn is evaluated and removed from its storage unit, leaving
that unit free. Two pointers are used in a conventional manner to keep
track of which units are occupied by messages. Similarly, the rules store
12 contains a plurality of rules storage units 35.
Considering now the structure of a message storage unit 25, this is
organized advantageously to match the structure of the messages.
Accordingly, it preferably consists of several sub-units or fields,
corresponding to the fields of the messages. Preferably and specifically,
it has the following fields:
a sender field 26 which contains the identity of the sender. This identity
is a unique binary identifier used by the system. Depending on the
specific design of the system, the identifier may be chosen in a form
which also has a mnemonic significance, or the system may include
conversion tables which convert the identifier to a human-recognizable
name.
a date field 27. This is optional and may not be utilized in the present
apparatus.
an addressee field 28. This contains the identities of the addressees to
whom the message is being sent, in the form of identifiers like the sender
identifier. There can be more than one addressee.
a copy-to field 29. This contains the identities of the addressees to whom
the message is being copied. As noted above, the distinction between
addressees and copy-tos is mainly of relevance to the users of the system,
and not so much to the system itself. A copy-to addressee is usually sent
a message merely for information, without any requirement that they should
take any particular action.
a subject field 30. This will contain a short heading identifying, to the
addressees, the subject matter of the message.
a body field 31. This will contain the main text of the message, and will
be of highly varied length.
In practice, the storage units 25 and the fields in each will usually be
implemented by assigning suitable regions in a general-purpose memory
unit. This reduces the cost of the apparatus and allows memory space to be
utilized effectively. Techniques for achieving this are well established
in the art and are not elaborated herein.
The apparatus contains a number of rules in the rules store 12. Each rule
consists of two parts, a "tests" or "conditions" part 35A and an "actions"
part 35B. The apparatus operates by testing a message against each rule in
turn. If the message matches the conditions part of the rule, then the
apparatus takes the actions prescribed by the actions part of the same
rule.
Considering now the structure of the conditions part of a rule, this
matches the structure of the messages, but with significant differences.
This conditions-part of the structure can be explained most easily by
explaining the functions which it performs or satisfies.
Broadly, the user can set up a number of rules. Each rule tests whether the
messages satisfy certain conditions concerning who the sender is, who the
addressees and/or copy-tos are and their numbers, and the nature of the
subject and a definable initial part of the message body field. If a rule
is satisfied, then the actions which result can be assigning a priority
level to the message, filing it in one or more selected files, and
forwarding it to further addressees.
Considering now the structure of a rule storage unit 35, the tests part 35A
is organized to match the structure of the messages, but with significant
differences. The sub-units or fields of the tests part 35A are as follows:
a rule name field 36. This contains a name chosen by the users when the
rule is being constructed, to aid them in recognizing the nature of the
rule if they want to review or amend it later.
a sender field 37 which contains the identities of equivalent senders. A
user may want to treat messages from different senders (e.g. either of two
joint chairmen of a committee) in the same way.
an addressee number limits field 38. (This has no direct counterpart in the
message structure.) This contains three parts, each of which can be set to
define lower and upper bounds on the number of addressees; the three parts
are for direct addressees, copy-tos, and total addressees (direct plus
copy-tos). A user may wish to treat a message directed to a large number
of addressees as of low importance, or more generally to treat a message
differently depending on the number of direct and/or copy-to addressees.
an addressees field 39. This contains a list of equivalent addressees. A
user may wish to treat a message in different ways depending on who else
it is addressed to and/or copied to. Since the user may wish to treat
direct addressees and copy-tos differently, each addressee in the list is
tagged to indicate whether it is to be matched against direct addressees,
copy-tos, or both.
a keyphrase field 40. This contains a list of keyphrases which are robe
matched against the contents of the message, Each keyphrase is tagged to
indicate whether it is to be matched against subject field, message body
fields or both. The nature of the keyphrases and their matching is
discussed in more detail later.
a keyphrase zone limit field 41. This sets how much of the message body is
used for the keyphrase matching. Users may want to look for a keyphrase
anywhere in the entire message body, or they may prefer to limit the
search for a keyphrase to the initial part of the message body.
The sub-units or fields of action part 35B of the rule storage unit 35 are
as follows:
a priority field 45. If the message matches the rule conditions, then it is
given the priority level set by this field, which can have a value of say
between 1 (highest priority) and 5 (lower priority).
a file-to field 46. This contains a list of folders in the user's main
folder store 15. If the message matches the rule conditions, then it is
filed in the appropriate folders.
a forward-to field 47. This contains a list of addressees; if the message
matches the rule conditions, then it is forwarded to these addressees.
The work station may have a distribution list facility, by means of which
the user can, when generating a message, enter the distribution list as a
direct and/or copy-to addressee. If this facility exists, the apparatus
may allow distribution lists to be used in the sender and addressees
fields; such a distribution list will be treated as an indirect addressing
of its list of addressees.
The rules storage units 25 in the rules store 12 are preferably subdivided
into sets so that a plurality of different sets of rules can be stored,
any one of which can be selected by the user. This will allow two
different users to share the same work station, or a single user to use
different rule sets at different times.
In practice, the storage units 25 and 35 and the fields in each will
usually be implemented by assigning suitable regions in a general-purpose
memory unit. This reduces the cost of the apparatus and allows memory
space to be utilized effectively. This can be achieved by conventional
techniques, which accordingly are not dealt with in greater detail herein.
OPERATION--DETAILS
The message storage units 25 and the rules storage units 35 are coupled to
the rules test unit 13 by coupling means, illustrated diagrammatically as
50 and 51, which select the various fields in succession. Corresponding
fields are fed to a comparator unit 52 which makes comparisons of
successive pairs of fields, and which is coupled to a latch unit 53 which
stores the results (both intermediate and final) of the comparisons.
More specifically, comparator 52 first matches the sender field 26 with the
addresses in the sender-list field 37. If there is no match, at this or
any later stage, then the comparison with that rule is immediately
terminated, and the next rule is selected. (Obviously the order of the
various tests can be chosen for maximum efficiency; thus it may be
preferable to perform this test after the next-described test.) The order
in which the tests are performed can even be made dependent on the
contents of the fields, so that the order in which the sender and
addressee fields are tested depends on how many comparisons have to be
made for each.
If there is a match, then the comparator next counts the numbers of
addresses in the addressees and copy-tos fields 28 and 29 and matches
these with the limits set in the addressee limits field 38. The addresses
in the fields 28 and 29 are then matched against those in the addressees
list field 39.
If the matching so far has been successful, then the subject and body
fields 30 and 31 are matched against the keyphrases field 40, under the
control of the keyphrase zone-limit field 41. The keyphrases field may
contain a number of keyphrases, each of which is made up of keywords which
are treated as character strings for matching purposes. The keywords may
be combined in logical combinations in the keyphrases. The comparator 52
first matches the individual keywords, and then evaluates the logical
combinations to determine whether the keyphrase is satisfied.
Some of the fields in a rule may be left empty; such fields are in general
treated as automatic matches. For example, if the sender-list field 37 is
left empty, that field will be treated as matching all senders. Thus a
rule can operate only on senders, only on keyphrase, or on both in
combination.
If a rule is successfully matched, then the latches 53 in rules test unit
13 are set to perform the actions stored in the actions part 35B of the
rule storage unit 35, and the actions are copied into an actions storage
unit 54 in the rules test unit 13. When the message has been matched
against all rules of the rule set, the actions stored in the actions
storage unit 54 are matched against each other, to eliminate duplications
of file-tos and forward-tos and to select the highest of whatever
priorities have been assigned to the message. The actions are then carried
out; the message is filed in the in-tray with the appropriate priority
appended to it and in any further appropriate folders and forwarded to the
appropriate addressees (if any). The next message, if any, is then
selected for processing.
If two or more rules match a message and their actions are different, this
may be regarded as indicating an inconsistency between the rules. It would
be possible for the rules control unit 22 to test the rules against each
other to detect such potential inconsistencies and require the user to
correct one or more of the rules to eliminate such inconsistencies.
However, such inconsistencies will often be harmless, and it may be
preferable to accept some--e.g. forwarding of a message which happens to
match the keyphrases fields of two different rules to two different sets
of forward-tos. The message log unit 19 may be arranged to record such
inconsistencies, so that the user can review them later and decide whether
any of them calls for amendment of the rules.
RULES CONSTRUCTION
The rules store 12 is coupled to the rules control unit 22, which is in
turn coupled to the keyboard 20 and the monitor 21, as above. The operator
can copy the rules from the rule store 12 to the rules control unit 22 for
inspection and possible amendment, and return them (or newly created
rules) to the rules store 12. A rule can also effectively be copied, to
serve as a template for the creation of a new but similar rule, by
selecting a rule from the rule store and changing its name.
The monitor 21 displays a rule so selected with its fields suitably laid
out and labelled, in | | |