COMMUNICATION APPARATUS

Abstract: The invention relates to a communication apparatus. Currently, the Internet provides an e-mail facility which enables natural language communication between many of the world's computer users. However, the ability to operate such a computer so as to interact automatically with an appointment file stored on another computer is limited. The invention overcomes this problem by providing a communication apparatus which is operable to extract appointment information (24) from a natural language e-mail message (22) and examines its user's schedule file (23) accordingly.

Description: COMMUNICATION APPARATUS The present invention relates to a communication apparatus. Many office buildings are now provided with local area networks which comprise a number of interconnected computers spaced around the building. Normally, these computers include a plurality of personal computers which are assigned to respective users and a more powerful computer which is managed by a local area network administrator. Each of the personal computers comprises a processing unit, which is provided with interfaces to input/output devices, generally including a monitor, a keyboard, and a mouse. Often, such local area networks are configured to provide the persons using the network with a facility to send electronic messages to one another. This might, for example, be implemented by installing mail "client" programs on each of the personal computers and a mail "server" program on the network administrator's computer. On one of the users' inputting an execution command using a keyboard or mouse attached to his personal computer, the mail client program is executed to control that computer to provide a message creation display on the monitor and to input signals from the keyboard and the mouse to enable the user to create and edit an electronic mail message. By entering commands via the keyboard or the mouse, the user can send the message he has created to another user on the local area network. When the intended recipient commands his personal computer to execute the mail "client" program on his computer, the recipient's computer manipulates data representing the sender's message to provide, on the monitor connected to the recipient's computer, a visual display of the message. It is becoming increasingly common for a local area network to be connected to national and international telecommunications networks. However, other local area networks may comprise computers which are not provided with the same software that is provided on a given local area network. Thus, the format of the mail messages sent around one local area network may be different from the format sent around another local area network. In order to enable communication between users of different local area networks, common standards have been agreed for the format of the message to be sent over the telecommunications network. Normally, the communication over the telecommunications network takes place between two gateway computers (which may or may not be the administrators' computers) which can translate between their local format and the common format used for communication over the telecommunications network. In addition to an electronic mail facility, some local area networks provide a shared electronic schedule facility. This might, for example, be stored as a group schedule file in the memory of the administrator's computer. Each personal computer stores schedule software which is executable to provide a display of the user's appointments and, if other user's have allowed it, a display of their appointments. Similarly, a user may enter or modify details of his appointments or those of others that have enabled him to do so. These details, might, for example, include the date, start time, finish time and location of a meeting. Furthermore, the user may command his personal computer to execute further software which provides a display on the visual display unit and allows input via the keyboard and mouse to generate an invitation to an appointment which is to be sent to specified other users on the local area network. Again, these invitation messages are created in a predetermined format and sent to the administrator's computer where they are stored in an invitation message file in the administrator's computer's memory. When a user who has been invited to the appointment commands his computer to execute the schedule software on his personal computer, his computer reads the invitation message and causes a display detailing the invitation to be presented to the user on his visual display unit and prompts the user to accept or decline the invitation. If he chooses to accept the invitation, details of his newly accepted appointment are written to the group schedule file stored in the administrator's computer's memory. A problem arises in that it is not always possible for a person connected to one local area network to send such an invitation to a recipient connected to another local area network and interact with the group schedule file which includes details of the recipient's appointments, without interacting with the recipient. Another problem arises in that, on receipt of an electronic mail message (commonly known as an 'e-mail') which requires the user to read, add or alter the contents of a schedule file stored on his or her communication apparatus (a desktop computer having an e-mail facility being a specific example of such an apparatus), the apparatus must communicate the contents of the e-mail to the user, before a response to the e-mail is sent. According to the present invention there is provided a communication apparatus comprising: one or more digital processors, one or more memories, an input for inputting digital representations of natural language messages, wherein said one or more memories store; a received natural language message file representing one or more received natural language message representations received from a sender and intended for a recipient; appointment information extraction code executable by one or more of said digital processors to process said natural language message file to extract appointment information contained within said message; a schedule file representing appointment information relating to said recipient; and schedule information extraction code executable by one or more of said digital processors to extract schedule information corresponding to said appointment information. By providing such an apparatus, the apparatus need not use input and output devices (for example a visual display or voice input) in situations where interaction with the user was hitherto required. Since output devices (and, to a lesser extent, input devices) normally consume significant amounts of energy, the present invention provides the advantage of reducing the energy requirement of the apparatus. This is especially important in relation to mobile communication units powered by batteries. Appointment information might, for example, include timing information (such as a date, time of day, or duration) and/or location information. Schedule information might, for example, simply be information as to whether the user is available at a given time or might include details of his intended whereabouts. Preferably, said memories further store response generation code executable by one or more of said digital processors to output a response on the basis of said extracted schedule information. This has the advantage that two-way communication between the apparatus and remote apparatus is enabled. In preferred embodiments, said response generation code comprises: missing appointment information identification code executable by one or more of said processors to identify appointment information missing from said natural language message file; and further information request generation code executable by one or more of said processors to generate a request to said sender to send a natural language message including said missing information. These embodiments have the advantage that the apparatus does not inform the user of e-mails which contain insufficient information to be completely responded to by the user. Specific embodiments of the present invention will now be described, by way of example only, with reference to the accompanying drawings, in which: Figure 1 shows two computers connected via the Internet; Figure 2 is a schematic diagram showing the structure of an 'Appointment Assistant' program stored on the recipient's computer; Figure 3 is a flow chart showing the operation of the 'Appointment Assistant' program; Figure 4 shows in more detail the operation of the booking module of the 'Appointment Assistant' program; Figure 5 shows in more detail the operation of the querying module of the 'Appointment Assistant' program; Figure 6 shows in more detail the operation of the cancelling module of the 'Appointment Assistant' program. The embodiment described below relates to two stand-alone computers connected to one another via the Internet. It will be appreciated that the invention can equally be applied to the more common situation where each of the computers forms part of a local area network. Figure 1 shows two computers 1 , 3 which are connected to one another via the Internet 2. In other words, the two computers 1 , 3 can communicate with one another by sending messages across one or more interconnected networks which handle packets of data sent to them in accordance with the TCP/IP protocol suite. In particular, each computer is able to send an electronic mail message to the other because that message is communicated in accordance with the Simple Mail Transfer Protocol (SMTP). In the following description, the two computers 1 ,3 are described as a remote computer and a user's computer respectively. The remote computer is an IBM PC which stores Microsoft's MS Mail program which is executable to enable a user of the remote computer to compose and send electronic mail messages to other computers connected to the network 2. The user's computer 3 is a Sun Workstation which operates under control of the Solaris 2.5 operating system. The user's computer 3 includes in its memory a mail file (known as a mailbox) in which the contents of e-mail messages to the user are stored. Each message stored in the mailbox includes data representing the time of transmission of the e-mail by the sender of the e-mail, the subject of the e- mail, and the recipient's address. The Solaris 2.5 operating system offers an instruction 'sendmail' which, on execution, runs a program causing the computer to send a specified message to other computers in accordance with the SMTP. The Solaris 2.5 operating system installed on the user's computer 3 further includes schedule software known as "Calendar Manager". This is executable to allow the user to enter appointments into a specified schedule file and to edit appointments already stored in the schedule file. In more detail, the operating system offers instructions including 'cmjookup', 'cm_deiete' and 'cmjnsert', which respectively retrieve appointment information from, delete appointment information from, and add appointment information to, the schedule file. Additionally, the user's computer 3 is provided with an 'Appointment Assistant' program. The structure of this program, together with its interaction with schedule and mailbox files stored in the user's computer 3 is schematically illustrated in Figure 2. The 'Appointment Assistant' program was written using the computer language Prolog. The highest level routine of the program 'e-mail reader' 1 1 , includes instructions to execute subroutines 'cancel', 'query' and 'book' (1 2, 13, 14 respectively), which in turn, between them, include instructions to execute the sub-sub-routines 'mailbox interface', 'display interface' and 'schedule file interface'. Those familiar with Prolog will realise, on reading the functional description of the program given below, that the 'Appointment Assistant' program includes 'grammars' 1 8, 1 9 which are used in identifying appointment information in e-mail messages. The sub-sub-routine 'mailbox interface' uses the program run in accordance with the operating system instruction 'sendmail' to send program- generated messages (20) to the recipient's computer 1 . The subroutine 1 5 is also operable to process e-mails stored in a mailbox file 21 to extract information as to their sender, time of transmission etc. in accordance with the grammar 19. As mentioned above, incoming e-mails 22 are stored in the mailbox file 21 . The sub-sub-routine 'schedule file interface' uses the programs run in accordance with the operating system instructions 'cm_delete', 'cmjnsert' and 'cmjookup' respectively to delete appointments from, insert appointments into and extract appointments from a schedule file. Appointments 24 may be entered by the user, using his keyboard and mouse for example, into the schedule file 23 using other software loaded onto his computer 3. The sub-sub-routine 'display interface' runs an operating system program operable to provide the user 3 with a Graphical User Interface via the monitor on his computer. The advantage of structuring the 'Appointment Assistant' program as described above is that only the interface sub-sub-routines 1 5, 1 6, 1 7 need to be rewritten in order to run the 'Appointment Assistant' program on a different operating system. The 'Appointment Assistant' program is effective to apply up to 200 grammar rules 18 in order to identify meeting information contained in a stored e- mail message. The overall operation of the computer 3 when under control of the program is illustrated in Figure 3. When the program is executed, it first causes the monitor to display a graphic to the user which includes a representation of a "start" button (Step 30). A user can cause the program to execute further by clicking on the "start" button. The program is then effective to check if any messages are present in the mailbox (Step 31 ). If no messages are present, then a routine in the user interface which displays a graphic representing a "quit" button is displayed on the monitor (Step 32). If the user clicks on the "quit" button when the program ends (Step 33). If, however, any messages remain in the user's mailbox which have not been analysed, then a program routine is run which is effective to establish whether the next message in the mailbox is a request to cancel a previously arranged appointment (Step 34). The first instructions in this routine are effective to establish whether the message concerns a meeting at all. This is achieved by examining the subject field of the e-mail in question to see if it contains one of the following words: "meeting", "meetings", "mtg", "course", "presentation", "visit", "talk", "chat", "demo", "demonstration", "interview", "event", "workshop", "rendezvous", "review", "discussion", "get together". If one or more of these words is present then further instructions are carried out to see whether the e-mail either: 1 . Contains both a word denoting a meeting and a word denoting a cancellation in its subject field. The words denoting a cancellation are "cancel", "cancelled", and "cancellation"; or 2. Contains the word "no" in the subject field followed by a word denoting a meeting. 3. Contains, in the main body of the message, one or more of "is", "will be", or "has been" followed by one of the above words denoting a cancellation or by a word denoting a meeting followed by a word denoting a cancellation or by the word "no" followed by a word denoting a meeting. If any of the above conditions are true then control is passed to a cancelling module 40. If none of the above conditions are met then the program is followed to determine whether the e-mail being considered relates to a query about a previously arranged appointment (Step 35). This is achieved by determining whether the subject field contains one or more of the words "query", "availability", "available" or "convenient". If it is determined that the message does represent a query about an appointment then control is passed to a querying module 50. If, however, it is determined otherwise, then further instructions (Step 36) are carried out to determine whether the e-mail relates to a request to make an appointment. This is simply done by finding whether the subject field of the e-mail contains one of the above words denoting a meeting. If one of the words is present in the subject field then control passes to a booking module 60. If it is not, then a counter indicating which message to be analysed is incremented by one (Step 37), whereafter control is returned to Step 31 . As stated above, if it is determined in Step 34 that the message does relate to a cancellation, then the instructions of the cancelling module 40 are executed. These instructions are shown in more detail in Figure 4. The first instructions (Step 401 ) carried out are effective to find the date of the meeting which has been cancelled. A number of grammar rules are associated with these instructions. These rules are applied by finding phrases in the e-mail which contain the word "on" or "for" followed by a phrase giving a day and possibly a month and a year. By defining a number of possible date formats, all the date clauses are converted into a day/month/year format. There are also some additional rules which identify a meeting date in the e-mail by searching for one of the expressions "today", "tomorrow", "day after tomorrow", or alternatively "this", or "next", followed by a day name. If a date is not found in the e-mail, then the program controls the computer to send an e-mail in response to the user's e-mail which requests the user to provide a date for the meeting (Step 402). It will be understood that this section of the program uses the 'mailbox interface' sub-sub-routine 1 5 to achieve this. On the other hand, if a date is identified, then the following program instructions are executed to identify a start time contained within the e-mail (Step 403). Phrases referring to the start time are identified by searching for phrases which begin with one of the following expressions: 'at', 'at about', '@', 'from', 'for', 'between', 'start until', 'starting until', begin until', and 'beginning until' and that expression is followed by one of a number of possible formats for expressing a time (for example, using a 24 hour clock or expressions such as 'in the afternoon'). If a start time is not found in the message, then further instructions are executed to cause the computer to send a response to the e-mail requesting that a start time for the meeting is supplied (Step 402). If a start time is found, then a further set of instructions are executed which are effective to identify any finish time contained within the message (Step 404) . To do this, the instructions are executed to identify phrases in the e-mail which begin with one of: 'to', '-', 'until', 'til', 'till', 'finish at', 'finishing at', 'end at' and 'ending at', followed by an expression of a time. If a finish time is not found, then control passes to a set of instructions (Step 405) which are executable to find a part of the e-mail which refers to the duration of the meeting. To do this, the e-mail is searched for one of the verbs 'last', 'lasting', 'be', 'being', 'take' and 'taking' followed by an expression of a length of time. The grammar rules also consider an expression having the word 'for' or a word denoting "approximately" between the verb and the expression of a length of time. If, in addition to not finding a finish time in Step 404, a duration is not found in Step 405, control passes to a routine which identifies any matching appointment stored in the user's appointment file (Step 406) on the basis of the date and start time found in Steps 401 and 403. If a matching appointment is stored in the user's appointment file then that appointment is deleted and a response to the e-mail is sent replying to the message and indicating that the appointment has been deleted from the user's appointment file (Step 407). It will be realised that steps 406 and 407 use the sub-sub-routine 'schedule file interface' 1 7 and to carry out the necessary cmjookup and cm_delete functions. If, on the other hand, no matching appointment is found in the calendar manager then a set of instructions is executed (Step 408) to respond to the e-mail, stating that no appointment corresponding to the message is stored in the user's appointment file. If a duration is found in Step 405, then a set of instructions are executed to establish whether a matching appointment exists in the user's schedule file (Step 409). If a matching appointment is found then steps similar to those described in relation to Step 407 are carried out (Step 410). However, if a matching appointment is not found then steps similar to those carried out in Step 408 are executed (Step 41 1 ). Returning to Figure 3, if it is established in Step 35 that the e-mail being investigated relates to a query about an appointment, then control is passed to a querying module 50. The instructions contained within this module are illustrated in more detail in Figure 5. The first steps in the module are similar to those carried out in relation to the cancelling module 40. Firstly, an attempt is made to find a date for the meeting for investigating the contents of the e-mail in Step 501 using similar techniques to those carried out in Step 401 . If no date is found then the computer is controlled to respond to the e-mail by sending a request that the sender of the e- mail supplies the missing information (Step 502). If a date is found, then a search is made for a start time (Step 503) in a similar way to that described in relation to Step 403. If no start time is found, then the computer executes a further set of instructions (Step 504) which are effective to examine the user's appointment file to establish whether the date found in Step 501 is free. If the user has no appointments on that date then instructions are executed (Step 505) to respond to the e-mail by stating that the date is free. If, on the other hand, it is found that the date in question is not free then a response is sent indicating that the user is unavailable on that particular date (Step 506). If a start time is identified within the e-mail, then the next part of the program executed by the computer is effective to find a finish time contained within the message (Step 507) using a similar method to that used in Step 404. If a finish time is not found then a set of instructions are executed (Step 508) which, in a similar way to that used in Step 405, identify any duration mentioned in the e- mail. If no duration is found then the user's schedule file 23 is accessed to establish whether the hour following from the start time found in Step 503 is free (Step 509). If that time is free then the computer is controlled to respond to the e- mail by indicating that the user is available (Step 510). If the hour in question is not free then the computer is controlled to respond to the e-mail by indicating that the user is unavailable (Step 51 1 ). If a finish time or a duration is found in Step 507 or 508, then the user's schedule file is accessed to establish whether it contains any appointments which clash with the proposed meeting time (Step 51 2). If such a clash would occur then the computer is controlled to respond to the e-mail by stating that the user is unavailable (Step 514) . On the other hand, if such a clash would not occur then the computer is controlled to respond to the e-mail by stating that the user is available for the meeting (Step 51 3). If it is determined in Step 36 (Figure 3) that the purpose of the message is to book an appointment with the user then program control passes to the booking module 60. The sets of instructions making up the booking module 60 are illustrated in more detail in Figure 6. The instructions contained within the booking module begin with a set of instructions executable to find any date contained within the e-mail (Step 601 ) . Provided such a date is found, further instructions are executed to identify any start time within the e-mail (Step 602), and provided that is found, another set of instructions is executed to find a finish time (Step 603) or alternatively, a duration for the meeting (Step 604). The searching for these items of information is carried out in a similar way to that described above in relation to the cancelling module 40 and the querying module 50. If any one of the pieces of timing information is missing then the computer is controlled by the program to respond to the e-mail specifically requesting whatever information is lacking (Step 605) . If all the timing details concerning the meeting have been specified by the sender then program control moves to a routine which is executable to find a location for the meeting mentioned in the e- mail (Step 606). The routine (Step 606) comprises two sections. The first section of the routine identifies possible location phrases in the message by searching for phrases which contain the word 'in', 'or', 'at' or the verb 'booked', possibly followed by the word 'the'. The words immediately following these phrases are taken to refer to the location of the meeting. The second part of the routine then checks that the words found do not relate to a start time or finish time (using the grammars discussed above) or do not start with the words 'morning', 'afternoon', 'evening', or 'night'. If such an exception arises, the expression found is determined not to relate to a location and the remainder of the e-mail is searched. If no location phrase is found in the carrying out of the above routine, then program control is passed to the querying module 50. Thus, even where a location is not mentioned in the e-mail setting up a meeting, a user still has a response sent on his behalf which indicates whether he is free at the chosen time or not. If details of a location are found in the e-mail then the user's schedule file 32 is examined (Step 607). If an appointment is found which clashes with the proposed meeting time then the user's computer sends a response indicating that he is unavailable for the proposed meeting (Step 608). If the user's appointment file indicates that he is available for the meeting, instructions within the 'display interface' sub-sub-routine 16 are run (Step 609). The instructions are effective to cause a graphic to be displayed on the user's monitor which indicates details of who has sent the e-mail concerned together with details of the time, location and date of the proposed meeting. The display also includes four 'button' elements reading 'accept', 'reject', 'details....', and 'cancel' respectively. On seeing the graphic, the user can then click on one of the displayed buttons to determine the program instructions that are subsequently carried out. If the user selects the "details..." button then the e-mail which has been analysed by the computer to provide the display meeting details is displayed in full (Step 610). If the user chooses the "cancel" button then the program jumps to the instructions executable to increment the message counter by one (Step 37). Thereafter, the next message in the user's mailbox 21 is examined as described above in relation to Figure 3. If the user selects the "reject" button then a response to the e-mail is automatically generated, stating that a user is unavailable for the meeting (Step 608). If, on the other hand, the user selects the "accept" button then a set of instructions is executed which check the user's schedule file to see if the time of the proposed meeting is still available (Step 61 1 ). This step is necessary because in the process of dealing with a batch of e-mails stored in the mailbox 21 , it is possible that the user will try and accept two meetings which clash with one another. If the meeting time is still available then an entry relating to the meeting is written into the user's schedule file (Step 61 2) (this will use the operating system instruction 'cmjnsert') and the user's computer is controlled to send a reply indicating that an appointment has been booked. If the proposed times are no longer available, then a response to that effect is sent to the sender of the e-mail (Step 613). It will be seen from the description of the above embodiment how a sender of a natural language e-mail from the computer 1 to the computer 3 across the communications network 2 is able to request, accept or cancel a meeting involving the user of the other computer 3. In this way, scheduling over a wide area network is enabled. Because the computer 3 is able to process natural language e-mails, and read and respond accordingly, interaction between what might otherwise be incompatible computers becomes possible. Furthermore, the user of the computer 1 is provided with a more natural interface for arranging meetings with the user of the computer 3 than has hitherto been provided. The 'Appointment Assistant' program, schedule file, mailbox and operating system may all be stored in a single memory unit or may be stored in a plurality of memory units. Also, were the user's computer to be replaced by a network having an interconnected group of distributed processors then the programs and sub- programs need not necessarily run on the same processors. For example, the mailbox interface sub-sub-program and the e-mail reader program may run on different processors.

