Match Group, LLC v. Bumble Trading Inc.

Western District of Texas, txwd-6:2018-cv-00080

Exhibit A

Interested in this case?

Current View

Full Text

7 Exhibit A 7 Illlll llllllll Ill lllll lllll lllll lllll lllll 111111111111111111111111111111111 US009959023B2 c12) United States Patent (IO) Patent No.: US 9,959,023 B2 Rad et al. (45) Date of Patent: May 1, 2018 (54) MATCHING PROCESS SYSTEM AND (2013.01); G06Q 10110 (2013.01); G06Q METHOD 30102 (2013.01); G06Q 50101 (2013.01); G06Q 50110 (2013.01) (71) Applicant: Tinder, Inc., West Hollywood, CA (US) (58) Field of Classification Search CPC ............. H04L 67/306; G06F 17/30011; G06F (72) Inventors: Sean Rad, Los Angeles, CA (US); 17/3053 Jonathan Badeen, North Hollywood, CA (US) See application file for complete search history. (73) Assignee: Match.Com, L.L.C., Dallas, TX (US) (56) References Cited U.S. PATENT DOCUMENTS (*) Notice: Subject to any disclaimer, the term ofthis patent is extended or adjusted under 35 6,480,885 Bl 11/2002 Olivier U.S.C. 154(b) by 0 days. days. 7,203,674 B2 * 4/2007 Cohen .................... G06Q 10/02 7071999 .003 (21) Appl. No.: 15/016,662 (Continued) (22) Filed: Feb. 5, 2016 OTHER PUBLICATIONS (65) Prior Publication Data Chegg® Blog, Chegg® Product Updates, "Introducing the Chegg US 2016/0154569 Al Jun. 2, 2016 Flashcards App," http://blog.chegg.com/2012/02/03/introducind- the-chegg-flashcards-app/, 10 pages, Dated Feb. 3, 2012 Printed Related U.S. Application Data Feb. 5, 2016. (63) Continuation of application No. 14/059,192, filed on (Continued) Oct. 21, 2013, now Pat. No. 9,733,811, which is a (Continued) Primary Examiner - Carol Choi (74) Attorney, Agent, or Firm - Baker Botts, L.L.P. (51) Int. Cl. G06F 17130 (2006.01) (57) ABSTRACT G06F 310484 (2013.01) A method for profile matching includes receiving a plurality G06Q 10110 (2012.01) of user profiles, each user profile comprising traits of a G06Q 30102 (2012.01) respective user. The method includes receiving a preference G06Q 50110 (2012.01) indication for a first user profile of the plurality of user G06Q 50100 (2012.01) profiles. The method also includes determining a potential G06F 310482 (2013.01) match user profile of the plurality of user profiles based on G06F 310488 (2013.01) the preference indication for the first user profile. The (52) U.S. Cl. method also includes presenting the potential match user CPC ........ G06F 3104842 (2013.01); G06F 310482 profile to a second user. (2013.01); G06F 310488 (2013.01); G06F 17130554 (2013.01); G06F 17130657 6 Claims, 11 Drawing Sheets =,.....--10 tinder Ex. A-1 7 US 9,959,023 B2 Page 2 Related U.S. Application Data 2008/0294624 Al 11/2008 Kanigsberg et al. 2008/0301118 Al 12/2008 Chien et al. continuation-in-part of application No. 12/339,301, 200910106040 Al 412009 Jones filed on Dec. 19, 2008, now Pat. No. 8,566,327. 2011/0087974 Al * 4/2011 Kulas .................. G06F 3/04812 715/760 (60) Provisional application No. 61/793,866, filed on Mar. 2013/0179925 Al* 7/2013 Woods H04N 21142209 15, 2013. 725142 2014/0040368 Al* 212014 Janssens ............... H04L 67/306 (56) References Cited 709/204 2014/0074824 Al 3/2014 Rad et al. U.S. PATENT DOCUMENTS 2014/0162241 Al* 612014 Morgia G06Q 30/02 434/362 7,401,098 B2 *7/2008 Baker ................. H04L 12/1818 7071999 .006 OTHER PUBLICATIONS 7,917,448 B2 3/2011 Smola et al. 8,060,463 Bl 1112011 Spiegel PCT Notification of Transmittal of the International Search Report 8,566,327 B2 10/2013 Carrico et al. 9,009,109 B2 * 412015 Tan ................... G06F 17/30699 and the Written Opinion of the International Searching Authority, or 705/26.l the Declaration with attached PCT International Search Report and 2005/0021750 Al 112005 Abrams Written Opinion of the International Searching Authority in Inter- 2006/0059147 Al 3/2006 Weiss et al. national Application No. PCT/US 08/87706, dated Feb. 10, 2009, 8 2006/0085419 Al 412006 Rosen 200610106780 Al 512006 Dagan pages. 2007/0073687 Al 3/2007 Terrill et al. 2007/0073803 Al 3/2007 Terrill et al. * cited by examiner Ex. A-2 7 U.S. Patent May 1, 2018 Sheet 1 of 11 US 9,959,023 B2 100 r' MATCHING SEHVER </;> 20 0 20, ._. _., . . ._.,., . .,.,.,.,. .,. . .,.,.,.,.,.,.,., . . .,. ._. .,.,._. . _. . . _. .,.,. . ., .,.,. .,. . . .,. i!:~~. . . .,.,., ._. ~.,. u ................ .,..,,.""'..., .. ..,,..,....._., 10:.;,............. ~:--":'"'"'.':>~.. ~'"·~-:..: .........................7................. .,,. .......:·-'""" .. . ~''"'"""-'"'""'"'"""" 1 DISPL~i.J. .. C [........."i'NrERFP:c'E--]· ---~ .F7CJ. JB '.' ......................... __ fcP-~,''·28 " 0 <> FIG, JC Ex. A-3 7 U.S. Patent May 1, 2018 Sheet 2 of 11 US 9,959,023 B2 - - -... - ·.:~ ~.. ·~----·---~- .. "~:·····~t""""h ......................... '>....................,...,......:-.. ~"'"'''"''''' . NAME oa PROPERTY 1 ' PROPEHTY 2 o o o I. Jane Doe/" 3 1 Jane Roe-r30b 30 J~n~ Boe ...r 30c 0 0 <:.,Jarn, Loe ---...._ d 1,, . Jane Snoe--...,. 0 "'0 30 308 FIG. JD SEARCH RESULTS r ~-~--'""""''"""'"""""""""""""'""""'--~·"'"""·""w---.-------·------·--·-•• 1. Jane Dcc/31a ~-33 ~,,,,,J,../. 34 31~ 2.JanoRoaI31b R. r 3 3 1· 3. Jane Boe:-.., 1 ·• 0 "·i,j ..... 1c ii'"'"B~". .... li ~'""' View -., 33 " Q See More F7G. JE -------------···--···--·----·"'-""""'-------·'~"·"''''''""'""""'""""'"-'-·-""""'""'"'"''''·"""""" ......1,1'.::I:~ ..·,Jane Doe /i(~'i;i <<!)\\ '["""~'""·"·•·•·•·•-•·•·'·""'-"""""·,·· _... 35, 1. 1 ·~- ') '\\ if l'1.<···:,_.;1 • i Contact,.-· "' 1 1,,1~~k"i. ~ . f"'"71 !L~.f'-·:36 [___J__\,t~ _:_l,.........11 Born: 10/01/75 Hometown: Dallas, 1X Likes: C!1ocolate, rollerb!ading Dislikes: Body odor. arrogance, foott)all FICi. 1.F Ex. A-4 7 U.S. Patent May 1, 2018 Sheet 3of11 US 9,959,023 B2 I l Hl\RRY'S SEARCH RESULTS rFIG. 2 i 2b·"'/W' I .ff'.'.'.'.',W.W,,.'X«««><'°'"°"'.t •''' Jane Doe !ii~~Oo;>OO<"'"<'~ Recommend U t rR:.;~~-.;~·.,·';·;j·~.ci···. U >f,,,>f',/ 37 l '~. . 31 l Jane Boe Jarw Loe. ~~ g-::'-·-·-·-·-·-·-·.:--•::O.•.:-.•.•:O-'"::*.-:-~~''""~~ l f-lecommend I '' 12 Ex. A-5 7 U.S. Patent May 1, 2018 Sheet 4of11 US 9,959,023 B2 Ex. A-6 7 U.S. Patent May 1, 2018 Sheet 5 of 11 US 9,959,023 B2. .....,..,.,... i 0 = tinder I (~)Q)(~);.~ ..........•..,.............................................,........................ ................" .......,,...................... ~ @) Ff(}. 7 .•. /-10 = = tinder tinder .r92 ~~) ·(i~ '~p '-~~ '-··+/ /(;}\ ---94 ••-.;>-~>OH•••?••···--·····'"-"•"-"-'-"-"'-'-"-'-'-''- ........ ._._................................................. (~) ·~.,._........,.,..,.,,....~..,..._.,.~h•u••"''""''-•>•>•»•••••''-"''- ............. / (~) FIG. 8 .F"JG. 9 Ex. A-7 7 U.S. Patent May 1, 2018 Sheet 6of11 US 9,959,023 B2,.,.,,-1002. GENERATE USER POOL i /.,,.., 1004 DISPLAY USER POOL i r" 1006 RECEIVE USER PREFERENCE t .---~-~·.)~~~1014 STORE FIRST ALLOW COMMUNICATION USER'S PREFERENCE J --1016 ~ ......."..............................................l'...............,......... DO NOT ALLOW COMMUNICATION FIG. 10 Ex. A-8 7 U.S. Patent May 1, 2018 Sheet 7of11 US 9,959,023 B2 /"'"'1102 RECEIVE PAIR OF USER IDENTIFIERS / ___/_, . .,. """'-..,~.,...1104 OK ./"_.,.•.-. VALIDATE "''~ NO ______ r·' ALLOW r1106 MATCH? . m•L!Q.~ DO NOT ALLOW COMMUNICATION COMMUNICATION Ex. A-9 7 U.S. Patent May 1, 2018 Sheet 8of11 US 9,959,023 B2 ~ Sent Matches ........................................ ·-------~--~---·~---------·---·---------------------,......................_................. "'---··------------"'·-------............,.......... .... ..,. .__. .................. '1204· FJ(J. 12A Ex. A-10 7 U.S. Patent May 1, 2018 Sheet 9of11 US 9,959,023 B2 ~ Sent Matches r~_. ................................................. m ......................................................,, ···--· 1204 ~Q Searc~ ____) FIG. 128 Ex. A-11 7 U.S. Patent May 1, 2018 Sheet 10 of 11 US 9,959,023 B2 ~ Sent Matches 1206- Jonathan Mary Major Make a Match! Smith .,.<~ "''""w--ccc.;,.;,.""'""'''""'"''"''") 1204·- (~ Searctl ........... ~, ____._....,,,•..r 1202·"-. _FIG. I2C' Ex. A-12 7 U.S. Patent May 1, 2018 Sheet 11 of 11 US 9,959,023 B2 ............................................. ~~-------- ............................................-.---·--·--·----·--·······""""""""""".·.·.-·.. ·· '···---"'-"~~-~-----~.......................~·~""-""1 I FIG. 12D Ex. A-13 7 US 9,959,023 B2 1 2 MATCHING PROCESS SYSTEM AND ti on. If the users with the most attractive profiles cease to use METHOD the system, the quality of the user pool deteriorates. RELATED APPLICATIONS SUMMARY This application is a continuation application of U.S. In one embodiment, a method for profile matching com- patent application Ser. No. 14/059,192, entitled "MATCH- prises receiving a plurality of user profiles, each user profile ING PROCESS SYSTEM AND METHOD," filed Oct. 21, comprising traits of a respective user. It also comprises 2013, currently pending; which (a) is a continuation-in-part receiving a preference indication for a first user profile of the of U.S. patent application Ser. No. 12/339,301, entitled 10 plurality of user profiles. It further comprises determining a "MATCHING PROCESS SYSTEM AND METHOD," filed potential match user profile of the plurality of user profiles Dec. 19, 2008, now U.S. Pat. No. 8,566,327, issued Oct. 22, based on the preference indication for the first user profile. 2013; and (b) claims benefit under 35 U.S.C. § 119(e) to The method also comprises presenting the potential match U.S. Provisional Application Ser. No. 61/793,866, entitled user profile to a second user. "SOCIAL MATCHING SYSTEM AND METHOD," filed 15 Receiving a preference indication for a first user profile Mar. 15, 2013. may include receiving from a third user a recommendation of the first user profile for the second user. It may also TECHNICAL FIELD include receiving from the second user a preference indica- tion for the first user profile. The method may further include This invention relates generally to computer matching 20 determining a score of a third user profile of the plurality of systems and more particularly to a matching process system user profiles as a potential match for the second user. It may and method. also include altering the score of the third user profile based on the preference indication for the first user profile. BACKGROUND In another embodiment, a method for profile matching 25 comprises receiving a plurality of user profiles, each user Networking architectures have grown increasingly com- profile comprising traits of a respective user. The method plex in communications environments. In recent years, a further comprises receiving a request for matches from a series of protocols and configurations have been developed first user, the first user associated with a first user profile. in order to accommodate a diverse group of end users having The method also comprises scoring the plurality of user various networking needs. Many of these architectures have 30 profiles for potential matching with the first user based on gained significant notoriety because they can offer the comparisons of the plurality of user profiles with the first benefits of automation, convenience, management, and user profile. It also comprises identifying a second user enhanced consumer selections. profile of the plurality of user profiles as a potential match Certain network protocols may be used in order to allow for the first user based on the scoring. The method further an end user to conduct an on-line search of candidates to fill 35 comprises identifying commonality between a third user a given vacancy. These protocols may relate to job searches, profile of the plurality of user profiles and the second user person finding services, real estate searches, or on-line profile. In addition, the method comprises presenting to the dating. While some believe that on-line dating is simply a first user the third user profile as a potential match for the matter of matching supply and demand, there is statistical first user. and empirical evidence to suggest that successful on-line 40 Depending on the specific features implemented, particu- dating entails far more. lar embodiments may exhibit some, none, or all of the For example, people having similar and/or compatible following technical advantages. Various embodiments may character traits and values should be matched together. be capable of dynamically updating match search results However, effectively linking two participants together can based on user activity. Some embodiments may be capable prove to be a challenging endeavor. Coordinating a relation- 45 of enhancing match search results by reducing the impact of ship between two like-minded individuals can be a signifi- restrictive user preferences. In addition, some embodiments cant chore, as there are a number of obstacles and barriers may provide the ability to evaluate the attractiveness of that must be overcome. potential matches. Various embodiments may be capable of One problem that has arisen is that matching services are importing user profiles from other social-networking sys- limited to searching for matches only within their own 50 terns. Some embodiments may be capable of generating the platform. Thus, only people who have gone through the pool of users based on both explicit and implicit criteria process of signing up for the service are searched for a derived from other social networking systems. Other tech- match. One solution to this problem is to have users register nical advantages will be readily apparent to one skilled in the in multiple services. This is problematic because it can be art from the following figures, description and claims. expensive and time consuming for users. Further, the user 55 must then visit all of the services to monitor the search BRIEF DESCRIPTION OF THE DRAWINGS progress: this inefficiency may cause users to give up on the search process. Reference is now made to the following description taken Another problem is that the search results of these ser- in conjunction with the accompanying drawings, wherein vices contain many irrelevant entities to the searcher. This 60 like reference numbers represent like parts, and which: costs the user of the service time and may deter them from FIG. lA is an overview of one embodiment of the continuing through all of the search results. matching system; Another problem is that large numbers of unwanted FIG. lB shows the contents of the terminal from FIG. lA; communication requests can become a nuisance to the user. FIG. lC shows the contents of the matching server from Too many nuisance requests may deter the user from further 65 FIG. lA; use of the system. Users with the most attractive profiles are FIG. lD is a diagram of a database from FIG. lC showing oftentimes the ones that receive the most unwanted atten- one embodiment of how a matching server stores a pool; Ex. A-14 7 US 9,959,023 B2 3 4 FIG. lE is a diagram of the display from FIG. lB showing In one embodiment, terminal 10 represents (and is inclu- one embodiment of the presentation of search results to a sive of) a personal computer that may be used to access user; network 24. Alternatively, terminal 10 may be representative FIG. lF is a diagram of the display from FIG. 1B showing of a cellular telephone, an electronic notebook, a laptop, a one embodiment of the presentation of details of a match personal digital assistant (PDA), or any other suitable device result entity to a user; (wireless or otherwise: some of which can perform web FIG. 2 is a diagram depicting how a user may recommend browsing), component, or element capable of accessing one an entity to another user, in accordance with a particular or more elements within system 100. Interface 16, which embodiment; may be provided in conjunction with the items listed above, FIG. 3 is a diagram of the display from FIG. lB depicting 10 may further comprise any suitable interface for a human user how the user may be made aware of fate characteristics the such as a video camera, a microphone, a keyboard, a mouse, user shares with a match result entity, in accordance with a or any other appropriate equipment according to particular particular embodiment; configurations and arrangements. In addition, interface 16 FIG. 4 is a diagram depicting how two platforms may be may be a unique element designed specifically for commu- searched for a match, in accordance with a particular 15 nications involving system 100. Such an element may be embodiment; fabricated or produced specifically for matching applica- FIG. 5 is a flow chart indicating how a result list may be tions involving a user. generated, in accordance with a particular embodiment; Display 12, in one embodiment, is a computer monitor. FIG. 6 shows one embodiment of the matching system Alternatively, display 12 may be a projector, speaker, or displaying to a user the profile information of a second user; 20 other device that allows user 14 to appreciate information FIG. 7 is a diagram of the display from FIG. 6 showing that system 100 transmits. the effect of a left swipe gesture; Network 24 is a communicative platform operable to FIG. 8 is a diagram of the display from FIG. 6 showing exchange data or information emanating from user 14. the effect of a right swipe gesture; Network 24 could be a plain old telephone system (POTS). FIG. 9 shows the matching system displaying a match of 25 Transmission of information emanating from the user may a first user and a second user, in accordance with a particular be assisted by management associated with matching server embodiment; 20 or manually keyed into a telephone or other suitable FIG. 10 is a flowchart depicting a method for enabling electronic equipment. In other embodiments, network 24 communication between two users of the matching system could be any packet data network offering a communications of FIG. 1 based on a mutual expression of approval, in 30 interface or exchange between any two nodes in system 100. accordance with a particular embodiment; Network 24 may alternatively be any local area network FIG. 11 is a flowchart depicting a method for enabling (LAN), metropolitan area network (MAN), wide area net- communication between two users of the matching system work (WAN), wireless local area network (WLAN), virtual of FIG. 1 based on a user suggested matching proposal, in private network (VPN), intranet, or any other appropriate accordance with a particular embodiment; and 35 architecture or system that facilitates communications in a FIGS. 12A-D depict embodiments of a user interface. network or telephonic environment, including a combination of any networks or systems described above. In various DETAILED DESCRIPTION embodiments, network connections 22 may include, but are not limited to, wired and/or wireless mediums which may be Referring to FIG. lA, one embodiment of a matching 40 provisioned with routers and firewalls. system is shown. FIG. lA is a simplified block diagram of Matching server 20 is operable to receive and to commu- a system 100 for facilitating an on-line dating scenario in a nicate information to terminal 10. In some embodiments, network environment. In other embodiments, system 100 matching server 20 may comprise a plurality of servers or can be leveraged to identify and to evaluate suitable candi- other equipment, each performing different or the same dates in other areas (e.g. hiring/employment, recruiting, real 45 functions in order to receive and communicate information estate, general person searches, etc.). Users 14 interact with to terminal 10. Matching server 20 may include software a matching server 20 through terminals 10. FIG. lB is a and/or algorithms to achieve the operations for processing, diagram showing, in one embodiment, the contents of ter- communicating, delivering, gathering, uploading, maintain- minal 10. Terminal 10 comprises interface 16 (so that user ing, and/or generally managing data, as described herein. 14 may be able to interact with terminal 10) and display 12. 50 Alternatively, such operations and techniques may be FIG. lC is a diagram showing, in one embodiment, the achieved by any suitable hardware, component, device, contents of matching server 20. Matching server 20 com- application specific integrated circuit (ASIC), additional prises memory 26 and at least one CPU 28. Memory 26 may software, field programmable gate array (FPGA), server, store multiple databases, such as databases 26a and 26b. processor, algorithm, erasable programmable ROM Terminal 10 and matching server 20 are communicatively 55 (EPROM), electrically erasable programmable ROM (EE- coupled via network connections 22 and network 24. PROM), or any other suitable object that is operable to Users 14 are clients, customers, prospective customers, or facilitate such operations. entities wishing to participate in an on-line dating scenario In some embodiments, user 14, using terminal 10, regis- and/or to view information associated with other participants ters with matching server 20. Registration may include user in the system. Users 14 may also seek to access or to initiate 60 14 submitting information to matching server 20 about user a communication with other users that may be delivered via 14 as well as characteristics user 14 is seeking to be matched network 24. Users 14 may review data (such as profiles, for with. Such information may include a user handle, which example) associated with other users in order to make may be a combination of characters that uniquely identifies matching decisions or elections. Data, as used herein, refers user 14 to matching server 20. In various embodiments, to any type of numeric, voice, video, text, or script data, or 65 matching server 20 may be configured to collect this infor- any other suitable information in any appropriate format that mation; for example, matching server 20 may be configured may be communicated from one point to another. to ask user 14 to respond to a series of questions. Matching Ex. A-15 7 US 9,959,023 B2 5 6 server 20 may be configured to receive the information matching server 20 provides for user 14 is shown. Using submitted by user 14 and create a profile for user 14 based display 12, user 14 views an entity from result list 31. on that information, storing the profile in memory 26. Matching server 20 may also provide user 14 with the ability As an example only, consider a case where user 14 is to contact the entity through a contact button 35. In one interested in participating in an on-line dating scenario. User embodiment, when contact button 35 is utilized by user 14, 14 can access the Internet via terminal 10, travel to a web matching server 20 may provide user 14 with contact site managed by matching server 20, and begin the regis- information of the entity such as a telephone number or an tration process. As part of the registration process, matching e-mail address; in another embodiment, matching server 20 server 20 may ask user 14 a series of questions which may provide user 14 with a way to directly contact the entity, identifies characteristics about user 14. Thus, matching 10 such as sending a message or providing voice or video server 20 may ask about the height, weight, age, location, communication between user 14 and the entity. Even further, and ethnicity ofuser 14. It may also ask about the birthplace, matching server 20 may be configured to allow user 14 to parents, eating habits, activities, and goals of user 14. express a negative preference for the entity through dislike Matching server 20 may further use the registration process button 36. In one embodiment, when, for example, dislike to discover what user 14 may be looking for in a match, such 15 button 36 is utilized by user 14, matching server 20 may as age, weight, height, location, ethnicity, diet, education, remove the entity from result list 31; in another embodiment, etc. Further, matching server 20 may ask user 14 to indicate the entity may be removed from pool 30 of users from which how important certain factors are when looking for a match. matches are identified. For example, matching server 20 may allow the user to As an example only, consider that user 14 has submitted indicate which characteristics in a potential match are a 20 a search request to matching server 20. Matching server 20 necessity. In another example, matching server 20 may ask, may search through pool 30, identify results, and commu- "How important is it that your match does not smoke?" nicate result list 31 to user 14 which would contain other Matching server 20 may also allow the user to indicate that users for whom matching server 20 had created a profile and certain characteristics are not important search criteria. For who were identified through a search and selection process. example, when asking user 14 about what height or weight 25 Next, user 14 may be interested in learning more about Jane user 14 is seeking in a match, matching server 20 may be Doe, entity 31a; thus, user 14 would click view button 33 configured to receive "not important" as a response. In yet associated with Jane Doe. Matching server 20 would receive another example, matching server 20 may allow user 14 to this request and respond by displaying Jane Doe's profile rate which factors are important on a numerical scale. For (stored in memory 26), as depicted in FIG. lF. Next, after example, matching server 20 may ask user 14 the following: 30 reading the profile, user 14 may be interested in contacting "On a scale of 1-10, how important is it that your match has Jane Doe; hence, user 14 would click contact button 35. the same education level as you?" In some embodiments, Matching server 20 would respond by allowing user 14 enter matching server 20 may specify that any number of ques- a message that matching server 20 would then communicate tions or requested descriptions are necessary before regis- to Jane Doe. tration may be concluded. As an example only, matching 35 Matching server 20 may even further be configured to server 20 may require that user 14 communicate the sex of allow user 14 to store a match result entity; in one embodi- user 14 and the sex user 14 prefers to be matched with. After ment, the system may be configured to allow user 14 to concluding the registration process, matching server 20 may utilize favorite button 34 that will add the desired match store the responses of user 14 as a profile. This same process result entity into another list. In another embodiment, uti- may be repeated by several different users 14, causing 40 lizing favorite button 34 will remove the associated match matching server 20 to contain a plurality of profiles. result entity from result list 31. FIG. lD depicts an embodiment in which matching server As an example only, user 14 may decide that he would 20 has a database 26a which contains a pool 30. Each entry like to save Jane Doe's profile so that he can review it later. in database 26a has a pool entity 30a along with information User 14 may click favorite button 34, and matching server concerning that entity. In one embodiment, each pool entity 45 20 may respond by placing Jane Doe's profile into a separate 30a-e represents a user and their profile. In some embodi- list. Further, matching server 20 may also remove Jane Doe ments, not all registered users are in pool 30. As discussed from user's 14 result list 31. As a result, user 14 may see further below, matching server 20 may use a selection another match result entity populate result list 31. This is process for including stored profiles in pool 30. As depicted beneficial because it may focus user 14 on evaluating new in FIG. lD, in this embodiment, the collection of users and 50 entities rather than reevaluating previously-known entities profiles forms pool 30 through which matching server 20 because the entities still appear in result list 31. may perform various functions such as searches for matches. In some embodiments, matching server 20 may be con- Matching server 20 may be configured to search through figured to generate pool 30 by default according to various pool 30 and present matches to user 14. In FIG. lE, one characteristics and preferences of user 14 and other users of embodiment of this presentation is depicted as occurring 55 the system. Matching server 20 may also restrict entities through display 12. In various embodiments, matches may from being included in pool 30 based on the status of the be presented to user 14 utilizing other communication profile, or if user 14 has rejected or blocked an entity. schemes, such as electronic messages (i.e., e-mail) or text Matching server 20 may also restrict entities from the pool messages (i.e., utilizing SMS). In the depicted embodiment, that have blocked or rejected user 14. For example, match- a result list 31 is presented to user 14. A match result entity 60 ing server 20 may not allow profiles that are not in good 31a in a result list 31 may be associated with a view button standing to be included in pool 30. In other embodiments, 33. Using interface 16, user 14 may request that matching matching server 20 may be configured to generate pool 30 server 20 provide more information about an entity in result by first choosing seeds. Seeds include, but are not limited to, list 31 by pressing the associated view button 33. Matching profiles that user 14 has sent a message to or profiles that server 20 may then communicate to user 14 more informa- 65 user 14 has expressed a preference for. Each seed is then tion about that entity by retrieving the information from compared to other entities to determine which entities will memory 26. In FIG. lF, one embodiment of information that be included in pool 30. Any suitable method can be used to Ex. A-16 7 US 9,959,023 B2 7 8 determine which entitles are included in pool 30. For Lucy's (whose commonality score was less than the thresh- example, any characteristics or algorithms described herein old score). Thus, user 14 gets the benefit of having more may form the basis of such a determination. As another entities identified that may be good matches. example, a commonality score may be generated based on In some embodiments, matching server 20 may be con- the comparison between each entity and the seed. In some figured to include behavioral scales. These may include embodiments, this commonality score can be a measure of multi-item scales for materialism and gender-role tradition- how physically similar the users are to each other. This score alism. Such scales may provide the advantage of improved may be generated based on the number of users that have matching through deeper appreciation for the personality of expressed a positive preference for both the seed and the entities in the system. entity being compared. This score may also be generated 10 In some embodiments, matching server 20 may be con- based on whether the seed and entity have been viewed figured to analyze profile text for categories. It may search together in one session; further, the more times the seed and for a number of text strings and then associate the profile entity have been viewed together, the larger the common- ality score. The law of large numbers may allow for a vast:-"ith any number of categories. As an example only, match- amount of such commonalities to be established over a few 15 mg server 20 may add any profile to the Cat category whose days. Testing has revealed that using such commonality text contains any of the following strings: "cat" "cats" "cat." "cats." "cat," "cats," scoring methods has yielded at least one physical match for 80% of users whose profile has been viewed at least once Matching server 20 may be configured to make it more and between 6 and 1000 physical matches for 60% of user~ likely that a profile will be in a result list if categories whose profile has been viewed at least once. Matching 20 associated with the profile are also categories found in the server 20 may be further configured to allow entities that user's profile who submitted the search request. have a commonality score above a certain threshold to Matching server 20 may be configured to analyze one or become a part of pool 30. Matching server 20 may further more portions of the text of an entity's profile and generate be configured to update pool 30. In some embodiments, a readability score that may be used in various ways, such matching server 20 may do so by creating new seed entities 25 as in the process of searching for matches for user 14. In based on activity by user 14, such as indicating a preference some embodiments, matching server 20 may analyze factors for that entity. Further, matching server 20 may then com- such as, but not limited to: average number of words per pare the chosen seed entity with other profiles stored in sentence, total number of words with greater than three matching server 20 and determine whether those profiles syllables, and total number of words in the profile. Matching will be included in pool 30 using a threshold score as 30 server 20 may also concatenate all of the collected responses described above. At least one advantage realized by this with a single space between them. It may further break the embodiment is that user 14 is presented with updated text into sentences, words, and syllables. From these statis- potential matches which increases the likelihood of user 14 tics, matching server 20 may also be configured to generate finding a suitable match. Another advantage present in a readability score by, in one embodiment, taking the aver- certain embodiments is that these updated potential matches 35 age of the Flesch Kincaid Reading Ease test, the Flesch have a greater likelihood of compatibility with user 14 since Kincaid Grade Level test, and the Gunning Fox score. Other they are chosen based on their commonality with entities embodiments may utilize any other combination of these or user 14 has expressed a preference for. other tests to determine a readability score. In some embodi- As an example only, consider the case in which user 14 ments, analyses may be used to determine the IQ of an has registered, requested a search, and received from match- 40 entity, the grade level of the writing, or how nervous the ing server 20 results list 31. Then, user 14 decides to contact entity generally is. An advantage of this embodiment may be Jane Doe and presses contact button 35. Aside from provid- that the system provides user 14 with a metric for determin- ing user 14 with the ability to contact Jane Doe, matching ing approximate intelligence of other users. The readability server 20 will designate Jane Doe's profile as a seed. score may be used, for example, in the matching process to Matching server 20 will then compare Jane Doe's profile to 45 identify potential matches. other profiles stored in memory 26 in order to identify other As an example only, the Flesch Kincaid Reading Ease users who may be similar to Jane Doe and thus be a good score may be generated by first computing the following match for user 14. In this example, matching server 20 will intermediate score: generate a commonality score for each of these comparisons 206.835-(1.015*[Average Words per Sentence])- and compare these scores to a preset threshold. If the 50 (84.6*[Average Syllables per Word]) commonality score is lower than the threshold, that profile will not be added to pool 30. However, if the commonality Then, the Flesch Kincaid Reading Ease score is determined score is higher than the threshold, matching server 20 will by using the following table: add this profile to pool 30. As an example, further assume that the se~d, Jane Doe, is being compared to another entity, 55 Susan Smith. Based on the fact that both Susan and Jane Intermediate Flesh Kincaid Score Condition Reading Ease Score have three users (Tom, Dick, and Harry) who have expressed a positive preference for their profiles, matching server 20 <100 4 generates a commonality score of 100 for the comparison. In <91 <81 contrast, matching server 20 generated a commonality score 60 <71 7 of 50 for the comparison between the seed (Jane Doe) and <66 yet another entity, Lucy Goosey. This was because only one <61 9 user (Bob) had indicated a positive preference toward both <51 10 <31 13 Lucy and Jane. Continuing the example, matching server 20 <O 14 is using a commonality threshold score of 70, which results 65 Else 15 in including Susan's profile (whose commonality score was greater than the threshold score) in pool 30 and excluding Ex. A-17 7 US 9,959,023 B2 9 10 The Flesch Kincaid Grade Level may be computed accord- Sally have in common, the more likely it will be that ing to the following: matching server 20 will include Sally's profile in Harry's (0.39*[Average Words Per Sentence])+(ll.8*[Aver- result list 31. age Syllables Per Word])-15.59 In some embodiments, matching server 20 may be con- The Gunning Fox score may be computed according to the figured to impute a level of physical attractiveness to an following: entity in pool 30. Matching server 20 may be configured to monitor how frequent an entity in pool 30 has been viewed ([Average Words Per Sentence]+(([Nurnber Of as well as how many times that entity has been part of a Words With More Than 3 Syllables ]/[Number of Words In Entire Text])+l00))*0.4 result list in order to impute the level of physical attractive- lO ness. Matching server 20 may further be configured to As indicated, any suitable tests may be utilized m any generate a score based on this data. Further, in some suitable manner to determine a readability score. embodiments, matching server 20 may impute physical In some embodiments, matching server 20 may be con- figured to allow a user to interact with the result list of attractiveness to an entity based on the imputed physical another user. Matching server 20 may be configured to allow 15 attractiveness scores of other entities. Matching server 20 a user to express a preference for entities within a result list may compute an average of the imputed physical attractive- of another user, and to indicate to the other user of this ness scores of the other entities weighted by the common- preference. Thus, a user may be able to get advice from a ality score between each of the other entities and the present friend regarding what other users may constitute good entity. Empirical data indicates that people are more likely matches for the user and thus be able to find a better match. 20 to match with people of similar attractiveness. Thus, in many As an example only, consider FIG. lA and FIG. 2. Two embodiments, a user may obtain an advantage in that they users 14, Harry and Sally, are connected to matching server are able to be presented with potential matches that, accord- 20 via terminals 10. Display 12a is used by Harry while ing to one measurement, are as attractive as the user. display 12b is used by Sally. Matching server 20 allows As an example only, consider a registered user, Sally, Sally to view Harry's result list 31 on her terminal in display 25 whose profile was created by matching server 20 in January. l2b. By pressing recommend button 37, Sally may indicate Since that time, matching server 20 has recorded the number a preference for one or more of the entities in result list 31. of times Sally's profile has appeared in any user's result list Assume Sally presses recommend button 37 associated with 31; assume that this has occurred 10 times. Further, match- Jane Loe. After doing so, matching server 20 will notify ing server 20 has also recorded the number of times a user Harry of Sally's preference. On Harry's display 12a, match- 30 has viewed Sally's profile by clicking view button 33 ing server 20 will cause notification 39 to appear, associating associated with Sally's profile; assume that this has hap- it with Jane Loe. Notification 39 will indicate to Harry that pened 5 times. In this manner, matching server 20 has Sally has recommended Jane Loe as a potential match. Harry constructed a ratio that represents the imputed physical may find Sally's preference helpful in determining which attractiveness of Sally's profile. Still further, assume that entities he should pursue further if, for example, he believes 35 Harry, a registered user, now submits a query. Matching Sally understands the type of person he is looking for. server 20 has evaluated the imputed physical attractiveness In one embodiment, matching server 20 may be config- ratio of Harry's profile. When evaluating Sally's profile for ured to analyze the profiles of both user 14 and the entities inclusion in result list 31 returned to Harry, matching server in pool 30 for keywords. Matching server 20 may be 20 will compare the imputed physical attractiveness of configured to search through the profile of user 14 for 40 Sally's profile and Harry's profile. The more similar the keywords that relate to things such as activities and interests. ratios associated with Harry and Sally's profiles are to each Matching server 20 may generate a score for each entity in other, the more likely it is that Sally's profile will be selected pool 30 based on a comparison between the list of keywords by matching server 20 to be in Harry's result list 31. In found in user's 14 profile and a similarly-generated list of another example, assume that Sally's profile has not been keywords of each entity in pool 30. In one embodiment, this 45 registered long enough to generate a meaningful imputed is accomplished by storing a list of words in memory 26, and physical attractiveness ratio. Matching server 20 may then using it to identify keywords in the searched profiles. In generate an imputed physical attractiveness score based on some embodiments, identified keywords may be used as a entities that Sally does have commonality scores with. This means of weighting various scores. As an example only, a computed average may be weighted by the strength of the profile that contains the word "God" may be weighted much 50 commonality score between Sally and each entity with differently than a profile which has merely indicated that whom she has a commonality score. Continuing the their religious preference is Christian. In various embodi- example, assume that Sally has a commonality score of 5 ments, this may provide an advantage to user 14 in that user with Lucy and 10 with Julia. When matching server 20 14 is able to determine how similar he/she is with a potential computes the Sally's average, it will give twice as much match. In addition, the keyword analysis may be used by the 55 weight to Julia's imputed physical attractiveness score than system when searching and identifying matches for a user. to Lucy's. As an example only, consider two registered users, Harry In some embodiments, matching server 20 may be con- and Sally, both of whom have profiles stored in matching figured to make an entity in result list 31 more appealing to server 20. Matching server 20 then analyzes each of these user 14 by pointing out coincidences in the profile data that profiles by comparing it to a list of predefined keywords. 60 give user 14 a sense of fate with the entity. In one embodi- Matching server 20 then associates each word that matched ment, matching server 20 may be configured to search for the list of keywords with each profile. Now assume that similar initials, birthplaces, birth dates, birth month, birth Harry performs a search. While fulfilling Harry's query, year, university, first names, last names, user handles, paren- matching server 20 evaluates Sally's profile for inclusion in tal occupations, and keywords to identify users who may Harry's result list 31. This evaluation includes comparing 65 give another user a sense of fate. In other embodiments, the list of keywords found in Harry's profile to the keywords matching server 20 may use the fate characteristics as a found in Sally's profile. The more keywords that Harry and metric in the matching process. Ex. A-18 7 US 9,959,023 B2 11 12 As an example only, assume that Harry is a registered user 30a if user 14 and pool entity 30a have the same income, who has performed a search. After matching server 20 education, and age. An advantage realized in several returns a result list, Harry chooses to learn more about one embodiments is that it better approximates how a user of the entities in the result list and clicks view button 33. evaluates entities. Entities that live further away are gener- Consider FIG. 3, which is only an example of information ally less appealing to a user; but, users may still be interested that matching server 20 may return to Harry after clicking if the entity matches their preferences in other categories. view button 33. In Harry's display 12, matching server 20 As an example only, consider a registered user, Harry, presents certain details about the profile. In particular, who submits a search request. While fulfilling this request, matching server 20 presents to Harry a fate notification 32 matching server 20 examines Sally's profile in pool 30, and which points out specific similarities between the profile of 10 determines that the stated locations of Harry's and Sally's the entity and Harry's profile. Reading fate notification 32 profiles are 13 miles apart. Matching server 20 will give gives Harry a sense of familiarity which enhances his Sally's profile a score as ifthe distance between them were appreciation for the profile. only 10 miles. However, in yet another example, Sally's In another example, fate characteristics may be used to profile may indicate that she lives 50 miles away from Harry. decide whether a profile in pool 30 is included in user's 14 15 Yet, matching server 20 also notes that both Harry and Sally result list 31. Assume that Harry is a registered user who has make $100,000 per year, have Master's degrees, and that submitted a matching query to matching server 20. While Harry and Sally are one year apart in age (Harry is older). determining which entities to include in Harry's result list, Given these similarities, matching server 20 will give a score matching server 20 considers two profiles: Sally and Roxy. to Sally's profile that is consistent with a 20 mile difference Sally and Harry both have the same birth date, initials, and 20 in location even though they are actually 50 miles apart. In have parents that work in the same profession. In contrast, this manner, matching server 20 takes into account empirical Roxy and Harry only share the same birth place. Matching data that shows that people searching for matches who server 20 may be configured to award more points to Sally indicate that they want to see matches who live close to them than to Roxy based on these comparisons, making it more are still willing to pursue a potential match that lives far likely that Sally's profile will be included in Harry's result 25 away if the potential match fits very closely with the other list. search criteria. In some embodiments, matching server 20 may be con- In another embodiment, matching server 20 may be figured to evaluate the likelihood of contact between user 14 configured to evaluate the age difference between user 14 and an entity in pool 30. Matching server 20 may be and pool entity 30a using ranges as well as a sliding scale. configured to compare demographic data between user 14 30 By way of example only, matching server 20 may be and pool entity 30a. In another embodiment, matching configured to assign a high value to an age difference server 20 may be configured to weigh the demographic between 0 and -5, while assigning a lower value to an age similarities and differences based on the sex of user 14. The difference between +2 and 0. An even lower value may be demographic data may include, but is not limited to, age, assigned to an age difference between -6 and -8. Even lower education, ethnicity, income, and location. 35 values would be assigned incrementally as the age difference As an example only, assume that Harry and Sally are increases outside of the ranges discussed. The higher the registered users who have profiles in matching server 20. assigned value is, the more likely it will be that pool entity Harry has submitted a search request to matching server 20. 30a will be included in result list 31. Yet another embodi- While fulfilling this request, matching server 20 evaluates ment may apply this combination of ranges and a sliding Sally's profile since her profile is in pool 30. As part of the 40 scale but use different values and ranges depending on the evaluation, matching server 20 looks at the differences sex of user 14. between Harry and Sally's stated age, income, education, As an example only, consider a situation in which a ethnicity, and location. In this example, Harry is 10 years registered user, Harry, requests a search to be performed. older than Sally, makes $10,000 more per year, and has a While fulfilling this request, matching server 20 evaluates Master's degree while Sally has a bachelor's degree. Even 45 Sally's profile, which was in pool 30. As part of the with these disparities, matching server 20 will give Sally's evaluation, matching server 20 compares the ages of Harry profile a high score which makes it more likely that Sally's and Sally, and determines that Harry is two years older than profile will appear in Harry's result list. However, if it was Sally; this determination leads to matching server 20 assign- Sally who submitted the search, and matching server 20 was ing, in this example, 50 points to Sally's profile. Matching evaluating Harry's profile, a different score is possible. So, 50 server 20 may also be configured to assign 50 points to if it were Sally who was 10 years older, made $10,000 more Sally's profile had she been five years younger than Harry; per year, and had a Master's degree while Harry had a but, if she had been up to two years older than Harry, Bachelor's degree, matching server 20 would give a low matching server 20 may have been configured to assign 40 score to Harry's profile, making it less likely that his profile points to her profile. Matching server 20 may be further would appear in Sally's result list. Matching server 20 may 55 configured to assign 30 points to Sally's profile if she was 6 be configured this way because empirical data has shown to 8 years younger than Harry. However, if Sally were more that these demographic differences do not have an equiva- than 8 years younger than Harry, matching server 20 may be lent effect on the choices men and women make regarding configured to further decrease the number of points assigned matches. to her profile: if she was 9 years younger, then 25 points; if In another embodiment, matching server 20 may be 60 she was 10 years younger, 20 points; if she was 11 years configured to compare the locations of user 14 and pool younger, 15 points; etc. The more points assigned to Sally's entity 30a in increments of ten miles. In yet another embodi- profile, the more likely it is that her profile will appear in ment, matching server 20 may be configured to score the Harry's result list. Thus, matching server 20 may be con- location comparison in light of other factors; as an example, figured to assign a score based on age difference using a matching system 20 may be configured to return a score 65 combination of ranges and a sliding scale. consistent with a 10 mile difference in location even though In another example, matching server 20 may assign scores there is a 50 mile difference between user 14 and pool entity differently if it was Sally who was searching and if it was Ex. A-19 7 US 9,959,023 B2 13 14 Harry's profile that was being evaluated. In this example, 5 may be more likely to appear in the user's result list than matching server 20 may be configured to assign Harry's an entity with an average rating of 2. profile 50 points ifhe were between 1 and 5 years older than In another example, assume that Harry is a registered user her. If he were 6 to 8 years older than her, matching server and has requested a search. While fulfilling this request, 20 may assign 45 points. If he were greater than 8 years matching server 20 evaluates Sally's profile. As part of this older than her, matching server 20 may assign points in the evaluation, matching server 20 notices that Sally's profile following fashion: if he was 9 years older, 40 points would contains feedback from other users ranking the attractive- be assigned; if he was 10 years older, 35 points would be ness of Sally's profile. Matching server 20, in this example, assigned; etc. However, if he was up to two years younger averages that data; Sally's profile average is 6. Matching 10 server 20 may then examine Harry's profile to determine a than Sally, matching server 20 may assign 50 points to his similar average. If Harry's profile has an average close to 6, profile. If he were more than two years younger, matching it will be more likely that matching server 20 will include server 20 may assign less points on a sliding scale: 45 points Sally's profile in Harry's result list. If Harry's profile if he were 3 years younger, 40 points if he were 4 years average is lower than 6, it will be less likely that Sally's younger, etc. The more points assigned to Harry's profile, 15 profile will be included in Harry's result list. If Harry's the more like it is that his profile will appear in Sally's result profile average is greater than 6, it will be even less likely list. This example illustrates how matching server 20 may be that Sally's profile will be included in Harry's result list. The configured to take the sex of user 14 into account when more Harry's profile average deviates from that of Sally's, scoring based on age differences. the less likely it will be that matching server 20 will present In various embodiments, matching server 20 may be 20 Sally's profile in Harry's result list. configured to evaluate the attractiveness of an entity in pool In some embodiments, matching server 20 may be con- 30 through collected feedback from other users. In one figured to analyze profile information and received activity embodiment, matching server 20 may present an entity to information to construct "pairs" which link at least two user 14, prompting user 14 to rate the attractiveness of the profiles. These pairings may also be associated with a value entity on a scale from 1-9. This range gives the advantage of 25 that ascertains the quality of the pairing. For example, a having a midpoint. Matching server 20 may further be pairing which results from one user viewing the profile of configured to collect such responses and store them; in one another user may be assigned a value that is less than a embodiment, matching server 20 may store the data in pairing which results from a first user viewing the profile of memory 26, using a structure such as database 26b. Match- a second user when the second user has also viewed the first ing server 20 may further be configured to compute the 30 user's profile. Matching server 20 may use these pairings in average of such responses for the entity, and store this order to generate search results for entities within and number as well. In various embodiments, these values may outside of the pairing. Each member of the pair may be used be used in order to help in the matching process. Empirical as a seed entity for generating search results for users in data indicates that people are more likely to match with matching server 20. In various embodiments, an advantage people of similar attractiveness. Thus, in various embodi- 35 may be realized as matching server 20 analyzes many of ments, users whose attractiveness rating are similar will be these pairs to develop dynamic results to users of the system, more likely to appear in each other's result list. Further, a the results being potentially more relevant as matching user may indicate that they only want profiles in their result server 20 leverages the interaction between users and pro- list whose average attractiveness rating is higher than an files to generate search results. indicated threshold. 40 Pairs may be formed from a variety of user activity As an example only, assume registered user, Harry, uses received by matching server 20. This activity may include: terminal 10, which in this example is Harry's personal profile views, mutual profile views, one-way double blind computer, and establishes communication with matching communication, mutual double-blind communication, server 20. In this example, this communication occurs by declining double blind communication, one way wink, Harry using a Web browser to access a Web page controlled 45 mutual wink, expressing disinterest in response to receiving by matching server 20. Sometime after visiting the Web a wink, one way favorite, and mutual favorite. Other suitable page, matching server 20 may present Harry with an option activity may also be received by matching server 20 and to rate the physical attractiveness of other users registered utilized as a basis for generating pairs. with matching server 20. Using display 12 and interface 16, For example, Harry may be a registered user who has Harry may view profiles of registered users and rank them 50 expressed a positive preference for Sally. Matching server on a scale of 1-9 by entering the values using interface 16; 20 may be configured to generate a pair which includes in this example, interface 16 comprises a mouse and/or a Harry and Sally. Matching server 20 may utilize this pair keyboard. After submitting this rating, matching server 20 when providing search results to other users. Betty may have will associate it with the profile and store it. Matching server requested matches, and Betty may be similar to Sally. 20 will also allow other users to rate profiles, thereby 55 Matching server 20 may present Harry in Betty's result list collecting a plurality of rankings for profiles. Matching as a result of the pairing between Harry and Sally. Further, server 20 may use this data when trying to find matches for Jim may have executed a search and Jim may be similar to users. One example of this is that matching server 20 may Harry. As a result of the pairing between Sally and Harry, allow user 14 to specify that he/she is searching for profiles matching server 20 may present Sally in Jim's list of search which have an average rating of 6 or above. In tum, 60 results. matching server 20 may populate user's 14 result list from In some embodiments, matching server 20 may be con- the pool only with profiles whose average rating is at 6 or figured to encourage user 14 to interact with entities in pool above. Another example of how matching server 20 may use 30. For example, matching server 20 may present a list of this data involves making it more likely that an entity will limited entities from pool 30 to user 14, but not present other appear in a user's result list if the entity and that user have 65 entities to user 14 unless user 14 interacts with the already a similar average attractiveness rating. So, if a user has an presented entities. Possible interaction with these entities average rating of 6, then an entity with an average rating of may include viewing more information regarding the entity, Ex. A-20 7 US 9,959,023 B2 15 16 expressing a positive or negative preference for the entity, form 50. Matching server 20 may further be configured to and choosing to contact the entity. Other suitable forms of provide users of social networking platform 50 a service by interaction may also be utilized. For example, matching which they may search for users within set 52 or within pool server 20 may prompt the user with a question about the list 30 using the algorithms and processing of matching server of entities, such as asking whether or not the user likes the 20. Matching server 20 may even further be configured to entity. Responses to such prompts may include "yes," allow users of matching server 20 to search through pool 30 "maybe," "no," "remove," and "remove other." The pre- and set 52. Matching server 20 may be configured to parse sented entities may be chosen using a variety of methods. the profiles of the entities in set 52, collecting data and For example, the presented entities may be chosen based on applying algorithms. various scoring algorithms as described above. In addition, 10 In another embodiment, matching server 20 may be presented entities may be chosen using predictive analysis, configured to allow users of social networking platform 50 such as logistical regression. Other techniques may be used to interact with matching server 20 using social networking to determine the presented entities. For example, entities that platform 50. This level of integration provides the advantage have been presented previously may be excluded. As of users not having to learn and sign up for a different another example, entities that have been blocked by user 14 15 platform. may also be excluded. In various embodiments, a combina- Social networking platform 50, in one embodiment, may tion of these techniques as well as others may be used to be a service which stores profiles of its users. This service determine the limited number of entities presented to user may be further configured to provide access to the stored 14. profiles. In one embodiment, social networking platform 50 For example, Harry may be a registered user of the 20 may also allow other services to interact with users of social matching system. Matching server 20 may be configured to networking platform 50 through social networking platform present to Harry a list of five entities that Harry must interact 50. with. Once Harry has interacted with these entities, match- In one embodiment, matching server 20 may be config- ing server 20 may present five more entities for Harry to ured to collect requests from users of social networking interact with. Previously, Harry has blocked Sally, another 25 platform 50 and perform a search through pool 30 and set 52. registered user of the system. As a result, matching server 20 Matching server 20 may further be configured to present the may exclude Sally from being presented to Harry in the list results of this search from within social networking platform of five entities. Further, Harry has already interacted with 50. Matching server 20 may further be configured to present Betty, another registered user of the system: Harry sent a entities in the search result from pool 30 as if they were message to Betty utilizing matching server 20. As a result, 30 entities of set 52; in one embodiment, matching server 20 Betty will be excluded from being presented to Harry in the may be configured to generate profiles of entities from pool list of five entities. Matching server 20 may then choose two 30 into set 52. Thus, users of social networking platform 50 of the five entities using scoring algorithms described above. may view all of the entities in the search result, regardless For example, matching server 20 may choose Alice and Amy of their source (either from pool 30 or set 52), within the to be presented in the list of five entities because Alice and 35 environment of social networking platform 50. Amy have received high scores when their profiles were As an example only, consider two users: Harry, for whom compared to Harry's profile. Matching server 20 may matching server 20 has created a profile, and Sally, who has choose the remaining three entities using predictive analysis. a profile stored in social networking platform 50. From According to this example, matching server 20 may use within social networking platform 50, matching server 20 logistical regression to identify Carla, Christi, and Camela as 40 presents to Sally the ability to perform a search which Sally the other three entities to present to Harry. Thus, in this uses. The results of this search are presented to Sally within example, Harry is presented with a list of five entities by social networking platform 50. In this example, Harry's matching server 20. Matching server 20 may not present profile is displayed to Sally as a search result along with another set of five entities until Harry has interacted with other entities from set 52 though Harry's profile was from these five entities. Harry may interact with these entities in 45 pool 30. In this example, matching server 20 uses the a variety of ways. For example, Harry may send a message algorithms discussed herein and searches through the pro- to Alice and send a "wink" to Amy. In addition, Harry may files stored in pool 30 and set 52. In order to display Harry's choose to view more information about Carla's profile, but profile to Sally, matching server 20 creates a profile in set 52 express a negative preference towards Christi and Camela. using the data stored in Harry's profile in pool 30. Sally is After matching server 20 receives these types of interaction 50 then able to interact with this newly created profile from with the presented five entities, another set of five entities within social networking platform 50 in the same manner as may be presented to Harry. she is other entities in set 52. In this example, matching server 20 may further be In another embodiment, matching server 20 may be configured to process the user interaction provided by Harry. configured to allow its users to interact with social network- For example, matching server 20 may utilize Alice's profile 55 ing platform 50 through matching server 20. In one embodi- as a seed entity to generate other possible entities to present ment, matching server 20 supplements pool 30 with set 52. to Harry since Harry sent a message to Alice. Thus, a benefit In yet another embodiment, entities from set 52 appear as is from presenting a the five entities to Harry in that the entities of pool 30 to the user in their list of search results. interaction between Harry and these entities may be utilized In one embodiment, matching server 20 may be configured by matching server 20 to generate other entities for matching 60 to generate profiles within pool 30 from entities of set 52; the to Harry. This serves as an example of how preferences may system may be configured to do so through capabilities be identified based on user behavior. provided by social networking platform 50, such as an In FIG. 4, one embodiment is disclosed wherein matching application prograniming interface. server 20, with pool 30, may be configured to interact with As an example only, consider two users: Harry, whose another platform, such as social networking platform 50, 65 profile is stored in matching server 20, and Sally, whose containing a set 52 of users. Users 14 are communicatively profile is stored in social networking platform 50. Harry coupled to matching server 20 and social networking plat- submits a search request to matching server 20. Matching Ex. A-21 7 US 9,959,023 B2 17 18 server 20 may return result list 31 to Harry, which, in this -continued example, contains an entity representing Sally's profile. Matching server 20 may accomplish this by creating profiles Number of Points Condition for Ordering in pool 30 that correspond to the profiles found in set 52. Once these profiles have been imported into pool 30, match- Both have the same +131072 ing server 20 may then search through pool 30. While doing preference for drinking alcohol so, matching server 20 applies the algorithms and scores Same answer for Ethnicity +1024 discussed herein. Thus, in this example, matching server 20 Sarne answer for Fear +256 has been configured to both search and apply scoring Sarne answer for Hair +2 10 Sarne answer for Number of +524288 algorithms to entities in pool 30 and set 52. Further, in one children example, Harry is not able to distinguish that Sally's profile Sarne answer for morning +32 was originally stored in social networking platform 50. Sarne answer for "must have" +32768 Rather, matching server 20 presents Sally's profile in the Sarne answer for "night out" +16 Sarne answer for "pets" +65536 same manner as other profiles stored in pool 30. Thus, in this 15 Sarne answer for politics +8192 example, Harry may use favorite button 34, view button 33, Sarne answer for relationship +O and contact button 35 when interacting with Sally's profile status in the same manner as described above. Sarne answer for "romance" +512 One advantage present in various embodiments is that a Sarne answer for smoking +262144 preferences user has a wider pool of entities to search through. Another Sarne answer for sports +8 20 advantage is that a user does not have to sign up with several interests platforms to search through the users on those platforms. Sarne answer for "system" +4096 FIG. 5 is a flowchart illustrating one embodiment of how result list 31 may be generated. At step 62, matching server As an example only, consider a registered user, Harry, 20 generates pool 30, as described above. At step 64, who desires to perform a search. Before processing the 25 matching server 20 applies a filter to pool 30, removing request, matching server 20 may ask Harry what sex he is certain entities; in various embodiments, this filter is based and what sex does he desire to be matched with· in this on user's 14 own sex and the sex user 14 desires to be example, Harry responds that he is a male seeking; female. matched with. At step 66, matching server 20 may be configured to apply algorithms to pool 30 that will generate After doing so, matching server 20 will generate pool 30 as a plurality of scores for each entity in pool 30. In one 30 described above. Next, matching server 20 will apply a filter embodiment, these algorithms may include analyzing the to remove certain entities from pool 30. In this example, all text of the profiles of the entities in pool 30 to generate a males will be removed from pool 30 since Harry is seeking readability score, determining how attractive an entity of a female. Further, all females seeking females will be pool 30 is, or measuring how likely it is that user 14 will removed from pool 30 since Harry is a male. In other contact an entity of pool 30. At step 68, matching server 20 35 examples, other entities that are removed from pool 30 ~ay be configured to collect all of the scores from step 66; include entities that Harry has expressed a negative prefer- m one embodiment, matching server 20 may use database ence for before, or entities that have expressed a negative 26b to store all of these scores. At step 70, matching server preference for Harry. After pool 30 has been filtered, match- 20 may be configured to apply an ordering algorithm which ing server 20 applies a variety of scoring algorithms to the will determine the order in which entities in result list 31 are 40 entities remaining in pool 30. These algorithms may account ~or ".arious comparisons such as those based on readability, presented to user 14. In one embodiment, this ordering algorithm is based, in part, on the scoring algorithms applied hkehhood to contact, fate, and keywords described above. at step 66. The ordering algorithm assigns points to each Matching server 20 will then tabulate these scores, storing entity and orders them based on these values, constructing them, in this example, in database 26b. Matching server 20 result list 31. An embodiment of this ordering algorithm is 45 will then determine what order these entities are presented to surmnarized in the following table: Harry by applying an ordering algorithm. Here, matching server 20 assigns one ordering score to each entity by examining the results of the scoring algorithms. After doing Number of Points so, matching server will present result list 31 to Harry, where Condition for Ordering 50 the order of the entities that appear in the result list is based on the ordering algorithm. In this example, it is possible for Readability score 1 point +33554432 higher than user result list 31 to change. Consider another user, Sally, who Match result entity has +16777216 appears in Harry's result list. If Harry decides to add her into expressed a preference for a separate list by using favorite button 34, Sally will be the user 55 removed from result list 31 (as described above). However, Match result entity has been +8388608 recommended by a friend of Sally will also become a seed entity from which entities may the user be added to pool 30 (as described above). Hence, matching User has viewed the details +2097152 server 20 will update the pool, apply the filters, apply the of match result entity scoring algorithms, tabulate the results, apply the ordering Match result entity has +1048576 commonality with an entity 60 alg?rithm, and update result list 31. As another example, an user has expressed a entity may update their profile which can change result list preference for 31. For example, assume Sally's profile had an ordering Both have the same ambition +128 algorithm score that placed her within the top 20 entities in Both have the same beliefs +16384 Same answer for Build +64 result list 31. Sally then changes her profile which results in Sarne answer for Car +1 65 keywords that match Harry's profile being added to her Both have the same diet +4 profile. Matching server 20 will then update her scoring algorithms. In this example, the change in Sally's profile and Ex. A-22 7 US 9,959,023 B2 19 20 resulting increase in keyword matches with Harry's profile facial recognition algorithms to detect ethnicity, hair color, significantly increased her score. This was then reflected in eye color, etc., of profiles that user 14 has expressed interest the ordering algorithm as it was also applied to the updated Ill. profile. Afterwards, Sally's profile is now placed within the In particular embodiments, matching server 20 may have top 5 entities in result list 31. users 14 to link their user profiles to an existing profile In some embodiments, matching server 20 may be con- within social networking platform 50. Matching server 20 figured to receive required characteristics from user 14 may be configured to generate and add profiles to user regarding a match. User 14 may be allowed to specify such profile pool 30 from entities of set 52; the system may be restrictions based upon any number of characteristics, configured to do so through capabilities provided by social 10 networking platform 50, such as an application program- including those described herein. For example, matching ming interface. One advantage of linking is that matching server 20 may allow user 14 to specify that entities that server 20 can use the authentication features provided by indicate they have children should not be displayed. In social networking platform 50. For example, creating a user another example, user 14 may specify that only entities profile on matching server 20 containing false information between the ages of 20 and 30 should be present in result list 15 becomes harder when the information must come from 31. In some embodiments, matching server 20 may imple- another verifiable and peer monitored source such as social ment these restrictions in step 64 of FIG. 5. In other networking platform 50. embodiments, however, matching server 20 may refuse to In some embodiments, matching server 20 may allow a apply these restrictions to certain entities based on the user 14 to propose a match between two of his connections characteristics of the entities. Any number of characteristics, 20 within social networking platform 50. For example, Harry including those described herein, may form the basis upon may be friends with both Bob and Sally within social which matching server 20 decides not to apply the restric- networking platform 50. Harry believes Bob and Sally are a tions submitted by user 14. As an example only, matching good match and therefore instructs matching server 20 to server 20 may ignore the restrictions ifthe entity has a high create a match between the two users in user profile pool 30. enough attractiveness rating. In another example, though 25 Once matched, matching server 20 allows Harry and Sally user 14 has requested that no profiles which are located more to communicate with each other. than 50 miles away should be present in result list 31, In some embodiments, matching server 20 may be con- matching server 20 may include such profiles because those figured to apply a relevance algorithm which determines the profiles have over 5 matching keywords, a high attractive- content and order in which matching server 20 displays ness rating, and have specified the same life goals as user 14. 30 potential matches to user 14. A relevance algorithm may be Thus, in some embodiments, matching server 20 may refuse based on both explicit and implicit signals from user 14. to apply restrictions submitted by user 14 based on any Explicit signals include information entered by user 14 as combination of characteristics or algorithms. part of its user profile, such as height, weight, age, location, An advantage present in many embodiments is that income, and ethnicity. Explicit signals may also include through taking into account various factors when scoring 35 information about the characteristics user 14 is seeking in a potential matches and using only very few strict filters, a match, such as gender, hair color, eye color, or occupation. large amount of result entities may be returned to the user. Explicit signals may also be entered by user 14 as part of a A further advantage is that the ordering algorithm will put search request. For example, user 14 may request matching the most relevant search results first, saving the user time. server 20 limit the pool of potential matches to those users FIGS. 6-9 depict embodiments of a user interface pre- 40 within a fixed geographic region. Matching server 20 is sented to users of the matching system discussed above with operable to compare geographic positions associated with respect to FIGS. 1and4. According to some embodiments, the plurality of user profiles in user profile pool 30 with a users 14 interact with matching server 20 through interface geographic position associated with user 14. Explicit signals 16 presented by terminal 10. In addition to the embodiments may be imported from a social networking platform 50, such of interface 16 described above in relation to FIG. lA, 45 as the number of shared entities in a social graph of user 14. interface 16 may also comprise a touch screen interface Implicit signals may be based on the behavior of user 14 operable to detect and receive touch input such as a tap or either within system 100 or other social networking plat- a swiping gesture. forms 50. For example, if user 14 has expressed disapproval In some embodiments, matching server 20 may import of a user profile in the past, matching server 20 may no profiles from other social networking systems. This level of 50 longer present the disapproved of user profile to user 14 in integration provides the advantage of users only having to future searches. In various embodiments, matching server 20 update their profile information in one place. For example, may be configured to evaluate the attractiveness of a user in when user 14 updates his profile within social networking user profile pool 30 through collected feedback from other platform 50, matching server 20 is also able to access the users. For example, matching server 20 may rank a user updated profile information. 55 profile that receives more likes as more relevant than a user In some embodiments, matching server 20 may further be profile that receives fewer likes. In particular embodiments, configured, as part of the user registration process, to link to matching server 20 may assign a higher relevance to a user a user's existing profile within social networking platform profile if the other user has previously expressed a prefer- 50. Matching server 20 may be configured to parse the ence for user 14. As an example, user Harry may have profiles of the users in set 52, e.g., collecting data and 60 previously expressed a preference for user Sally. If Sally applying algorithms. For example, matching server 20 may requests a set of user profiles from matching server 20, and use explicit signals from social networking platform 50 such Harry's user profile is included in the set, matching server 20 as common friends, common interests, common network, may assign Harry's user profile a higher relevance based on location, gender, sexuality, or age to evaluate potential his expression of preference for Sally. This can result in matches between users 14. Matching server 20 may also use 65 Harry's profile being presented to Sally sooner than other- implicit signals such as for whom a user 14 expresses wise would have occurred. This may be advantageous in that approval and disapproval. Implicit signals may also include it can increase the chances of a match without compromising Ex. A-23 7 US 9,959,023 B2 21 22 a user's feelings of privacy when expressing preferences for example, Harry may expand his search to a twenty-five mile potential matches. In some embodiments, matching server radius to meet people in his town, not just his immediate 20 may be configured to use the fate characteristics as a vicinity. metric in the relevance algorithm. FIGS. 7 and 8 are diagrams of embodiments of the display In some embodiments, terminal 10 is operable to deter- from FIG. 6 showing the effect of a left swipe gesture (FIG. mine its own geographic location by a global positioning 7) and the effect of a right swipe gesture (FIG. 8). In one satellite navigational system. Terminal 10 may also deter- embodiment, users 14 may navigate through the set of mine its own geographic location using cellphone-based presented users by swiping through stack of cards 88. Users triangulation techniques, Wi-Fi based positioning system, 14 may also express approval of a presented user by per- 10 forming a right swipe gesture or express disapproval by Global Positioning Satellite (GPS) system, or network performing a left swipe gesture. In some embodiments, user addresses assigned by a service provider. 14 performs a swiping gesture by moving a finger or other FIG. 6 shows one embodiment of system 100 displaying suitable object across a screen of terminal 10. Other suitable to a user the profile information of a second user. Matching gestures or manners of interacting with terminal 10 may be server 20 may be configured to search through its plurality 15 used (e.g., tapping on portions of a screen of terminal 10). of profiles and present suggested matches to user 14. In FIG. In some embodiments, matching server 20 creates a 6, one embodiment of this presentation is depicted as match between two users 14 after both users 14 have occurring through the display of terminal 10. In this embodi- expressed a preference for each other's profiles using like ment, a plurality of user profiles is presented to user 14. button 86 or the swiping gesture associated with like button Using terminal 10, user 14 may request that matching server 20 86. When matching server 20 creates a match, it may also 20 present a subset of users from user profile pool 30 based provide the matched users with the ability to contact each on specified search parameters. The display may show an other through a contact button. In some embodiments, when image of a suggested user and one or more aspects of the a match is created, matching server 20 may immediately (or suggested user's profile information. In some embodiments, soon thereafter) present an option to users 14 that have been the combination of image and one or more aspects of profile 25 matched to engage in a communication session (e.g., a chat, information is displayed as "card" 88 representing the an SMS message, an e-mail, a telephone call, a voice suggested user. A set of suggested users may be displayed as communication session, a video communication session). stack of cards 88. User 14 may view information regarding This may be done in response to a first user 14 expressing one suggested user at a time or more than one of the a preference for a second user 14 that has already expressed suggested users at a time. User 14 may be presented with a 30 a preference for the first user 14. surmnary of information regarding a suggested user. The FIG. 9 shows one embodiment of matching system 100 surmnary may include one or more of: a picture, an icon, displaying a match of a first user and a second user, in name, location information, gender, physical attributes, hob- accordance with a particular embodiment. Matching server bies, or other profile information. 20 may provide first user 14 and second user 14 with each In some embodiments, terminal 10 may also display 35 other's contact information such as a telephone number or "information" button 84 which allows user 14 to request an e-mail address. Matching server 20 may also provide both matching server 20 to retrieve and display more information first and second users 14 with a way to directly contact the about the presented user from user profile pool 30. In other, such as sending a message or providing voice or video addition, user 14 may express approval or disapproval for a communication between the first and second user. In some presented user. Expressing approval or disapproval can be 40 embodiments, direct communication may be initiated by accomplished through various methods. For example, ter- pressing "Send a Message" button 92. Alternatively, a user minal 10 may display "like" button 86 (represented by a may choose to continue browsing the set of presented users green heart icon) and "dislike" button 82 (represented by a by pressing "Keep Playing" button 94. red "X" icon). Pressing like button 86 indicates to matching For example, user Harry may indicate a preference to server 20 that user 14 approves of and is interested in 45 communicate directly with user Sally by selecting like communication with the presented user. Pressing dislike button 86. At this point, Sally is not aware that Harry button 82 indicates that user 14 disapproves of and does not expressed a preference for her. If Sally also requests match- want to communicate with the presented user. The approval ing server 20 present her with a set of possible matches, preference of user 14 is anonymous in that matching server Harry may appear in her set. Sally may select like button 86 20 does not inform users 14 whether other users have 50 (or perform an associated swiping gesture) when viewing expressed approval or disapproval for them. Harry's profile. Matching server 20 may then notify both As an example, consider two registered users, Harry and Harry and Sally that a match occurred. At this point, both Sally, both of whom have profiles stored in matching server Harry and Sally are made aware that they each expressed 20. Harry is at a restaurant and requests matching server 20 approval of each other's profile. Matching server 20 then to present him users within a one-mile radius of his location. 55 enables Harry and Sally to directly communicate with each Matching server 20 compares a geographic position associ- other (e.g., through a private chat interface). ated with Sally with a geographic position associated with In some embodiments, one advantage of a system dis- Harry. If Sally is currently within the one-mile radius of closing preferences of profiles to users when mutual Harry and matching server 20 determines her profile infor- approval has occurred is that a user can feel more secure in mation matches Harry's preferences, matching server 20 60 their privacy knowing that their preferences will be dis- will present Harry one or more aspects of Sally's profile closed to those that have expressed a preference for that user. information. If other users also meet the search criteria, As an example, a user can avoid embarrassment if their matching server 20 will present one or more aspects of those expression of preference for a profile was not reciprocated. users' profile information as well. Harry may request more This may lead to users more actively expressing their information about Sally by pressing information button 84. 65 preferences. Such increased activity can be used by the Harry may also indicate his preference to communicate matching system to generate more potential matches or directly with Sally by selecting like button 86. In another better rankings of potential matches. In some embodiments, Ex. A-24 7 US 9,959,023 B2 23 24 matching server 20 may be configured to allow direct some embodiments, step 1104 may not be performed. For communication between users when there has been a mutual example, if a matching proposal is suggested, then matching expression of preference. This may be advantageous server 20 may perform step 1106 with respect to the users because users can avoid browsing, deleting, or responding to suggested to be matched. unwanted messages. FIGS. 12A-D depict embodiments of a user interface. In FIG. 10 is a flowchart depicting a method for enabling some embodiments, the interface allows user 14 of terminal communication between two users of the matching system 10 to enable communication between other users 14 by of FIG. 1 based on a mutual expression of approval, in suggesting a matching proposal to matching server 20. accordance with a particular embodiment. FIG. 12A illustrates one embodiment of an interface for At step 1002, in some embodiments, matching server 20 10 proposing a match between two users. The interface is generates a set of user profiles in response to a request for divided into three sections: connection list area 1202, search matching from a first user 14. At step 1004, matching server area 1204, and suggestion area 1206. Connection list area 20 presents the set of user profiles to first user 14. Matching 1202 displays a set of connections user 14 has with other server 20 determines the contents and ordering of the set of users of, e.g., system 100 of FIG. 1. Connections may be users profiles by using, e.g., the relevance algorithms 15 based on prior matches created by matching server 20. described above in the discussion of FIG. 4. For example, Connections may also be imported from another social matching server 20 may only include user profiles whose networking platform 50. Search area 1204 enables user 14 to contents indicate location within a specified geographical search for particular connections within system 100. In some radius and order the presentation of those user profiles based embodiments, the search may be limited to just the connec- on the number of mutual friends in common with first user 20 tions displayed in connection list area 1202. Suggestion area 14. 1206 displays the connections that user 14 may use to form At step 1006, in some embodiments, matching server 20 a suggested match. receives an indication of the preference of first user 14 FIG. 12B illustrates suggestion area 1206 displaying a regarding a presented user profile. Matching server 20 first selected user (i.e., "Jonathan Smith") of a proposed determines if first user 14 expresses approval or disapproval 25 match between two users. User 14 identifies the first selected of the presented user profile at step 1008. If first user 14 user through a set of interactions with connection list area disapproves of the presented user profile then a match is not 1202, search area 1204, and suggestion area 1206. For made and, at step 1016, matching server 20 will not allow example, user 14 may locate a connection in connection list communication between the two users. If first user 14 area 1202 by typing a user handle in search area 1204. User expresses approval for the presented user profile at step 30 14 may then add the connection to suggestion area 1206. In 1008, then matching server 20 will check if second user 14 some embodiments, user 14 may drag the connection from represented by the presented user profile has already connection list area 1202 to suggestion area 1206. expressed a preference for first user 14 at step 1010. If FIG. 12C illustrates suggestion area 1206 displaying a matching server 20 detects a mutual expression of approval proposed match between two suggested users (i.e., "Jona- then a match is made between first and second users 14. 35 than Smith" and "Mary Major"). For example, user 14 may Then, at step 1012, matching server 20 allows private locate a second connection in connect list area 1202 that user communications between first and second users 14. If a 14 believes is a match for the first connection. User 14 may mutual expression of approval is not detected at step 1010, add the second connection to suggestion area 1206. When then matching server 20 stores the preference of first user 14 both connections are added to suggestion area 1206, match- regarding the presented user profile for future comparison 40 ing server 20 may create a match between the two users and and continues to step 1016 where private communications allow communication between them. are not yet allowed. FIG. 12D illustrates an example communication interface FIG. 11 is a flowchart depicting a method for enabling between users of the matching system. User 14 is presented communication between two users of the matching system with chat box 1208 for each of the matches that exist for user of FIG. 1 based on a matching proposal suggested by a user, 45 14. Users 14 may communicate with each other through chat in accordance with a particular embodiment. At step 1102, box 1208. In some embodiments, users 14 may communi- matching server 20 receives interactions from first user 14. cate through SMS messages, e-mail, telephone calls, online Interactions from first user 14 may include identification of voice communication sessions, and/or video communication user profiles for two other users 14. For example, Harry is sess10ns. connected to both Bob and Sally within social networking 50 Modifications, additions, or omissions may be made to the platform 50. Harry believes Bob and Sally are a good match methods described herein (such as those described above for each other and generates a matching proposal requesting with respect to FIGS. 5, 10 and 11) without departing from matching server 20 to create a match between Bob and Sally. the scope of the disclosure. For example, the steps may be At step 1104, in some embodiments, matching server 20 combined, modified, or deleted where appropriate, and addi- validates the suggested matching proposal between second 55 tional steps may be added. Additionally, the steps may be and third users 14. For example, matching server 20 verifies performed in any suitable order without departing from the that Bob's profile indicates that he wants to be matched with scope of the present disclosure. a woman, and Sally's profile indicates that she wants to be Although several embodiments have been illustrated and matched with a man. Matching server 20 may also verify described in detail, it will be recognized that substitutions that Sally has not previously expressed disapproval for Bob. 60 and alterations are possible without departing from the spirit If matching server 20 determines the suggested matching and scope of the appended claims. proposal is valid, matching server 20 creates the match and What is claimed is: allows communication between the users 14 suggested to be 1. A method of navigating a user interface, comprising: matched at step 1106. If matching server 20 determines the presenting, on a graphical user interface, a graphical suggested matching proposal is not valid, matching server 65 representation of a first item of information of a plu- 20 does not create a match and does not allow communi- rality of items of information, the first item of infor- cation between second and third users 14 at step 1108. In mation comprising a graphical representation of a first Ex. A-25 7 US 9,959,023 B2 25 26 online dating profile associated with a first user, automatically present a graphical representation of a wherein presenting the graphical representation of the second item of information of the plurality of items first item of information of the plurality of items of of information in response to the processor detecting information comprises presenting the first item of infor- the gesture, the second item of information compris- mation as a first card of a stack of cards; ing a graphical representation of a second online detecting a gesture associated with the graphical repre- dating profile associated with a second user; and sentation of the first item of information, the gesture corresponding to a positive preference indication asso- automatically remove the graphical representation of ciated with the first item of information, the positive the first item of information in response to detecting preference indication associated with the first item of 10 the gesture. information comprising an expression of approval for 4. The system of claim 3, wherein the interface is further the first user associated with the first online dating operable to present user interface controls such that ail user profile, wherein detecting the gesture associated with interface controls configured to cause another item of infor- the graphical representation of the first item of infor- mation of the plurality of items of information to be dis- mation comprises detecting a right swiping direction 15 played are associated with performing an action on the first associated with the gesture; item of information. storing the positive preference indication associated with the first item of information in response to detecting the 5. At least one non-transitory computer-readable medium gesture; comprising a plurality of instructions that, when executed by automatically presenting, on the graphical user interface, 20 at least one processor, are configured to: a graphical representation of a second item of infor- present, on a graphical user interface, a graphical repre- mation of the plurality of items of information in sentation of a first item of information of a plurality of response to detecting the gesture, the second item of items of information, the first item of information information comprising a graphical representation of a comprising a graphical representation of a first online second online dating profile associated with a second 25 dating profile associated with a first user, wherein the user; and plurality of instructions are configured to present the automatically removing the graphical representation of graphical representation of the first item of information the first item of information from the graphical user of the plurality of items of information as a first card of interface in response to detecting the gesture. a stack of cards; 2. The method of claim 1, wherein presenting the graphi- 30 detect a gesture associated with the graphical representa- cal representation of the first item of information of the tion of the first item of information, the gesture corre- plurality of items of information comprises presenting user sponding to a positive preference indication associated interface controls such that all user interface controls con- with the first item of information, the positive prefer- figured to cause another item of information of the plurality ence indication associated with the first item of infor- of items of information to be displayed are associated with 35 mation comprising an expression of approval for the performing an action on the first item of information. first user associated with the first online dating profile, 3. A system, comprising: wherein the plurality of instructions are further config- an interface operable to: ured to detect a right swiping direction associated with present a graphical representation of a first item of the gesture; information of a plurality of items of information, 40 the first item of information comprising a graphical store the positive preference indication associated with representation of a first online dating profile associ- the first item of information in response to detecting the ated with a first user, wherein the interface is further gesture; operable to present the graphical representation of automatically present, on the graphical user interface, a the first item of information of the plurality of items 45 graphical representation of a second item of informa- of information as a first card of a stack of cards; tion of the plurality of items of information in response a processor coupled to the interface and operable to: to detecting the gesture, the second item of information detect a gesture associated with the graphical represen- comprising a graphical representation of a second tation of the first item of information, the gesture online dating profile associated with a second user; and corresponding to a positive preference indication 50 automatically remove the graphical representation of the associated with the first item of information, the first item of information from the graphical user inter- positive preference indication associated with the face in response to detecting the gesture. first item of information comprising an expression of 6. The at least one non-transitory computer-readable approval for the first user associated with the first online dating profile, wherein the processor is further 55 medium of claim 5, wherein the plurality of instructions are operable to detect a right swiping direction associ- further configured to present user interface controls such that ated with the gesture; all user interface controls configured to cause another item store the positive preference indication associated with of information of the plurality of items of information to be the first item of information in response to detecting displayed are associated with performing an action on the the gesture; and 60 first item of information. the interface further operable to: * * * * * Ex. A-26