Source: http://www.google.com/patents/US7050988?dq=6,666,377
Timestamp: 2014-10-23 18:41:11
Document Index: 427101997

Matched Legal Cases: ['art 200', 'art 200', 'art 200', 'art 200', 'art 200', 'art 200', 'art 200', 'art 200', 'art 400', 'art 400']

Patent US7050988 - Method and apparatus for recommending selections based on preferences in a ... - Google PatentsSearch Images Maps Play YouTube News Gmail Drive More »Sign inAdvanced Patent SearchPatentsA system for determining selections that a user is likely to be interested in. The determination is made based on the user's prior indicated preferences. The user designates his or her preferred selections as entries in a user's preference list. Entries in the user's list are compared with entries in...http://www.google.com/patents/US7050988?utm_source=gb-gplus-sharePatent US7050988 - Method and apparatus for recommending selections based on preferences in a multi-user systemAdvanced Patent SearchPublication numberUS7050988 B2Publication typeGrantApplication numberUS 09/874,563Publication dateMay 23, 2006Filing dateJun 5, 2001Priority dateSep 9, 1993Fee statusPaidAlso published asEP0643359A2, EP0643359A3, US5583763, US7461055, US20010053994, US20060265369Publication number09874563, 874563, US 7050988 B2, US 7050988B2, US-B2-7050988, US7050988 B2, US7050988B2InventorsJohn Atcheson, James R. Miller, IIIOriginal AssigneeRealnetworks, Inc.Export CitationBiBTeX, EndNote, RefManPatent Citations (17), Non-Patent Citations (3), Referenced by (4), Classifications (36), Legal Events (11) External Links: USPTO, USPTO Assignment, EspacenetMethod and apparatus for recommending selections based on preferences in a multi-user systemUS 7050988 B2Abstract A system for determining selections that a user is likely to be interested in. The determination is made based on the user's prior indicated preferences. The user designates his or her preferred selections as entries in a user's preference list. Entries in the user's list are compared with entries in the other users' lists. When a significant number of matches have been found between two lists, the unmatched entries of the other user's preference list are extracted. The unmatched entries are further processed. Those unmatched entries with a high correlation to the user's preference list are presented to the user as selections in which the user is likely to be interested.
RELATED APPLICATIONS This application is a continuation of prior applications Ser. No. 08/707,773 filed Sep. 4, 1996 now abandoned and 08/119,793, filed Sep. 9, 1993 now U.S. Pat. No. 5,583,763 and the priority of these applications is hereby claimed.
BACKGROUND OF THE INVENTION The generation, replication and transmission of information by automated technology has far surpassed a person's ability to keep up with the information. Not only is this true in the business world, but our leisure activities also involve sorting through an overwhelming number of choices and making intelligent selections. For example, there is an abundance of entertainment in digital-audio or digital-video form, such as compact discs (�CD's�), mini-discs, digital audio tape (�DAT�), laser discs, computer graphics, high-definition television (�HDTV�), etc. The accelerating ability of communication systems to convey this information virtually instantaneously means that we have access to many thousands of selections.
The trend is for computers to be integrated with household devices, such as telephones or televisions, giving rise to �smart phones� or �intelligent� or �interactive� televisions. A telephone with computer capability could be used to �download� digital information, representing, for example, music selections, into the memory of the telephone for later playback. Alternatively, the downloaded information could be written to a medium such as a writeable compact disc. Thus, the smart phone would be capable of downloading high-fidelity music onto a CD that could be played at the user's leisure on his or her sophisticated stereo system. Since the telephone is connected to a vast network, such a system would provide an efficient method of exchange of sound information. In effect, a user could, for example, �dial-up� a central processor and employ a push-button phone or other input device to request music by the user's favorite recording artist and have it downloaded into the user's home. A similar setup is possible for visual images downloaded to an interactive television via, e.g., a cable network hat connects the interactive television to a central site where movies are stored and available for downloading.
One way for a user, or subject, to make a selection from a large collection of digital �objects� is to allow the user to input selection information into a network. The selection information is then sent to the central or host processor which categorizes the types of objects, e.g., music or video selections, that are of interest to the user and presents the user with these categories of selections. However, the categories are usually broad.
For example, in the music realm a user might make selections in the categories of �country music� or �jazz.� These categories are extremely broad, each encompassing many thousands of recordings. On the other hand a user might indicate a specific artist, although this is extremely limiting in that only recordings by that specific artist can logically be associated with the user's selection. Also, this method of having the user provide category selections places the burden of keeping track of new developments on the user himself. The categories may change, for example, rock music has split into various other categories such as heavy-metal, modern, and alternative. Category selection is also limiting to the user since it can only provide what the user knows how to ask for.
SUMMARY OF THE INVENTION The present invention provides an efficient means for presenting a user with recommended selections from a large number of possible choices. The invention is applicable to any type of information �objects� that can be ordered according to the preferences of a user, or �subject.� Preference information from the users is obtained via the network and the recommended selections are communicated to the users over the network. In a preferred embodiment of the invention, the objects are digital sound recordings.
BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 illustrates a portion of a network used to transfer information in the present invention;
DESCRIPTION OF A PREFERRED EMBODIMENT FIG. 1 shows a portion of a network 100 used to transfer information in a preferred embodiment of the present invention. In FIG. 1, network 100 includes host processing station 102 that is the storage center for information to be distributed, such as sound or image information. Regional hosts such as regional host 104 are connected to host 102 via communication links such as link 106. The regional hosts are used to serve users of network 100.
For example, regional host 104 is connected to user terminal 108 through user link 110. The regional hosts act as �front ends� to host processing station 102. A regional host performs the input and output (I/O) functions for each of the multiple user terminals connected to it. The regional host may include a large amount of local storage for containing information such as user selections, user preferences, sound and/or image information, as discussed below, similar to host processing station 102.
In a preferred embodiment, the present invention is adapted to a music selection and distribution service that provides users with recommended selections of songs that have a high likelihood of suiting their tastes. This system uses the user's household telephone to accept input in the form of touchtone keypad key presses to allow the user to select recordings from a menu and have the recordings delivered to the user's home. Delivery of the recordings can be by traditional methods such as sending a compact disk (�CD�) through the mail, or by more advanced methods such as �downloading� digital information to a user's computer for playback either from the computer or through a high fidelity home sound system.
For example, the downloaded digital information could be used to create a CD on a writable CD disk drive attached to the computer. Alternatively, the digital information could be written to a digital audio tape (DAT) format. Also available today is a �mini disk� format which is a writable format. Other possibilities for transferring digital recording information to allow the user to play it back at their leisure are possible. Thus, one aspect of the invention provides a user interface for making selections from the user's home.
To continue with the music selection service example, a user dials a number and is connected into a network to which the host processing station is connected. The user is given a menu of choices for proceeding within the service. One option is for the user to define �preferences�, or a list of their favorite artists. For example, a list of the top ten favorite recording artists is maintained for each user of the service. A user is given the opportunity to define or modify the list of top ten favorite artists by using the buttons on their telephone or by operating the keyboard or mouse or other input device on their computer. The user can also access a list of recommended selections which the service has determined might interest the user. The manner in which the suggested selections are generated is described in detail, below.
Operator interface 126 is connected to processor 122. The operator interface 126 provides a human interface at host processing station 102. By using the operator interface, one can provide better correlations by varying the parameters defining how the correlations are made to user preference lists. The operator interface may be implemented by any means known in the art, such as having the operator type in numbers for various parameter values. The purpose of allowing an operator to adjust parameters from time to time is to �tune� the system, based on a trial and error basis, to achieve the best results. This is necessary since the goal of providing accurate suggested selections is a subjective one.
Table I and FIGS. 3�5 will be discussed in connection with an explanation of a specific embodiment of a correlation method.
Table I lists the steps to perform �Subject to Object� correlation to generate suggested selections based on a comparison of a user's preference list with the preference lists of other users of the service. The steps of Table I are discussed in reference to FIGS. 3�5 where a detailed discussion of a method for performing the correlation as executed by a computer is discussed.
�subject�), the following procedure is followed:
�normalized� number of occurrences for each object).
�n − 2� is the �matchup� number.
Using the ranked weighted average (i.e., the �third�)
Flowchart 200 can be implemented with one or more software routines on one or more computers. Further, flowchart 200 illustrates merely the broad logical flow of a routine to accomplish the correlation procedure of the present invention. Other flowcharts implementing suitable correlations will be possible while still remaining within the scope of the present invention. A software routine, or routines, implementing flowchart 200 may be written in any suitable computer language, such as �C�, FORTRAN, assembly language or others. For ease of discussion, we will refer to the routine of flowchart 200 as a single routine.
The routine is entered at step 202 where it is assumed that a user preference list exists to which a correlation is to be made with other existing user lists in a computer database. The database could exist, for example, in memory 124 of FIG. 2. In step 204, a �reference list� is initialized with n user preferences. In this example, we assume that user preference lists contain five entries each. Thus, at step 204 of FIG. 3, the reference list is initialized with five entries of a user preference list to which a correlation of preexisting preference lists in the database is sought. In other words, the routine of flowchart 200 will provide selections in the database that have a high likelihood of being desired by the user whose preference list has been submitted to the routine.
At step 206, the variable m is initialized to n−1, that is, m now has the value 4 since n is assumed to be 5 as discussed above. Also at step 206, a �temp. list� is cleared to be used by the routine as described below.
At step 210, a check is made as to whether there are predefined preference lists in the database that have not yet been checked against the reference list. Since we have just entered the loop, none of the preference lists in the database has been checked so execution proceeds from step 210 to step 212. At step 212, the next preference list is obtained from the database and made the �current list.� At step 214, a check is made as to whether the current list has m entries that match the reference list. In other words, since m has the value 4, there must be four entries in the current list that match four of the five entries in the reference list. Since the reference list contains the user preferences, this means that step 214 of flowchart 200 is attempting to match preexisting preference lists in the database that have at least four entries in common with the user preferences. If a match is found at step 214, execution proceeds to step 216 where the unmatched entries in the current list are included in a �temp. list.� In our example of m having the value 4, this would mean that one entry in the current list is not matched in the reference list. This one unmatched entry is added to the temp. list. If the entry already exists in the temp. list, then a count of the number of occurrences of the entry being added to the temp. list is incremented.
After executing step 216, the routine returns to step 210 where a check is again made as to whether there are more unused preference lists in the database. If there are, execution continues to step 212 where, as before, the next list is obtained and checked for four matches against the reference list. If there are four matches, then the unmatched entry of the current list is added to the temp. list and so on. However, if, at step 210, there are no more lists in the database to be checked, execution continues to step 218 where the entries in the temp. list are ordered according to their counts. This means that entries with high counts are placed higher an the list, �List 1,� in step 218.
At step 220, a second list, �List 2,� is created in which the entries are ordered according to their normalized counts. As before, in forming List 1, the entries are obtained from the temp. list and are ordered according to their frequency of occurrence as unmatched entries in the current list in the loop of steps 210�216 described above. The method of normalizing the counts is described in more detail below. At step 222, List 1 and List 2 are weighted and combined to generate a �selection list m� where m is an integer value. In the present example, since m has the value 4, List 1 and List 2 will be combined to generate �selection list 4.� At step 224, m is decremented (i.e., m now equals 3) and the �temp. list� is cleared. Execution then returns to step 208.
At step 208, a check is made as to whether m is greater than 0, as before. Since m is now 3, execution proceeds to step 210 where the loop of steps 210�216 is executed to find matches in preference lists in the database that have three entries matching with the reference list.
After all of the preference lists in the database have been checked, the loops of steps 210�216 produce a temp. list with the unmatched entries of preference lists in the database that have three or more entries matching the reference list. At step 218, the entries in the temp. list are ordered by their counts as discussed above and stored as List 1. At step 220, the entries are ordered in List 2 similarly to step 218, except that the normalized counts are used to order the entries. At step 222, List 1 and List 2 are weighted and combined into a single list �selection list 3� (since m has the value 3 here). At step 224, m is now set to the value 2 and the temp. list is cleared so that the loop of steps 210�216 will be reentered for the case of m being 2. Thus, selection list 2 and selection list 1 will be formed with an ordered list based on preference lists in the database that have, respectively, 2 and 1 entries matching the reference list.
FIG. 4 shows preference lists, such as user's preference list 300. As shown in FIG. 4, user's preference list 300 has entries a, d, p, s and y. Database preference lists are shown at 302. For example, database preference list 304 includes entries b, p, s, a and d. In a preferred embodiment, entries designated by lower case letters in FIG. 4 will actually be the names of recording artists. Also, the number of preference lists in the database will be very large, on the order of thousands or even tens of thousands of preference lists. N, the number of entries on a user's preference list, is given the value 5 for this example. The specific numbers used here are merely values used for ease of discussion. In practice, all of the parameters, such as n, m, the number of preference lists compared to in the database, and the �weights� to be discussed below, are variable. These parameters, are used to adjust the correspondence routine of FIG. 3 to achieve optimal performance. In other embodiments of the invention, different parameters may be used.
Step 204 of FIG. 3 calls for initializing a reference list with the n user preferences. Thus, the reference list (an internal list manipulated and accessed by the processor executing the routine of flowchart 200) will be identical to user's preference list 300. That is, the reference list will have entries a, d, p, s and y in that order. At step 206, m obtains the value 4 (i.e., 5−1) and the temp. list is cleared. At step 208, m will be greater than 0 so that the loop of steps 210�216 is entered to compare the reference list with preference lists in the database, such as those shown at 302 of FIG. 4.
In FIG. 4, user's preference list 300 consists of {a, d, p, s, y} while database preference list 304 consists of {b, p, s, a, d}. Therefore, there are four matching entries, namely, a, d, p, and s. The single unmatching entry in database preference list 304 is entry b. Thus, the entry b is entered into a temp. list (not shown) as occurring once so far. The next time through the loop of step 210�216 of FIG. 3, the next database preference list 306 is compared with the user's preference list 300. The matching entries are d, s, and p. Thus, it is seen that database preference list 306 only has three matching entries with user's preference list 300. Therefore, at step 214 of FIG. 3 where a check is made for m, or at this point 4, matching entries the check will fail and execution will proceed to step 210 without executing step 216. Therefore, none of the entries of data preference list 306 will be inserted into the temp. list.
Next, database preference list 308 is compared with user's preference list 300. This gives entries y, a, p and s as matching entries. Since there are four matching entries, the unmatched entry, b, is again added to temp. list. Since b already exists on the temp. list, the count associated with entry b is incremented to 2. The loop of steps 210�216 continues until the last database preference list 310 is compared to user preference list 300. Database preference list 310 has entries a, d, s and p as matching. This results in the unmatched entry q of database preference list 310 inserted into the temp. list. Finally, there are no more database preference lists to be checked and execution proceeds to step 218 of FIG. 3.
As discussed above, at the completion of step 222, a selection list is generated for the current value of m. In the example discussed so far, selection list 4 is created with five entries (entries below the top five are arbitrarily ignored in this implementation) and executes and proceeds to step 224 where m is decremented, the temp. list is cleared and the loop of 210�216 is reentered after step 208.
FIG. 5 shows selection list 4, selection list 3, selection list 2 and selection list 1. These selection lists were generated by the execution of steps 208�224 of flowchart 200 of FIG. 3 in the manner discussed above. Once generated, execution proceeds to step 226 where the selection lists are combined according to a parameterized formula. As before, the parameters can be varied by the operator of the system. one of the parameters is the length of each selection list which has been set to five in the present example. Thus, even if during execution of steps 210�224, the number of entries of List 1, List 2 or the selection list exceeds 5, ultimately only the highest ranked 5 entries are included in the selection list. Also, the weighting of each selection list is shown to the right of the selection list named at 350 of FIG. 5. Thus, selection list 1 is weighted at 0.10, selection list 2 is weighted at 0.20, selection list 3 is weighted at 0.30 and selection list 4 is weighted as 0.40. The weights for the selection lists can be set by the operator. At 352, the calculations to get the combined and weighted rankings of the entries are shown.
Next, Table II and FIGS. 6A, 6B and 7 will be discussed to illustrate a method of making �Object to Object� correlations in the present invention.
Table II lists the steps of a method to perform �Object to Object� correlation to generate suggested selections, or recommendations, based on a comparison of users' preference lists that already exist in the database. The steps of Table II are discussed in reference to FIGS. 6A and 6B where a detailed discussion performing the steps of this method in a computer system is presented.
FIGS. 6A and 6B show flowchart 400 of a routine that executes the steps of Table 2. In FIG. 6A, routine 400 is entered at 402. It is assumed that first and second weighting factors, referred to as �weighting1� and �weighting2� are defined at the time of entry of the routine. The values for the weighting factors are variable at the control panel, as described above, or by other suitable means. It is further assumed that a database of preference lists such as database 302 of FIG. 4, including lists 304, 306, 308 and 310 exists.
At step 404, a unique pair of objects is chosen. In the example discussed above, where objects are names of recording artists, step 404 chooses two artists' names from the possible names in the database. At step 406 the number of lists containing both objects in the pair is determined. For ease of discussion, we represent this number as �L�.
Referring to FIG. 4, for example, if the pair �ad� is selected, lists 304 and 310 include the pair since they each include both object �a� and object �d� whereas lists 306 and 308 do not include the pair.
At step 408, the number of lists containing the first object of the pair, in this case �a�, is determined. This number is represented as �n1� in this discussion. In our example of FIG. 4, database 302 shows three lists, namely lists 304, 308, and 310, containing the object �a�. Thus, n1 would be set to 3.
In step 410, the number of lists containing the second object of the pair, in this case �d�, is determined and represented as �n2�. In this case, n2 would also be set to 3 since lists 304, 306 and 310 each contain the object �d�.
At step 412 a check is made as to whether n1 is greater than n2. Assuming n1 is greater than n2, execution proceeds to step 414 where �weighting1� is used as a weighting factor with n1. The result of the weighting operation using weighting1 and n1 is represented as w1. In a description of the preferred embodiment described below, �1� is divided by the value n1 before the weighting factor is used on the result of the division. However, any manner of using the weighting factors on the number of lists containing the predetermined object is within the scope of the invention.
Next, step 416 is executed whereby weighting factor �weighting2� is applied to the value n2. This result is designated as w2.
Assuming, at step 412, that n1 is not greater than n2, execution proceeds to step 418 where, in contrast to step 414, weighting factor �weighting2� is used on the value n1. The result of this is again designated w1. At step 420, �weighting 1� is used as a weighting factor on n2 and the result is designated w2.
Flowchart 400 is continued in FIG. 6B according to the connection circles �A� and �B�.
FIG. 6B shows step 422 executed subsequently to either of steps 416 or 420. At step 422, the results w1 and w2 are combined and stored as a ranking number, �ranking#,� for the selected pair. At step 424, a check is made as to whether there are more unique pairs to be processed. If so, execution returns to step 404. If not, execution continues to steps 426�434 where the ranking# of each of the pairs processed above is used to create an ordered list of selections associated with each of the pairs.
At step 426, an object from the data is selected to generate pairs. For example, with object �a�, possible pairs (assuming the lists 304, 306, 308 and 310 form the database) are ab, ap, as, ad, al, az, ay, and aq. After executing steps 404�424, described above, each of these pairs will have a ranking# associated with the pair.
At step 428, all occurrences of the selected object in pairs is determined. This is merely the list of pairs that include the object �a�as listed above. At step 430, the non-selected object in each pair is ranked in a list according to the ranking# for the pair. At step 432, the list is associated with the selected object.
Similar to the above, the next line in box 508 shows the object of less frequent occurrence in the database, namely, object a. To the right of the object �a� designator is the value 63.3. This value was obtained by dividing the frequency of the pair in lists in the database by the frequency of the occurrence of object �a� in lists in the database. That is, 63.3 is the result of dividing 15629 by 24680. The value 0.9 is the second weighting factor and is used to modify the calculation that includes the number of occurrences of the less frequently occurring object of the pair. This gives a result of 57.0.
At step 412, a check is made as to which of the first or second objects in the pair occurs with the highest frequency in the lists. This check, along with steps 414�420, is used to apply first and second weighting factors, designated weighting1 and weighting2, to a number that is based on the frequency of occurrence of each of the objects of the pair in lists in the database. For example, weighting1 has the value 0.1 and weighting2 has the value 0.9.
Simply put, the steps 412�420 will always apply weighting1, or 0.1, to the calculation using the number of occurrences of the more frequently occurring object in the pair. Weighting factor �weighting2� is always applied to the number of occurrences of the less frequently occurring object. Thus, in box 508, 0.1 is applied to a calculation using the number of occurrences of object b while 0.9 is applied to a calculation using the number of occurrences of object a. In boxes 510, 512, and 514, object a occurs more frequently than its paired object, that is, object c, d, or e, respectively. Thus, in each of boxes 510, 512 and 514, the calculation involving the number of occurrences of object a is applied with the weighting factor of 0.1.
Patent CitationsCited PatentFiling datePublication dateApplicantTitleUS4348740Jun 13, 1980Sep 7, 1982White Edward AMethod and portable apparatus for comparison of stored sets of dataUS4682956Nov 27, 1985Jul 28, 1987Leonard KraneApparatus and method for learning about the relationships and personalities of a group of two or more personsUS4706121May 6, 1986Nov 10, 1987Patrick YoungTV schedule system and processUS4815976Aug 27, 1987Mar 28, 1989K-Pay Entertainment, IncorporatedApparatus and method for learning about the relationships and personalities of a group of two or more personsUS4908758 *Dec 17, 1987Mar 13, 1990Sanders Michael JMethod of operating a computer for rank ordering and weighting category alternativesUS4970681Oct 20, 1987Nov 13, 1990Book Data, Ltd.Method and apparatus for correlating dataUS4996642 *Sep 25, 1989Feb 26, 1991Neonics, Inc.System and method for recommending itemsUS5027420Dec 16, 1988Jun 25, 1991Kabushiki Kaisha ToshibaMethod and apparatus for generating patterns with a user preference learning functionUS5041972Apr 15, 1988Aug 20, 1991Frost W AlanMethod of measuring and evaluating consumer response for the development of consumer productsUS5084819 *Oct 3, 1990Jan 28, 1992Response Technologies Inc.Data collection, analysis, and response system and methodUS5122952 *Oct 22, 1990Jun 16, 1992Minkus Leslie SMethod and apparatus for automated learning tool selection for child developmentUS5537586 *May 6, 1994Jul 16, 1996Individual, Inc.Enhanced apparatus and methods for retrieving and selecting profiled textural information records from a database of defined category structuresUS5583763 *Sep 9, 1993Dec 10, 1996Mni InteractiveMethod and apparatus for recommending selections based on preferences in a multi-user systemUS5615341 *May 8, 1995Mar 25, 1997International Business Machines CorporationSystem and method for mining generalized association rules in databasesEP0265232A2Oct 20, 1987Apr 27, 1988Book Data LimitedFurnishing the identification of customersEP0309298A2Sep 26, 1988Mar 29, 1989Grant BallRecording selection, high speed and high quality duplication, and royalty payment apparatus and methodEP0525947A1May 27, 1992Feb 3, 1993Lee S. WeinblattTechnique for correlating purchasing behaviour of a consumer to advertisements* Cited by examinerNon-Patent CitationsReference1 *Chandler, Beverly, "Multimedia: Multifaceted Retail Tool", Discount Merchandiser, vol. 32, No. 10, Oct. 1992.2 *Nelson, Nancy Melin, "Macworld CD Ventures Produces Taste Mate"., CD-ROM World, No. 8, No. 3, Apr. 1993.3 *Nordgren, Layne, "Taste Mate Video Selection System", CD-ROM Professional, vol. 6, No. 4, pp. 166-167, Jul. 1993.* Cited by examinerReferenced byCiting PatentFiling datePublication dateApplicantTitleUS7212919 *Jan 31, 2005May 1, 2007Institute For Information IndustryGuide route generation methods and systemsUS7802200 *Mar 29, 2006Sep 21, 2010Amazon Technologies, Inc.Detecting inconsistencies and incompatibilities of selected itemsUS8556630 *Oct 1, 2007Oct 15, 2013Zannah HACKETTSystem and method for human physical and behavioral profilingUS20130007609 *Jun 30, 2011Jan 3, 2013International Business Machines CorporationConstraint based reading recommendation* Cited by examinerClassifications U.S. Classification705/7.29, 434/236, 715/811, 273/161, 707/E17.009, 707/999.003, 705/1.1, 705/26.8International ClassificationH04M11/00, H04N7/173, G10K15/04, G09B19/00, G06F17/30, G06Q30/00Cooperative ClassificationY10S707/959, Y10S707/922, Y10S707/99931, Y10S707/99935, Y10S707/99938, Y10S707/99933, G06F17/30749, G06Q30/0201, G06F17/30828, G06Q30/02, G06F17/30761, G06F17/30017, G06F17/30775, G06Q30/0633European ClassificationG06Q30/02, G06F17/30U3F, G06F17/30V3F, G06F17/30U5, G06F17/30U2, G06Q30/0633, G06Q30/0201, G06F17/30ELegal EventsDateCodeEventDescriptionFeb 20, 2014FPAYFee paymentYear of fee payment: 8Feb 20, 2014SULPSurcharge for late paymentYear of fee payment: 7Jan 3, 2014REMIMaintenance fee reminder mailedAug 8, 2012ASAssignmentEffective date: 20120419Owner name: INTEL CORPORATION, CALIFORNIAFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:REALNETWORKS, INC.;REEL/FRAME:028752/0734Feb 27, 2012ASAssignmentOwner name: MNI INTERACTIVE, INC., CALIFORNIAFree format text: CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNOR NAME AND ASSIGNEE NAME PREVIOUSLY RECORDED ON REEL 027594 FRAME 0744. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT;ASSIGNORS:ATCHESON, JOHN;MILLER, JAMES R., III;REEL/FRAME:027770/0890Effective date: 19940922Effective date: 19970417Owner name: PROGRESSIVE NETWORKS, INC., WASHINGTONFree format text: CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNOR NAME PREVIOUSLY RECORDED ON REEL 027603 FRAME 0211. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT;ASSIGNOR:MNI INTERACTIVE, INC.;REEL/FRAME:027770/0885Jan 27, 2012ASAssignmentOwner name: REALNETWORKS, INC., WASHINGTONFree format text: CHANGE OF NAME;ASSIGNOR:PROGRESSIVE NETWORKS, INC.;REEL/FRAME:027609/0557Effective date: 19970925Jan 26, 2012ASAssignmentEffective date: 19970417Owner name: PROGRESSIVE NETWORKS, INC., WASHINGTONFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MNI INTERACTIVE;REEL/FRAME:027603/0211Jan 25, 2012ASAssignmentOwner name: MNI INTERACTIVE, CALIFORNIAFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:ATCHESON, JOHN;MILLER, JAMES R.;REEL/FRAME:027594/0744Effective date: 19940922Jan 25, 2010SULPSurcharge for late paymentJan 25, 2010FPAYFee paymentYear of fee payment: 4Dec 28, 2009REMIMaintenance fee reminder mailedRotateOriginal ImageGoogle Home - Sitemap - USPTO Bulk Downloads - Privacy Policy - Terms of Service - About Google Patents - Send FeedbackData provided by IFI CLAIMS Patent Services©2012 Google