Claims: CLAIMS 1 . A communication apparatus comprising: one or more digital processors, one or more memories, an input for inputting digital representations of natural language messages, wherein said one or more memories store; received natural language message data representing a natural language message received from a sender and intended for a recipient; appointment information extraction code executable by one or more of said digital processors to process said natural language message data to extract appointment information contained within said message; a schedule file representing appointment information relating to said recipient; and schedule information extraction code executable by one or more of said digital processors to extract schedule information corresponding to said appointment information. 2. An apparatus according to claim 1 wherein said memories further store response generation code executable by one or more of said digital processors to output a response on the basis of said extracted schedule information. 3. An apparatus according to claim 2 wherein said response generation code comprises: missing appointment information identification code executable by one or more of said processors to identify appointment information missing from said natural language message; and further information request generation code executable by one or more of said processors to generate a request to said sender to send a natural language message including said missing information. 4. A program storage device readable by a processing apparatus, said device storing a program of instructions executable by the processor to perform method steps for replying to a natural language electronic mail message, said method steps comprising: digitally processing data representing said message to extract appointment information therefrom; and examining a schedule file associated with a recipient of said message in accordance with said extracted appointment information. 5. A program storage device according to claim 4 wherein said method steps further comprise outputting a response on the basis of said extracted schedule information.

Inventors: BIRNEY ALEXANDER PHILIP, KANEEN EDWARD NOBLE, BIRNEY, ALEXANDER, PHILIP, KANEEN, EDWARD, NOBLE
Applicants: BIRNEY ALEXANDER PHILIP, BRITISH TELECOMM, KANEEN EDWARD NOBLE, BIRNEY, ALEXANDER, PHILIP, BRITISH TELECOMMUNICATIONS PUBLIC LIMITED COMPANY, KANEEN, EDWARD, NOBLE
Application year: 1998
Main classification: H04L12
IPC codes: G06F13, G06F17, G06Q10, H04L12