1. Field of Invention
The present invention relates generally to communications systems. More particularly, the present invention relates to automatically generating a list of suggested attendees for a meeting based on descriptive input provided to a meeting scheduling system.
2. Description of the Related Art
Conference systems, e.g., conference systems associated with voice over internet protocol (VoIP) communications, often enable a user to schedule meetings. Such meetings may be “attended” by calling into the meeting using a telephone or a computing device. When a user, or an individual who schedules meetings using a conference system, wishes to invite other individuals to a meeting, the user typically enters identifying information pertaining to the individuals into a meeting scheduling interface of the conference system. Often, the identifying information for each invitee is either a user identifier (userid) for the invitee that is recognized within an enterprise which includes the conference system, or an e-mail address for the invitee. Once identifying information for each invitee is entered into a meeting scheduling interface for a particular meeting, a meeting invitation may be sent to each invitee. As will be appreciated by those skilled in the art, each invitee may then either accept the invitation to the meeting or decline the invitation to the meeting. When the invitee is in attendance at the meeting and is, hence, an attendee, the attendee may send an indication to the conference system that he or she is in attendance.
Determining the right people to invite to a meeting may be difficult, as it is not always clear who should, or would be likely to, attend the meeting. By way of example, there may be various groups or teams working on a project, but not working closely enough that the members of one team know the members of the other team. A user that is a member of a project development team may not know which members of the financial team are responsible for the finances of the project. Hence, the user may not know who to invite to a meeting to discuss all aspects of the project. Similarly, someone outside of the project development team may wish to meet with the project development team, but may know substantially only the name of the project, and not the identities of any members of the project development team.
The determination of who is appropriate to invite to a meeting is often a tedious task, as associations between a particular topic, e.g., a project, and individuals may be difficult to ascertain. Often, the associations between topics and individuals are discovered or otherwise identified through the exchange of telephone calls and e-mails.
Therefore, what is desired is a system which enables a user to readily determine who to invite to meetings for certain topics. That is, what is needed is a method and an apparatus that obtains a topic from a user and provides the user with a list of individuals that have an association with the topic.
The invention may best be understood by reference to the following description taken in conjunction with the accompanying drawings in which:
Generating a dynamic set of associations between topics, groups, and individuals within a conference system allows the conferencing system to present an individual who is scheduling a meeting with a list of suggested groups and/or individuals to consider inviting to a meeting. That is, associations between topics, groups, and individuals that are generated based on information, e.g., historical information, maintained by the conference system may be used to provide a user with a list of groups and/or individuals that have previously been associated with a topic or description of a meeting that is being scheduled by the user. In one embodiment, the dynamic set of associations may be generated to include roles or functions assigned to the individuals.
When a meeting is scheduled within a conferencing system such as Cisco® MeetingPlace, available commercially from Cisco Systems, Inc. of San Jose, Calif., the meeting is generally associated with at least a title. The meeting may also be associated with a description. Indexing information contained in the title, as well as in the description, renders the information searchable. Hence, keywords are created based on the indexed information.
Invitees to a meeting may elect to attend the meeting. Once an invitee either attends a meeting or indicates an intention to attend a meeting, the user is associated with at least the meeting topic. In other words, identifying information of an attendee of a meeting may be associated with at least one keyword that is indexed from the meeting topic and, in some instances, a meeting description. The identifying information may include, but is not limited to including, a user identifier (userid) for the invitee, a profile, an e-mail address, and a telephone number. The identifying information of the attendee may be tied into a keyword such that a conferencing system may be aware that the attendee is likely to be relevant to substantially any meeting that has a topic or a description that includes the keyword.
An association between an individual, e.g., an individual who is a potential invitee, and a keyword may include an association strength. The association strength may be indicative of how likely the individual would be to attend a meeting with a topic or a description that includes the keyword. In one embodiment, an association strength may be measured as the frequency with which the user attend meetings associated with the keyword, and/or how recently the user attended a meeting associated with the keyword.
Entities 104a-d may each be associated with a project. However, within the project, entities 104a-c are in a first group 108a associated with a first keyword for the project, and entities 104a, 104b, 104d are in a second group 108b associated with a second keyword for the project. By way of example, entities 104a-d may each be involved with “Project P,” while first group 108a is associated with “engineering” as a keyword and second group 108b is associated with “management” as a keyword. Entities 104a, 104b are effectively associated with both the “engineering” keyword and the “management” keyword.
Conferencing system 112 may associate keywords to groups 108a, 108b and, further, with entities 104a-d. By way of example, when conferencing system 112 is used to schedule a meeting involving “Project P engineering,” conferencing system 112 may identify entities 104a-d as potentially being interested in attending the meeting. Additionally, conferencing system 112 may provide an indication that group 108a may have more interest in the meeting than group 108b, as group 108b is generally associated with “Project P management.”
Conferencing system 112 is arranged to allow meetings to be scheduled, e.g., meetings that may be “attended” using communications interfaces 120. Communications interfaces 120 are arranged to allow entities 104a-d to interface with conferencing system 112, and may include, but are not limited to including, a wireless communications interface and a wired communications interface. A user context arrangement 124 of conferencing system 112, which will be described in more detail below with respect to
Conferencing system 112 may have access to a directory 116 that includes information about entities 104a-d. Directory 116 may be a database that is accessible by using a lightweight directory access protocol (LDAP). Within enterprise 100, director 116 may store information associated with entities 104a-d that includes, but is not limited to, titles and job functions.
When a user schedules a meeting using conferencing system 112 or, more specifically, scheduler 122, the user may provide at least one keyword. A keyword may be included in a meeting topic or a meeting description. Using the keyword, conferencing system 112 may identify entities 104a-d that are potentially likely to attend a meeting that has a topic or a description that includes the keyword. With reference to
A user, or an individual that is scheduling a meeting, may generate actual invitee lists based on suggested inclusion lists 228a, 228b. As shown in
The actual attendees of a meeting may be all or fewer than all of the actual invitees to the meeting. In other words, not all actual invitees to a meeting may attend a meeting. Information pertaining to the actual attendees of a meeting may be used by the conferencing system to update the associations between keywords and entities.
When a user is interacting with conferencing system 112 to schedule a meeting, the interaction may occur though an input/output interface that is presented to the user by conferencing system 112. In one embodiment, the interaction occurs through a graphical user interface (GUI) displayed on a display screen, e.g., a display screen of a computing system that is in communication with conferencing system 112.
Once meeting title field 340 is populated with at least one keyword, the conferencing system may fill in suggested attendees or suggested invitees into a field 352. It should be appreciated that if meeting description field 344 is populated, the suggested attendees listed in field 352 may be updated to include suggested attendees that are associated with keywords filled into meeting description field 344. An invitee field 348 may be populated substantially automatically when a user selects a suggested attendee from field 352, or when the user manually enters invitees.
With reference to
Substantially any words or combination of words in the strings entered into field 440 and field 444 may be identified as keywords. By way of example, “PROJECT Q” and “STATUS” may be identified as substantially separate keywords.
When strings are entered into field 440 and field 444, if there are there are potential attendees who have associations with keywords in the strings, the potential attendees are displayed in field 452. As shown, field 452 displays potential attendees 456a-c that are associated with keywords “PROJECT Q,” “STATUS,” or both. The order in which identifiers for potential attendees 456a-c may be displayed varies. By way of example, identifiers for potential attendees 456a-c may be displayed such that the identifier for potential attendee 456a which has the most keyword matches is displayed first. Alternatively, identifiers for potential attendees 456a-c may be displayed in alphabetical order based on attendee names, or identifiers for potential attendees 456a-c may be displayed in alphabetical order based on keywords, e.g., if the keywords are displayed with identifiers for potential attendees 456a-c.
In one embodiment, a user may select a potential attendee 456a-c such that an invitee field 448 is automatically populated. As shown in
As discussed above, suggested invitees to or suggested attendees of a meeting may be listed in an order based on job titles.
Suggested attendees of a meeting may also be listed in an order that indicates the relative association strengths of the suggested attendees. By way of example, a suggested attendee that has a high association strength because he attends a relatively high percentage of meetings with a topic or description that includes a keyword may be listed first in a field.
The measurement or calculation of association strengths is performed by a user context arrangement within an overall conferencing system.
An indexer 568 within user context arrangement 124 indexes information contained in a message topic or description, and allows keywords to be identified. An association arrangement 576 includes an association builder 580 and a strength module 584. In general, association arrangement 576 associates meeting attendees with keywords of the meeting and, additionally, job functions. In one embodiment, a meeting organizer may be associated with the keywords associated with the meeting that he or she is organizing. Association builder 580 may identify and build associations between meeting attendees and keywords, while strength module 584 may measure or calculate strengths of the associations. A data store 572 allows information including, but not limited to, indexes, associations, and association strengths to be stored.
As previously mentioned, a relative association strength may be generated for each individual in relation to a keyword or a topic. An association strength for an individual, for example, who last attended a meeting on a topic six months ago may have a lower association strength than an individual who last attended a meeting on a topic one week ago. Referring next to
In step 605, the keyword or keywords of the meeting are associated with the attendee. Then, in step 607, a database is queried to identify a job function or title of the attendee. The database may include a directory which uses an LDAP, and may be a database that stores profile information for all individuals associated with an enterprise. Typically, such a database is external to a conferencing system, although both the database and the conferencing system may be located within a network of the enterprise.
Once the job function of the attendee is obtained, the attendee is associated with the job function in step 609. That is, an association between the attendee and the job function is effectively created within the conferencing system. The association strength between the attendee and each keyword is updated in step 611. Updating the association strength may include determining if a ranking of relevance is to be changed. By way of example, if the attendee attends one meeting a day that involves a topic which includes a particular keyword, and the confirmation obtained in step 603 is consistent with this, then the ranking of relevance for the attendee and keyword pair may not change, as the attendee still has a high likelihood of attending meetings with topics that include the keyword. Alternatively, if the last time the attendee attended a meeting based on a topic that includes the keyword was six months ago, the ranking of relevance for the attendee and keyword pair would change to indicate a higher association strength. In general, an association strength is a measure of the strength of a relationship between a keyword and an attendee. It should be appreciated that associations may be aged such that they lose strength over time.
After the association strength between the attendee and each keyword is updated, an association between the attendee, each keyword, and job function is stored if appropriate in step 613. If the association between the attendee, each keyword, and job function has previously been stored, it may not be necessary to store the association again. The association strength may be stored in a data store of the conferencing system. The association strength is stored in step 615, e.g., in a data store of the conferencing system, and the process of generating an association strength is completed.
When a user accesses a scheduling interface of a conferencing system, as described above, the user is presented with a list of suggested invitees that are keyed off of keywords included in at least a meeting topic provided by the user. The invitees in the list of suggested invitees may be presented in a variety of different orders, e.g., in an order such that the suggested invitees with the highest association strengths are presented first.
Once the user accesses a scheduling interface, the user enters a meeting topic into the scheduling interface in step 705. The meeting topic may be entered into the scheduling interface in a variety of different ways, e.g., the user may type the meeting topic into a text field of the GUI. In one embodiment, the user may also enter a description of the meeting into the scheduling interface in step 707. However, it should be appreciated that the user may not necessarily enter a description of the meeting into the scheduling interface.
In step 709, the user is presented with a list of suggested attendees. As described above with respect to
The order in which the suggested attendees are presented in the list may vary. The list may be alphabetical, the list may be hierarchical with executive and managerial job functions being listed before other job functions, or the list may be ordered with higher association strengths being listed before lower association strengths. The list may also be a combination of a variety of orders, e.g., the list may be ordered primarily by association strengths such that alphabetical order is a secondary consideration and substantially only used when there is more than one individual with a given association strength.
Once the list of suggested attendees is presented to the user, the user populates an invitee field using the list of suggested attendees in step 711. In other words, the user may select relevant attendees from the list of suggested attendees. The job functions that may be included in a list of suggested attendees enables the user to determine which suggested attendees might be relevant to a meeting. For example, if a meeting topic involves addressing financial concerns of “Project Q,” an individual with the job function of “vice president of finance” may be a relevant attendee, while an individual with the job function of “engineering technician” may not be a relevant attendee. Populating the invitee field may include, but is not limited to including, typing invitee e-mail addresses into the invitee field and using an interface device such as a mouse or a touchpad to select invitee e-mail addresses that are then automatically filled into the invitee field. After the user populates the invitee field, the process of utilizing a message scheduling interface is completed.
After suggested attendees are identified, information relating to the job functions of the suggested attendees is obtained in step 807. If job function information is not stored in the data store, which is generally part of the system, the system may access an external database, e.g., an external database that stores a member or employee directory for an enterprise, to obtain the job function information.
In step 809, it is determined if association strength is to be accounted for. By way of example, it may be determined whether the frequency with which each of the suggested attendees attends meetings associated with the keywords and/or how recently each of the suggested attendees attended a meeting associated with the keywords is to be accounted for. If it is determined that association strength is not to be accounted for, then in step 815, the system orders the suggested attendees based on job function and/or other suitable criteria. For instance, the suggested attendees may be ordered by job functions in a hierarchical order, as well as alphabetically if more than two individuals have the same job function. After the suggested attendees are ordered based at least on job function, the ordered suggested list of attendees is displayed in step 817, and the process of presenting a suggested list of attendees is completed. It should be appreciated that the list of attendees may include substantially any information, and is not limited to including an identifier for each suggested attendee, e.g., a name or a userid, and a job function for each suggested attendee.
Returning to step 809, it is determined that association strength is to be accounted for, the indication is that association strength has been determined, and is stored, by the system for each suggested attendee. Accordingly, process flow moves from step 809 to step 811 in which association strengths for each of the suggested attendees is obtained, e.g., from a data store within the system. Once the association strengths are obtained, the system orders the suggested attendees based on the association strengths 813. In one embodiment, the attendees with the highest association strengths are listed before the attendees with the lowest association strengths. Once the suggested attendees are ordered based on association strengths, additional ordering may be implemented, i.e., the ordering based on association strengths may be augmented. By way of example, if there are a plurality of suggested attendees with approximately the same association strengths, the plurality of suggested attendees may be sorted based on job function. From step 813, process flow proceeds to step 815 in which the system further orders the list of suggested attendees.
Although only a few embodiments of the present invention have been described, it should be understood that the present invention may be embodied in many other specific forms without departing from the spirit or the scope of the present invention. By way of example, a GUI that may be used by a user to schedule a meeting may vary widely. Further, an interface that a user may use to schedule a meeting is not limited to being a GUI, and may be substantially any suitable interface.
In one embodiment, an association strength may be updated based upon an issued invitation. That is, if an invitee is issued an invitation to a meeting with a topic that includes a keyword, an association strength for the relationship between the invitee and the keyword may be updated. The association strength may further be updated if the invitee actually attends the meeting or weakened if the invitee does not attend the meeting.
A variety of different factors may affect an association strength. As discussed above, an association strength may be measured by factors such as the frequency with which an invitee attended meetings identified at least in part by a keyword, and/or the most recent time an invitee attended a meeting identified at least in part by a keyword. Other factors that may be measures of an association strength may include, but are not limited to including, the number of relevant keywords an invitee is associated with and/or the frequency with which the invitee attended meetings identified at least in part by a keyword within a particular time frame.
While an indication that an attendee is in attendance at a meeting effectively initiates a process of associating the attendee with a topic or, more generally, a keyword for the meeting, such a process may instead be initiated by the acceptance of a meeting. In other words, the act of an invitee indicating interest or intended attendance at a meeting may cause the invitee to be associated with a keyword for the meeting. Generally, a meeting organizer, e.g., the person who selects actual invitees to a meeting, may be associated with a keyword for the meeting he or she is organizing.
Words that are related to keywords may be accounted for when associations between keywords and entities are to be identified. For example, while an association between a keyword “status” and an invitee may be stored in a conferencing system, the conferencing system may account for related keywords such as “update” and “progress report.” That is, an association between the keyword “status” and an invitee may be considered to also be an association between the keyword “update” and the invitee, as well as an association between the keywords “progress report” and the invitee.
Including a job function for a suggested invitee or a suggested attendee for a meeting enables a user who is using a meeting scheduler arrangement to readily identify the roles of each suggested invitee and, further, to determine which suggested invitees may be particularly relevant to the meeting. However, it should be appreciated that the job functions of suggested invitees are not necessarily presented to the user.
The steps associated with the methods of the present invention may vary widely. Steps may be added, removed, altered, combined, and reordered without departing from the spirit of the scope of the present invention. Therefore, the present examples are to be considered as illustrative and not restrictive, and the invention is not to be limited to the details given herein, but may be modified within the scope of the appended claims.