A system and method of the present invention allow users to access, manage, and edit information about content data, often referred to as metadata. Metadata is collected from various sources, added, and maintained in a metadata database. In addition, metadata is dynamically read from the metadata database and dynamically displayed in a graphical user interface in an organized manner, such as a hierarchical tree. In the graphical user interface, a user may add, delete, and/or modify the metadata. As the user changes the metadata, the metadata database is updated and the user's changes are propagated throughout the graphical user interface such that the hierarchical tree is displays the changed metadata.
|
0. 56. A method of selecting at least one track from a plurality of tracks stored in a portable computing device executing a player module including at least one of an audio player and a video player, the portable computing device configured to present a hierarchical tree on a display of the portable computing device, the plurality of tracks accessed according to a hierarchy of the hierarchical tree, the hierarchy having a plurality of categories, subcategories, and items respectively in a first, second, and third level of the hierarchy, the method comprising:
receiving a selection of a category in the first level of the hierarchical tree on the portable computing device executing the player module including the at least one of an audio player and a video player;
displaying the subcategories belonging to the selected category as child nodes of the selected category in a listing presented in the second level of the hierarchical tree;
receiving a selection of a subcategory in the second level of the hierarchical tree;
displaying the items belonging to the selected subcategory as child nodes of the selected subcategory in a listing presented in the third level of the hierarchical tree;
accessing at least one track based on a selection made in one of the levels of the hierarchical tree; and
updating a tree information database based on one or more added tracks, the tree information database comprising data regarding the hierarchy of the hierarchical tree.
0. 55. A method of selecting at least one track from a plurality of tracks stored in a portable computing device executing a player module including at least one of an audio player and a video player, the portable computing device configured to present a hierarchical tree on a display of the portable computing device, the plurality of tracks accessed according to a hierarchy of the hierarchical tree, the hierarchy having a plurality of categories, subcategories, and items respectively in a first, second, and third level of the hierarchy, the method comprising causing one or more processors to:
receive a selection of a category in the first level of the hierarchical tree on the portable computing device executing the player module including the at least one of an audio player and a video player;
display the subcategories belonging to the selected category as child nodes of the selected category in a listing presented in the second level of the hierarchical tree;
receive a selection of a subcategory in the second level of the hierarchical tree;
display the items belonging to the selected subcategory as child nodes of the selected subcategory in a listing presented in the third level of the hierarchical tree;
access at least one track based on a selection made in one of the levels of the hierarchical tree;
receive user input to modify an attribute of at least one track of the corresponding tracks; and
update a tree information database and a display of the hierarchical tree based on the received user input, the tree information database comprising data regarding the hierarchy of the hierarchical tree.
0. 39. A method of selecting at least one track from a plurality of tracks stored in a portable computing device executing a player module including at least one of an audio player and a video player, the portable computing device configured to present a hierarchical tree on a display of the portable computing device, the plurality of tracks accessed according to a hierarchy of the hierarchical tree, the hierarchy having a plurality of categories, subcategories, and items respectively in a first, second, and third level of the hierarchy, the method comprising:
receiving, using one or more processors, a selection of a category in the first level of the hierarchical tree on the portable computing device executing the player module including the at least one of an audio player and a video player;
displaying, using the one or more processors, the subcategories belonging to the selected category as child nodes of the selected category in a listing presented in the second level of the hierarchical tree;
receiving, using the one or more processors, a selection of a subcategory in the second level of the hierarchical tree;
displaying, using the one or more processors, the items belonging to the selected subcategory as child nodes of the selected subcategory in a listing presented in the third level of the hierarchical tree; and
accessing, using the one or more processors, at least one track based on a selection made in one of the levels of the hierarchical tree,
wherein receipt of the selection in the first level of the hierarchical tree results in an expansion of the hierarchical tree to display the child nodes of the selected category and receipt of the selection in the second level of the hierarchical tree results in an expansion of the hierarchical tree to display the child nodes of the selected subcategory.
0. 1. In a user computer, a method comprising:
generating a graphical representation of a plurality of metadata database entries corresponding to, audio/video content to be played by a media player application, each metadata entry stored locally at the user computer in the metadata database and characterized in accordance with a plurality of attributes that are associated with the audio/video content and shared between one or more of the plurality of metadata database entries;
receiving user input to manually modify one of the shared attributes;
recharacterizing in the metadata database, those of the plurality of metadata database entries characterized by the modified one of the shared attributes; and
dynamically updating the graphical representation of the one or more of the plurality of metadata database entries based upon the user input.
0. 2. The method of
0. 3. The method of
0. 4. The method of
0. 5. The method of
0. 6. The method of
0. 7. The method of 6, wherein the graphical representation further comprises a table including metadata entries corresponding to nodes of a selected one of the plurality of content grouping trees.
0. 8. The method of 7, wherein the table includes metadata entries corresponding to leaf nodes of the selected one of the plurality of content grouping trees.
0. 9. The method of 6, wherein the plurality of content grouping trees comprises a hierarchical folder structure.
0. 10. The method of 9, wherein the plurality of content grouping trees comprises a hierarchical folder structure wherein the hierarchical folder structure is selectively expandable based upon user input.
0. 11. The method of
0. 12. The method of
0. 13. The method of
0. 14. In a user computer, a method comprising:
generating a graphical representation of a plurality of metadata entries characterizing audio/video content to be played by a media player application, wherein the metadata is stored locally at the user computer in a metadata database and characterized in accordance with one or more attributes associated with the audio/video content, the graphical representation including
a plurality of content grouping trees, with each content grouping tree representing one or more metadata entries characterized in accordance with a first of the one or more attributes; and
a table including metadata entries corresponding to nodes of a selected one of the plurality of content grouping trees;
receiving user input to manually modify at least one of the attributes associated with the audio/video content; and
dynamically updating the graphical representation of the metadata and the metadata database to reflect the user input.
0. 15. The method of
0. 16. The method of
0. 17. The method of
0. 18. The method of
0. 19. The method of
0. 20. The method of
0. 21. The method of
0. 22. An apparatus comprising:
a storage medium having a plurality of programming instructions stored therein, the programming instructions designed to
generate a graphical representation of a plurality of metadata database entries corresponding to, audio/video content to be played by a media player application, each metadata entry stored locally in the metadata database and characterized in accordance with a plurality of attributes that are associated with the audio/video content and shared between one or more of the plurality of metadata database entries,
receive user input to manually modify one of the shared attributes,
recharacterize in the metadata database, those of the plurality of metadata database entries characterized by the modified one of the shared attributes, and
dynamically update the graphical representation of the one or more of the plurality of metadata database entries based upon the user input; and
at least one processor coupled with the storage medium to execute the programming instructions.
0. 23. The apparatus of
0. 24. The apparatus of
0. 25. The apparatus of
0. 26. The apparatus of 25, wherein the graphical representation further comprises a table including metadata entries corresponding to nodes of a selected one of the plurality of content grouping trees.
0. 27. The apparatus of 26, wherein the table includes metadata entries corresponding to leaf nodes of the selected one of the plurality of content grouping trees.
0. 28. The apparatus of 25, wherein the plurality of content grouping trees comprises a hierarchical folder structure.
0. 29. The apparatus of 28, wherein the plurality of content grouping trees comprises a hierarchical folder structure wherein the hierarchical folder structure is selectively expandable based upon user input.
0. 30. The apparatus of
0. 31. The apparatus of
0. 32. The apparatus of
0. 33. An apparatus comprising:
a storage medium having a plurality of programming instructions stored therein, the programming instructions designed to
generate a graphical representation of a plurality of metadata entries, characterizing audio/video content to be played, wherein the metadata is stored locally in a metadata database and characterized in accordance with one or more attributes associated with the audio/video content, the graphical representation including a plurality of content grouping trees, with each content grouping tree representing one or more metadata entries
characterized in accordance with a first of the one or more attributes, and a table including metadata entries corresponding to nodes of a selected one of the plurality of content grouping trees,
receive user input to manually modify at least one of the attributes associated with the content, and
dynamically update the graphical representation of the metadata and the metadata database to reflect the user input; and
at least one processor coupled with the storage medium to execute the programming instructions.
0. 34. The apparatus of
0. 35. The apparatus of
0. 36. The apparatus of
0. 37. The apparatus of
0. 38. The apparatus of
0. 40. The method of selecting a track as recited in claim 39 wherein the accessing at least one track comprises selecting an item in the third level of the hierarchical tree and playing at least one track associated with the selected item.
0. 41. The method of selecting a track as recited in claim 39 wherein the accessing at least one track comprises one of playing or adding to a playlist at least one track associated with a selected one of the category, subcategory, and item.
0. 42. The method of selecting a track as recited in claim 39 further comprising selecting one of the items displayed in the third level of the hierarchical tree and presenting a listing of items associated with the selected item as child nodes of the selected item in a fourth level of the hierarchical tree.
0. 43. The method of selecting a track as recited in claim 39 wherein the category genre is selected in the first level of the hierarchical tree from available categories that include at least artist, album, and genre; and the subcategories listed in the second level of the hierarchical tree comprise a listing of at least one genre type and one of the at least one genre type is selected.
0. 44. The method of selecting a track as recited in claim 39 wherein the track is a music track, accessing at least one track comprises accessing a track title in the third level of the hierarchical tree, and the track is played in response to the access.
0. 45. The method of selecting a track as recited in claim 39 wherein the category selected in the first level of the hierarchical tree is from a top level of the hierarchy.
0. 46. The method of selecting a track as recited in claim 39 wherein the category selected in the first level of the hierarchical tree is a category from a level at least one level below the top level of the hierarchy.
0. 47. The method of selecting a track as recited in claim 39 wherein the plurality of categories comprise a list of artist names, the plurality of subcategories comprise a list of album names and the plurality of items comprise a list of track names.
0. 48. The method of selecting a track as recited in claim 39 wherein the accessing at least one track comprises selecting a subcategory in the second level of the hierarchical tree and playing a plurality of tracks associated with the selected subcategory.
0. 49. The method of selecting a track as recited in claim 39 wherein the accessing at least one track comprises selecting a subcategory and adding the tracks associated with the selected subcategory to a playlist.
0. 50. The method of selecting a track as recited in claim 39 wherein the accessing at least one track comprises selecting an item in the third level of the hierarchical tree and adding at least one track associated with the selected item to a playlist.
0. 51. The method of selecting a track as recited in claim 39 further comprising receiving user input to modify an attribute of at least one track of the corresponding tracks.
0. 52. The method of selecting a track as recited in claim 51 further comprising updating a tree information database and a display of the hierarchical tree based on the received user input, the tree information database comprising data regarding the hierarchy of the hierarchical tree.
0. 53. The method of selecting a track as recited in claim 39 further comprising updating a tree information database based on one or more added tracks, the tree information database comprising data regarding the hierarchy of the hierarchical tree.
0. 54. The method of selecting a track as recited in claim 39 wherein the hierarchical tree and the hierarchy of the hierarchical tree are in the form of a directed acyclic graph.
|
Notice: More than one reissue application has been filed for the reissue of U.S. Pat. No. 6,760,721. The reissue applications are U.S. patent application Ser. No. 11/452,187, which was filed on Jun. 12, 2006, and U.S. patent application Ser. No. 12/547,341 (the present application), which was filed on Aug. 25, 2009 and is a divisional of U.S. patent application Ser. No. 11/452,187. Accordingly, the present application is a divisional reissue application of U.S. Pat. No. 6,760,721.
The system and method of the present invention relate generally to the field of managing metadata.
The increased reliance on digital data has led to a need for detailed information about the digital data as well as techniques for managing and controlling this detailed information. This detailed information is known as “metadata.” For example, there is a high demand for audio data, and accordingly, there is a high demand for metadata about the audio data such as, for example, the artist or speaker name, album name, genre, number of songs, and so forth.
While access to metadata provides the public with a vast amount of information, it is often difficult to manage the metadata. For example, keeping track of various audio files as well as the immense amount of metadata for each audio file can be a difficult task.
One common problem is that conventional approaches do not allow the user to easily view and access the metadata. For example, it is typical for a user to have hundreds or even thousands of audio files making it difficult for the user to sift through each file of metadata. A user may have to look through hundreds or through thousands of files to find the desired file.
Another common problem is that conventional approaches fail to provide users with control over the metadata such as the ability to make changes to a piece of metadata or a set of metadata. For example, a user may want to alter the genre of an audio file by changing the genre from Jazz to New Age.
In one embodiment, the present invention is a method for dynamically organizing metadata located in a database of metadata for presentation to a user in a display. The method comprises receiving a plurality of categories of metadata wherein the plurality of categories of metadata represent a hierarchical representation of the metadata; querying a database of metadata to produce a set of metadata query results; arranging the metadata query results in a hierarchical representation of metadata based at least upon a subset of the plurality of categories; and presenting the hierarchical representation of metadata to a user in a graphical display.
Another embodiment of the present invention is a method of dynamically updating a display of metadata to a user. The method comprises storing metadata in a database; displaying a hierarchical representation of a subset of the metadata to a user; receiving a change to at least a portion of the subset of metadata displayed to the user; processing the change to update the corresponding portion of the subset of metadata in the metadata database; determining which portions of the hierarchical representation are affected by the change; updating the portions of the hierarchical representations affected by the change; and displaying the updated hierarchical representation to the user.
Another embodiment of the present invention is a metadata management system used to access, manage, and edit information about content data. The metadata management system comprises a metadata database that includes information about content data; a metadata management module used to access the information about content data in the metadata database; and a graphical user interface configured to communicate with the metadata management module, to dynamically access the information about content data in the metadata database, and to dynamically present an organized grouping of at least a portion of the information about content data for display to a user.
Another embodiment of the present invention is a method for presenting metadata in a database. The method comprises obtaining a hierarchy of category nodes; querying the database for a set of metadata; dynamically arranging the set of metadata in the hierarchy of category nodes; and presenting the set of metadata in the hierarchy of category nodes to a user.
Another embodiment of the present invention is a method for presenting metadata in a database. The method comprises displaying a set of metadata from a metadata database in a hierarchy of category nodes; receiving a change to a portion of the set of metadata; and dynamically updating the display of the set of metadata and the hierarchy of category nodes to reflect the change.
Another embodiment of the present invention is a method for dynamically presenting metadata in a hierarchical form. The method comprises executing a search on a database, to obtain a set of search results, wherein the database stores metadata; receiving a set of user preferences for viewing the search results wherein the user preferences are based on properties of the metadata; dynamically generating a tree structure based on the search results and the set of user preferences; dynamically determining a layout of the tree structure; dynamically mapping the search results onto the tree structure based on the layout; and dynamically displaying the tree structure.
Another embodiment of the present invention is a method of obtaining information about content data wherein information about content data is stored in a database and displayed in a graphical user interface using a standard data structure. The method comprises obtaining an identifier related to a set of content data; creating a request for information about the set of content data using the identifier; processing the request for information; receiving a set of request information in response to the request for information; and storing the set of request information a database.
For purposes of summarizing the invention, certain aspects, advantages, and novel features of the invention are described herein. It is to be understood that not necessarily all such advantages may be achieved in accordance with any particular embodiment of the invention. Thus, for example, those skilled in the art will recognize that the invention may be embodied or carried out in a manner that achieves one advantage or group of advantages as taught herein without necessarily achieving other advantages as may be taught or suggested herein.
A system and method which represent one embodiment and example application of the invention will now be described with reference to the drawings. Variations to the system and method which represent other embodiments will also be described. In one disclosed embodiment, the system and method are used to dynamically represent audio metadata using a master tree and a node table. It will be recognized, however, that other embodiments may use only one of these two types of data structures and/or different types of data structures to help users organize and access data. In addition, other types of data may also be used.
For purposes of illustration, one embodiment will be described in the context of a master tree and node table for organizing and accessing audio metadata and audio data within an audio playing device such as, for example, Real-Jukebox™. While the inventors contemplate that the present invention is not limited by the type of content data and/or metadata to be managed and that the types of data may include video, audio, audio-visual, slideshow, image and text, and so forth, the figures and descriptions relate to an embodiment of the invention using audio metadata and audio content data. Furthermore, the details of the master tree, node table, and of specific implementations are set forth in order to illustrate, and not to limit, the invention. The scope of the invention is defined by the appended claims.
These and other features will now be described with reference to the drawings summarized above. The drawings and the associated descriptions are provided to illustrate embodiments of the invention, and not to limit the scope of the invention. Throughout the drawings, reference numbers are re-used to indicate correspondence between referenced elements. In addition, the first digit of each reference number indicates the figure in which the element first appears.
Audio metadata, such as track name, artist, album, genre, track number, length, and so forth, is collected from various sources, added, and maintained in a metadata database. A metadata management module dynamically reads metadata from the metadata database, organizes the metadata into groupings using a groupings tree, combines the groupings tree with other trees to form a master tree, combines metadata relating to the selected grouping into a node table, and presents the master tree and the node table in a graphical user interface. In the graphical user interface, a user may add, delete, and/or modify the metadata in the master tree and/or the node table. As the user changes the metadata, the metadata database is updated and the user's changes are propagated throughout the graphical user interface. The user may also use the master tree and the node table to begin playing an audio file and/or a set of audio files.
The top node of the master tree represents a root node. The next level of the master tree represents root nodes of subtrees such as the groupings tree and the playlist tree. The lowest-level nodes of the master tree represent audio metadata of individual audio tracks, while the other nodes represent groupings (or sub-groupings) of audio tracks. This relationship structure allows the master tree to include various types of trees. For example, the groupings tree provides ways to group and categorize audio metadata, such as, for example, by Album, Artist, Genre, and so forth as well as by nested groupings such as, for example, Artist/Album, Genre/Artist, Genre/Artist/Album, and so forth. The groupings may be based upon fields of the metadata database as well as other groupings, categories, and/or preferences created by the user, hard-coded into the system, and so forth. The playlist tree provides ways to create or provide ordered lists of audio tracks.
The master tree and the node table are dynamically populated and displayed to the user. In addition, when a user makes any changes to the master tree and/or the metadata in the node table, both the master tree and the node table may be dynamically updated. In one embodiment, the master tree and the node table are dynamically updated without having to rebuild the entire master tree and the entire node table. Instead, the changes may be propagated throughout the master tree and node table through the use of a node location table that tracks the locations of the node within the master tree.
One benefit of this embodiment is that the metadata management system can read metadata from the metadata database and dynamically organize the metadata for display in the graphical user interface. Thus the metadata can be stored in a basic format and still presented to the user in an accessible format without requiring extensive or time consuming processing of the metadata.
Another benefit of this embodiment is that the user is given access to the metadata to make additions, changes, and/or deletions through an easy to use graphical user interface. Using the graphical user interface, the user has access to the data through interface tools such as, for example, menus, windows, pointing devices, drag and drop features, and so forth. For example, rather than having to manually edit each piece of the metadata, the user can use the interface tools to add data, move data into new categories and/or groupings, and so forth.
An additional benefit of this embodiment is that the metadata information may be displayed in the graphical user interface using organizational techniques. Rather than having to traverse vast amounts of metadata to find a particular record, the user is instead presented with an organized view of the metadata. This embodiment allows the metadata to be presented in a variety of categories using a variety of subtrees. The user may create custom categories as well as custom subtrees affording much flexibility and user control. For example, one user may create groupings for the Genres Rock and Jazz, while another user may create groupings for the Artists Styx and Abba. In addition, one user may group data into categories that are often used such as Artist/Genre/Album, while another user may create customized playlists.
A further benefit of this embodiment is the ability to dynamically update the data in the database collection as well as the data displayed in the graphical user interface. Thus, when users make changes to the metadata and/or the groupings or categories, the changes are made in the database and propagated throughout the graphical user interface such that the user is seeing an accurate representation of the metadata database. The user can view changed data without having to reread all of the data and regenerate the entire display. Instead, this embodiment provides fast, dynamic updating of the view of the data within the graphical user interface without causing much delay and/or inconvenience to the user.
Another benefit of this embodiment is that the user can update multiple sets of metadata with simple changes in the graphical user interface. For example, if a user has one thousand files with the genre value as Pop and the user wants to change the genre to Rock, the user can rename the genre grouping from Pop to Rock and all of the nodes within that genre grouping may be updated to reflect the genre value change. This feature saves the user from having to manually edit each of the metadata files one-by-one.
An additional benefit of this embodiment is that the user may update the metadata located in the individual content data files with the current metadata in the metadata database. For example, a user may select a command wherein the data within the metadata database is then copied to the appropriate MP3 header file that includes the metadata. For example, if a user changes the Genre of an audiofile from Rock to Pop in the graphical user interface and then executes an update MP3 file command, then the user's MP3 file will also automatically be updated such that the Genre is changed from Rock to Pop in the MP3 file.
The tree window 120 displays the master tree 122. In the exemplary master tree 122, there are two subtrees, Master Library 124 and Playlists 126. The Master Library subtree 124 represents a groupings tree and illustrates ways to group or categorize the audio metadata in the metadata database. The Master Library subtree's 124 grouping includes five groupings, Artist, Album, Genre, Genre/Artist, and All Tracks. Furthermore, the Genre grouping includes four sub-groupings, <blank>, Classical, Pop, and Rock. The Playlists subtree 126 provides ways to group or categorize the audio metadata into custom playlists, (i.e., lists of tracks that the user wants played in a specific order). Users can create custom playlists indicating the order in which the user would like to listen to the audio files. The Playlists subtree 126 includes three playlists, New Playlist, Favorites, and Study Music.
The table window 130 displays a node table 132 that includes information about the node that is selected in the tree window 120. This information includes details about the audio tracks that fall within the selected node. A user may display a node table 132 by selecting a grouping such as, for example, by using a mouse to click on the desired node in the tree window 120. Other methods of selecting a grouping are discussed below.
In
In
As used herein, the word module, whether in upper or lower case letters, refers to logic embodied in hardware or firmware, or to a collection of software instructions, possibly having entry and exit points, written in a programming language, such as, for example, C++. A software module may be compiled and linked into an executable program, or installed in a dynamic link library, or may be written in an interpretive language such as BASIC. It will be appreciated that software modules may be callable from other modules or from themselves, and/or may be invoked in response to detected events or interrupts. Software instructions may be embedded in firmware, such as an EPROM. It will be further appreciated that hardware modules may be comprised of connected logic units, such as gates and flip-flops, and/or may be comprised of programmable units, such as programmable gate arrays or processors. The modules described herein are preferably implemented as software modules, but may be represented in hardware or firmware.
In one embodiment, the metadata management system 200 is implemented on a user computer (not shown). The user computer is a device which allows a user to access the content data and/or the metadata. While the term user computer is used, it is recognized that in other embodiments, the metadata management system 200 may be implemented on other systems such as, for example, a portable computing device, a portable audio player, a portable video player, a server, a computer workstation, a local area network of individual computers, an interactive television, an interactive kiosk, a personal digital assistant, an interactive wireless communications device, a handheld computer, a telephone, a router, a satellite, a smart card, an embedded computing device, or the like.
In one embodiment, the user computer is a conventional, general purpose computer using one or more microprocessors, such as, for example, a Pentium processor, a Pentium II processor, a Pentium Pro processor, an xx86 processor, an 8051 processor, a MIPS processor, a Power PC processor, or an Alpha processor. In one embodiment, the user computer runs an appropriate operating system, such as, for example, Microsoft® Windows® 3.X, Microsoft® Windows 98, Microsoft® Windows® NT, Microsoft® Windows® CE, Palm Pilot OS, Apple® MacOS®, Disk Operating System (DOS), UNIX, Linux®, or IBM® OS/2® operating systems.
In one embodiment, the metadata management system 200 includes or is connected to a player module (not shown). For example, the metadata management system 200 may include an audio player, a video player, and so forth such that a user may access the content data as well as the metadata using the graphical user interface 220.
A. Metadata Management Module
In one embodiment, the metadata management system 200 includes a metadata management module 210. As indicated above, the metadata management module 210 communicates with the graphical user interface 220 and the database collection 230.
The metadata management module 210 works in concert with the graphical user interface 220 to build the master tree 122 displayed in the tree window 120 and the node table 132 displayed in the table window 130. The metadata management module 210 may be requested to build the master tree 122 and the node table 132 upon the occurrence of several events such as, for example, upon user request (e.g., selecting the “refresh” button or via a menu option), upon an automatic request when the audio player program is opened, and so forth. In other embodiments, the metadata management module 210 may generate a portion of or the entire master tree 122 and/or the node table 132 off-line.
As indicated above, in one embodiment, the metadata management module 210 may generate several types of trees (sometimes referred to as subtrees) and combine the trees into a master tree 122 for display in the tree window 120. The metadata management module 210 may combine the trees by creating a root node and attaching the various trees as children of the root node. It is recognized that the various trees may be combined in other manners that are well known to those skilled in the art. Furthermore, in other embodiments, the audio data tree may represent a combination of several types of trees and/or a single type of tree.
In one embodiment, the metadata management module 210 may also generate the node table 132 for display in the table window 130. As discussed above, the node table 132 displays additional information about the selected grouping. In one embodiment, a default selected grouping may be stored in the tree information database 234 wherein the default selected grouping may be based on one or more factors such as, for example, the last grouping that the user selected, the most popular grouping that has been selected, a pre-selected grouping, and so forth. To build the node table 132, the metadata management module 210, queries the metadata database 232 for records that fall within the selected grouping. In one embodiment, if the selected node is a leaf node, the node table 132 may display metadata pertaining to the audio tracks that fall within the selected grouping. If the selected node is a non-leaf node, the node table 132 may display collective information about the tracks within the sub-groupings of the selected grouping. For more information on the node table 132, see the section below entitled Graphical User Interface—Node Table.
The metadata management module 210 illustrated in
B. Graphical User Interface
In one embodiment, the metadata management system 200 includes a graphical user interface 220 (“GUI”). The GUI 220 in
The GUI 220 may be implemented as a module that uses text, graphics, audio, video, and other media to present data and to allow interaction with the data. The GUI 220 may be implemented as a combination of an all points addressable display such as a cathode-ray tube (CRT), a liquid crystal display (LCD), a plasma display, or other types and/or combinations of displays; input devices such as, for examples, a mouse, trackball, touch screen, pen, keyboard, voice recognition module, and so forth; and software with the appropriate interfaces which allow a user to access data through the use of stylized screen elements such as, for example, menus, windows, dialog boxes, toolbars, controls (e.g., radio buttons, check boxes, sliding scales, etc.), and so forth.
As illustrated in
1. Master Tree
As indicated above, the master tree 122 provides various ways to group and categorize audio data. In one embodiment, the master tree 122 displays nodes that have at least one child (non-leaf nodes) such that the leaf nodes are not displayed in the master tree 122, but are instead displayed in a table format in the node table 132. It is recognized that in other embodiments, the leaf nodes as well as the non-leaf nodes may be displayed in the master tree 122. In addition, the GUI 220 allows the user to expand a subtree of the master tree 122 in order to view the subtrees children.
The master tree 122 is preferably in the form of a directed acyclic graph (a tree that allows a child node to have multiple parents). While this embodiment uses an acyclic graph representation, it is recognized that in other embodiments, other types of graphs or trees may be used such as, for example, B* trees, optical trees, binary trees, n-way trees, balanced trees, min-max trees, Huffinan trees, splay trees, AVL trees, and so forth. Furthermore, other data structures, such as, for example, files, lists, arrays, records, tables, and so forth, or a combination of data structures may be used.
2. Node Table
As indicated above, the node table 132 displays additional information about the node that is selected in the master tree 122. In one embodiment, if the selected node is a leaf node, the node table 132 may display metadata pertaining to the audio tracks that fall within the grouping as audio track records. The node table 132 in
It is recognized that in other embodiments different categories, attributes, and/or collective information may be used that include fewer fields of the metadata database 232, additional fields of the metadata database 232, user customized categories, as well as other categories. In addition, some or all of the exemplary categories or attributes may be omitted from the node table 132.
The node table 132 is preferably in the form of a standard table wherein data is arranged in rows and columns such that multiple audio track records are visible in the table window 130. It is recognized that other formats may be used. For example, the table window 130 may display individual records, a tree of records, a linked list of records, and so forth. It is recognized that in other embodiments, other types of data structures such as, for example, trees, files, lists, arrays, records, and so forth, or a combination of data structures may be used.
C. Database Collection
In one embodiment, the metadata management system 200 includes a database collection 230. The database collection 230 in
1. Metadata Database
The metadata database 232 includes metadata about the audio content data. The metadata may include information such as track name, artist, album, genre, CD track number, length, format, quality, comments, date and/or time last played, date and/or time the track was created, file size, file location, protection flag, as well as other types of information related to the audio file. The metadata may include fields that are used in standards such as, for example, ID3v1, ID3v2, ID3v2.3.0, and so forth, as well as other fields that are created by other parties, by users, by content providers, and so forth. As indicated above, it is also recognized that in other embodiments, the metadata database 232 may manage other types of content data and/or metadata.
In one embodiment, the metadata database 232 includes the metadata as well as the content data. For example, the metadata database 232 may include the audio files as well as the metadata that corresponds to the audio files. In another embodiment, the content data may be stored in a different database and/or only a subset of the content data may be stored in the metadata database 232. It is recognized that the metadata database 232 may be implemented as several separate databases.
2. Tree Information Database
The tree information database 234 includes data about the trees within the master tree 122. This information may include tree types, groupings, node names, node locations, and so forth. For example, the tree information database may include grouping tables that include data about the grouping tree structure wherein the grouping tables include information such as, for example, the names of the nodes, the relationship between nodes, whether the node is a standard node or customized node, and so forth. In addition, the tree information database 234 may include playlist tables that define the various playlists and include information about the playlists such as, for example, data/time created, name of the creator, and so forth. The tree information database 234 may also include node location tables that define the location of nodes in the subtrees and/or the master tree 122.
It is recognized that the tree information database 234 may include other types of information as well. In addition, in other embodiments, the tree information database 234 may be implemented as several separate databases.
3. Additional Embodiments
The database collection 230 may also include other databases (not shown) for performing various management tasks. For example, the database collection 230 may include a user preferences database that includes information on the types of audio content and metadata that the user prefers and/or the user's favorite web sites for downloading audio content and metadata.
In connection with the database collection 230, in one embodiment, there may be several processes (not shown) such as ID generators, number generators, statistic generators, session generators, and temp storage units that work with the database collection 230.
In one embodiment, the database collection 230 is implemented using CodeBase, a semi-relational database offered by Sequiter. CodeBase is a high-speed xBase-compatible database engine that works with C/C++, Visual Basic, Delphi and Java under standalone and client/server environments. It is recognized that the database collection 230 may be implemented using a different type of relational database, such as Sybase, Oracle, Microsoft® SQL Server, and so forth as well as other types of databases such as, for example, a flat file database, an entity-relationship database, and object-oriented database, a record-based database, and so forth.
Moreover, while the database collection 230 depicted in
In one embodiment, the database collection 230 may be connected to a backend component (not shown) that receives database requests via servlets, small programs that run on servers, and sends a corresponding request to the database collection 230. It is recognized that in other embodiments data access may be performed differently, for example, a different type of backend component may be used, or the database collection 230 may be accessed directly.
The metadata management module 210 illustrated in
A. Build Process
The build process 212 is used to dynamically build a grouping tree that represents a grouping wherein the grouping is a category or a set of categories by which the data may be grouped. For example, one grouping may be Artist while another grouping may be Genre/Artist, and yet another grouping may be Genre/Artist/Album.
For example, Table 1 represents a sample set of audio metadata.
TABLE 1
Track Name
Artist
Album
Genre
Length
Always
B
XXX
Funk
2:34:35
Bird
A
YYY
Pop
1:56:22
Rhythm
C
YYY
Pop
3:21:48
Speed
A
ZZZ
Rock
2:15:03
The field names are located in the first row and represent categories, and the metadata information, also referred to as a category value, is shown in the subsequent rows. For example, the category Track Name has four different category values: Always, Bird, Rhythm, and Speed; and the category Artist has three different category values: A, B, and C.
A tree based on the grouping “Artist” for the data in Table 1 may look like the following, wherein the grouping is “Artist” that includes one category, Artist:
##STR00001##
The circles represent categories from the groupings and the squares represent the audio track records which are the leaf nodes of the tree. The top node (or root note of this grouping) represents the grouping name. The next level of nodes represents the category values for the category Artist category. The leaf nodes represent the audio track records (and/or a reference to the records).
To further illustrate, a tree based on the grouping “Genre/Artist” for the data in Table 1 may look like the following, wherein the grouping is “Genre/Artist” that includes two categories, first Genre and second Artist:
##STR00002##
The root node represents the grouping name. The next level of nodes under the root node represent the category values for the Genre category and the next level of nodes represent the category values for the Artist category. The leaf nodes represent the audio track records (and/or a reference to the records).
In the next example, a tree based on the grouping “Genre/Artist/Album” for the data in Table 1 may look like the following, wherein the grouping is “Genre/Artist/Album” that includes three categories, first Genre, second Artist, and third Album:
##STR00003##
The root node represents the grouping name. The next level of nodes under the root node represent the category values for the Genre category; the next level of nodes represent the category values for the Artist category; the third level of nodes represent the category values for the Album category. The leaf nodes represent the audio track records (and/or a reference to the records).
One embodiment of a build process 212 will now be described with reference to
The build process 212 begins at a start state 300 and then proceeds to a state 310. In state 310, the build process 212 sorts the data by the first category in the grouping, then by the second category in the grouping, and so forth for each category in the grouping and then proceeds to a state 315. In state 315, beginning with the first record of the sorted data, and continuing until all of the records have been traversed (states 315 and 355), the build process 212 proceeds to a state 320. In state 320, the build process 212 creates a grouping name node as the top of the tree and moves the current location to the top of the tree. Proceeding to a state 325, beginning with the first category in the grouping, and continuing until all of the categories in the grouping have been traversed (states 325 and 345), the build process 212 proceeds to a state 330. In state 330, the build process 212 determines if the category value is already a child node in the tree. If the category value for the current record is not already a child node in the current location of the tree, the build process 212 proceeds to a state 335 and adds the category value as a child node in the current location of the tree and proceeds to a state 340. If the category is already a child node in the current location of the tree, the build process 212 proceeds to state 340. In state 340, the build process 212 moves the current location to the node that represents the category value and proceeds to a state 345. In state 345, the build process 212 returns to state 325 if there are any more categories in the grouping. Once all of the categories in the grouping have been traversed (states 325 and 345), the build process 212 proceeds to a state 350. In state 350, the build process 212 adds the current record to the current node of the tree and proceeds to a state 355. In state 355, the build process 212 returns to state 315 if there are any more records that have not been traversed. Once all of the records have been traversed, the build process 212 proceeds to an end state 360.
As indicated above, it is recognized that other methods of building a grouping tree may also be used. In addition, various methods for improving efficiency may also be used using tools such as recursion and other data management tools that are well-known to those skilled in the art. For example, the build process 212 may build the entire tree first without leaf nodes before adding any of the records. In addition, the build process 212 may recursively add nodes down one path of a tree and then add all records that fall within that path before moving onto the next path of the tree.
It is recognized that the various grouping trees may be combined to form a groupings tree 124, such as, for example, by creating a root node and attaching each of the grouping trees to the root node as a child node. A sample groupings tree 124 that corresponds to the data in Table 1 includes the grouping tree “Artist,” the grouping tree “Genre/Artist,” and the grouping tree “Genre/Artist/Album” may look like the following:
##STR00004##
B. Add Node Location Process
The add node location process 214 is used to track the various locations of nodes in the master tree 122. In one embodiment, as the leaf-nodes are being added to any of the trees to be displayed in the tree window 120, the metadata management module 210 tracks the various locations in which the node is located and stores the data in the tree information database 234. As indicated above, the master tree 122 is preferably an acyclic graph that allows nodes to have multiple parent nodes. Thus, each time a node is added to a tree, the metadata management module 210 tracks and stores the node's location information in a data structure, such as a node location table, though it is recognized that a variety of data structures may be used such as, for example, a list, a tree, an array, a database, and so forth. The node location table may then be stored in the tree information database 234.
Table 2 illustrates a sample node location table that corresponds to the node locations of the example nodes used in the Build Process section above based upon the sample data of Table 1.
TABLE 2
Node
Location 1
Location 2
Location 3
Always
Artist-B
Genre/Artist-
Genre/Artist/Album-Funk-B-XXX
Funk-B
Bird
Artist-A
Genre/Artist-
Genre/Artist/Album-Pop-A-YYY
Pop-A
Rhythm
Artist-C
Genre/Artist-
Genre/Artist/Album-Pop-C-YYY
Pop-C
Speed
Artist-A
Genre/Artist-
Genre/Artist/Album-Rock-C-ZZZ
Rock-C
While Table 2 includes only three locations, it is recognized that in other embodiments, the node location table may include N locations where N is a positive integer. In addition, some nodes may have more locations than others. For example, if the node Speed is in two of the user's playlists and Always is not in the user's playlists, then Speed may have two more locations than Always.
One embodiment of an add node location process 214 will now be described with reference to
The add node location process 214 begins at a start state 400 and then proceeds to a state 410. In state 410, the add node location process 214 determines whether the node exists in the node location table. If the node does not exist in the node location table, the add node location process 214 adds the node to the node location table in state 420 and proceeds to a state 430. If the node already exists in the node location table, then the node location process proceeds to state 430. In state 430, the add node location process 214 adds the current location of the node to the node's first empty location field in the node location table and proceeds to an end state 440.
C. Data Change Process
The data change process 216 is used to dynamically integrate changes into the database collection 230 as well as the master tree 122 and/or the node table 132. As indicated above, the user has access to add, change, or delete data in the tree window 120 and/or the table window 130 and the metadata management module 210 dynamically updates the master tree 122 and the node table 132 to reflect the user's additions, changes, and/or deletions. One embodiment of a data change process 216 is illustrated in
Beginning at a start state 500, the data change process 216 proceeds to a state 510. In state 510, the data change process 216 receives a user's changes to data. For example, a user may reclassify a song from the genre Jazz to the genre New Age by using a mouse to drag the song from the Jazz node to the New Age node. In another example, a user may change the value of a grouping (e.g., rename a grouping) by selecting the grouping and typing in a new value. The user may also create a new playlist by selecting one or more audio tracks and copying them into a playlist node. The user may make the changes using various actions such as, for example, typing and changing any of the fields of information, dragging and dropping one of the nodes into a different grouping, adding a new grouping using the menu system, and so forth. When a user drags, one node to a different grouping, the node will then inherit the characteristics of the new grouping (i.e., be reclassified), and the metadata database 232 will be updated accordingly. For example, if the audio track entitled “Always” was located under the Genre/Artist grouping Funk→B and the user moved it to Pop→A, the Genre value of the “Always” track may be updated to Pop and the Artist value may be updated to B.
The data change process 216 then proceeds to a state 520. In state 520, the data change process 216 updates the database collection 230 (e.g., the metadata database 232 and/or the tree information database 234) with the changes and proceeds to a state 530. In state 530, the data change process 216 determines whether the change was made to a leaf node or a non-leaf node. If the change was made to a non-leaf node, then the data change process 216 proceeds to state 540 wherein for each sub-node (e.g. children, grandchildren, and so forth) of the non-leaf node, the data change process 216 updates the classification or field value that changed and proceeds to a state 550. If the change was made to a leaf node, then the data change process 216 proceeds to state 550. In state 550, beginning with the first leaf node that was changed, and continuing until all of the leaf nodes that were changed (states 550 and 590) are processed, the data change process 216 proceeds to a state 560. In state 560, the data change process 216 looks up the leaf node in the node location table and proceeds to a state 570. In state 570, for each location in the node location table entry, the data change process 216 locates the node in the master tree 122, updates the node and proceeds to a state 580. In state 580, the data change process 216 updates the node location table to reflect any location changes and proceeds to a state 590. In state 590, the data change process 216 returns to state 550 if there are more changed leaf nodes that have not been updated. Once all of the changed leaf nodes have been updated, the data change process 216 proceeds to an end state 595.
It is recognized that in other embodiments, the data change process 216 may be implemented in a different manner. For example, the node location table may be limited to include only those nodes that are displayed in the graphical user interface 220 such that the data change process 216 updates only those nodes that are being displayed in the graphical user interface 220. In other embodiments, the data change process 216 may be implemented without using a node location table.
An additional embodiment of the data change process 216 is illustrated in
It is recognized that in other embodiments, the data change process 216 may be implemented in a different manner. For example, additional, fewer, and/or different states may be used to track the changes to the nodes; a non-recursive process may be implemented; each node in the tree may be regenerated before the node is accessed; and so forth.
It is also recognized that the leaf-nodes may contain references to leaf node data such that when the leaf node data is changed, the changes may be automatically propagated to the other locations in which the leaf node resides.
D. Add Metadata Process
The add metadata process 218 is used to find and add metadata to the metadata database 232. In one embodiment, the add metadata process 218 is triggered if there is no information in the metadata database 232 for an audio track. In other embodiments, the add metadata process 218 may be triggered if there is information in the metadata database 232 for an audio track, but certain portions of the information is missing. In such embodiments, when new data is found that includes data that conflicts with the existing data, the add metadata process 218 may default to overwriting the old data, keeping the old data, keeping the old data only if the user had edited the data, or use other defaults.
One embodiment of an add metadata process 218 is illustrated in
Beginning at a start state 700, the add metadata process 218 proceeds to a state 710. In state 710, the add metadata process 218 determines whether there is information for the designated track in the metadata database 232. The track may be designated using a variety of methods such as, for example, by placing a CD in the CD-ROM drive, by having the user select a group of tracks, by preselecting a group of tracks, and so forth. If there is already information for the designated track in the metadata database 232, the add metadata process 218 proceeds to an end state 770. If the information is not already in the metadata database 232, the add metadata process 218 proceeds to a state 720. In state 720, the add metadata process 218 determines whether the information is located in a local database. The local database may be, for example the CDPlayer.ini file as well as any other database or file of metadata that may be stored on or accessed by the add metadata process 218. If the information is in a local database, the add metadata process 218 proceeds to a state 760 wherein the add metadata process 218 obtains a copy of the information and saves the information in the metadata database 232 and proceeds to the end state 770. If the information is not in the local database, the add metadata process 218 proceeds to a state 730. In state 730, the add metadata process 218 determines whether the information is located with the content data. For example, if the content data is stored on a CD-ROM, then CD-ROM is checked for metadata information. If the content data is stored in an encoded data file such as, for example an MP3 file, the encoded data file is checked for metadata information. If the information is with the content data, the add metadata process 218 proceeds to a state 760 wherein the add metadata process 218 obtains a copy of the information and saves the information in the metadata database 232 and proceeds to the end state 770. If the information is not with the content data, the add metadata process 218 proceeds to a state 740. In state 740, the add metadata process 218 determines whether the information is located in a remote database. For example, the adding data process may contact a remote database of audio metadata and perform a lookup of the designated track(s) to look for and retrieve the corresponding metadata. The corresponding metadata may then be sent to the add metadata process 218. The contact with the remote database may be through a variety of mediums such as, for example, a direct network connection, a dial-up connection, an internet connection, and so forth. If the information is in the remote database, the add metadata process 218 proceeds to a state 760 wherein the add metadata process 218 obtains a copy of the information and saves the information in the metadata database 232 and proceeds to the end state 770. If the information is not in the remote database, the add metadata process 218 proceeds to a state 750. In state 750, the add metadata process 218 queries the user for the information and the add metadata process 218 proceeds to a state 760 wherein the add metadata process 218 obtains a copy of the entered information, saves the information in the metadata database 232, and proceeds to the end state 770.
In one embodiment, the graphical user interface 220 may also be updated each time the metadata database 232 is updated. In addition, it is recognized that a subset of the various checks for data described above may be used. For example, in one embodiment, the add metadata process 218 may only look in a local database and a remote database.
In another embodiment, metadata information may also be added by user-initiated actions. For example, a user may drag and drop a set of metadata information the user received in an e-mail or on a disk into the graphical user interface 220. Furthermore, the user may also initiate the add metadata process 218 wherein the user requests to be queried for information about the metadata. In other embodiments, metadata information may also be added by other processes. For example, if a user downloads a file, the download process may automatically import metadata information into the metadata database 232. In another example, when the user updates the audio playing program, audio playing program may automatically trigger a lookup of any missing metadata information.
While certain embodiments of the invention have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the present invention. Accordingly, the breadth and scope of the present invention should be defined in accordance with the following claims and their equivalents.
Chasen, Jeffrey M., Wyman, Christopher N.
Patent | Priority | Assignee | Title |
12066977, | Dec 22 2021 | ATLASSIAN US, INC | Managing archiving and unarchiving operations at a content collaboration system |
Patent | Priority | Assignee | Title |
4744281, | Mar 29 1986 | Yamaha Corporation | Automatic sound player system having acoustic and electronic sound sources |
4984103, | Dec 07 1987 | FUJITSU LIMITED, A CORP OF JAPAN | Method for reading/writing for a floppy disc drive with buffer memory |
5046004, | Dec 05 1988 | RICOS CO , LTD | Apparatus for reproducing music and displaying words |
5083491, | May 31 1991 | SANWA BANK CALIFORNIA | Method and apparatus for re-creating expression effects on solenoid actuated music producing instruments |
5142961, | Nov 07 1989 | Method and apparatus for stimulation of acoustic musical instruments | |
5153829, | Nov 08 1988 | Canon Kabushiki Kaisha | Multifunction musical information processing apparatus |
5208421, | Nov 01 1990 | International Business Machines Corporation | Method and apparatus for audio editing of MIDI files |
5247126, | Nov 27 1990 | Pioneer Electronic Corporation | Image reproducing apparatus, image information recording medium, and musical accompaniment playing apparatus |
5262940, | Aug 23 1990 | Portable audio/audio-visual media tracking device | |
5317732, | Apr 26 1991 | AMIGA DEVELOPMENT LLC, A LIMITED LIABILITY COMPANY OF THE STATE OF DELAWARE | System for relocating a multimedia presentation on a different platform by extracting a resource map in order to remap and relocate resources |
5388264, | Sep 13 1993 | Apple Inc | Object oriented framework system for routing, editing, and synchronizing MIDI multimedia information using graphically represented connection object |
5390138, | Sep 13 1993 | Apple Inc | Object-oriented audio system |
5393926, | Jun 07 1993 | Namco Holding Corporation | Virtual music system |
5481509, | Sep 19 1994 | Software Control Systems, Inc. | Jukebox entertainment system including removable hard drives |
5486645, | Jun 30 1993 | SAMSUNG ELECTRONICS CO , LTD | Musical medley function controlling method in a televison with a video/accompaniment-music player |
5491795, | May 04 1993 | International Business Machines Corporation | Window management system with a hierarchical iconic array and miniature windows |
5530235, | Feb 16 1995 | CONTENTGUARD HOLDINGS, INC | Interactive contents revealing storage device |
5559548, | May 20 1994 | Rovi Guides, Inc; TV GUIDE, INC ; UV CORP | System and method for generating an information display schedule for an electronic program guide |
5590319, | Dec 15 1993 | Information Builders, Inc.; INFORMATION BUILDERS, INC | Query processor for parallel processing in homogenous and heterogenous databases |
5616876, | Apr 19 1995 | Microsoft Technology Licensing, LLC | System and methods for selecting music on the basis of subjective content |
5670730, | May 22 1995 | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | Data protocol and method for segmenting memory for a music chip |
5717925, | Oct 08 1993 | International Business Machines Corporation | Information catalog system with object-dependent functionality |
5721911, | Jun 25 1996 | International Business Machines Corporation | Mechanism for metadata for an information catalog system |
5739451, | Dec 27 1996 | Franklin Electronic Publishers, Incorporated | Hand held electronic music encyclopedia with text and note structure search |
5787292, | Apr 01 1996 | Western Digital Technologies, INC | Power saving method and apparatus for use in multiple frequency zone drives |
5857203, | Jul 29 1996 | International Business Machines Corporation | Method and apparatus for dividing, mapping and storing large digital objects in a client/server library system |
5862325, | Feb 29 1996 | Intermind Corporation | Computer-based communication system and method using metadata defining a control structure |
5864868, | Feb 13 1996 | Apple Inc | Computer control system and user interface for media playing devices |
5870710, | Jan 24 1996 | Sony Corporation | Audio transmission, recording and reproducing system |
5914941, | May 25 1995 | IRONWORKS PATENTS LLC | Portable information storage/playback apparatus having a data interface |
5924090, | May 01 1997 | NORTHERN LIGHT TECHNOLOGY HOLDINGS, LLC | Method and apparatus for searching a database of records |
5963916, | Sep 13 1990 | INTOUCH GROUP, INC | Network apparatus and method for preview of music products and compilation of market data |
6028605, | Feb 03 1998 | EMC Corporation | Multi-dimensional analysis of objects by manipulating discovered semantic properties |
6032156, | Apr 01 1997 | NTECH PROPERTIES, INC | System for automated generation of media |
6055543, | Nov 21 1997 | Verano | File wrapper containing cataloging information for content searching across multiple platforms |
6061692, | Nov 04 1997 | Microsoft Technology Licensing, LLC | System and method for administering a meta database as an integral component of an information server |
6122641, | Dec 07 1994 | NeXT Software, Inc. | Method and apparatus for mapping objects to multiple tables of a database |
6131100, | Mar 03 1998 | Method and apparatus for a menu system for generating menu data from external sources | |
6163781, | Sep 11 1997 | SYNTIRO HEALTHCARE SERVICES, INC | Object-to-relational data converter mapping attributes to object instance into relational tables |
6182126, | Oct 12 1994 | TouchTunes Music Corporation | Home digital audiovisual information recording and playback system |
6199059, | Apr 22 1998 | JDA Software Group | System and method for classifying and retrieving information with virtual object hierarchy |
6212524, | May 06 1998 | WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT | Method and apparatus for creating and populating a datamart |
6240407, | Apr 29 1998 | Ineos USA LLC | Method and apparatus for creating an index in a database system |
6243725, | May 21 1997 | Premier International Associates, LLC | List building system |
6256031, | Jun 26 1998 | Microsoft Technology Licensing, LLC | Integration of physical and virtual namespace |
6263341, | Jul 29 1992 | Texas Instruments Incorporated | Information repository system and method including data objects and a relationship object |
6269394, | Jun 07 1995 | System and method for delivery of video data over a computer network | |
6282548, | Jun 21 1997 | Alexa Internet | Automatically generate and displaying metadata as supplemental information concurrently with the web page, there being no link between web page and metadata |
6310848, | Feb 10 1998 | JVC Kenwood Corporation | Power saving system for optical disc recording/reproducing apparatus |
6311194, | Mar 15 2000 | ALTO DYNAMICS, LLC | System and method for creating a semantic web and its applications in browsing, searching, profiling, personalization and advertising |
6317761, | Jan 26 1999 | ANDREAS ACQUISITION LLC | Technique for implementing browser-initiated user-transparent advertising and for interstitially displaying an advertisement, so distributed, through a web browser in response to a user click-stream |
6363377, | Jul 30 1998 | SRI International | Search data processor |
6389426, | Feb 09 1999 | Verizon Patent and Licensing Inc | Central trouble ticket database and system and method for managing same to facilitate ticketing, trending, and tracking processes |
6405215, | Nov 06 1998 | International Business Machines Corp. | Workflow agent for a multimedia database system |
6430575, | Sep 10 1999 | MAJANDRO LLC | Collaborative document management system with customizable filing structures that are mutually intelligible |
6449341, | Aug 25 1998 | Verizon Patent and Licensing Inc | Apparatus and method for managing a software system via analysis of call center trouble tickets |
6452609, | Nov 06 1998 | CEDAR LANE TECHNOLOGIES INC | Web application for accessing media streams |
6760721, | Apr 14 2000 | Intel Corporation | System and method of managing metadata data |
6928433, | Jan 05 2001 | Creative Technology Limited | Automatic hierarchical categorization of music by metadata |
6976229, | Dec 16 1999 | RICOH CO , LTD | Method and apparatus for storytelling with digital photographs |
6981040, | Dec 28 1999 | PERSONALIZED USER MODEL PUM | Automatic, personalized online information and product services |
20010008471, | |||
20020045960, | |||
RE42101, | Apr 14 2000 | Intel Corporation | System and method of managing metadata data |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Sep 18 2000 | CHASEN, JEFFREY M | RealNetworks, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 027394 | /0334 | |
Sep 18 2000 | WYMAN, CHRISTOPHER N | RealNetworks, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 027394 | /0334 | |
Aug 25 2009 | Intel Corporation | (assignment on the face of the patent) | / | |||
Apr 19 2012 | RealNetworks, Inc | Intel Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 028752 | /0734 |
Date | Maintenance Fee Events |
Date | Maintenance Schedule |
Sep 05 2020 | 4 years fee payment window open |
Mar 05 2021 | 6 months grace period start (w surcharge) |
Sep 05 2021 | patent expiry (for year 4) |
Sep 05 2023 | 2 years to revive unintentionally abandoned end. (for year 4) |
Sep 05 2024 | 8 years fee payment window open |
Mar 05 2025 | 6 months grace period start (w surcharge) |
Sep 05 2025 | patent expiry (for year 8) |
Sep 05 2027 | 2 years to revive unintentionally abandoned end. (for year 8) |
Sep 05 2028 | 12 years fee payment window open |
Mar 05 2029 | 6 months grace period start (w surcharge) |
Sep 05 2029 | patent expiry (for year 12) |
Sep 05 2031 | 2 years to revive unintentionally abandoned end. (for year 12) |