text:
Media frame object visualization system
The present invention provides a unique system and method for facilitating browsing, sorting, clustering, and filtering any number of media objects grouped together in a quick and easy manner. In particular, the invention involves annotating the media objects, which have been clustered, sorted, and/or filtered en masse rather than individually, with metadata. The media objects may be selected by a user and annotated with a plurality of metadata as desired by a user in order to optimize utilization of the media objects. The media objects may also be combined and/or mixed in any number of ways to create new media objects. Media objects may include an audio component, a visual component, a portion thereof, and/or any combination thereof.
Latest Microsoft Patents:
The present invention relates generally to browsing of media, and more particularly visual selection and annotation of media objects using intrinsic and extrinsic metadata.BACKGROUND OF THE INVENTION
As availability of media objects (e.g., movies, music, photographs, e-mail, video or sound cliplets, pictures, and/or messages) has increased, the task of effectively browsing, editing and retrieving media has become difficult and cumbersome. Conventional media systems for browsing, editing, viewing, modifying, sorting, and the like have provided limited ability for a user to access the media in a meaningful manner.
For example, photographs digitally scanned onto a computer processor typically have nonsensical filenames associated therewith, making it difficult to manipulate and organize them. Providing more meaningful information to each file or media object must be done individually and separately which is time-consuming and tedious for regular or frequent use involving editing, sampling, and viewing, for example. Further, conventional media systems are typically rigid and thus limit a user's ability to personalize such systems. Moreover, conventional media systems remain complex and incomprehensible for quick retrieval, use, and viewing of the media objects.SUMMARY OF THE INVENTION
The following presents a simplified summary of the invention in order to provide a basic understanding of some aspects of the invention. This summary is not an extensive overview of the invention. It is not intended to identify key/critical elements of the invention or to delineate the scope of the invention. Its sole purpose is to present some concepts of the invention in a simplified form as a prelude to the more detailed description that is presented later.
The present invention provides a unique system and method for facilitating browsing, sorting, clustering, and filtering any number of media objects grouped together in a quick and easy manner. In particular, the invention involves annotating the media objects, which have been clustered, sorted, and/or filtered en masse rather than individually, with metadata. Metadata may include intrinsic metadata (e.g., creation date, content type, size, modification date . . .) as well as extrinsic metadata (e.g., human description of the content). Intrinsic metadata can be extracted from and associated with the media object. Extrinsic metadata can be generated based at least in part by user instructions as well as by an analysis of the media objects via pattern recognition, speech recognition, content analysis, face detection and the like. Further, the extrinsic metadata can be propagated in a hierarchal arrangement, thereby facilitating browsing, clustering, and sorting of the media objects.
More specifically, the present invention provides a system and method for rapid metadata annotation by visually selecting and dropping clusters and/or groupings of media objects into bins. A unique user interface in accordance with the subject invention facilitates rapid and convenient grouping of the media objects according to user preferences and provides for subsequent attachment of relevant metadata to the group which creates a compelling and rapid process for managing and using the media objects.
Further, the present invention provides for rapid selection of any number of media objects to permit further annotation of metadata. Thus, a user can easily and quickly cluster and group media objects based on intrinsic metadata in order to rapidly manipulate groups of related media objects. In addition, browsing and viewing controls such as sliders, scroll bars, and filters located at a periphery of the user interface can be used to focus on a working set of media objects which can be readily manipulated as a group as well as individually. When the user has suitably narrowed a working set of media objects, the task of assigning metadata to the group is relatively simplified and fast via the subject invention. Hence, the present invention provides a unique system and method for manipulating any number of media objects which yield results that can be visualized almost, if not immediately by the user.
In addition, the present invention provides for a visualized, annotated database including any number of media objects (e.g., described infra) which can be randomly accessed, combined, modified and/or mixed by the user. Such random accessibility of the media objects facilitates rapid grouping, clustering, and/or sorting of the media objects into user-specified bins for subsequent manipulation, viewing or browsing. For example, media objects may include portions, snippets, cliplets, and the like of a whole song, document, picture, photograph, movie, video, email, etc. With the present invention, such media objects can be annotated with metadata and randomly accessed via browsing and searching the database of media objects in order to create, for example, modified or new media objects. Thus, such aspect of the subject invention provides for a very powerful media editing and/or generation tool wherein, for example, a plurality of bins holding media can be selectively and/or randomly merged (e.g., to merge a bin holding video with a bin holding audio to generate a video annotated with the audio).
To the accomplishment of the foregoing and related ends, certain illustrative aspects of the invention are described herein in connection with the following description and the annexed drawings. These aspects are indicative, however, of but a few of the various ways in which the principles of the invention may be employed and the present invention is intended to include all such aspects and their equivalents. Other advantages and novel features of the invention may become apparent from the following detailed description of the invention when considered in conjunction with the drawings.
The present invention is now described with reference to the drawings, wherein like reference numerals are used to refer to like elements throughout. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It may be evident, however, that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to facilitate describing the present invention.
As used in this application, the terms "component" and "system" are intended to refer to a computer-related entity, either hardware, a combination of hardware and software, software, or software in execution. For example, a component may be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and a computer. By way of illustration, both an application running on a server and the server can be a component. One or more components may reside within a process and/or thread of execution and a component may be localized on one computer and/or distributed between two or more computers.
In addition, the term "media object" as employed in this application is intended to refer to pictures, photographs, music, sounds, text, e-mail, movies, video, messages, documents, slides, movie or video stills, streaming video and/or audio, and/or any combination thereof and/or any cliplet thereof, and in any suitable format or file type for carrying out the subject invention.
As used herein, the term "inference" refers generally to the process of reasoning about or inferring states of the system, environment, and/or user from a set of observations as captured via events and/or data. Inference can be employed to identify a specific context or action, or can generate a probability distribution over states, for example. The inference can be probabilistic—that is, the computation of a probability distribution over states of interest based on a consideration of data and events. Inference can also refer to techniques employed for composing higher-level events from a set of events and/or data. Such inference results in the construction of new events or actions from a set of observed events and/or stored event data, whether or not the events are correlated in close temporal proximity, and whether the events and data come from one or several event and data sources.
Accordingly, the subject invention (e.g., in connection with the employment of bins) can employ various artificial intelligence based schemes for carrying out various aspects of the subject invention. For example, classification of media objects and annotation thereof can be facilitated via an automatic classification system and process. Such classification can employ a probabilistic and/or statistical-based analysis (e.g., factoring into the analysis utilities and costs) to prognose or infer an action that a user desires to be automatically performed. For example, a support vector machine (SVM) classifier can be employed. Other classification approaches include Bayesian networks, decision trees, and probabilistic classification models providing different patterns of independence can be employed. Classification as used herein also is inclusive of statistical regression that is utilized to develop models of priority.
As will be readily appreciated from the subject specification, the subject invention can employ classifiers that are explicitly trained (e.g., via a generic training data) as well as implicitly trained (e.g., via observing user behavior, receiving extrinsic information . . . ) so that the classifier(s) automatically annotate, file, group, cluster, merge media objects in accordance with user preferences. For example, with respect to Support Vector Machines (SVM) which are well understood—it is to be appreciated that other classifier models may also be utilized such as Naive Bayes, Bayes Net, decision tree and other learning models—SVM's are configured via a learning or training phase within a classifier constructor and feature selection module. A classifier is a function that maps an input attribute vector, x=(x1, x2, x3, x4, xn ), to a confidence that the input belongs to a class—that is, f(x)=confidence(class). In the case of text-based media classification, for example, attributes are words or phrases or other domain-specific attributes derived from the words (e.g., parts of speech, presence of key terms), and the classes are categories or areas of interest (e.g., levels of priorities).
Referring to
The user-based instructions 130 may correspond to the user's preferences and/or facilitate generating metadata (data about data) which is to be associated with the media objects 120. Generally, metadata is information about a file that can be located separate from the file or as part of the file. Examples, of metadata are date information regarding the file, developer information, modification information, file type information . . . . The metadata facilitates rapid classification of file types to facilitate efficient working with a plurality of files. As such, media objects 120 annotated with metadata are significantly easier to work with on a large scale as compared to un-annotated media objects. The subject invention provides unique system(s) and method(s) to effect such annotation as well as unique applications of such system(s) and method(s) to generate and use the annotated media objects. It is to be appreciated that the subject invention contemplates employment of static as well as dynamic metadata. The media objects 120 can be maintained and visualized in a media display component (not shown) and selected there from for annotation according to user-based instructions 130. The user-based instructions 130 may be provided to the system 100 via an optional user selection or pointing device component (not shown) such as a mouse, a keyboard, a joystick, a pen-ink recognition device, and/or a game pad.
According to one implementation, the media objects available for annotation and manipulation are maintained in a database. The contents of the database are displayed pictorially for the user in the media display component. More specifically, for example, images corresponding to the respective media objects are displayed and viewable by the user. The image can be a reproduction of the actual media object (e.g., photograph, picture) or can be representative of the media object (e.g., album cover for a video cliplet of a concert; image of artist for a song, videotape box cover, etc.).
Due to physical attributes of the media display component (e.g., screen size) and/or user preferences, the dimensions of each image, and thus its viewable size, may increase or decrease depending on the number of media objects present or selected for viewing. That is, the media display component optimizes the image dimensions depending on the number of media objects present for viewing. To view one media object in greater detail, a user may enlarge the object by positioning the user selection component thereover. For even greater detail, the user may "double-click" on it, if using a mouse, or perform a related action for any other type of user selection component employed.
Selection of the desired media objects which are to be annotated may be performed in any number of motions by the user. For instance, more than one media object may be highlighted at a time by a click and drag motion over the desired media objects. The command "control-click" while sweeping the pointer device over the media objects highlights many without also enlarging any of the highlighted media objects. To highlight media objects individually or one at time, selection may be made one click on the object.
The annotation component 110 may be interfaced with any number of bins and/or categories, both of which are described in further detail below. Bins are work spaces for facilitating the rapid annotation of media objects which means that they may be created and deleted quickly and easily and used effectively even by a novice user. A bin is created by a simple keystroke of a number. For example, to create a first bin, the user may strike or select the number "1" on a keyboard. If any media objects are highlighted just prior to creating the "1" bin, then those media objects are moved to the "1" bin. Such movement of the media objects may be viewed by the user via animation sequences, which are discussed below in greater detail.
The bins may also be labeled according to the media objects included therein. Such labeling may or may not be equivalent to a piece of metadata and thus annotation of metadata by way of the labeling may or may not occur. Multiple bins may be created and maintained. Media objects may be included in more than one bin and/or category. A relationship is maintained between media objects in the bins, category filters and in the main database. This is evidenced by a highlighting effect. For example, when mousing over a category filter, the media objects associated therewith are highlighted in the display area. Similarly, when mousing over a bin, the media objects included therein are highlighted in the database to demonstrate the continuity of the media objects between the various working areas.
Category filters behave similarly as traditional filters in that they facilitate the focusing of media objects. Media objects placed in the category filters are also annotated with the metadata associated with the categories. Categories may be easily created and deleted according to the user's preferences. In addition, each category may have one or more sub-categories which are viewable after selecting the category. For example, when selecting and/or "clicking" on a category, the media objects associated therewith are maximized in the viewable space while all other media objects are removed from the viewable space. The movement and/or rearrangement of the media objects may be visualized through animation sequence(s) discussed infra. More detailed information regarding bins, categories and their interactions with the media objects is described below in the following figures.
It is to be appreciated that the user-based instructions (e.g., to facilitate directing annotation of the media objects) are intended to include instructions provided via classifier(s) (e.g., explicitly and/or implicitly trained). Accordingly, as media object(s) 120 are received by the system 100, the system can automatically group, merge, file, annotate the media object(s) 120 based at least in part upon employment of classifier(s). Thus, the system 100 with a properly tuned classifier can greatly facilitate working with the media object(s) 120 in accordance with the subject invention.
It is to be appreciated that if desired, the subject invention can employ bins to tag objects with metadata individually. Furthermore, it is to be appreciated that bin(s) 230 can be employed to attach metadata in a serial manner based at least in part upon a variety of predefined and/or dynamically generated protocols/schemes. For example, a single bin could be employed to attach differing subsets of metadata, respectively to various objects placed within a bin. A first media object placed in a bin with an Nth media object (N being an integer) could respectively be annotated with a first subset of metadata and a Mth subset of metadata (M being an integer).
Although not shown, it should be appreciated that one and/or more than one metadata 220 may be associated with a bin 230. Furthermore, it should be understood that one or more than one bin 230 may be created depending on the user's preferences and instructions.
Alternatively or in addition, the annotation engine can operate according to learned behavior or in an automated fashion using artificial intelligence. For example, when media objects are introduced into or interface with the system 200, the annotation engine 210 can automatically extract metadata such as intrinsic metadata from the media objects and order the media objects based at least in part on the intrinsic metadata. The annotation engine 210 can also perform an analysis of the media objects based at least in part upon any one of content, pattern recognition, face detection, and like. Subsequently, the annotation engine 210 can generate and/or obtain metadata relating to such characteristics without requiring constant instructions from the user—thus, the annotation engine 210 can exhibit learned behavior (e.g., based at least in part on previous input provided by the user, or training—explicit as well as implicit).
Accordingly, for example, the system 200 can receive a set of pictures and annotate the respective pictures with metadata that identifies individual(s) within the pictures and relationship(s) among the individual(s)—the identification of the individual(s) can be based at least in part upon face recognition systems employed by the system 200. It should be readily apparent that any of a variety of analytical techniques for analyzing content of media objects can be employed with the annotation aspects of the subject invention to provide an extremely powerful tool for handling large amounts of media objects as well as for providing for a more rich and robust system (as compared to conventional system) for handling media objects at an extremely granular level that is highly scalable and optimizes use of valuable computational resources let alone user time.
In addition, the annotation engine 210 can facilitate searching through any number of media objects according to the metadata of at least one media object. In this instance, the annotation engine 210 can generate metadata "mom", for example based on at least one media object having mom's face and/or voice therein. The user can request to find other media objects having this "mom" attribute. Hence the annotation engine 210 facilitates browsing, clustering, sorting and rapid annotation of the clustered and sorted media objects. It is to be appreciated that nearest neighborhood techniques can be employed to expand the search capabilities. For example, searches can be conducted based upon metadata that are in close proximity to a selected metadata—the bases for proximity (e.g., in Euclidean space) can be predetermined and/or dynamic employing any variety of suitable benchmarks.
When placed into the bin(s) 330, the media objects 310 can be maintained in their "original" form in the database 320. Thus, any further annotation or manipulation of the media object (e.g., by dropping into a bin) may be merely temporary such that the "original" version of the media object in the database 320 remains unaffected and not modified by the bin annotation. If desired, however, the bin(s) can be employed to permanently modify the media objects 310. Further, the bins can be deleted at any time as desired by the user. Therefore, if the bin is deleted, the annotated versions of the media objects therein may be discarded as well. Hence, the bins may constitute temporary work spaces for conducting rapid annotation, browsing, clustering, and sorting of the media objects. It is to be appreciated that a bin library can be employed storing previously generated bins (including metadata associations), which can be accessed in connection with manipulating a set of media objects. Additionally, the system 300 can include an attribute library that can be employed in connection with generating a bin and associating desired metadata with the bin.
It is also to be appreciated that the system can employ techniques such as data fusion to dynamically learn correlations among media objects grouped together in a bin and generate metadata corresponding to the correlations. The present invention may thus employ data fusion in situations in order to take advantage of information fission which may be inherent to a grouping of objects. Because complete details of phenomena being analyzed may not be contained within a single window of observation as to the objects, there can be information fragmentation which results from this fission process. These information fragments may include both independent and dependent components. The independent components may be used to further fill out (or span) an information space and the dependent components may be employed in combination to improve the quality of common information recognizing that all data may be subject to error and/or noise. In this context, data fusion techniques employed in the present invention can include algorithmic processing of data in order to compensate for the inherent fragmentation of information because a particular phenomena may not be observed directly using a single window of observation. Thus, data fusion can provide a suitable framework to facilitate condensing, combining, evaluating and interpreting available analyzed information in the context of a particular application in order to infer or derive attribute information not directly measurable or ascertainable. For example, a user may feel that a group of media objects are associated with each other, but not cognitively recognize why; and the data fusion aspect of the subject invention can be employed to learn corollaries with respect to the grouping and generate corresponding metadata which can be used for tagging the present set of media objects as well as identify new media objects that should belong to the grouping. It is to be appreciated that such learning can be employed in connection with a classifier for training thereof (e.g., to facilitate searching).
As noted supra, alternatively and according to user preference, bin annotation of the media object 310 may be more permanent such that the original version of the media object in the database 320 may also be modified by the bin annotation and remain as such even after the bin has been discarded. That is, the media objects 310 may be more permanently annotated with the metadata 340. For example, bin annotations of metadata may be programmed to remain attached to the media objects for a desired period of time or during designated applications invoked by the user. The annotated media objects can also be saved in their annotated state (as well as in their "original" or non-annotated state) as desired by the user. Thus, the bin annotation of metadata can be either temporary or persistent in view of the user's preferences.
Referring now to
The scrubber 520 comprises a metadata removing component 522 that removes extraneous metadata which have been tagged to the media object 510 through various object/bin annotations and manipulations. The metadata removing component 522 determines which metadata to remove based at least in part on user-based instructions 530. The system yields media object 540 comprising the
The scrubber 520 can include a variety of filters (not shown) that can facilitate selective removing of undesired metadata from an object while keeping intact desired metadata. The scrubber 520 can be tailored as desired by a user to view metadata associated with a media object and/or bin and remove or add metadata thereto as desired. It is to be appreciated that the scrubber can also be used to modify/update existing metadata with updated attributes (e.g., Jane Doe changing from her maiden name to Jane Smith). It is also to be appreciated that the scrubber can perform compression on an existing metadata set so as not to necessarily remove the metadata but make more efficient use of storage capabilities.
Alternatively or in addition, the system 700 can also include a media specific analyzer component(s) 740 which interfaces with the media object analyzer and annotation component 730. The media-specific analyzer component(s) 740 can readily identify the types of media objects 720 in order to facilitate a more rapid and accurate analysis of the media objects 720. Multiple media-specific analyzer components 740 may be accessible to the system 700 according to the type of media objects 720 subjected to the system 700.
Moreover, annotated media objects 750 result in the bin 710. The annotated media objects 750 may have at least one metadata
Turning now to
In addition, the current metadata component 822 may be further expanded to a sub-metadata historical component 830 in order to provide a priority rating of each metadata (e.g., current 822 and/or previous 824 metadata). The priority rating may facilitate organization and/or placement of the bins and/or media objects on a visual display component. Priority ratings may be based at least in part on user instructions, use, frequency, importance, and the like. For example, the sub-metadata historical component 830 may rate metadata1 with a highest priority of 1 (e.g.,
Since the bin(s) 810 may undergo a variety of manipulations and actions potentially by one or more users having access to the bin(s) 810, the bin(s) 810 can also include a bin historical component 840 that records substantially all activity involving the respective bin(s) 810. The bin historical component 840 can include one or more components which can provide information relating to any action(s) 842 performed including sender 842 and/or receiver 844 information where applicable. For example, the action component 842 may comprise action 1 up to action M (e.g.,
The media browser system 900 can facilitate browsing and searching for media objects related to the annotated media object 940 in the bin 920. Thus, user instructions 950 corresponding to "find like objects" or something of that effect may cause the system 900 to search through all other media objects in a database, for example, which are related to the annotated media object 940 based at least in part on the metadata 930 attached to the media object(s) 940. The searching and/or browsing of the database can be enhanced by employing a recognition component 960. The recognition component 960 can utilize face detection, voice and/or pattern detection, content analysis, context analysis, pen/ink recognition, etc. to extract intrinsic metadata information as well as content information about the available media objects. Similar or related objects 970 can be indicated to the user once determined. It is to be appreciated that such searching and/or browsing is not limited to media objects in other bins, but that the searching and/or browsing can be conducted across an intra-net, distributed network or even the Internet. For example, a media object could be dropped in a bin and the system can identify attributes associated with the media object (e.g., the identification can be based upon historical data, currently extracted data, combination thereof . . . ), and perform a search for objects across the Internet. The system 900 can provide links to the found objects as part of the search results, or even retrieve the objects (and place them in a search results bin for example). As a user sifts through the bin, and deletes unwanted objects found via the search, a classifier could be employed and implicitly trained using such deletion information to refine the system 900 so as to improve future searching and/or browsing.
Various methodologies in accordance with the subject invention will now be described via a series of acts, it is to be understood and appreciated that the present invention is not limited by the order of acts, as some acts may, in accordance with the present invention, occur in different orders and/or concurrently with other acts from that shown and described herein. For example, those skilled in the art will understand and appreciate that a methodology could alternatively be represented as a series of interrelated states or events, such as in a state diagram. Moreover, not all illustrated acts may be required to implement a methodology in accordance with the present invention.
Referring now to
At 1020, one or more bins are created by key stroking any number (e.g., 1, 2, . . . 9). More detailed information is provided below on the creation of bins. At 1030, metadata is assigned or associated with one or more bins depending at least in part on a user's instructions. For example, metadata "birthday" can be assigned to the bin by way of a bin label for instance. This indicates to the user that the media objects in the "birthday" bin relate to a birthday.
At 1040, X number (X being an integer) of media objects are selected (e.g., highlighted) and placed in one or more bins at 1050. Placing the highlighted media objects into the desired bin can be performed by striking the desired bin number. For example, the user can strike the number key "1" to move the highlighted media objects to "bin #1". The movement of the media objects to the bins is discussed in further detail below. Once the media objects are in the bin(s), additional metadata can be assigned to the bin(s) at 1060. For example, metadata "dad" and "2002" can also be assigned to the bin to note that the media objects relate to or include "dad" in them and were created in 2002. At 1070, the media objects located in the bin(s) are annotated or tagged with the metadata associated with the bin(s). The method 1000 ends at 1080, however the act of annotating media objects can be repeated as desired by a user or system.
Characteristics common to all the media objects in the bin can be extracted in order to generate corresponding metadata at 1140. Generation of metadata can be accomplished in part manually by a user and/or automatically by various programmed components. At least a subset of the media objects in the bin can be annotated with at least a subset of the metadata at 1150 according to a user's instructions and/or preferences. At 1160, the method ends. However, the act of annotating additional media objects may continue and be repeated as necessary.
At 1230, an option is selected such as "add to category," for example. At 1240, an expanded list of categories can be presented as an expanded list. Category filters can be presented for example in a peripheral viewing space of a media display component or screen. Category filters can also have metadata associated therewith and such metadata can be identified by the name of the category. Categories are discussed in greater detail below. At 1250, the selected media objects are annotated with the metadata associated with the selected category and a copy of the media object is assigned to the category filter as well.
It should be understood that although selected media objects are placed, dropped or moved to bins and/or categories, an "original" version of the media objects can be maintained in a visual database display area. The original version of the media object may or may not be already annotated with intrinsic metadata such as creation date, length, content type, and the like. Furthermore, media objects in the visual database display area may or may not be modified by any subsequent annotation of extrinsic metadata, depending on the user and the desired application.
If the manipulations are done and no further manipulations are desired at 1340, then at 1350, the bin may be deleted. The objects annotated with metadata associated with that bin will be deleted as well; however, the objects are still maintained in the database in their form prior to annotation in any bin or category. If the manipulations are not done, then at 1360 the bin can be kept open and/or accessible to the user. In addition, the bin can be saved at 1370 for later use.
In one implementation, the bins can be employed as a creating or mixing tool. In particular, media objects can be spliced together, either temporarily or more permanently, in order to create something new from any number of "old" media objects. For example, the bin may contain video of "mom", "mom's" favorite songs, photographs of at least mom, mom's voice, and the like, which all share the metadata "mom". By ordering them and then selecting to view a slideshow or make a movie of the mom media objects, a new media object relating to mom is created. For instance, her favorite songs may be playing in the background during such movie or slideshow. Thus, the bins facilitate editing and/or creating new media objects based at least in part on portions of or whole annotated media objects. Further, because the bins allow for the annotation of cliplets, sounds bytes, partial streaming video, etc., lengthy video streams, audio files and the like may be broken down relatively quickly and easily.
For example, a two-hour video recording taken on a family vacation of mom and other family members may be rapidly broken down into any number of media objects. Those media objects annotated with "mom" may be annotated en masse and then employed in creating a slide show tribute to Mom. Thus, the two-hour long video recording may be randomly searched and portions thereof accessed for a quick annotation. Hence, linear searching through the video recording for portions including mom, which would otherwise be required, are no longer necessary in view of the present invention. Furthermore, the bin can be trained to automatically to correlate video with audio in order to capture more relevant and meaningful portions of the video and audio and to eliminate or mitigate undesirable pauses and breaks in the video and audio.
It is to be appreciated that such aspect of the subject invention provides for numerous functions. For example, multiple and disparate objects can be placed in a bin, and the invention can automatically generate a collage of the items. Such collage can be generated randomly as well as with some predetermined and/or in situ determined order. Such aspect of the invention can also employ data fusion to identify corollaries between objects placed in a bin where such corollaries are not known and/or completely known as discussed supra with respect to
At 1520, a first desired bin can be selected (by highlighting) in order to perform further actions on the bin and the media objects therein. At 1530, a user can select the highlighted bin using a pointing device component (e.g., mouse). Upon selecting the bin, all objects in the database move by way of animation from the visual display component to a bin designated for the database at 1540. At 1550, objects in the first bin move to the display component and thus are visually enlarged. The media objects may be manipulated by the user in the larger viewing space. In addition, any number of these media objects can be selected at 1560 and placed in at least a second bin at 1570 such that the media object(s) is effectively removed from the first bin. Consequently, the object(s) can be tagged with metadata associated with the second bin at 1580 and the metadata from the first bin may or may not be removed once the object is discarded from the respective bin, depending on the user's instructions. The method 1500 ends at 1590 but may be repeated with any number of media objects as desired.
At 1730, a second category filter may be selected to focus further on media objects in that selected category. Thus, even fewer media objects are available for browsing. As the number of media objects to view and browse decreases, the size of the media objects can increase proportionately in order to promote easier viewing of the individual media objects. Any suitable action can be performed on the focused set of media objects as desired at 1740.
In order to visualize the media objects again, a command that makes all or substantially all media objects accessible again in the display field (e.g., "show all") may be selected, thus ending the method at 1750. It should be appreciated that the selection of category filters may continue until a desired grouping of or individual media object is visualized or until the array of category filters remaining does not permit further focusing of the media objects. More detail is provided below with respect to utilizing category filters in this described manner.
Alternatively or in addition, the category filters can be employed as another tool to facilitate browsing, sorting, clustering, and the like when filtering is not desired by a user.
In general for
Referring to
The component 1800 also includes a time-based selection component 1820, a time cluster slider component 1825 and a variable view component 1830. The time-based selection component 1820 highlights media objects 1810 based at least in part upon a date and/or time metadata associated with each respective media object 1810. The time cluster slider component 1825 facilitates browsing media objects 1810 that are clustered by date and/or time metadata.
The visualization selector component 1830 allows the user to switch or toggle between at least two viewing perspectives which may be referred to as stacked view and raster view, for example. Raster view displays each media object as a whole without overlapping of the media objects from a two-dimensional perspective. The media objects 1810 are shown in raster view. Stacked view creates a three-dimensional perspective of the media objects which can be clustered into groupings based on similar date/time metadata. The time cluster slider component 1825 may facilitate browsing and the like of the media objects when the media display component 1800 is toggled to the stacked view.
The media display component 1800 can also include a media object content indicator 1835 that specifies the types of media represented in the display area. For example, video may be indicated if video cliplets comprise at least one media object 1810 in the display area 1805. This may be useful to a user to quickly identify the types or content of media objects currently in the display area 1805.
An optional media object scrolling component 1840 can also be included in the media display component 1800. The scrolling component 1840 facilitates browsing through the display area 1805 particularly when not all of the media objects can be viewed in the display area 1805 at the same time.
In addition, the media display component 1800 can include a hidden field(s) indicator 1845 that signifies to the user that other working spaces may be available for use. For example, the user may desire to hide these field(s) in order to maximize the viewable size of the components and elements within the media display component 1800. Further, such field(s) may be hidden when not in use at the current time. Examples of the hidden fields include category filters which relate to the content and/or annotated metadata of the media objects such as "wedding", "vacation", "zoo", and "birthday". The media objects corresponding to one or more of these categories may be annotated with the respective metadata for those categories. Moreover, category filters facilitate focusing of media objects while any browsing, clustering, and sorting of them occurs.
In another area of the user interface 1900 are video 1920 and photos 1925 indicators that, when illuminated, specify the content of media objects present in the display area 1905. Also present in the user interface 1900 is a time clusters scroll bar 1930 which groups the media objects being viewed (e.g., in the display area 1905) into clusters sorted and arranged by the creation date and/or time of the media objects. The time-based scroll bar 1935 shows the end date corresponding to the media objects 1910 presently in the display area 1905.
Lastly, the user interface 1900 includes a hidden field indicator 1940, a stacked view indicator 1945 and a raster view indicator 1950. The media display area 1905 is currently in raster view 1950 (e.g., 2D view); thus that indicator is illuminated to signify the same.
User interface 2000 illustrates a media display component similar to the user interface 1900 described above in
The user interface 2000 also comprises a scroll bar 2020 for two-dimensional scrolling of the media object display area 1905. The scroll bar 2020 includes a slider for adjusting the size of the media objects 2005 while scrolling with the scroll bar 2020.
Turning now to
Each time cluster 2330 can be labeled or identified by a cluster tag 2340 (e.g.,
Furthermore, the media object time clusters 2640 are labeled with cluster tags 2650 to indicate the date/time associated with the media objects 2620 grouped therein. The data/time may reflect the creation date/time or the last modified date/time according to a user's preferences. Media object 2660 is shown enlarged as a result of a mouse contacting or being positioned over at least a portion of the media object 2660.
The user interface 2600 also includes a time cluster slider 2670, which when moved in either direction, adjusts the viewable size and/or number of the media object time clusters 2640. As shown in
As the time cluster slider component 2710 is moved (e.g., from its default position 2680 as shown in
Selection of the media objects may be performed using one or more techniques. One method involves a time-based selection component 3040. At its default position, the time-based selection component 3040 indicates the latest date (e.g., end date) corresponding to any one of the media objects 2810 in the media display area 3030. In particular, the time-based selection component 3040 shows the end date when not employed by a user.
According to the user's preferences, the user can slide the time-based selection component 3040 from its default position. As it is moved, a date range appears and is variable according to the user's movement of the selection component 3040. Any media objects which are tagged with a date that falls within the current date range shown is highlighted. For example, time clusters 3050, 3060, and 3070 are highlighted by employing the time-based selection component 3040. Moreover, the time-based selection component 3040 is based in part on the metadata attached to the media objects 3010. Similar selection components which may be based on other types of metadata may be utilized as well.
In order to highlight all other media objects 3180 and to de-highlight the media objects 3110 in as few keystrokes as possible, a command key present in the user interface 3100 can be employed as shown in
Turning now to
The media object display area 3410 includes any number of media objects 3450 which are arranged in raster view. The media objects 3450 are spaced and organized within the media object display area 3410 in order to optimize the viewing size of them given the physical attributes of the available space (e.g., screen size). Therefore, as the number of the media objects decreases, the viewable size of them increases. The converse applies as well.
The optional bin components 3420 may be created to facilitate rapid annotation of the media objects, particularly when large numbers of media objects require sorting and organization in order to provide meaningful information to a user. Each bin component 3420 may comprise any number of media objects 3455 moved thereto. Again, the viewable size of the media object(s) in the bin component 3420 depends in part on the number of media objects placed therein. Each bin component may also include an object counter 3460 (e.g., 34601, 34602, 3460M) that tracks and records the quantity of media objects presently in the bin component 3420. The bin components 3420 may also be labeled (3470–34701, 34702, 3470M) according to a user's preference in order to quickly identify the media objects grouped together in the bin component 3420. The bin labels 3470 may or may not correspond to a piece of metadata attached to the media objects, as desired by the user.
Further. the bin components 3460 may be hidden from or shared among more than one user via secured passwords and connections, for example. In addition, the media objects 3455 therein and/or the selected bin component 3460 may be exported, emailed, deleted, rotated, printed, viewed as a slideshow, viewed as a movie, and/or assigned to one or more of the optional category filters 3430.
The optional category filter(s) 3430 facilitates visualization of the media objects 3450 as well as rapid annotation, sorting, clustering and browsing of the media objects 3450. The category filters 3430 may also include object counters (not shown) similar to the object counters 3460 associated with the bin components 3420. In addition, the names of the category filters 3430 may correspond to a piece of metadata which is attached to media objects assigned thereto.
The category filters 3430 may be hidden or secured from others' viewing. In addition, a scrolling option may be employed in order to view all of the category filters. The category filters have any number of media objects assigned thereto. For example, when a category filter 34301 is selected (e.g., by a user selection component), only those media objects assigned thereto remain in the media display area 3410. All other media objects appear to fall off the media display component 3400. For the remaining set of media objects, another attribute set (e.g., metadata) of category filters may appear. Thus, the remaining media objects can be further filtered and sorted. A media object's set of attributes may decrease as the user continues to filter via the category filters and/or other filter commands available on the media display component 3400.
The optional command keys 3470 may also facilitate rapid manipulation, sorting, clustering, browsing and searching of any number of media objects. They provide immediate access to either quickly narrow or quickly broaden the media objects 3450 appearing in the media object display area 3410. Examples of such command keys 3470 include, but are not limited to, filter, select, unselect, inverse, and show all.
Moreover, the filtering, sorting, clustering and browsing capabilities of the present invention relate to a hierarchal arrangement of media objects and their associated metadata. This hierarchal arrangement facilitates rapid annotation, random accessibility of media objects or portions thereof, and visualization of the media objects and any actions performed thereon.
As can be seen, the media objects 3635 in the first bin component 3630 and the media objects 3645 in the second bin component 3640 remain in the media object display area 3610. The media objects 3620 shown in the display area 3610 may also be known as a master database or as an everything database, denoting that these are all the media objects available to the user for annotation and/or other manipulation. Additional media objects can be added to increase the number of total media objects in the master database by importing them from other sources.
In order to visualize the relationship between the media objects (3620, 3635, 3645), the bin components (3630, 3640), and the master database in the display area 3610, a user selection component 3650 is employed to contact at least a portion of the bin component 3640 and/or to highlight the bin component 3640. When at least a portion of the bin component 3640 is contacted, the appearance or color of the bin 3640 and its media objects 3645 is temporarily altered. At the same time, the appearance or color of the media objects in the display area 3610 corresponding and identical to the media objects 3645 in the bin 3640 also is temporarily altered for the duration of the contact. This change or alteration of the appearance of the media objects is evidenced by the dashed and dotted lines of the bin 3640. the media objects 3645, and the media objects (36451, 36452, 36453) in the display area 3610.
Finally, a pop-up menu 3860 associated with the second bin 3840 has been opened (e g., by right-clicking on some portion of the bin 3840). The pop-up menu 3860 comprises any number of options a user may implement or perform on the bin 3840 and its media objects 3845. Some options such as "assign category" 3865 may contain further options to choose from in order to complete the desired task.
Depending on a user's preferences, the user may select to make a movie or view a slide show of the media objects 3910 contained in the bin 3900. This may be accomplished in part by the bin component 3900 manipulating the media objects 3910. More specifically, the bin component 3900 correlates the media objects 3910 in order to generate a new media object, such as a slide show or movie. Correlating the selected media objects involves employing the metadata annotated to the media objects to identify critical or key portions of the respective media objects. This facilitates determining a length of the media object which is suitable to form a transition between and from media object to media object (e.g., transition from media object A to media object B). Thus the media objects are truncated to a suitable length, and extraneous portions of the media object are removed in order to create the new media object (e.g., movie, slideshow, collage, song, music, document, message, and/or any combination thereof etc.).
The media objects identified above (e.g., A–G) may comprise at least one of a visual component, an audio component, or a portion thereof, and/or any combination thereof.
According to one implementation, if "view slide show" 3920 is selected by the user, then a slide show of the media objects 3910 ordered alphabetically A through G may be seen. The order of the media objects may be manually, electronically or automatically performed based at least in part upon the user's desired application. When the content type of the media objects 3910 is mixed between still pictures, photographs, text and music, sounds, and the like (or cliplets thereof), then the user may arrange for the audio portions to be played in the background as the still pictures, photographs, etc. appear in the slideshow format.
Conversely, the user may desire the media objects to appear in the precise order such that each media object is "played" in the order it is in. Thus, music or audio would not be playing in the background of the whole slide show. Further, the user may tailor the slide show such that the timing or pace of the appearance of the slides coincides with the length of the audio portions. Moreover, the bin component 3900 may determine the overall length of the new media object. Metadata associated with media objects A–G are also associated and annotated to the new media object. The new media object may be saved and retained for later use or reference.
The same may be applied when selecting to make a movie (3930). However, this action may involve media objects comprising streaming video cliplets or other whole or partial video recordings or film. New media objects comprising only audio may also be created by media objects comprising audio bits, sound clips, songs, music, and the like. Therefore. mixing, editing and creating new pieces of music, video, etc. may be accomplished with relative ease, speed, and accurateness, and may be shared with others immediately via email or user access to the bin 3900.
Referring now to
According to
Depending on the command or action invoked by a user, the highlighted media objects 4030 (
Moreover, the media objects 4310 may be further filtered in order to further reduce the number of media objects to be viewed.
Turning to
As media objects are filtered such as described in
Beginning with
As can be seen, the media objects 4510 arranged in time cluster tags 4530 labeled September 9–September 30 (45301) appear to be hazy as if they are disappearing from the media display component 4500. Time cluster tags 45302, 45303, 45304, 45405 follow in progression in a left to right direction until the media objects 4510 in the time clusters 4530 are barely visible. This can be more readily seen in
Media objects 4720 are shown populating the open space of the media display component according to the designated time clusters 4710 and in an orderly progression from one direction to another (e.g., left to right). Media objects which are further away from the user appear smaller than objects which are meant to appear closer to the user.
The images provided in
Subsequently, selecting a filter command causes the highlighted media objects 4920 to remain in the media display component 4900 while the other media objects 4910 disappear from the display component 4900.
Turning now to
An object counter 5340 linked with bin 5330 presently indicates that it contains no media objects which is evidenced by the "0" count. However bins 5350 and 5360 include 242 media objects and 15 media objects, respectively. The bin 5350 which is labeled "Everything" may include all media objects available in an object database designated to be employed in the system of this application. This bin 5350 appears to be empty because its 242 media objects have been retrieved from the bin 5350 and transferred to the media display area 5320 for browsing, clustering, sorting, etc. The same may be done with any bin and its media objects.
The media objects 5310 in the bin 5330 may also be retrieved from the bin 5330 and temporarily moved to the media object display area 5320 for easier view and manipulation. A sequence of images representing this retrieval are depicted in
In order to initiate the change of media objects in the media object display area 5320, a user selects the "2" bin 5330, in this instance, using a user selection component such as a mouse, keyboard, joystick, etc. Once the bin is selected (e.g., by double-clicking), the media objects 5600 leave the media object display area 5320 and the media objects 5310 leave the bin 5330 nearly simultaneously and populate the media object display area 5320, as indicated in
As discussed, a user may desire to retrieve media objects located in a bin from the bin in order to better view the content and annotated metadata of the media objects and/or any other information associated with the media objects. This was demonstrated with respect to
Referring again to
In order to provide additional context for various aspects of the present invention,
Generally, however, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular data types. The operating environment 6210 is only one example of a suitable operating environment and is not intended to suggest any limitation as to the scope of use or functionality of the invention. Other well known computer systems, environments, and/or configurations that may be suitable for use with the invention include but are not limited to, personal computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include the above systems or devices, and the like.
With reference to
The system bus 6218 can be any of several types of bus structure(s) including the memory bus or memory controller, a peripheral bus or external bus, and/or a local bus using any variety of available bus architectures including, but not limited to, 11-bit bus, Industrial Standard Architecture (ISA), Micro-Channel Architecture (MSA), Extended ISA (EISA), Intelligent Drive Electronics (IDE), VESA Local Bus (VLB), Peripheral Component Interconnect (PCI), Universal Serial Bus (USB), Advanced Graphics Port (AGP), Personal Computer Memory Card International Association bus (PCMCIA), and Small Computer Systems Interface (SCSI).
The system memory 6216 includes volatile memory 6220 and nonvolatile memory 6222. The basic input/output system (BIOS), containing the basic routines to transfer information between elements within the computer 6212, such as during start-up, is stored in nonvolatile memory 6222. By way of illustration, and not limitation, nonvolatile memory 6222 can include read only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable ROM (EEPROM), or flash memory. Volatile memory 6220 includes random access memory (RAM), which acts as external cache memory. By way of illustration and not limitation, RAM is available in many forms such as synchronous RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), and direct Rambus RAM (DRRAM).
Computer 6212 also includes removable/nonremovable, volatile/nonvolatile computer storage media.
It is to be appreciated that
A user enters commands or information into the computer 6212 through input device(s) 6236. Input devices 6236 include, but are not limited to, a pointing device such as a mouse, trackball, stylus, touch pad, keyboard, microphone, joystick, game pad, satellite dish, scanner, TV tuner card, digital camera, digital video camera, web camera, and the like. These and other input devices connect to the processing unit 6214 through the system bus 6218 via interface port(s) 6238. Interface port(s) 6238 include, for example, a serial port, a parallel port, a game port, and a universal serial bus (USB). Output device(s) 6240 use some of the same type of ports as input device(s) 6236. Thus, for example, a USB port may be used to provide input to computer 6212, and to output information from computer 6212 to an output device 6240. Output adapter 6242 is provided to illustrate that there are some output devices 6240 like monitors, speakers, and printers among other output devices 6240 that require special adapters. The output adapters 6242 include, by way of illustration and not limitation, video and sound cards that provide a means of connection between the output device 6240 and the system bus 6218. It should be noted that other devices and/or systems of devices provide both input and output capabilities such as remote computer(s) 6244.
Computer 6212 can operate in a networked environment using logical connections to one or more remote computers, such as remote computer(s) 6244. The remote computer(s) 6244 can be a personal computer, a server, a router, a network PC, a workstation, a microprocessor based appliance, a peer device or other common network node and the like, and typically includes many or all of the elements described relative to computer 6212. For purposes of brevity, only a memory storage device 6246 is illustrated with remote computer(s) 6244. Remote computer(s) 6244 is logically connected to computer 6212 through a network interface 6248 and then physically connected via communication connection 6250. Network interface 6248 encompasses communication networks such as local-area networks (LAN) and wide-area networks (WAN). LAN technologies include Fiber Distributed Data Interface (FDDI), Copper Distributed Data Interface (CDDI), Ethernet/IEEE 1102.3, Token Ring/IEEE 1102.5 and the like. WAN technologies include, but are not limited to, point-to-point links, circuit switching networks like Integrated Services Digital Networks (ISDN) and variations thereon, packet switching networks, and Digital Subscriber Lines (DSL).
Communication connection(s) 6250 refers to the hardware/software employed to connect the network interface 6248 to the bus 6218. While communication connection 6250 is shown for illustrative clarity inside computer 6212, it can also be external to computer 6212. The hardware/software necessary for connection to the network interface 6248 includes, for exemplary purposes only, internal and external technologies such as, modems including regular telephone grade modems, cable modems and DSL modems, ISDN adapters, and Ethernet cards.
What has been described above includes examples of the present invention. It is, of course, not possible to describe every conceivable combination of components or methodologies for purposes of describing the present invention, but one of ordinary skill in the art may recognize that many further combinations and permutations of the present invention are possible. Accordingly, the present invention is intended to embrace all such alterations, modifications and variations that fall within the spirit and scope of the appended claims. Furthermore, to the extent that the term "includes" is used in either the detailed description or the claims, such term is intended to be inclusive in a manner similar to the term "comprising" as "comprising" is interpreted when employed as a transitional word in a claim.
1. A media object visualization system comprising:
- a media object display area that facilitates browsing, clustering, filtering and/or sorting of a plurality of media objects;
- one or more bin components that facilitate grouping, annotating, and manipulating selected media objects included therein;
- one or more filter components that facilitate clustering, sorting, annotating and filtering the selected media objects; and
- a time cluster slider component that alters a quantity and viewable size of clusters of media objects in the media object display area by one of increasing and decreasing the quantity and viewable size of the clusters.
2. The system of claim 1, wherein the plurality of media objects are maintained in an original form in a database.
3. The system of claim 1, wherein the media object display area provides a visual guide of any number of media objects available and accessible to a user for subsequent annotation and manipulation.
4. The system of claim 1, wherein the selected media objects appear highlighted prior to being selected by a user selection component.
5. The system of claim 1, wherein the media objects are enlarged during browsing with a user selection component when the user selection component contacts at least a portion of the media object.
6. The system of claim 1, wherein dimensions of the media object are maximized for viewing the media object by selecting the media object using a user selection component.
7. The system of claim 1, further comprising a variable viewer component that toggles the media objects in the media object display area between a stacked view and a raster view.
8. The system of claim 1, wherein the clusters of media objects are viewed in stacked view.
9. The system of claim 1, wherein the clusters of media objects are ranged by a time associated with the respective media objects in the respective cluster.
10. The system of claim 9, wherein the time associated with the respective media objects is at least a creation date of the media object.
11. The system of claim 1, wherein increasing the quantity of clusters viewable in the media object display area decreases the viewable size of the clusters accordingly.
12. The system of claim 1, further comprising a media object scroll component that allows a user to scroll the media objects in the media object display area in at least one of the following directions: up, down, left, and right.
13. The system of claim 12, wherein the viewable size of the media objects can be adjusted while scrolling the media objects in the media object display area.
14. The system of claim 1, further comprising a time-based selection component that indicates a date range as selected by a user and highlights media objects, which are annotated with at least date metadata, that are annotated with the date range indicated by the time-based selection component.
15. The system of claim 1, further comprising a media object content indicator that indicates a general content of the plurality of media objects to a user, the content indicator comprising at least a video indicator and a photo indicator.
16. The system of claim 15, wherein the content indicator is illuminated based on die content of the plurality of media objects in the media object display area.
17. The system of claim 1, wherein the one or more filter components are hidden from view in order to increase a viewable size of the media object display area, thereby revealing a hidden field indicator in place of where the filter components are generally located.
18. The system of claim 1, wherein the one or more filter components are automatically hidden from view based at least in part on user's instructions when a period of non-use of the filter components has occurred.
19. The system of claim 1, further comprising a filter component scroller component that facilitates viewing, browsing and using the filter components.
20. The system of claim 1, further comprising a bin scroller component that facilitates browsing of the bin components.
21. The system of claim 1, wherein the bin components are first arranged in chronological order of bin numbers and subsequently are secondly arranged based at least in part on priority, frequency of use, and a user's preference and instructions.
22. The system of claim 1, wherein at least one of the plurality of media objects and selected media objects are automatically arranged according to metadata associated and annotated therewith.
23. The system of claim 1, wherein at least one of the plurality of media objects and selected media objects are manually ordered based at least in part upon a user's instructions.
24. The system of claim 1, wherein metadata associated with at least one of a bin component and a filter component is/are viewable by selecting at least one of the respective media object, the respective bin component, and the respective filter component.
25. The system of claim 1, wherein a bin component may be selected (double-clicked) to be viewed and its media objects are moved to the media object display area for browsing, clustering, sorting, and/or manipulating the media objects.
26. The system of claim 1, wherein the selected media objects are placed into at least one bin component and annotated therein with at least one metadata.
27. The system of claim 26, wherein the database of media objects are not modified or further annotated with metadata when the media objects are selected and annotated in at least one bin component.
28. The system of claim 1, wherein the plurality of media objects in the database as shown in the media object display area maintain dynamic relationships with the respective media objects selected and located in bin components and filter categories, the foregoing being evidenced by a highlighting effect.
29. The system of claim 1, wherein media objects selected to any one of a bin component and a filter component are not removed from the database of the plurality of media objects.
30. The system of claim 1, wherein media objects in the database are highlighted concurrently with highlighting at least one of the bin component and the filter component which comprise the respective media objects.
31. A media object visualization system comprising:
- a media display component comprising a media object display area;
- a time cluster slider component that alters a quantity and viewable size of clusters of media objects in the media object display area by one of increasing and decreasing the quantity and viewable size of the clusters; and
- a plurality of media objects located in the media object display area such that a user browses, clusters, sorts, filters, and selects the media objects based at least in part upon the user's instructions for subsequent annotation with metadata.
32. A computer readable medium having a computer usable component for a media object visualization, comprising:
- a media object display area tat facilitates browsing, clustering, filtering and/or sorting any number of media objects;
- one or more bin components that facilitate grouping, annotating, and manipulating selected media objects included therein;
- one or more filter components that facilitate clustering, sorting, annotating and filtering selected media objects; and
- a time cluster slider component that alters a quantity and viewable size of clusters of media objects in the media object display area by one of increasing and decreasing the quantity and viewable size of the clusters.
|January 6, 1998
|Schelling et al.
|January 6, 1998
|Dwyer et al.
|November 10, 1998
|Ermel et al.
|February 22, 2000
|August 1, 2000
|Morris et al.
|June 12, 2001
|Rindtorff et al.
|July 17, 2001
|Coleman et al.
|September 11, 2001
|Squilla et al.
|November 13, 2001
|Pavley et al.
|January 1, 2002
|April 8, 2003
|Flannery et al.
|April 8, 2003
|Gupta et al.
|May 13, 2003
|Bergman et al.
|May 20, 2003
|Jain et al.
|June 10, 2003
|February 10, 2004
|Squilla et al.
|May 4, 2004
|Cheng et al.
|April 5, 2005
|Kilgore et al.
|April 19, 2005
|Acker et al.
|March 21, 2002
|Sciammarella et al.
|May 9, 2002
|October 3, 2002
|Wilkinson et al.
|April 24, 2003
|Hatanaka et al.
|May 1, 2003
|Sheldon et al.
|September 22, 2005
|Angiulo et al.
- Kuchinsky et al. ("FotoFile: A consumer Multimedia Organization and Retrieval System", ACM CHI '99 Pittsburg PA).
- Yao et al. ("The Development of A Video Metadata Authoring and Browsing System in XML", Australian Computer Society, Inc., Visualisation 2000, Pan-Sydney Workshop on Visual Information Processing, Dec. 2000).
- Chitra Dorai and Svetha Venkatesh. Bridging the Semantic Gap in Content Management Systems: Computational Media Aesthetics. 2001. 6 pages.
- Thomas A. Phelps and Robert Wilensky. The Multivalent Browser: A Platform for New Ideas. Proceedings of the 2001 ACM Symposium on Document engineering , Nov. 2001. pp. 58-67.
- Ian H. Witten, Rodger J. McNab. Stefan J. Boddie, and David Bainbridge. Greenstone: A Comprehensive Digital Library Software System. Proceedings of the 5th ACM Conference on Digital Libraries, 1999. 9 pages.
- Jeff E. Tandianus. Andrias Chandra, and Jesse S. Jin. Video Cataloguing and Browsing. Pan-Sydney Area Workshop on Visual Information Processing. Conferences in Research and Practice in Information Technology. vol. 11. Sydney, Australia. 2002. 7 pages.
- Platt, John C., et al; PhotoTOC: Automatic Clustering for Browsing Personal Photographs; Feb. 2002; 13 pages.
- Kuchinsky, Allan, et al.; Fotofile: A Consumer Multimedia Organization and Retrieval System; May 1999; 8 pages.
Type: Grant
Filed: Jan 21, 2003
Date of Patent: Oct 3, 2006
Patent Publication Number: 20040143598
Assignee: Microsoft Corporation (Redmond, WA)
Inventors: Steven M. Drucker (Bellevue, WA), Curtis G. Wong (Bellevue, WA), Steve Glenner (Bellevue, WA), Asta L. Glatzer (Redmond, WA), Steven D. DeMar (Redmond, WA)
Primary Examiner: Sy D. Luu
Attorney: Amin & Turocy, LLP
Application Number: 10/348,122
International Classification: G06F 3/00 (20060101);


text:
Litigators necesitaba un nuevo diseño de logotipo y lanzó un concurso de diseño en 99designs.
Un ganador ha sido elegido entre 72 diseños de 20 diseñadores freelance.
Consumer law group representing injured consumers and investors. Web header should reflect we are serious and professional.
For this assignment, we don't need "branding," our main site already has a logo/color scheme/design. This is a second, commercial informational site we use to provide information to our clients and to the public. Hence a clean, professional look is paramount.
Consumers and investors who likely have been conducting searches or doing research because they have been (i) injured by a pharmaceutical, (ii) defrauded because of a defective product, or (iii) suffered investment losses due to stock or investment fraud, of which there is a lot.
Our audience generally is older, professional, reads a lot, and does a lot of research. The target audience generally is not Web 2.0 experts, hence we strive for clarity and simplicity. Hence when people click on "Class Action FAQ," they will be transported to the homepage.
Need a clean, professional header. We prefer the words "Class Action FAQ" appear more towards the left, with the words, "Your source for class action lawsuit information" appear underneath. Good kerning please. So long as it looks clean and professional (not cheap), we are happy with a picture/photo, Illustrator design, combination of the two, something that works for a litigation informational site.
Just keep in mind not to make it too busy yet keep it professional: there already is enough going on underneath the header and it's really going to be built out with information.
Size: tell us what works, larger may be o.k. so long as it's clean.
Color scheme: give us something that works with the site, we're willing to change the background to whatever works with the header you give us. Note: don't make red the dominant color, "in the red" means stock losses, bankruptcy, injury.
What we do NOT want: gavels, scales of justice, blindfolded liberty, eagles zooming about, boring pictures of courthouses or ugly buildings. Please designers, save us from these borefests.
Conclusion: we are working with experienced SEO firms to promote the site and do some backend coding, hence what we need is a good "plug in and go" header and title. We anticipate making additional "landing pages" for the site that may need additional work in the coming months..
Descubre cómo funciona un concurso de diseño u obtén más información sobre nuestros servicios de diseño de logo.

subset: commoncrawl


text:
Log in to check your private messages
Log in
requesting a feature to be added
WarcraftRealms.com Forum Index
WarcraftRealms Developers
View previous topic
View next topic
Joined: 16 Dec 2012
Posts: 1
WR Updates: 0
coolabah WR Profile
Posted: Sun Dec 16, 2012 1:00 pm
Post subject: requesting a feature to be added
requesting a feature to allow you to use there real id to see all there characters they have on a certain realm
Back to top
Joined: 30 Sep 2005
Posts: 1728
Location: UK
WR Updates: 13,008,338
Balgair WR Profile
Posted: Sun Dec 16, 2012 1:42 pm
Post subject:
That's currently impossible - even the armory doesn't allow that, and only Blizzard has that exact data, nobody else does. It can be guessed by sites who track achievements, but not 100% ccurately, and in any case, it's so far away from the way this site works that I can't ever see it happening, I'm afraid.
Back to top
Epic Censi
Joined: 07 Nov 2008
Posts: 760
WR Updates: 32,238,443
1974ER WR Profile
Posted: Mon Dec 17, 2012 12:34 pm
Post subject:
Not only is it impossible, but such a feature would actually make Censusplus illegal in many EU countries. RealIDs are not public. An individual player may CHOOSE to reveal his or her RealID, but acquiring such data without person's consent is not only a TOS / EULA violation, but a crime in several countries.
This is partially why Blizzard had to back down from putting RealIDs on the public forums. A John Smith might not care if his name appears somewhere without context, but there are a lot of people with unique or semi-unique names. Without revealing mine, I'll just note that to my knowledge, there have only ever been 4 people with the exact name combination I carry... and to my knowledge, two of them died long ago. This despite the fact that there are well over 40 000 people who share my first name, over 60 000 who share the second one and if I recall correctly, over 140 000 who share my last name.
And I know at least 100 people who have absolutely unique names, several of them are my relatives, close friends or former colleagues across the country. At least a few of them are also WoW players. And though such things would be in minority, a rare few would suffer from their gaming habits being published.
I could possibly cope with RealID publicity, but I know people who could not. It's therefore better that RealIDs remain where they belong, within Blizzard's archives.
Back to top
Joined: 30 Sep 2005
Posts: 1728
Location: UK
WR Updates: 13,008,338
Balgair WR Profile
Posted: Mon Dec 17, 2012 12:41 pm
Post subject:
I agree entirely there, my name is not unique but I am only aware of one other person in the world (and not in my home country) with the same combination of first and last name. Real ID is fine for people with generic names, they remain relatively anonymous, but for those of us with uncommon names, well, I'd rather not have everything I do tied to my name (which can be tied to my real location if someone knows how to look; I
I've got all traces off it off the net but it was googleable at one point, sigh).
That being said, I assumed the OP wasn't asking for the Real ID to actually be made public, but more to use it to link together people's characters and the linked characters to be visible. I'm still not keen on even that though; it should be a player's choice to have their privacy or not (one downside to accountwise achievements is some sites are now able to link up characters in that way)
Back to top
Census Taker
Joined: 22 May 2008
Posts: 658
Location: Copenhagen, DK
WR Updates: 5,205,304
FuxieDK WR Profile
Posted: Tue Dec 18, 2012 12:29 am
Post subject:
I'm one of only four people, in Denmark, who bears my name.
However, in a way, my name is till unique:
- the 3 other people, are all over 60 years old (don't ask how I know)
- the 3 other people have middle names, where I only have first & last name.
This means, I don't like my name to be too public..
My RL friends have my RealID, but everyone else can MAYBE get my BattleTag...
Doing census mainly on Draenor; Raluf - Nimsay - Lusmo - Quixx - Sosyan - Garthog - Trubin - Zalistra - Zesmi and Djaang
Back to top
Display posts from previous:
All Posts
1 Day
7 Days
2 Weeks
1 Month
3 Months
6 Months
1 Year
Oldest First
Newest First
WarcraftRealms.com Forum Index
WarcraftRealms Developers
All times are GMT - 6 Hours
Jump to:
Select a forum
News and Announcements
General Discussion
WarcraftRealms.com Bugs
Census Talks
WarcraftRealms Developers
Other Mods
Guild Recruitment
Classic Discussion
WarcraftRealms UI Mods
CensusPlus UI Mod Bugs
CensusPlus UI Mod for Classic
Killing Fields UI Mod Bugs
post new topics in this forum
reply to topics in this forum
edit your posts in this forum
delete your posts in this forum
vote in polls in this forum
Powered by
© 2001, 2005 phpBB Group


text:
Java::JCR::Calendar - Utilities for converting dates
# With DateTime
use DateTime;
# Set
my $datetime = DateTime->now;
$node->set_property('date', $datetime);
# Get
my $datetime = $property->get_date; # DateTime object
# With Class::Date
use Class::Date qw( now );
# Set
my $class_date = now;
$node->set_property('date', $class_date);
# Get
my $class_date = $property->get_date('Class::Date'); # Class::Date
# With a custom date class
'My::Date::Class', \&my_date_class_inflate, \&my_date_class_deflate);
# Set
my $my_date = My::Date::Class->right_now;
$property->set_date('date', $my_date);
# Get
my $my_date = $property->get_date('My::Date::Class');
# Or make it the default:
my $my_date = $property->get_date;
This class helps make the translation from
java.lang.Calendar to a Perl date/time object as seamless as possible. Since Perl has a plethora of date/time classes and everyone seems to have their own favorite based upon functionality and performance characteristics, I've tried to make this configurable enough that if your favorite isn't supported, you may add it very easily.
Currently, this class ships with support for the following (if installed):
For each of the classes above, a date conversion will be registered if the class can be loaded (i.e., it's installed). The first date conversion registered will be made the default date class.
I've chosen these classes based upon my experience and knowledge of their development and developers. DateTime is the obvious first choice since it's the most actively developed and best supported module. If you would like to see an additional module supported in the Java::JCR distribution, please send patches to my email address (listed in "AUTHOR") and I will consider it for a future release.
If none of the above date classes is available and you haven't registered a date conversion for another class, you can't use JCR dates directly. The JCR will convert any date to or from an ISO 8601 string if you use the string accessor/mutators rather than the date accessor/mutators. Any fallback solution I could come up with would be redundant.
The goal of this class is to be seamless. Therefore, any method that would return a
java.util.Calendar object in the JCR API has been wrapped to return a Perl date object. By default, this date class is DateTime.
my $date = $property->get_date;
print "Property set to date: ", $date->ymd, "\n";
However, if you want a different date class, you may specify the name of the class to use as the last argument to the method. The class specified must have a registered date conversion, or an exception will be thrown.
my $date = $property->get_date('Class::Date');
print "Property set to date: ", $date->ymd, "\n";
As an alternative to specifying a different class every time, you may also change which class is used by default using the
default_date_class() method (see "METHODS").
my $date = $property->get_date; # returns a Class::Date object
print "Property set to date: ", $date->ymd, "\n";
When a JCR method accepts a
java.util.Calendar object as an argument, you may use any date class with a registered date conversion and pass that to the method.
This class, with the help of the registered date conversions, automatically converts the date between the Perl object and a
java.util.Calendar object.
If you wish to use a date class for which no date conversion is provided, you may register a date conversion for that class by providing and inflation and deflation method to the
register_date_conversion() method (see "METHODS").
package MySuperSimpleDate;
sub new {
my ($class, %hash) = @_;
return bless \%hash, $class;
sub ymd {
my ($self) = @_;
return $self->{year}.'-'.$self->{month}.'-'.$self->{day};
sub inflate {
my ($hash) = @_;
return MySuperSimpleDate->(%$hash);
sub deflate {
my ($date) = @_;
my %hash = %$date;
return \%hash;
package main;
my $date = $property->get_date('MySuperSimpleDate');
print "Property set to date: ", $date->ymd, "\n";
# Or even make it the default:
my $date = $property->get_date;
print "Property set to date: ", $date->ymd, "\n";
Basically, you should be able to use dates however you like with the JCR without putting much thought into it.
This is, in my opinion, some nice DWIMmery and adheres to TMTOWTDI and really didn't take much effort on my part either, Viva la Perl!
Here are the methods for choosing how to use dates:
- Java::JCR::Calendar->register_date_conversion($class, \&inflater, \&deflater)
This registers a new conversion handler for the class,
Whenever the end-user specifies the class,
$class, for a date accessor, the inflation method,
\&inflater, will be called to convert the date from an hash of values to date object blessed into the class,
Whenever the end-user uses a date mutator and passes an object blessed into the given class,
$class, the deflation method,
\&deflater, is used to convert the date object into a hash of values.
The hash of values given to the inflation method and to be returned by the deflation method, will look something like this:
{ year => 2006, month => 6, day => 17, hour => 11, minute => 38, second => 44, nanosecond => 42_563_889, timezone => 'America/Chicago', locale => 'en_US', lenient => 1, }
The hash returned during inflation must set the date fields (year, month, and day), but all the other fields are optional. See below for the values chosen if your deflation function doesn't set a field.
Here is the detailed description for each field:
- year
This is the year. Use positive values to represent AD/CE years. Use negative values to represent BC/BCE years. (0 is not a valid year and will result in an exception.)
- month
This is the month of the year. Values must fall within the range of 1 to 12.
Values outside this range will result in an exception unless "lenient" is set to a true value.
- day
This is the day of the month. Values must fall within the range of 1 to 31, though the upper limit is month dependent.
If you set the value to an invalid day for the given month, an exception will be thrown unless "lenient" is set to a true value.
- hour
This is the hour of the day. Values must fall within the range of 0 to 23. If not specified, this value will be set to 0.
If you set the value outside this range an exception will be thrown unless "lenient" is set to a true value.
- minute
This is the minute of the hour. Values must fall within the range of 0 to 59. If not specified, this value will be set to 0.
Values outside this range will cause an exception to be thrown unless "lenient" is set to a true value.
- second
This is the second of the minute. Values must fall within the range of 0 to 59. If not specified, this value will be set to 0.
Any value given outside of this range will result in an exception unless "lenient" is set to a true value.
- nanosecond
This is the the nanoseconds within the current second. Values must fall within the range of 0 to 999,999,999. If not specified, this value will be set to 0.
If the value given is outside of this range and exception will be thrown unless "lenient" is set to a true value.
- timezone
This is the time zone of the date and time. The values available for this may either be numeric offsets from UTC. These offsets can have the following formats:
The time zone may also be specified as a named zone (which is usually better because named zones can cope with local rules dealing with Daylight Savings Time and other adjustments---such as new legislation changing DST). However, Java doesn't specify a standard that is followed for picking which named time zones are available (if any). Therefore, it's up to your JVM to present a sane collection. However, it's generally safe to assume that time zones from the Olson time zone database will be available.
Since DateTime::TimeZone uses the Olson database for it's time zones, you may use that as a reference.
If no time zone is specified during deflation, Java will be told to assume the default time zone. The default is generally the local time zone, but may vary depending upon your JVM configuration.
- locale
I'm not certain if this is actually significant to how the JCR stores a calendar object, but I've included it for completeness (and it doesn't require much in the way of extra effort either way).
The locale must be specified using the ISO-639 and ISO-3166 standards with the possiblity of vendor or browser-specific variant codes. See the Javadoc for
java.util.Localeif you want more specific details.
If no locale is specified during deflation, the default Java locale will be used.
- lenient
By setting this to a true value, the
java.util.Calendarobject will have the lenient setting set to true. This will allow you to specify month, day, hour, minute, second, and nanosecond values outside the normal range without throwing an exception. Such values will result in a roll-over rather than an exception.
This value defaults to false. Thus, if it isn't given, an exception will be thrown when an out of bounds value is given.
The hash given to the inflation function will always have this value set to false. However, your inflation function may be as lenient or strict as desired. The Calendar implementation on your JVM should return valid dates, so it shouldn't be an issue in any case.
All dates are, obviously, according to the Gregorian calendar, which is due to the fact that the Calendar API of Java only fully supports Gregorian-style calendars. However, since we're using Perl, we're not limited to that calendar. If you want to, you may use one of the DateTime calendar modules to use Chinese, Christian, Coptic, Discordian, French revolutionary, Hebrew, Hijiri, Japanese, Julian, Mayan, Pataphysical, or even Middle-earth Shire dates. However, all dates stored in the JCR must be according to the Gregorian calendar.
The inflation function,
\&inflater, can expect a single argument, which is the hash (as described above), containing all the above fields filled. The inflation function must return an object of the specified class,
$class, or throw an exception. Your function must not return
During inflation, the hash will be created by reading in the fields set on the
java.util.Calendarobject returned by the JCR.
The deflation function,
\&deflater, can expect a single argument, which is an object blessed into the specified class,
$class. The deflation function must return a hash containing the date (as described above). The date fields must be set.
During deflation, a
java.util.Calendarobject will be created by fetching a Calendar instance according to the time zone and locale specified in the hash returned by the
\&deflaterfunction. Then, each field will be set in the following order: year, month, day, hour, minute, second, and nanosecond. If a time field isn't given, the default value listed above will be set on that field. Setting in this order will ensure that roll-overs will be handled
- Java::JCR::Calendar->default_date_class($class)
Specify the default date class to use when none is specified. This affects any JCR method which returns a date. On any such method, you may specify the date class to use explicitly by using the class name as the last argument to the method. However, if you do not specify a class name, the default class name is used instead.
The default class name is specified by calling this method and giving it a class name,
If you set the class name,
$class, to
undef, you are requiring the specification of a date class on any method that returns a date. If no date class is given when the default has been set to
undef, an exception will be thrown.
Andrew Sterling Hanenkamp, <firstname.lastname@example.com>
Copyright 2006 Andrew Sterling Hanenkamp <email@example.com>. All Rights Reserved.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


text:
National Library of New Zealand
- National Library of New Zealand Te Puna Mātauranga o Aotearoa PO Box 1467 Wellington 6140 New Zealand
- +64 4 474 3000
- 1920
The Family History Collection is the best place to start your search as it holds New Zealand birth, death, and marriage indexes, shipping indexes, cemetery and probate indexes and electoral rolls.
Further in-depth research can be done using material from the Alexander Turnbull Library collections which contain New Zealand's national documentary heritage.
Established in 1920 after Alexander Horsburgh Turnbull gifted his collection of books, manuscripts, photographs, paintings and sketches to New Zealand, the Turnbull collections now contain millions of items and covers New Zealand society, culture, community and political history from the late 19th century to the present.
The Oral History Centre is part of the Alexander Turnbull Library and includes more than 10,000 recordings including interviews with people of various ethnicities from throughout New Zealand and the Pacific.
The National Library building in Wellington is closed for redevelopment, and is due to reopen in early 2012. During the relocation period, some collections are available in two temporary locations: Archives New Zealand and a reading room at 77 Thorndon Quay, Wellington.
- Location:


text:
Jars of Clay, a three-time Grammy Award winner, will play the Gothic Theatre tonight. Photo special to The Denver Post.
Overcoming the internal conflicts that are in all of us is the overwhelming theme from Jars of Clay's new single, "Two Hands."
The band will bring its "Two Hands" tour to Colorado this week, playing in Grand Junction on Wednesday and the Denver area's Gothic Theatre on Thursday.
The "Two Hands" chorus resounds, "I use one hand to pull you closer, the other to push you away," and resonates in all of us, especially our daily relationships.
"Two Hands is about that inter wrangling that we all do," said guitarist Stephen Mason said. "We struggle to believe that we can do good. We question if we have what it takes – to follow through. And the truth is we don't. If that makes sense? But if we rely on our faith, we are able to reconcile.
"And we have to try. Don't worry about the consequences or doubt. We all have that. We are human and will always have that but we need to push through that. One human can make a huge difference in another and in a community."