Dynamic matching<tm> of users for group communication
Abstract
A method for users to exchange group electronic mail by establishing individual profiles and criteria (302) for determining individualized groups. Users establish subscription (208) to an electronic mailing list (204) by specifying user profiles and profile criteria (302) to screen users. When a user subscribes (208), a web server (346) establishes and stores an individualized list (204) of subscribers (208) who form a mutual criteria match with the user. When the user then sends a message to the mailing list (210), an email server (354) filters her recipient list down to a message distribution list using each recipient's message criteria (302). The message is then distributed to matching users. Additionally, email archives and information contributions from users are stored in a database. A web server creates an individualized set of web pages for a user from the database, containing contributions only from users in his recipient list. In other embodiments, users apply mutual criteria matching and message profile criteria to other group forums, such as newsgroups, voicemail, instant messaging, chat, web-based discussion boards, and online gaming rendezvous.

Term
No projected expiry on record.
- Priority and filed
- Published
- Today
1 claim: 1 independent, 0 dependent
- 1CLAIMS What is claimed is:1. A method for enabling users to exchange group electronic mail according to establishd individual profiles and criteria determining individualized groups, comprising the steps of: establishing user subscriptions to an electronic mailing service list by specifying user profiles and profile criteria to screen other users;establishing and storing in a service web server an individualized recipient list of subscribers who form a mutual criteria match with each user;receiving a message sent by a user to the server;filtering the user's recipient list down to a message distribution list using each recipient's message criteria;and distributing the message to matching users.
130 paragraphs in 10 sections, as filed
0001Specification
0002DYNAMIC MATCHING™ OF USERS FOR GROUP COMMUNICATION
REFERENCE TORELATED APPLICATIONS
0004This application claims priority to provisional patent application serial number 60/100,387, filing date 09/15/98, entitled "Electronic Match-Making Within A Group Using Criteria." This application also claims priority to provisional patent application serial number 60/115,566, filing date 01/12/99, entitled "Dynamic Matching of Users For Group Communication." This application also claims priority to provisional patent application serial number 60/143,947, filing date 07/15/99, entitled "Dynamic Matching of Users For Group Communication."
BACKGROUND OF THE INVENTION
0006FIELD OF INVENTION This invention relates to electronic communication within group forums, specifically a process for dynamically matching users for high quality interactions within a group forum by establishing individual profiles and acceptance criteria for restricting interaction.
DISCUSSION OF PRIOR ART
0008There are many systems that allow users and groups of users to interact with each other. Electronic forums such as electronic mail, voicemail, USENET newsgroups, web-based discussion boards, and online multi-player gaming services all have such facilities. But none of the systems gives users individualized acceptance criteria for locating high quality matches with other users. Each forum is created with a particular subject or objective in mind, and beyond that all users must follow the boundaries of that forum. It is strictly a "take it or leave it" proposition to the user. There is little opportunity for a user to personalize the forum to meet his own needs.
0009With electronic mail, users must know the email addresses of those they want to contact.
0010Electronic mailing lists improved on this for group communication by redistributing each message sent to the list's email address out to all subscribers. All users get all messages sent to the list. But there are problems - smaller mailing lists are hard to promote and popularize while larger lists are unwieldy, tending to have many rules of use and/or a high message volume, and a high intimidation factor. In short, users have no control over which users on a list they communicate with. An additional problem is not knowing how much email a subscription will deliver to you. One subscription may bring only a few messages per month while another one fills a user's mailbox with 50 or more messages in a single day.
0011One common yet inflexible division within a topic is by geographic region. Consider a hypothetical worldwide "jazz" mailing list: If a subscriber wants only to communicate about jazz with people in New York City, he must create a separate mailing list, such as "nyc-jazz". For most users, the work involved in creating and managing a list is prohibitive. Some regional groups may develop their own jazz mailing lists, but such lists are usually tough to advertise and promote. Regional lists are inflexible because they have pre-set borders, e.g., the borders of New York City. That list will not meet the needs of users just outside city limits who may have a lot in common with those near them just inside city limits, but little in common with those across town. Each user's needs are different and yet the current mailing list systems are inflexible in allowing users to express their needs and wants via customization.
0012Similarly, there is much work involved in forming a neighborhood mailing list. If someone in a particular neighborhood wants to communicate with neighbors, there are many steps he must take. First he must create a mailing list. Then he may determine the borders of the neighborhood. This is problematic if it is unclear where the borders should be, as is the case with many unnamed neighborhoods. And then he may advertise and evangelize the mailing list to build subscribership. Since most neighborhoods do not have any channel for information distribution (such as a printed newsletter), this is a daunting task.
0013To extend the example, different people have different wants and needs even within geographically regional communication. In Fig. 1, one person (A) may want to exchange email with others within a one mile radius of him. A second person (B) may only want to exchange email with those on his block. A third person (C) may want only to exchange email with folks in one direction from his house. However, there is currently no way for users to express these desires to control their participation in a mailing list.
0014There are countless meaningful acceptance criteria that would benefit users. Consider a parenting mailing list. In general, once a mailing list is formed, it tends to develop its own scope of interest. In this example, the parenting list may develop a very strong trend of discussing infants and toddlers. This can be very limiting for a subscriber who wants to discuss teenagers. That subscriber must delete many unwanted messages and may simply unsubscribe from the list in frustration. She may consider a search for a better list, or she may consider starting a separate mailing list for parents of teenagers, but again the barrier to entry is high. Since the mailing list system cannot leverage information about the ages of children each subscriber is interested in, it cannot deliver to her just those messages about teenagers.
0015In online gaming, such as "Yahoo! Games", users are able to rendezvous with other users to play multi-player games, such as the card game "hearts". The service provider will often divide the players into several forums based on ability, such as beginner, intermediate, and advanced. But it does not allow users to specify other acceptance criteria, such as personality, computer speed, or amount of "chat-style" conversation they want to engage in during a game. Thus users must either live with low quality match-ups or resort to trial and error, quitting games in the middle, in a search for the characteristics they want in the game. Again the user's only choice is "take it or leave it."
0016A number of email based news and information services such as InfoBeat provide customized messages to their subscribers, but the messages are only sent by the service itself, not by other users. It is meant for automated information delivery, not interpersonal communication and interaction.
0017Dating services and employee-employer matching services use criteria and profile information to match people together, but they use those results only for one-on-one communication. They have not used matching technology for group communication in which each user has their own personalized group. Although the discussion here has been principally of the interaction provided by electronic mailing lists, other group forums such as USENET newsgroups, web-based discussion message boards, and online gaming rendezvous are alternatives that exhibit similar problems.
0018Thus, a method is needed for creating high quality interactions within electronic forums.
0019OBJECTS AND ADVANTAGES Accordingly, several objects and advantages of the present invention are:
0020(a) Creates personalized, tunable groups for users, using profile data and acceptance criteria they specify. This fundamental novelty greatly empowers and enriches the quality of their communications .
0021(b) Greatly reduces the quantity of electronic forums such as electronic mailing lists, by making possible a small number very broad forums within which users can create their own niches.
0022For instance, a single jazz mailing list can serve the entire world. (c) Allows users to very easily create discussion niches of meaning to them. They may want to only email with other senior citizens, or only with those in their city. In the parenting example given earlier, each user could specify the children's age range they would like to discuss. The resulting mailing list is tuned to each user's needs, and gives them a much higher quality of interpersonal contact.
0023(d) Provides a way for meaningful groups to form automatically, such as neighborhoods.
0024(e) Provides a way of filtering archived information provided by subscribers into individualized archives. This includes email archives as well as other information such as recommended businesses and web sites. Additional objects and advantages are to benefit society by creating and uniting a huge number of niche groups, and to meet a compelling and immediate user need to customize email list communications according to individual profiles. By dynamically matching each user's profile and acceptance criteria to others, the system creates a customized group for each user, enabling groups to form automatically. Users need a fluid, flexible, and expressive means of controlling their interactions with others. They need to be able to drastically increase the quality of communication, while controlling the quantity of it. This invention enables these users to customize their communications and interactions.
0025Further objects and advantages of my invention will become apparent from a consideration of the drawings and ensuing description.
DESCRIPTION OF DRAWINGS
0027Fig. 1, shown above, is an example of neighborhood residents with different needs.
0028Fig. 2 is an overview of use of the present invention.
0029Fig. 3a is an overview of the invention's system's database. Fig. 3b describes the data flow to and from the system servers.
0030Fig. 4a is an example of a user interface for subscribing to a mailing list.
0031Fig. 4b is a flowchart of the user subscription process.
0032Fig. 4c is a flowchart depicting the process for determining subscriber match-ups.
0033Fig. 4c-ALTl is an alternative flowchart for determining subscriber match-ups. Fig.e 4c-ALT2 is another alternative flowchart for determining subscriber match-ups.
0034Fig. 5 is an example of users sending email messages to the mailing lists.
0035Fig. 6a is a flowchart of the message distribution process to mailing list subscribers. Fig. 6a- ALT 1 is an alternative flowchart of the message distribution process to mailing list subscribers.
0036Fig. 6b is a flowchart depicting how a data set is compared to an acceptance criteria set. Fig. 7 is a flowchart of an alternative embodiment in which the user reads messages in a web-based discussion forum.
SUMMARY OF THE INVENTION
0038The preferred embodiment for the present invention uses exchange of electronic mail as its medium. The detailed description to follow will focus on an electronic mailing list system in which subscribers identify acceptance criteria for engagement and then benefit from the ensuing interaction. It will be clear to those skilled in the art that there are many alternative electronic forums in which the invention could be applied. These include, but are not limited to, voicemail, instant messaging, videoconferencing, online chat, web-based discussion boards, USENET newsgroups, online gaming, online gaming rendezvous, and unified messaging.
0039Although the discussion here focuses on the internet network for its preferred embodiment, obviously any automated means for group communication may be used for the present invention.
OVERVIEW OF USE:
0041Referring to Fig. 2 — Overview of Use, the numeral 200 generally refers to an overview of the use of the present invention. In block 202, a service provider using the invention initializes the system for the first time. The service provider initializes a database, or a dedicated part of a database, on a database server available to both an email server and a web server. This is done using a database system, consisting of a schema, data, and a Database Management System (DBMS). The database system is a product such as those from Oracle or Sybase. Then the service provider sets up the email server to receive and send email on the internet. Next they set up the web server to allow subscribers access to the web site via the internet. The database server, email server, and web server each contain a portion of the present invention. In the preferred embodiment the servers are separate, but alternatively their functions could be combined into fewer servers or expanded to more servers. In block 204, the service provider creates one or more electronic mailing lists by adding mailing list records and related records to tables in the database. This is accomplished using a method provided by the database system.
0042At block 206, the service provider advertises through any known channels they choose, such as print media or web-based ads, to attract customers to subscribe. At block 208, users visit the web site and subscribe to mailing lists, specifying acceptance criteria that control with whom and about what broad topics they wish to interact. The system stores their subscription information in the database. At block 210 users begin sending email messages from their computers across the internet to email addresses dedicated to the mailing lists they subscribed to at block 208. At block 212 the email is delivered across the internet to the email server. The server determines which mailing list subscribers within the list's subscriber base should receive the email message. It does this by doing a two-way match between the sender and each recipient, using profile information and acceptance criteria previously provided by subscribers. It then distributes the email message across the internet to the matching subscribers. Block 214 describes the end result of the process: users exchange high quality messages with other matching users, and sub-groups form automatically within the mailing list.
0043To sum up the functionality, consider the following example. Suppose a user sends a message about a problem at his child's school to the system for distribution. He addresses it to the email address for his local neighborhood mailing list, at the service provider's email server, e.g., neighbors@local2me.com. This mailing list has been set up in advance by the service provider. He also selects the predefined topic "School" from a list of topics defined by the service provider. The email server retrieves his personalized distribution list from the database. This describes the other subscribers he forms a two-way match with. That list is pared down, removing subscribers who don't want messages on the topic "School". His message is then sent out to the pared down list, resulting in a satisfying interaction with all the right people.
0044Turning to FIG. 3a — System's Database, numeral 300 generally refers to a description of the database schema and relationships between entities (Entity/Relationship diagram). The database in this preferred embodiment is a collection of tables of information, as is typically stored in a database product such as Oracle. In the diagram, relationships between tables are shown with T or 'n', as will be familiar to those skilled in the art, to indicate the relative number of related records between each pair of tables. In the description below, we refer to a database record's (or table row's) unique ID. This is also commonly called "Row ID", "Record ID", "Object ID", or "OID" by those skilled in the art, and is simply a unique identifier for each row in a table.
0045At block 302, the users table (also referred to as the "base user profile table") contains a collection of base user profile records. These are records that contain base information about a user, such as name and email address, separate from their subscriptions. Each record also contains a unique ID. In this preferred embodiment, there is only one base user profile per user.
0046At block 306, the subscriptions table contains one record for each subscription entered. Each user can have multiple subscription records, for instance subscribed to a jazz mailing list and a neighborhood mailing list. The subscription table contains the unique ID and unique username of the subscribing user. It also contains the name of the mailing list the subscription is for. Another field allows the user to give the subscription a descriptive name. The table also contains subscription user profile data, which is profile information about the given user specific to this subscription. This information is stored in integers and strings - 10 of each type of variable are allocated. Similarly, there are data fields for user profile acceptance criteria ("pcriteria") describing what this user requires of other users, and message acceptance criteria ("mcriteria") describing what this user requires of messages he receives. The data in each of these profile and acceptance criteria fields varies between mailing lists. The fields can be interpreted by examining the Subscription Template table, discussed below. The term "user profile" is used here and below to refer to the combination of both a user's base user profile and the subscription user profile. Base user profile is collected once when the user first registers at the service provider's web site. But the subscription user profile is extra profile information needed just for a particular mailing list - it is collected when the user subscribes to a particular list. The term "user profile acceptance criteria" refers to acceptance criteria related to both the base user profile and the subscription user profile.
0047At block 316, the mailing lists table contains a record for each mailing list in the system. The service provider, using an access method provided by the database system creates these records. Each record contains a user-presentable name and an email address for the mailing list. Block 318 refers to the Subscription Template table. This meta-information describes the profile and acceptance criteria information needed from each user for each mailing list. It also describes where the profile and acceptance criteria data are stored in the subscription table, and what profile information each acceptance criterion refers to. Each row correlates to one piece of profile or acceptance criteria data. A unique ID is available for each record. List name is the name of the mailing list. Item name is the name of the item. Category describes the type of template this is: user profile, user profile acceptance criteria, message profile, or message profile acceptance criteria. Data type describes the type of data being collected. The restrictions field describes any restrictions for data entry (e.g., a number between 1 and 10). Prompt is a text string to use when collecting profile or acceptance criteria data from the user. Store_in_col describes what column in the subscription table provides storage for this data when collected from the user. Store_in_col also describes what column in the email messages table provides storage for this data when an email message is stored. Applies_to_table and Applies_to_column are only used for acceptance criteria entries in the table. (Not used for profile template entries.) They describe what profile data the acceptance criteria applies to. Applies_to_table selects the database table of the profile data that the criteria applies to. This could be either the subscription table, the user table, or the email message table. Applies_to_column identifies the column of interest within that table. Profiles and acceptance criteria are closely related. The system compares acceptance criteria to profiles to determine subscriber and message matches. A profile may contain a field that describes a single data point, such as geographical location, age, or occupation. The corresponding entry in the acceptance criteria may be a range of such data points, such as a geographical area, age range, or set of selected occupations. At block 320, the Matches Table keeps track of which subscriptions are matched to each other. Each row keeps a simple relation between two matched subscribers. Two subscription unique ID's are stored in each row. A union of searching both columns for a given subscription's unique ID yields the full set of matching subscriptions for the given subscription. This table is used so that the time-consuming matching calculation can be done only when needed, with the results stored in this table for quick access.
0048At block 322, the email archives table is an additional feature to keep an archive of email messages previously processed and distributed by the system. This will be used to give users an estimate of email traffic when they are about to finalize a subscription process, and to allow users to browse the archives via a web interface. A unique ID is available for each record. The sender's subscription unique ID links a message to the sender. Msg_profilel_int to msg_profilel0_int and the similar string profile fields store data describing the profile of the message (e.g., topic category is 'recommendations'). These correlate to the message criteria stored in subscription records. The email message content is stored separately in the server's filesystem and its filepath is stored in the DB record.
0049Turning to FIG. 3b — System Servers' Data Flow, the numeral 340 generally refers to the flow of data between users, the email & web servers, and the database server. At block 342, multiple users are depicted on a geographical map. At block 344, the users interact via an internet web protocol 344 with a web server 346. The web server 346 is software and/or hardware for traditional web serving, plus a portion of the present invention for interacting with users via the web. The web server 346 interacts with a database server 348. At block 352, the users 342 use an internet email protocol to interact with an email server 354. Email server 354 is software and hardware for traditional internet email handling, plus a portion of the present invention for interacting with users via email. The email server 354, like web server 346, has access to database server 348. After processing, email server 354 distributes each message out to via block 352 to multiple users 342. Note that email server 354, web server 346, and database server 348 are three distinct computer systems in this preferred embodiment, but could alternately be combined into fewer computer system or split into more computer systems.
0050Referring to FIG. 4 — Example Subscription User Interface, the numeral 208 generally refers to a depiction of an example of a subscription user interface generated by the system and presented to the user as a web page. Numeral 402 denotes a section collecting subscription user profile data. Numeral 406 denotes a section collecting user profile acceptance criteria. Numeral 408 refers to some subscription user profile acceptance criteria, to be compared against subscription user profile data. Numeral 410 refers to some base user profile acceptance criteria, to be compared against base user profile data. Numeral 412 denotes a section allowing the user to specify message acceptance criteria. Subjects 414 and Content Search 416 are two examples of different kinds of message acceptance criteria that can be compared against the content and profile of an email message.
0051Referring to FIG. 4b — User Subscription Process, the numeral 208 generally refers to a process of signing a user up for a particular mailing list with the service provider, specifying profile acceptance criteria data, and storing the subscription.
0052At block 442, the user goes to a web site utilizing a portion of this invention. At block 443, the web server ascertains whether the user is known to the service, or a new user. If he is known, processing moves to block 445. If he is not known, the server proceeds to block 444 and presents the user with a new user registration screen. Upon providing information such as name, address, email address, age, and occupation, the server stores the base user profile record in the database.
0053At block 445, the server presents to the user a set of web pages representing a collection of available mailing lists. The user selects a mailing list of interest and indicates via a user interface that he wants to subscribe to it. At block 446, the server retrieves the mailing list record and related template records from the database. It uses these to build a subscription form, and presents it to the user. At block 447 the user fills out the subscription form, specifying his profile acceptance criteria for the subscription.
0054At block 448 the server analyzes all subscription records in the subscription table to locate the records for users already subscribed to this particular mailing list. It selects the subscribers who form a two-way match with the new user. A match is defined to be when a subscriber X's acceptance criteria indicates he wants to email with another subscriber Y, and when Y's acceptance criteria indicates he also wants to email with X. This critical step of two- way matching is one of the foundational points of the process, and is described in detail in FIG. In an alternative embodiment, both users do not have to mutually agree on interaction.
0055Their user profiles do not both need to match each other's acceptance criteria. Even if user X does not want to receive message from user Y, in the alternative embodiment user Y may choose to receive messages from user X if all of Y's acceptance criteria are met. Acceptance criteria may include a plethora of different choices, including location, age, sex, hobbies, skills, preferences. While patent #5,555,426 by Johnson et al describes a method and apparatus for message dissemination that is based on recipient's acceptance criteria, its intent and focus are on simple topic keywords and sender identities. It did not comprehend the use described here. The scope of the present invention includes much more comprehensive acceptance criteria with a significantly different intention, result, and benefit for the users, not suggested by the Johnson patent.
0056At block 449 the system determines email traffic this subscription would have received in the recent past. This is very useful to give users feedback on the volume of email they will receive. It does this by matching the new subscriber's message acceptance criteria to the email archives table in the database for the matching users determined in block 448. The search is further constrained to messages sent to the mailing list of interest. The matching process used is the same one that is described in more detail below, in FIG. 6a, blocks 616-624. In an alternative embodiment, in block 449 database sampling or a similar technique known to those skilled in the art is used to provide an estimate more quickly.
0057At block 450 the system gives the user a web page of information about the email traffic associated with the subscription the user has specified. That information includes sample subjects, and statistics on the volume of recent mail. At block 451 the user chooses whether to accept the subscription as specified or return to block 447 to further refine it.
0058At block 452 the server stores the subscriber match-ups determined in block 448 in the matches table. They will be used later as the subscriber's personal recipient list for sending out messages. At block 456 the server stores the subscription record in the database. Block 458 ends the process. Block 460 is only a symbolic reference to the next phase of the use of the present invention, when subscribers begin sending email messages out to their groups.
0059In an alternative embodiment, the user can subscribe to a list dynamically at the time of sending a first message to the list. In that case, the subscription data and possibly the user profile data would be sent via email or other means along with or just ahead of the first message. The subscription feedback steps of the current process (blocks 449-451) are skipped, and the first message is delivered in accordance with FIG. 6a and the related description below. The subscription may either be stored in the database, or if it is a transient subscription ("one-shot thread" subscription), simply associated with the single email message and not stored in the subscription table. In this latter case, replies to this message back to the mailing list would reach the original sender, but other messages to the mailing list would not.
0060To summarize by way of example, suppose a user decides to try out a mailing list that uses this invention. He signs up at the service provider's web site, selecting an investment mailing list. He specifies (user profile acceptance criteria) he would like to interact with other men of age 40-50 who live within three miles of him and do not have children. He selects the subtopics (message criteria) related to internet stocks, junk bonds, and international mutual funds. The system responds with a preview of 38 matching subscribers and five messages per week. He wants more people to interact with, so he increases his age criteria to include men between 35-55. He also increases his distance criteria to five miles. Now the system matches him with 68 people and 12 messages per week, and he accepts the setup. The system stores that subscription; soon he will begin interacting with his matched subscribers. USING ACCEPTANCE CRITERIA TO DETERMINE SUBSCRIBER MATCH-UPS:
0061Turning now to FIG. 4c — Determining Subscriber Match-Ups, the numeral 448 generally refers to a process of using user-specified acceptance criteria to determine subscriber match-ups.
0062The overall process here is to find all subscribers who form a two-way match with a new subscriber. A two way match is when user X's acceptance criteria indicates he wants to interact with user Y, and user Y's acceptance criteria indicates she wants to interact with user X.
0063In FIG. 4c, a new subscriber's subscription record is given as input. At block 474, the server starts by retrieving a subscriber list for the mailing list from a database query. At block 476 the server gets the first subscriber on the list, termed here the "prior subscriber". At block 478 the server tests whether the new subscriber's user profile meets the prior subscriber's user profile acceptance criteria. If so, the process proceeds to block 480, where it applies another test: whether the prior subscriber's user profile meets the new subscriber's user profile acceptance criteria. If this test is also successful, then at block 482 the prior subscriber is added to a list of match-ups being built by this process. If this test fails, or if the test at block 478 fails, or after processing at block 482, processing proceeds to block 484. At block 484, the server tests whether there are more subscribers in the list obtained in block 474. If there are, then at block 486 the server gets the next subscriber and returns to block 478 to continue processing. If there are no more subscribers to assess, processing ends at block 488 when the match-ups list is returned to the super-process.
0064An alternative embodiment to FIG. 4c is FIG. 4c-ALTl - Determining Subscriber Match-Ups. In this embodiment, an SQL query approach is taken. Block 448 again generally refers to a process of using user-specified acceptance criteria to determine subscriber match-ups. At block 490, the query conditions string is defined to be empty, to begin building a complex query. At block 491, conditions are appended to the query to select only subscriptions from the subscriptions table that are subscriptions for the target mailing list. Block 493 adds the condition that selects subscribers who match the new subscriber's acceptance criteria. Block 494 adds the condition that selects subscribers who will accept the new subscriber, per the new subscriber's user profile. At block 496, the query is sent to the database server. The result back from the database server is a list of subscribers matching all of the conditions. At block 498 the system returns the matched subscribers to the super-process, completing the task of determining matched subscribers.
0065Another alternative embodiment to FIG. 5c is FIG. 4c-ALT2 - Determining Subscriber Match-Ups. In this embodiment, the matching is done through multiple computers operating as a distributed system. All communication between computers is through a standard means such as CORBA. A Match Dispatch Server computer distributes the matching process across a cluster of Match Servers. Each match server handles part of the total number of subscriptions in the system. Each match server keeps its own cached copy of the database data for high-speed access during the matching process. To conduct a match, a client sends a match request to the Match Dispatch Server ("dispatcher"). The dispatcher has a lookup table describing which Match Servers are needed to compute a particular match. The dispatcher returns a list of Match Servers to use in completing a dynamic match. The client then requests those match servers to perform partial matches, and the results are combined for the final answer. The lookup table is centralized on the dispatcher system. Data changes (e.g., from a user tuning his community settings on the web site) will first be stored in an SQL database, and then updates distributed to appropriate server(s). Although FIG 4c.ALT2 only shows a single dispatcher, multiple redundant dispatchers may be used.
0066Referring to FIG. 5 — Users Send Messages To Mailing Lists, the numeral 210 generally refers to an example of subscribers sending messages to the mailing list email address for distribution to other matching subscribers within the list. Block 502 is an example of a message sent to "neighbors" mailing list, and block 504 is a response from one of the subscribers who received the original message.
PROCESS OF DISTRIBUTING ELECTRONIC MAIL MESSAGES:
0068Referring to FIG. 6a — Message Distribution Process, the numeral 212 generally refers to a message distribution process, wherein an email message sent by a subscriber is distributed to a subset of subscribers who match the sending user and his message.
0069At block 602 a user initiates the process by sending a message to a mailing list via his email software. The first line of the body of the message contains keywords in brackets to specify the message's profile (e.g., "[for sale]" or "[school]"). In an alternative embodiment, the user sends the message using a form accessed at the service provider's web site. The form includes checkboxes, etc, for the user to specify the message's profile (e.g., this message is about subject "for sale"). In this case, the web server then passes the message directly to the email server for processing. In another alternative embodiment, the user uses a rich HTML email template which includes checkboxes and other user interface to specify the message's profile. That information is then returned to the service provider for processing.
0070At block 606 the system determines the sender's email address and checks the database to be sure the message is from a subscriber of the specified list. If she is not a subscriber, processing proceeds to block 610 where the message is rejected and returned to the sender, and processing stops at 612.
0071If block 606 succeeds, then processing continues at block 609, where the system tests whether the message meets the sender's message profile acceptance criteria. This is to make sure that the sender is not distributing a message which she herself would block based on message profile acceptance criteria. This step is considered in depth below in FIG. 6b, starting at block 609. An example of when this happens is when the user is not accepting "for sale" topics, but sends out a message with a "for sale" message profile. If the message does not meet the sender's message profile acceptance criteria, then in block 610 the message is rejected and the process ends at block 612. If the message meets the acceptance criteria, then processing continues at block 614.
0072In an alternative embodiment, a user can distribute a message which does not match her own message profile acceptance criteria. In this case, block 609 is skipped and processing continues at block 614.
0073In block 614 the system retrieves the recipient list from the matches table. In block 616 it gets the first recipient on that list. In block 618 the system tests whether the message profile meets that recipient's message profile acceptance criteria. This step is considered in depth below in FIG. 6b, starting at block 618. If the message meets the recipient acceptance criteria, then at block 620 the recipient is added to a message distribution list being built by this process. At block 622 the system tests for whether there are more subscribers to process, and if so proceeds at block 624 to get the next recipient and loop back to 618 for further processing. If there are no more subscribers, then at block 628 the system distributes the message to the just-built message distribution list via the internet. In an alternative embodiment, each email message is sent individually in block 620 rather than building the message distribution list and sending them all at once at block 628.
0074At block 630 the email message, along with its message profile, is stored in the email archives table in the database. Processing terminates at block 612. An alternative to FIG 6a is FIG. 6a- ALT 1 — Message Distribution Process. In this alternative embodiment, blocks 614-624 of FIG. 6a are replaced by blocks 674-676 of FIG. 6a- ALT1. Other than that the diagrams and process are identical. In block 674, a database query is performed to determine matched subscribers, rather than using a the pre-calculated matched subscribers stored in the matches table. This would be completed in the same way as previously shown in FIG. 4c or FIG. 4c-ALTl and the accompanying description. In block 676, the resulting list is pared down by removing subscribers whose message acceptance criteria indicates they don't want to receive this message.
DETAILED METHOD OF SELECTING SUBSCRIBER INTERACTIONS:
0076At the heart of the present invention is the use of subscriber acceptance criteria for selecting subscriber matches for interaction within a group. This was covered at a higher level in FIG. 4c, and will now be discussed in depth.
0077Referring to FIG. 61) — Comparing Data Set To Acceptance Criteria Set, the numerals 478, 480, 609, and 618 generally refer to the process of determining whether a piece of profile data record matches an acceptance criterion. This process is used either for comparing user profiles to user profile acceptance criteria, or for comparing message profiles to message profile acceptance criteria. In order to form a match between two subscribers, each subscriber must match the other's user profile acceptance criteria and message profile acceptance criteria. When a message is sent to a mailing list, this process is used several times to determine whether a sender and each potential recipient form a match.
0078At block 653, the system gets the first acceptance criterion to test. At block 654 the server locates the profile data field that matches the current acceptance criterion, if any. The field data may be of one of a number of different data types, such as text strings, numbers, dates, geographical locations, references to entire other acceptance criteria records, or lists of any of the aforementioned types. The associated acceptance criteria are generally ranges of field data, e.g., number range acceptance criterion for number profile data, geographical area of interest acceptance criterion for geographical location profile data, etc. Methods for representing such data types and the type information itself are well known by those skilled in the art. Geographical distances, such as the distance between two locations, will be determined by using an established outside process, such as a service or product produced by a map data company (e.g., Etak). For purposes of this discussion, the implementation will focus on text strings, lists of text strings, and references to other acceptance criteria records, as those types will suffice to exemplify key points of the invention.
0079There are exceptions to the processing at block 654. If the acceptance criterion is targeted for the message itself, then the message becomes the data to compare against. If the acceptance criterion is a reference to another subscriber's acceptance criteria, then the entire profile data set becomes the data to be tested against the referenced entire set of acceptance criteria.
0080At block 655 the system compares the acceptance criterion to the data field. In general, the comparison must find an intersection between the acceptance criterion and the profile data field. If the data field is a text string, then the acceptance criterion and the profile data field must match exactly in order to proceed to block 657. An additional feature would be to associate with the string a match descriptor which would select one of a number of comparisons well known in the art, including exact match, starts with, ends with, contains, and arbitrary complex search predicate.
0081If the field data is a list of text strings, the system determines whether there is any intersection between the acceptance criterion's text string list and the field data's text string list.
0082The field data type may alternately be a reference to another acceptance criteria database record. This case is discussed separately below.
0083If there is an intersection, then the test succeeds and processing moves to block 657. If it fails, then in block 656 a rejection is returned as the result of the procedure — the comparison has failed. At block 657, the process checks for additional acceptance criteria to test. If there are no more acceptance criteria, the process concludes at block 658 with a result of accepted and the procedure terminates. If there are more acceptance criteria, the system continues to block 659, where the next acceptance criterion is retrieved. The system then returns to block 654 for another iteration of analysis. SUBSCRIBERS USING EACH OTHERS' ACCEPTANCE CRITERIA:
0084A somewhat more esoteric but very powerful feature is that of allowing subscribers to have within their acceptance criteria references to other subscribers' acceptance criteria. This is a way for subscribers to use each other's acceptance criteria. There are many uses for combining acceptance criteria, with some "real world" parallels. For instance, when musicians form a band, it is often through a process of beginning with each individual's acceptance criteria, testing whether there is common acceptance criteria that makes sense, and then finally combining their acceptance criteria.
0085In the example below, three subscribers B, C, and D are in different locations and are of different ages. They have met in a "travel" mailing list, and decide to form a discussion niche within the list. The subscribers add references to each other's acceptance criteria to their records. Their relevant profile and acceptance criteria data are:
0086<img file="WO0016209A1_D0001.tif" />
0087Each subscriber has previously specified location acceptance criteria and age acceptance criteria that match the other two subscribers. To form a group, these three subscribers specify to the system to use each other's acceptance criteria.
0088Before doing this, the subscribers B, C, and D would each be matched with some other subscribers on the mailing list, which the other members of B-C-D weren't matched with. By incorporating each others' acceptance criteria they all exclude those other subscribers who do not meet all three sets of acceptance criteria.
0089In the preferred embodiment, a subscriber's profile acceptance criteria are never used on that subscriber. Since that subscriber's acceptance criteria are his acceptance criteria for others and not for himself, it is not applied to him. Referring to our previous example, subscriber B is
009020 years old, but his acceptance criteria for others is age 23-33, which doesn't include himself.
0091Thus when a second subscriber uses a first subscriber's acceptance criteria, in the preferred embodiment he does not apply that acceptance criteria to the first subscriber when determining interaction participants. Also in the preferred embodiment, referenced acceptance criteria are referring to the combination of a subscriber's user profile acceptance criteria and message profile acceptance criteria. Alternatively, the two types of acceptance criteria could be referenced and used separately between users.
0092When B combines C's and D's acceptance criteria with his own, the resulting acceptance criteria an "outsider" then has to meet is the intersection: California or Denmark or Brazil, and age range 23-30. The combined outsider acceptance criteria has a modified age range of 23-27.
0093Thus, when determining a subscribers' recipient list for a message, outsiders from this group would have to match all of B, C, and D's acceptance criteria in order to exchange email with any of them. If a fourth "outsider" subscriber "E" from Denmark, age 30, looks for interaction matches in the subscriber list, B, C, and D will not match because of their references to each others' acceptance criteria. Since D's age acceptance criteria excludes E, E doesn't match any of them.
0094An acceptance criterion reference to another user's acceptance criteria can be thought of as a container. Each acceptance criterion inside the referenced user's acceptance criteria set must be checked. Thus, the system would perform the entire acceptance criteria process described in FIG. 6b to compare the new set of acceptance criteria against the given data set. The system must allow for the possibility of circular references to avoid an "endless loop"; techniques for handling this are well known to those skilled in the art.
0095Since any one user's changes to his criteria impact everyone in the group, the system provides two types of groups: "democratic" and "dictatorial". In a democratic group, the system notifies users of any proposed criteria changes, and users have the opportunity to discuss and vote before changes go into effect. In a dictatorial group, one or more of the users are in charge, and approve all criteria changes through a mechanism provided by the system. DESCRIPTION - ADDITIONAL ALTERNATIVE FEATURES
0096One additional feature would be to allow users the option of specifying a subscription expiration date. The system stores store the expiration date in the subscription field. The system periodically checks the subscriptions table for expired ones. It notifies the user of an expired subscription via email that his subscription has been deleted.
0097Another feature is to give the subscribing user feedback at subscription time on the identities and/or other info about what subscribers he has been matched up with. This may include email addresses, geographical data such as a graphical map indicating locations of other users.
0098Another feature is a way for users to be hidden from being revealed to a sender as potential recipients of a message. Some users may desire privacy, and this feature would restrict the processes described herein from revealing that user's identity or other information. The processes are simply modified to maintain privacy of these users. Another feature is to allow a user to exclude particular subscribers and subjects from his interactions. Excluding subscribers is similar to chat's "ignore user" feature and is implemented by allowing the user to enter email addresses or user names of users to be ignored. The subscriber match-up process described in FIG. 4b, block 448 is modified to ignore the specified users. The user can also exclude subjects by entering a search string on the subscription tuning web page. The search may be a simple search or complex search predicate. The process at FIG. 6a, block 618 is modified to screen out the ignored subjects.
0099Another feature is for the service provider to be able to exclude certain trouble-maker users or groups of users (e.g., hate groups) from the system.
0100Another feature is a way for users to volunteer to moderate a discussion. A moderator acts as a human filter for inappropriate messages, scanning for "spam" and other messages that shouldn't be sent to the subscribers. A user can only moderate messages she receives through her subscription and she only moderates messages for users that are on her recipient list. A user volunteers on her subscription tuning web page. If in this preferred embodiment there are more than three active moderators, this user is offered only to be put on a moderator wait list. But if there are less than three moderators, this user is considered. There may then be a process of requesting an email vote of approval from the other subscribers this subscriber interacts with. If a vote is taken, the volunteering is only allowed if that vote comes back substantially positive. Her subscription record is then flagged with a volunteer moderator flag. During message processing, as shown in FIG. 6a, moderators within the recipient distribution list are located and one or more of them is emailed a request to approve the message for distribution. The message is stored in a suspended messages table in the database along with its distribution list until an approval or rejection is returned. If the message isn't approved or rejected after 5 days, it is removed from the database and returned to the sender. If a moderator approves the message, it is then sent to the distribution list. If it is rejected, the sender is informed via email. In either case the message is then removed from the suspended messages table.
0101A variation of the above is a feature to allow the user to specify "ignore moderator." This allows the user, if so desired, to receive all messages regardless of the moderator. Another variation is to allow each user to select from one or more available moderators which moderator he wants, if any.
0102Another feature is to allow the acceptance criteria to include a complex search predicate, an example of which is "recommend* OR 'for sale' OR (city and police)". Processes for applying such a search predicate are well know by those skilled in the art. This search could be applied to the message subject and/or content, to the user profile, or to the message profile.
0103Another feature is to allow more advanced geographical location matching against acceptance criteria. A mapping product or service is used to recognize street addresses and allow users to specify geographical areas, such as zip code, neighborhood name, city, county, state, region, or an outline drawn on a graphic image of a map. Thus a user can specify the exact geographies of interest, and the system can match users based on street addresses and geographies. Alternatives to street address data are the use of street intersection, GPS coordinates, longitude and latitude. If the location is not a specific point, but rather an area, a user would be considered to be generally within that area, and would match another user's geography of interest if the two areas intersected. Another feature is to allow users to maintain the privacy of their geographical locations by using a small geographical area, such as a 1/2 mile radius around the user's house, in place of an exact location. This reduces the chance of another user being able to pinpoint someone's exact location. The system would allow the user to specify this as part of their base user profile. It would consider the base user profile data to match another user's location acceptance criteria if the geographies intersected.
0104Another feature is allowing two or more subscribers of a particular list to form a group, agreeing to share acceptance criteria as previously discussed. Each member of the group agrees to apply each other member's acceptance criteria to everyone except that other member, also previously discussed. Any member can form a group by selecting a user interface element on the web page for their subscription. The system asks them to name their group, and keeps track of a list of group members within the group's record in a group table in the database. The founding subscriber and anyone else he specifies become the controllers of the group. They must approve all new members via an email or web-based approval mechanism. Then as each member is admitted to the group, each of the group members' subscriptions are recalculated as previously discussed, to update all subscribers' recipient lists based on the change to group acceptance criteria. Note that recipient lists of subscribers not in the group are also affected. Whenever a group member changes his acceptance criteria, other group members are notified and the group leader(s) must approve the change or expel the changing member from the group. The group will still interact with users outside the group, but only with users that form a mutual acceptance criteria match with the compound group acceptance criteria. Alternatively, the group can simply lock out all non-members from all communication. Another feature is to allow acceptance criteria sets outside the scope of a particular subscriber to be used optionally by each subscriber or enforced upon all subscribers. The service provider could set up acceptance criteria that is associated with an entire mailing list, that specifies that all users must be inside the United States for the list. Or a member or the service provider may design an acceptance criteria that when applied rids the system of certain kinds of unwanted commercial email. In either of these cases, or any other similar case, the system allows acceptance criteria to be named and stored in the database, and for any user to add that acceptance criteria by reference into their own acceptance criteria for a subscription.
0105Another feature is to have the email delivery process control the delivery of reply email messages in a different manner. Replies to an email message go to the distribution list of the original message, rather than the replying subscriber's distribution list. This keeps a discussion with the same group of users, with the potential down-side of some users interacting with each other who don't usually interact. The system stores the email message in the email archive table. It then stores in the database a relationship between the email message sent and the distribution list the message was sent to. The unique ID of the email message's database record is then encoded in the "To:" header field of the email message, e.g., "To: neighbors- 1354321@local2me.com". When someone responds to the message via their email client's reply all feature, the message is addressed back to that To header field, including the encoded unique ID. When the message arrives at the server, the message is recognized as a reply to an original posting, and the unique ID is extracted from the email address (1354321 in the above example). It then uses the stored distribution list associated with the unique ID, rather than the sender's distribution list, for distribution. The step of checking each recipient's message acceptance criteria is skipped because the stored distribution list has already done that. The message is then sent to the distribution list. An alternative approach is to have the reply go to the replying subscriber's distribution list, but add some text at the bottom of the message for anyone getting the reply who did not receive the original message it was a reply to. That additional text would be a link to a web page showing the archives of the referenced email message(s). Another additional feature allows a user to override subscription settings when sending a message. The subscription settings are treated as "default settings", and the user can override any of the settings when sending a message. The user could specify this through additional codes in his email message body, or by using a web form when sending the message. The web form would include access to override those settings. The subscription match-up process described in FIG. 4c and its related text are used to determine the distribution list for the present message being sent. The settings are not stored as the user's permanent settings. An example use is in a neighborhood mailing list for a user to send out a "for sale" message to neighbors within 10 miles of him, overriding his usual acceptance criteria of neighbors within 3 miles of him. This feature would have to exist in conjunction with the previous feature, controlling delivery of reply email messages, so that recipients can answer to the same group.
0106Another additional feature is to allow each list to require approval for subscription. When a user subscribes, another special "approval user" approves or rejects the subscription. This could either be for the whole list, or for a given sub-group within the list as defined by acceptance criteria. An example is a professional sub-group of a jazz mailing list. Subscribers checking the "Professional" experience checkbox would need to be approved before admittance. In this case, the subscriber is told that his subscription will need to be approved, and his subscription record is stored in a pending subscriptions table. The approval user is emailed with a request for approval. If the approval does not take place within 14 days, the subscriber is automatically rejected by the system. Another additional feature is to install a process near the beginning of the email distribution process for eliminating unwanted commercial email ("spam"). Such systems are commercially available and are configured independently of this invention. The email server process would allow the service provider to configure it to incorporate a spam elimination process at the appropriate step in the process.
0107Another additional feature is to offer users a written language preference and translation between languages within a list. A user specifies the language of choice as part of the subscription process. At email distribution time, the email server uses an external language translation process to determine the message's language. For each user whose language preference doesn't match that language, the message is translated before being sent. The translations are grouped so that a translation into a given language happens only once per message. A link to the original message enables review and possible other translations, to account for occasional poor translations.
0108Another additional feature is for the email server to add an additional text message to each outgoing message. This could be an advertisement or appropriate link to web site content, as determined by the service provider. The system associates header and footer text with the mailing list in the database. The service provider manages that data manually through the database vendor's manual database access interface. The email server grabs that information from the mailing list database entry at the time of message distribution and modifies the message content appropriately. Alternatively, the additional text feature may be expanded to allow for distributing different additional text to different sets of users, such as targeted ad insertion. The system associates a number of acceptance criteria sets described by the service provider with a number of additional text messages. It applies the acceptance criteria sets one by one to a copy of the distribution list, matching users to the additional text criteria. As each user is matched, the additional text is added to his message and the user is removed from the copy of the distribution list. The last acceptance criteria set is defined to be a null set, with all remaining users receiving the last additional text message associated with that last null acceptance criteria set. Thus each user receives only a single additional text message.
0109Another additional feature allows a user to set up an email alias preference as part of his base user profile. Then each message sent by the user to any mailing list is automatically modified to reflect his email alias rather than the original email address listed in his message. The system also shows this alias instead of his email address at any time his email address would be shown to a user at the web site.
0110Another additional feature is for the system to determine a user's distribution size threshold based on the user's expertise level. This would warn, for instance, a novice user before sending an email message that would reach more than 200 recipients. The user is asked during registration to rate their computer experience level, and that experience level is matched to thresholds over which the user is warned. During message distribution, the user's threshold is checked for whether there are more recipients on the distribution list than the threshold. If there are, the system informs the user of the size of distribution and asks for confirmation. The system then either distributes the message or discards it depending on the user's response.
0111Another additional feature is for the system to verify a user's geographic address when a user subscribes to a mailing list requiring address verification. The mailing list record contains a flag indicating that address verification is required for subscription. When the user subscribes, the system prints a postcard addressed to the user with a special verification code. The system then stores the subscription(s) in a pending subscriptions table in the database. The service provider mails the postcard to the user via the United States Postal Service. Once the user enters the verification code at the web site, the subscription(s) are activated. Alternatively, instead of using a postcard, the system allows another subscriber of a given list (e.g., a neighbor) to vouch for the user, for the given list. In that case, the system stores the vouching subscriber's user ID in the subscription record of the new user, and subscribes the new user.
0112Another additional feature is to show each user individualized web content related to each of his subscriptions. The web server generates for each user a unique web home page, containing a link for each of his subscriptions. Each of those links leads to a page containing extensive subscriber-created content. The content shown is has been contributed by users matched to the viewing user. In other words, each user only sees subscriber-created content that was created by people he is matched with (and from himself). It displays email archives of messages from the subscribers who match this user's message acceptance criteria. It also displays other subscriber-created content that matching subscribers have previously contributed to the web site, such as interesting web links, recommendations (such as gardener, electrician, or restaurant), photos, calendar entries, etc. It also displays a way in which this user can add contributions to the site. All content is stored in a user web contribution table in the database. The web site also provides searching of matching subscribers' web sites, from those who have specified a web home page in their base user profile data. Another additional feature is a periodic process that runs on the database server that performs cleanup operations. It deletes expired subscriptions from subscription table and handles other similar types of cleanup automatically. The system has a parameter that can be set up by the service provider that defines a schedule for performing the database maintenance. It may also transfer messages older than n days to a secondary database server, or move the message bodies to secondary computer systems, to reclaim disk space. In this case, the system must account for this when accessing the email archives. Another additional feature is to structure the mailing lists into a hierarchy, such that some of the subscription profile and acceptance criteria data can be shared between lists. The system can give the user feedback on the number of users who form partial matches with him based on known acceptance criteria. For instance, many lists will have a geographic distance component. By extracting that as a common setting for all of those lists, a user can specify early on in the subscription process that he wants to interact with people within two miles of him. He can then browse all of the lists that are in that part of the hierarchy, and see the number of users he is matched to in each of the lists. This gives him very helpful feedback on what lists are active in his immediate area. To accomplish this, the system establishes database relationships to keep track of the hierarchy. It also establishes default values for profile and acceptance criteria data such that partial matches can be determined with partially specified profile and acceptance criteria data.
0113Another additional feature is to let a user aggregate several mailing lists together into one "virtual list" for her. She is offered the option of combining two or more subscriptions into one "meta-subscription" that appears as one mailing list in her email box. An example: she wants to combine a "theater" subscription and a "singers" subscription into one meta-subscription she calls "my-arts". Incoming messages to her are then addressed to that list name. When she sends out a message, the underlying mailing lists become message acceptance criteria which she can check on or off individually to indicate which lists her message should go to. Additionally, for each list she selects, she also needs to specify message acceptance criteria within that list as per the prior discussion.
0114Optionally, when a message goes to several lists, recipients belonging to more than one of those lists will only receive one message (as happens today with newsgroup "cross- postings").
0115Another additional feature is to allow the user the option of receiving messages for a subscription on the service provider's web site, rather than in her email inbox. In this case the system keeps track of which messages she has and hasn't read, and provides a means of reading and replying to messages. Another additional feature is to allow users to create ballots to collect votes on any subject from users they are matched to. A user describes the ballot questions via a web site user interface, and the system creates a poll and emails it out to the matched users on the mailing list. The results of the poll are tallied and available for viewing on the service provider's web site. Another additional feature is to provide the user the option of a digest version of messages from a subscription. Rather than each message being delivered separately, a digest message containing multiple messages collected over a short period of time is sent out periodically. Each user specifies when to send out a digest to them, based on time, number of messages waiting, etc. The system collects messages and periodically delivers the digest to the user.
0116Another additional feature is to provide inexact matching, or a match score, and let users set thresholds and instructions for different levels of matching. Rather than the previously described complete match, this allows for partial matching. The matching system would assign default weights to each of the acceptance criteria, and allow the user to override and assign arbitrary weights to the acceptance criteria. The system then tallies a score during the matching process, based on methods well-known to those skilled in the art, to determine how well each acceptance criterion is matched. It then decides what to do based on the total score. The user can specify different actions, e.g., if 1000 is the best score then they might want scores of 1000 delivered via email, those between 700-999 delivered via a daily digest, and those between 600- 699 delivered via daily digest summary. Scoring the extent of the match also provides the means for the user to literally "turn the volume up or down" on a subscription as a whole. He simply controls a single parameter specifying the threshold for messages to get through.
0117A related additional feature is to provide the user with a way of expressing the volume of email he desires, and then adjusts the score threshold to approximate that volume of traffic. Likewise, the user and/or service provider might want to limit the size of messages (avoiding binaries, pictures, etc.).
0118Another additional feature is to use more advanced ways of matching acceptance criteria to profile data, such as fuzzy logic, artificial intelligence techniques such as discrimination nets, etc. These are techniques well-known to those skilled in the art, and can readily be applied within the scope of the present invention.
0119Another additional feature is a billing mechanism wherein certain "high value" lists are accessible for a fee based on a variety of pricing models, such as monthly charge, volume of messages sent or received, etc. Additional tables would store information to aid in tracking these changes. The billing mechanism would periodically process the information to generate bills for users.
0120There are many other features of electronic mailing list systems such as Majordomo and Listserv that are well known to those skilled in the art, that have obvious additional features for the present invention.
DESCRIPTION -ALTERNATIVE EMBODIMENTS FOR THE PRESENT INVENTION
0122As discussed earlier, there are many alternative embodiments of the present invention. People need personalized, tunable communities. They need the ability to specify and match up with other people in a variety of electronic forums. This invention is a very powerful way of allowing them to do that - to see only the people they're matched to see. It's like going to a party with all the right people.
0123The differences between different kinds of forums is often simply the latency of the transmissions between parties. Whereas a forum like email has a high latency, a forum such as chat has continuous transmission between the parties, or low latency.
0124One alternative embodiment is voicemail. Voicemail is very similar to electronic mail in that users typically have a mailbox, and there are group distribution lists, like electronic mailing lists for email. Interaction is non-realtime: each user uses voicemail without any real-time, direct interaction. Thus voicemail, being so similar to email, is a direct application of the present invention to that medium. The user may access the service visually (e.g., web) or aurally (e.g., telephone).
0125Another alternative embodiment for the present invention is unified messaging. Unified messaging is a medium that combines email, voicemail, fax, and potentially other communication services and lets each user select their medium of choice. Sun, Lucent and a number of other companies develop unified messaging solutions. Since unified messaging can always get from other mediums to email, unified messaging is a direct application of the present invention to that medium. These are just different mediums for communication, but they aren't materially different for our purposes. In the preferred embodiment all setup, control, and access to subscriptions, shared data, etc, happens via the web. One modification to that for this alternative is to allow that setup, control, and access to happen via email (or email translated to other unified messaging mediums) instead of the web. A natural extension to unified messaging is to include telephone, pager, and instant messaging communication, as additional mediums of communication. A user may use different forms of unified messaging for different subscriptions. For instance, a user may want to receive casual neighborhood discussion via email, but receive emergency messages from any neighbor within 5 blocks via text pager, and any communication (e.g., "can I borrow a cup of sugar?") within one block of them, via both instant messaging and fax.
0126Another alternative embodiment for the present invention is web-based discussion boards. FIG. 7 is a diagram detailing a process for this alternative. Web-based discussion boards are very similar to mailing lists, but users receive and reply to messages (and possibly send messages) through a web site rather than an email client application. In other words, rather than messages flowing in and out of the users email-box, there is instead a bulletin board metaphor with a web interface. The subscription process is substantially the same. The system then keeps track of which messages each user has and hasn't read. The message boards section of the Motley Fool web site (www.fool.com) (Dec. 1998) are an example in the prior art of a web- based discussion board, without benefit of the present invention.
0127Another alternative embodiment for the present invention is electronic bulletin boards. The most common electronic bulletin boards on the internet are USENET newsgroups (hereafter referred to as newsgroups). The subscription process in this alternative is substantially the same; the main differences come in reading and posting messages. Subscribers post messages through the service provider's server. This could be through a newsgroup server port, or using a web interface, via email to the service provider, etc. Since newsgroup postings are replicated on servers throughout the internet, there is some efficiency to be gained by encoding some of the database information about the posting user in headers of the posted message. This allows client newsgroup reading programs to do some decoding and matching without having to interact with the service provider's server. Examples of message headers are: "X-Posting-Type: Dynamically Matched Posting", "X-DM-User: joe_hotmail". The system may also encode insensitive profile and acceptance criteria data from the posting user in message headers. Let's call this full set of headers "Dynamic Matching™ Headers." (An example of insensitive profile data is whether the subscriber considers himself to be a "professional" or "amateur" in a given field. A home address is an example of sensitive profile data that, if needed, will have to be evaluated privately at the service provider's server during a user's news reading session.) The client newsgroup reading application may use the Dynamic Matching™ Headers for matching or may require subscribers to read messages through some method provided by a service provider that is utilizing the present invention. In the latter case the client newsgroup reading software knows how to exchange with the server the extra information needed to support the present invention. It informs the server of the identity of the user who is reading messages. The server then only transmits messages whose users form a two-way user match and message acceptance criteria match with the reading user. Alternatively, the newsgroup reading software may allow the user to see all postings, but highlight matching ones using color, icons, etc. The server in this case transmits additional information to the news reading software about which individual posted messages should have this special highlighting.
0128If the client newsgroup reading software knows how to interpret Dynamic Matching™ Headers, it may choose to do the matching itself, which may be more efficient than accessing the server for determining match status for each message.
0129Another alternative embodiment for the present invention is online gaming rendezvous. Services such as "Yahoo! Games" (December 1998) offer forums in which users can meet up for games of cards and other internet-based multi-player online games. Indeed nearly all commercial computer games today have some multi-player internet features built in. The typical online gaming forum divides the users into skill levels (their main acceptance criterion) and the users then have to rendezvous via chat to start a game, or jump into an already-formed game. A common experience is to quit part way through a game when you find that your gaming companions are a bad match, in conversation style, speed of play, etc. Applying the present invention, the service provider would offer a host of profile acceptance criteria and profile data to help users rendezvous with the best partners. There is still a registration process for collecting base user profile data. The subscription process is more transient, being more of a "gaming preferences" setup. Following the setup, the user is presented with a set of players who match up with the user based on a mutual acceptance criteria match. They can then chat, send each other instant messages to invite- each other to play, etc. When messages are sent they may include message profile data to allow matched users to apply their message acceptance criteria. An alternative is to show the user all other users, but denote the matching users through an icon or other graphic highlighting. The system also shows the browsing user games in progress that have open slots, highlighting the users within those games matched to the browsing user. He can then join a game that will have the best chance of being satisfying to him. Another alternative embodiment for the present invention is online gaming. Many users can play the game simultaneously, but each user only interacts with other users they are mutually matched to. The game software is designed to allow for game play in which each user sees only the other players he is matched to see. This is very similar in implementation to online gaming rendezvous, with additional functionality built into the game play to account for this customized per-player environment.
0130Another alternative embodiment for the present invention is instant messaging. Instant messaging services such as ICQ, "Yahoo! Pager", AOL Instant Messenger, and Excite PAL allow a user to send another user an immediate text message that pops up on the other user's screen while the user is connected to the messaging system. This is typically when they are connected to the internet and running the messaging client application. Instant messaging applications do not as of yet have the equivalent of electronic mailing lists, i.e., a way to send an instant message to a group of users. Applying the present invention to instant messaging requires no change to the subscription. An additional user interface component in the instant messaging software or on a web page allows the user to see a list of all matching users who are logged on. This happens within the context of a subscription to a particular forum. The user may then choose to send a message to any one user on that list. Sending of messages to an entire matching group is routed through the service provider's instant messaging server, which determines which message recipients will receive the message. It then distributes the message to those recipients. As an example of its use, a user may have two subscriptions set up - she wants to hear from all neighbors within five blocks from her about for sale items, and all neighbors within one block of her about emergencies.
0131Another alternative embodiment for the present invention is online chat. The subscription process is modified in a way similar to online gaming rendezvous. In today's online chat, users begin by selecting a chat room, and then chatting with everyone in that forum. There is typically a way to ignore specified users. The present invention allows a first user to set up more elaborate acceptance criteria only interacting with other users who form a one-way or mutual user profile match with the first user. Alternatively, it allows full chat exchange with all users, but highlights in the user list & message window those users that form a mutual user profile match with the first user. Using matching scores, the system can even display stronger matches in darker colors and weaker matches in lighter colors. Subscription settings may apply to one or more chat rooms. After setting up a subscription, the user can view a list of chat rooms and see what rooms the people he's matched with are spending their time in. He can then select a room and begin interacting. The message profile and acceptance criteria are not used. Alternatively, the message profile and acceptance criteria are used to help users communicate about specific subjects. In that case the system queries the user for message profile data if it cannot be determined automatically.
0132Another alternative embodiment for the present invention is video conferencing. This is similar to online chat and online gaming rendezvous. The invention is used for finding good videoconferencing partners within a given forum, by either highlighting matching users or only showing matching users. The present invention can be used with either one on one video conferencing, or with group video conferencing. In a group setting, each user conferences with many matching users at once, limited only by the limitations of number of simultaneous user connections in the video conferencing system. Message profiles and message profile acceptance criteria are not used.
0133Another alternative embodiment for the present invention is audio conferencing, or "party line." This is an obvious extension of online chat, and similar to video conferencing, wherein multiple users have an audio-only real-time connection to each other in a group setting. This is implemented in substantially the same manner as video conferencing.
0134Another alternative embodiment for the present invention is online clubs and communities, such as "Yahoo! Clubs" (Dec. 1998). In these services, a group forms around a theme, and users can chat, post messages to a discussion board, share web links of interest, etc., within that group. By using the present invention, the user can create a personal, tunable niche within the group. The subscription process is the same: after selecting a club, a user can specify his acceptance criteria of interest within the club. The user then only sees content (chat, message postings, web links, pictures, calendar entries, etc.) of other users who form a two-way match with the user. The chat portion is handled as discussed in the online chat application above. Message postings are handled as described in web-based discussion boards above. Other areas are handled in a similar fashion. Alternatively, the system may allow for one-way acceptance criteria application: the first user sees content from second users who the first user's acceptance criteria matches, without regard to the second users' acceptance criteria. Another alternative process is for the system to allow moderators, club owners, and other "authorities" to view all messages, even if there is no mutual acceptance criteria match. Another alternative embodiment is web surfing community forums. These forums provide a means for users to exchange messages with each other based on the web sites they are viewing. This service can be provided independently of the web sites that users are posting messages to. This is done through web browser plug-ins and other new technology that allow the exchanged messages to be stored somewhere other than the currently-viewed web site. When users are browsing that site or a particular page at that site, the messages are retrieved from the independent data store and displayed to the user.
0135In this embodiment, the message exchange may happen in real-time (e.g., chat) or time- shifted (e.g., posting messages). For example, users at a site such as CNN.com could communicate with other users who are on that site at the same time, or who come to the site at other times. The present invention is modified to use the web site address (e.g., www.local2me.com) the user is viewing to match the user with other users. Alternatively it could use the address of a specific page being viewed within the web site (e.g., VvΛvw.local2me.com/community/interaet.html). For real-time message exchange in this embodiment, the web site or page the user is viewing is used for user profile values. Users can set as part of their user profile acceptance criteria one or many web pages or web sites. As an example, a user at CNN.com' s user profile data would include CNN.com as his currently viewed web site (or alternatively a page within the site). His user profile acceptance criteria could include all users at CNN.com, ABCsports.com, MSNBC.com, and PBS.org. For time-shifted message exchange, the web site or page the user is viewing when he posts a message is stored as part of the message profile data (not the user profile data). Other users can set as part of their message profile acceptance criteria one or many web pages or sites. An example: user X goes to eBay.com and posts a message using the present invention, and then leaves the web site. User Y goes to eBay.com and sees user X's message if X and Y form a two-way match of user profiles to user profile criteria and if user Y's message profile criteria matches to user X's posted message's message profile data.
0136To summarize the web surfing community forums embodiment, let's take an example. A single forum, called "web surfers," is created by Local2Me.com to dynamically match web surfers from all over the world as they are surfing web sites. It allows users to chat with each other in a group forum when they are on the same web site. A user John joins the 'web surfers" forum through the Local2Me.com web site. He sets his user profile as a 23 year old single male, living in New York City. He sets his user profile acceptance criteria to match men and women between ages of 18-28, within 100 miles of him. A separate window for chatting opens next to his main browser window. John now begins surfing the web in his main browser window, and as he enters each web site, the chatting window updates to show him the users also browsing that web site that he's matched to. John can now exchange messages with users as he surfs the web. Clearly, in the burgeoning online communications arena there will be other electronic forums that can apply the present invention to great avail.
CONCLUSION, RAMIFICATIONS, AND SCOPE OF INVENTION
0138Thus the reader will see that the present invention, Dynamic Matching™ of Users for Group Communication, provides a process by which individuals of all ages and profiles may locate very high quality, personalized matched groups of people for highly satisfying affinity group communications and community.
0139While my above description contains many specificities, these should not be construed as limitations on the scope of the invention, but rather as an exemplification of one preferred embodiment thereof. Many other variations are possible. Several examples, including newsgroups, online chat, web discussion boards, and instant messaging have been explored in the alternative embodiments section above.
0140Accordingly, the scope of the invention should be determined not by the embodiment(s) illustrated, but by the appended claims and their legal equivalents.
Contents10
15 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15
Every citation, both ways
| Document | Relation | Office | Category | Cited during |
|---|---|---|---|---|
| US7290041B2 | Cited by | United States of America | – | Applicant |
| DE102005053914A1 | Cited by | Germany | – | Applicant |
| WO2007066183A3 | Cited by | World Intellectual Property Organization (WIPO) | – | International search |
| WO0251079A1 | Cited by | World Intellectual Property Organization (WIPO) | – | International search |
| US11075861B2 | Cited by | United States of America | – | Applicant |
| WO2007066183A2 | Cited by | World Intellectual Property Organization (WIPO) | – | Search report |
| US7565136B1 | Cited by | United States of America | – | Applicant |
| GB2366164A | Cited by | United Kingdom | – | Search report |
| GB2378351B | Cited by | United Kingdom | – | Search report |
| GB2378088A | Cited by | United Kingdom | – | Search report |
| US11949644B2 | Cited by | United States of America | – | Applicant |
| KR20020092730A | Cited by | Republic of Korea | – | Search report |
| GB2378088B | Cited by | United Kingdom | – | Search report |
| US10164918B2 | Cited by | United States of America | – | Applicant |
| US2015206213A1 | Cited by | United States of America | – | Pre-grant |
| US7200634B2 | Cited by | United States of America | – | Applicant |
| EP2693374A1 | Cited by | European Patent Office (EPO) | – | Search report |
| KR100415372B1 | Cited by | Republic of Korea | – | Search report |
| US8930406B2 | Cited by | United States of America | – | Applicant |
| JP2015529897A | Cited by | Japan | – | Search report |
| WO2014019686A3 | Cited by | World Intellectual Property Organization (WIPO) | – | International search |
| GB2378351A | Cited by | United Kingdom | – | Search report |
| WO0186472A1 | Cited by | World Intellectual Property Organization (WIPO) | – | International search |
| USRE48579E | Cited by | United States of America | – | Applicant |
| US9432315B2 | Cited by | United States of America | – | Applicant |
| GB2379129A | Cited by | United Kingdom | – | Search report |
| EP2580717A1 | Cited by | European Patent Office (EPO) | – | Examiner |
| US11477506B2 | Cited by | United States of America | – | Applicant |
| WO0186471A1 | Cited by | World Intellectual Property Organization (WIPO) | – | International search |
| WO2009080945A3 | Cited by | World Intellectual Property Organization (WIPO) | – | International search |
| EP1468389A4 | Cited by | European Patent Office (EPO) | – | Search report |
| WO2015011429A1 | Cited by | World Intellectual Property Organization (WIPO) | – | International search |
| US7885977B2 | Cited by | United States of America | – | Applicant |
| US10856031B2 | Cited by | United States of America | – | Applicant |
| FR3009102A1 | Cited by | France | – | Search report |
| US6920478B2 | Cited by | United States of America | – | Applicant |
| WO2008071992A2 | Cited by | World Intellectual Property Organization (WIPO) | – | International search |
| WO0186469A1 | Cited by | World Intellectual Property Organization (WIPO) | – | International search |
| GB2375854A | Cited by | United Kingdom | – | Search report |
| WO2009080945A2 | Cited by | World Intellectual Property Organization (WIPO) | – | International search |
| US7218921B2 | Cited by | United States of America | – | Applicant |
| US8417729B2 | Cited by | United States of America | – | Applicant |
| USRE48579E | Cited by | United States of America | – | Applicant |
| DE10117282B4 | Cited by | Germany | – | Search report |
| EP1468389A1 | Cited by | European Patent Office (EPO) | – | Search report |
| WO2014019686A2 | Cited by | World Intellectual Property Organization (WIPO) | – | International search |
| US8630883B2 | Cited by | United States of America | – | Applicant |
| WO0239766A1 | Cited by | World Intellectual Property Organization (WIPO) | – | International search |
| US11076190B2 | Cited by | United States of America | – | Applicant |
| DE102004021518A1 | Cited by | Germany | – | Search report |
| GB2379129B | Cited by | United Kingdom | – | Search report |
| WO2008071992A3 | Cited by | World Intellectual Property Organization (WIPO) | – | International search |
| US11575955B2 | Cited by | United States of America | – | Applicant |
| USRE48579E | Cited by | United States of America | – | Applicant |
| US8892747B2 | Cited by | United States of America | – | Applicant |
| US5513126A | Cites | United States of America | A | International search |
| US5694616A | Cites | United States of America | A | International search |
| US5796393A | Cites | United States of America | A | International search |
| US5864684A | Cites | United States of America | AP | International search |
| US5909679A | Cites | United States of America | AP | International search |
| US5923845A | Cites | United States of America | XP | International search |
| US5956693A | Cites | United States of America | XE | International search |
| US5999932A | Cites | United States of America | AE | International search |
4 members in 3 offices; this record represents the family
Members4
| Document | Office | Kind | |
|---|---|---|---|
| WO0016209A1This record | World Intellectual Property Organization (WIPO) | A1 | |
| AU6392899A | Australia | A | |
| WO0016209B1 | World Intellectual Property Organization (WIPO) | B1 | |
| US6480885B1 | United States of America | B1 |
11 legal events, as 3 offices reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | Office | |
|---|---|---|---|
| Ep: pct application non-entry in european phase122 | 122 | WO | |
| Procedure relating to pct application: ceased to have effect for deCeased8642 | 8642 | DE | |
| Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)DFPE | DFPE | WO | |
| Ep: the epo has been informed by wipo that ep was designated in this application121 | 121 | WO | |
| Designated statesAK | AK | WO | |
| Designated countries for regional patentsAL | AL | WO | |
| Later publication of amended claimsB | B | WO | |
| Wipo information: entry into national phaseWWE | WWE | WO | |
| Designated statesAK | AK | WO | |
| Designated countries for regional patentsAL | AL | WO | |
| Entry into the national phaseENP | ENP | AU |
Numbers
- Publication
- 00/16209
- Application
- 9921589
Titles2
- English
- DYNAMIC MATCHING<TM> OF USERS FOR GROUP COMMUNICATION
- French
- CORRESPONDANCE DYNAMIQUE<TM> DES UTILISATEURS POUR LA COMMUNICATION EN GROUPE
Classification
- CPC, 5
- H04L12/1859
- H04L12/18
- H04L9/40
- H04L51/214
- H04L51/212
- IPC, 3
- H04L12 18
- H04L12 58
- H04L29 06
Designated states102
- Regional, 53
- Ghana
- Gambia
- Kenya
- Lesotho
- Malawi
- Sudan
- Sierra Leone
- Eswatini
- United Republic of Tanzania
- Uganda
- Zimbabwe
- Armenia
- Azerbaijan
- Belarus
- Kyrgyzstan
- Kazakhstan
- Republic of Moldova
- Russian Federation
- Tajikistan
- Turkmenistan
- Austria
- Belgium
- Switzerland
- Cyprus
and 29 moreShow fewer
- Germany
- Denmark
- Spain
- Finland
- France
- United Kingdom
- Greece
- Ireland
- Italy
- Luxembourg
- Monaco
- Netherlands (Kingdom of the)
- Portugal
- Sweden
- Burkina Faso
- Benin
- Central African Republic
- Congo
- Côte d’Ivoire
- Cameroon
- Gabon
- Guinea
- Guinea-Bissau
- Mali
- Mauritania
- Niger
- Senegal
- Chad
- Togo
- National, 49
- United Arab Emirates
- Albania
- Australia
- Bosnia and Herzegovina
- Barbados
- Bulgaria
- Brazil
- Canada
- China
- Costa Rica
- Cuba
- Czechia
- Dominica
- Estonia
- Grenada
- Georgia
- Croatia
- Hungary
- Indonesia
- Israel
- India
- Iceland
- Japan
- Democratic People’s Republic of Korea
and 25 moreShow fewer
- Republic of Korea
- Saint Lucia
- Sri Lanka
- Liberia
- Lithuania
- Latvia
- Madagascar
- North Macedonia
- Mongolia
- Mexico
- Norway
- New Zealand
- Poland
- Romania
- Singapore
- Slovenia
- Slovakia
- Türkiye
- Trinidad and Tobago
- Ukraine
- United States of America
- Uzbekistan
- Viet Nam
- Yugoslavia, later Serbia and Montenegro (until 2006)
- South Africa