PRIORITYThis patent application is a continuation application that claims the benefit of the filing date of U.S. patent application Ser. No. 12/061,007, filed Apr. 2, 2008, and entitled “SYSTEM AND METHOD FOR VISUALIZATION OF DATA”; which is incorporated by reference in its entirety.
FIELDThis application relates generally to data processing, and more specifically to a system and method for visualization of data.
BACKGROUNDVisualization of user data may be important in various contexts.
BRIEF DESCRIPTION OF DRAWINGSEmbodiments are illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like references indicate similar elements and in which:
FIG. 1 is a block diagram illustrating an environment within which embodiments of systems and methods for visualization of data may be implemented, in accordance with an example embodiment;
FIG. 2 is a block diagram illustrating an embodiment of a data visualization engine, in accordance with an example embodiment;
FIG. 3 is a flow chart illustrating an embodiment of a method for visualization of data, in accordance with an example embodiment;
FIG. 4 is the first part of a flow chart illustrating an embodiment of a method for visualization of data to create a personalized advertisement, in accordance with an example embodiment;
FIG. 5 is the second part of a flow chart illustrating an embodiment of a method for visualization of data to create a personalized advertisement, in accordance with an example embodiment;
FIG. 6 is the first part of a flow chart illustrating an embodiment of a method for visualization of data to create a personalized virtual card, in accordance with an example embodiment;
FIG. 7 is the second part of a flow chart illustrating an embodiment of a method for visualization of data to create a personalized virtual card, in accordance with an example embodiment;
FIG. 8 illustrates a permission requesting web page utilized by systems and methods for visualization of data, in accordance with an example embodiment;
FIG. 9 illustrates a visualization of data, in accordance with an example embodiment;
FIG. 10 illustrates a web page permitting utilization of a visualization of data as a widget, in accordance with an example embodiment; and
FIG. 11 illustrates a diagrammatic representation of an example machine in the form of a computer system within which a set of instructions, for causing the machine to perform any one or more of the methodologies discussed herein, may be executed.
DETAILED DESCRIPTIONVisual presentation of data is more efficient than textual presentation of data. Systems and methods of visualization of data, in some example embodiments, may permit visual presentation of advertisements tailored to a specific user. In some other example embodiments, systems and methods of visualization of data may be utilized to create visualizations of user personality.
It may be difficult to create targeted advertisements unless sufficient user data is available. However, in order to access user data, the user needs to be recognized. Systems and methods of visualization of data may require that the user be positively authenticated before visualization of data is performed.
In some example embodiments, a user may be requested to agree to presentation of targeted advertisements while logged in on an electronic marketplace (e.g., eBay). To target advertisements to a user, systems and methods for visualization of data may need to obtain data. The user data may be obtained from various data sources. For example, the user data may be obtained from an electronic marketplace profile associated with the user, from historical transactions associated with the user, or from third parties. Furthermore, the user may be asked to provide additional data.
Based on the user data received, systems and methods of visualization of data may create personalized advertisements that are displayed to the user dynamically. Data visualization, created from the dynamically obtained data, may include demographic data such as, for example, user age. The demographic data may dictate the type of advertisement being offered. This approach may succeed because younger users may be more likely to spend money on fashion clothing and CDs whereas older users may spend more on home improvement. Furthermore, the transaction data may reveal recent purchases made by the user. Accordingly, merchandise related to the recent purchases may be advertised to the user. Thus, for example, if it is determined that the user has recently purchased a Blu-Ray Disc player, Blu-Ray disks may be advertised to the user.
In some example embodiments, based on the data obtained, data visualization may be created that is utilized as the user personality card. For example, the weather conditions in the user's location may be obtained dynamically from a weather forecaster and visualized as an image depicting a sun or rain and inserted in an email along with other user related data.
The data visualization may be composed of multiple data elements visualized and joined together. For example, user instant messenger (e.g., Skype) identification may be joined with the local weather and the user name and displayed as a personalized logo on the user social service website (e.g., MySpace, Facebook). The images correlating to textual data and representing components in data visualization may be obtained from an image database. Data visualization may be generated dynamically from the currently available data and recreated on each subsequent request.
In some example embodiments, data visualization may be utilized as the user's personalized signature. In some other example embodiments, a data visualized may be represented by an avatar created based on the user data. The avatar may be used for instant messengers as well as for social service websites. The data visualized may include the user's favorite football team or favorite colors, email and telephone number. The data visualization may subsequently be stored as web resource.
In the context of an electronic marketplace, data visualization may provide the information about user feedback, positive and negative score, or trade volume. The systems and methods for data visualization are not limited to static images and may include videos or animations (e.g. Adobe® Flash®) embedded in a web page). Anexample network environment100 in which the systems and methods for visualization of data may be implemented is illustrated inFIG. 1.
As shown inFIG. 1, thenetwork environment100 may include anetwork110, asocial network service120, anelectronic marketplace130, aninstant messenger140,client systems150, apersonal information manager160, a thirdparty data provider170, and adata visualization engine200. Theelectronic marketplace130 may further include auser profile data132 and a usertransactional data134. The thirdparty data provider170 may further include a thirdparty user data172.
Thenetwork110 may be a network of data processing nodes that are interconnected for the purpose of data communication (e.g., the Internet). Thesocial network service120, shown in the context of thenetwork environment100, may be utilized to provide online social networks for communities of people who share interests and activities or who are interested in exploring the interests and activities of others. The social network service (e.g., Facebook) may be primarily web based and provide a collection of various ways for users to interact, such as chat, messaging, email, video, voice chat, file sharing, blogging, and discussion groups.
Theelectronic marketplace130 is a community of buyers and sellers (e.g., eBay) buying and selling by bidding at electronic marketplace auctions or by paying fixed prices. Theelectronic marketplace130 may further include theuser profile data132 and theuser transaction data134. Theinstant messenger140 may be configured to provide a form of real-time communication between two or more people based on typed text. The text exchanged between instant messenger clients may be conveyed via computers connected over a network such as thenetwork110.
Theclient systems150 may include devices featuring a display that are configured to permit user interaction. Theclient systems150 may display graphical icons, visual indicators, special graphical elements called “widgets”, and any other feature commonly used in graphical user interfaces. The graphical icons provided may be used in conjunction with text, labels or text navigation to fully represent the information and actions available to a user. A user may perform actions through direct manipulation of the graphical elements.
Thepersonal information manager160, in some example embodiments, is a type of application software that may function as a personal organizer. Thepersonal information manager160 may facilitate the recording, tracking, and management of certain types of “personal information”. Thepersonal information manager160 may include personal notes/journal, address books, task lists, significant calendar dates, birthdays, anniversaries, appointments and meeting, reminders, email, instant message archives, fax communications, voicemail, and/or project management features. Thepersonal information manager160 may be configured to acquire, organize, maintain, retrieve and use information items such as documents (paper-based and digital), web pages and email messages.
The thirdparty data provider170 may be configured to obtain and provide personal records and business records. The thirdparty data provider170 may comprise the thirdparty user data172. The thirdparty user data172 may include names, birthday and anniversary dates, addresses, telephone numbers, Fax numbers, and e-mail addresses. The business records may include business transactions associated with or related to a person. Thedata visualization engine200 is described with reference toFIG. 2.
FIG. 2 is a block diagram illustrating a data visualization engine, in accordance with an example embodiment. Thedata visualization engine200, in some example embodiments, may include acommunication module202, auser authentication module204, adata receiving module206, adata aggregating module208, adata visualization module210, aresource storing module212, and an additionaldata requesting module214.
Thecommunication module202, in some example embodiments, may be configured to receive user authentication data. For example, a user may be asked to provide user authentication such as two text strings including user identification (ID) and a password. Upon receiving the user authentication data, theuser authentication module204 may establish the identity of the user based on the user authentication data. Once the user is positively identified, a user session may be created and the user may then navigate a website, such as theelectronic marketplace130 without re-establishing the identity.
The receivingmodule206 may be configured to receive theuser profile data132 based on the identity of the user established by theuser authentication module204. The receivingmodule206 may further be configured to receive theuser transaction data134. Theuser transaction data134 may include data related to the user actions with respect to theelectronic marketplace130 and include a history of financial transactions and user community feedback.
In some example embodiments, some of theuser profile data132 and theuser transaction data134 may be received from the thirdparty data provider170 as a part of the thirdparty user data172. A user's permission may be requested before data from the thirdparty data provider170 is received. The aggregatingmodule208 may be configured to aggregate the data received by the receivingmodule206 from various above-mentioned data sources. In some example embodiments, the aggregatingmodule208 may aggregate the data selected as pertinent to the objectives of subsequent data visualization.
Thus if the data visualization is intended to be utilized as a targeted advertisement, a user address included in theuser profile data132 may not be relevant. Accordingly, the user address may not be selected to be aggregated by thedata aggregating module208. The aggregation of data by the aggregatingmodule208 may produce aggregated user data to be utilized by thedata visualization module210. Thedata visualization module210 may be configured to visualize the aggregated user data as a data visualization. The data visualization, in some example embodiments, is a composition of visual data corresponding to the respective aggregated data. The data visualization may be represented by an image or a video.
Theresource storing module212 may be configured to store the data visualization produced by thedata visualization module210. In some example embodiments, the data visualization may be stored as a web resource. The data visualization stored as a web resource may, in some example embodiments, be static, displaying the same visual data upon each access. The data visualization may, in some other embodiments, be dynamic (recreated on each access) based on the updated aggregated data.
In some example embodiments, the additionaldata requesting module214 may request the user to provide additional data. For example, it may be determined that the profile data is insufficient to create a data visualization representing user personality. Accordingly, the user may be requested to provide additional data. The additional data may be combined with the data available from the above-mentioned data sources and aggregated by thedata aggregating module208 to produce enhanced aggregated data.
FIG. 3 is a flow chart illustrating a method for visualization of data, in accordance with an example embodiment. Themethod300 may be performed by processing logic that may comprise hardware (e.g., dedicated logic, programmable logic, microcode, etc.), software (such as software run on a general purpose computer system or a dedicated machine), or a combination of both. In one example embodiment, the processing logic resides at thedata visualization engine200, illustrated inFIG. 2. Themethod300 may be performed by the various modules discussed above with reference toFIG. 2. Each of these modules may comprise processing logic.
As shown inFIG. 3, themethod300 may commence atoperation302, with thecommunication module202 receiving user authentication data. For example, upon clicking on a hyperlink that reads “sign in” a user may be taken to a sign-in webpage of theelectronic marketplace130 where the user may provide his authentication data such a user ID and a password. Atoperation304 theuser authentication module204 may establish the identity of the user based on the user authentication data received atoperation302.
Atoperation306, the receivingmodule206 may receiveuser profile data132 associated with the user based on the identity of the user established atoperation304. Atoperation308 the receivingmodule206 may receive theuser transaction data134 and atoperation310 thedata aggregating module208 may selectively aggregate the profile data received atoperation306 with the transaction data received atoperation308. Atoperation312, thedata visualization module210 may visualize the aggregated user data. The data visualization may be a composition of visual media corresponding to the aggregated data.
FIG. 4 is the first part of a flow chart illustrating an embodiment of a method for visualization of data to create a personalized advertisement, in accordance with an example embodiment. As shown inFIG. 4, themethod400 may commence atoperation402, with thecommunication module202 receiving user authentication data. Logging (or signing) in and out is the process by which individual access to a computer system is controlled by identification of the user in order to obtain credentials to permit access. A user may log in to a system to obtain access, and then log out when the access is no longer needed.
Upon successful authentication of user credentials, the user may be “signed-in” on theelectronic marketplace130. Once the user is signed-in on a website, various databases may be accessed and user data received. The data received may then be analyzed to determine, for example, the user's spending patterns. Thus, it may be determined from the data received by the receivingmodule204 that the user is a buyer and has recently purchased a new TV or that that the user has spent large amounts of money lately buying other merchandise. Accordingly, expensive TV related equipment may be advertised to the user. Additionally, the user profile and the user related third party data may be utilized to dynamically create a data visualization.
Thus, atoperation404 theuser authentication module204 may establish the identity of the user based on the user authentication data received atoperation402 and atdecision block406 theuser authentication module204 may determine whether there was a successful identification of the user. If there was no successful user authentication,method400 may proceed tooperation402 where a request to re-attempt the log-in may be displayed to the user.
If, on the other hand, the user is successfully authenticated by the user authentication module, user data may be obtained. As already mentioned above, in some example embodiments, it may be decided that the data available is not sufficient to create desired data visualization. In such case, the additionaldata requesting module214 may request user permission to create personalized advertisements atoperation408.
In some example embodiments, theadditional data module214 may be utilized to request user permission to access user data in order to create data visualization. Furthermore, a user may be separately requested to permit third parties to provide user data. Upon successful login, the user may be requested to allow access for a certain period of time (e.g., 18 months).
One of the utilities of data visualization is targeted advertisement. Targeted advertisements may be a more efficient use of resources because advertisements are not sent to people that are not interested in the product. In some example embodiments, the additionaldata requesting module214 may ask users to provide permissions via an opt-in for targeted advertisement.
Once permission is granted, the receivingmodule206 may receive user profile data including user personal information atoperation410, and atoperation410, receive transactional data associated with user. The data received may include user feedback score, the percentage of the feedback that is positive, user's Skype ID, current date, and the user zip code. Based on the user zip code, the weather at the user location may be determined. The transaction data received by the receivingmodule206 may include user related orders, invoices, payments, and activity records.
Atoperation414, the receivingmodule206 may receive third party data related to the user. The thirdparty data provider170 may be an organization specializing in public records information and offering service to consumers and businesses. Thus, data may be received from a range of resources including theelectronic marketplace130 and the thirdparty data provider170.
In some example embodiments, user accounts may be linked with a third party account and subsequent log-ins onto theelectronic marketplace130 may result in automatic log-ins onto the thirdparty data provider170. In some example embodiments, when the user refuses to give the permission for personalized advertisement or the user cannot be identified, it may still be possible to create a data visualization that does not hold or is not based on a user's personal data.
Atoperation416, the receivingmodule206 may receive additional data requested by the additionaldata requesting module214 when it is determined that such information would be helpful.
Atoperation418, thedata aggregating module208 may aggregate the data received atoperations410,412,414, and416. Thus freely available information, user data, and the data that the user is subscribed to may be aggregated in order to create data visualization. There may be different versions of the data visualization such as a private version, a public version, and/or a version for friends and family. The visualization is not limited to still images and may be animated.
FIG. 5 is the second part of a flow chart illustrating an embodiment of a method for visualization of data to create a personalized advertisement, in accordance with an example embodiment. Thus continued fromFIG. 4, atoperation420, thedata visualization module210 may visualize the aggregated data based on data components, received from various above mentioned sources, such as demographics of the user, recent purchases, feedback, trade volume, favourite sports, favourite colour, and overall spending patterns. In some example embodiments, the spending patterns in a certain period of time are analyzed (e.g., last 20 things purchased.
For example, based on the zip code, the current cable TV provider of the area can be determined. Furthermore, it may be determined from the user transaction history that the user has recently acquired a new TV capable of receiving a high definition TV signal. Based on this data, a customized advertisement of high definition TV channels offered by the cable TV provider may be presented to the user. In another example, it may be determined that the user has recently acquired a new Blu-Ray Disk player. Based on this data, a visualization depicting a customized advertisement of Blu-Ray Discs may be created.
Data visualization, within the context of this disclosure, may refer to any technique for creating images, diagrams, or animations to communicate a message. Data visualization through visual imagery may be an effective way to communicate data. Atoperation422, the data visualization module may select a visualization type such as image or video.
If image is selected as an option atoperation422 then a data visualization depicting an image is created atoperation424. The image may feature a specialized advertisement. If on the other hand, a video is selected than an advertisement video is created based on selected visualization components atoperation426. The data visualization may be created by merging visual components corresponding to the data components selected from various databases. The visual components may be assembled on a visual template provided by the Application Programming Interface (API) of a computer language utilized to create the data visualization.
Thus, textual data obtained from various databases may be merged with a graphical database to generate an image or a video that may be dynamically updated on demand and displayed to the user. For example, the Hypertext Preprocessor (PHP) computer language may be utilized for real-time generation of the data visualization. PHP may be utilized to dynamically generate images as well as Adobe® Flash® content.
Atoperation428, thedata visualization module210 may create an image map of advertisement hyperlinks to related sites. The map fosters an association of the data visualization with an image map which includes a list of coordinates on the data visualization so that the areas of the data visualization are hyperlinked to the related locations. If, for example, the data visualization is a map of the world, each country may be hyperlinked to further information about that country. Atoperation430, thedata visualization module210 may present advertisements to the user.
FIG. 6 is the first part of a flow chart showing an embodiment of a method for visualization of data to create a personalized virtual card, in accordance with an example embodiment. As shown inFIG. 6, themethod500 may commence atoperation502 with thecommunication module202 receiving a user request to log in by providing credentials. An example method of user authentication is described above in more detail with reference toFIG. 4.
Atoperation504, theauthentication module204 authenticates a user by comparing provided credentials against a user database and atoperation506, the receivingmodule206 may receive user profile data (e.g., photograph, name, phone number). Atoperation508, the receivingmodule206 may receive user profile data or data related to user profile (e.g., weather). Theelectronic marketplace130 may subscribe to such related data as weather. Because the user zip code is known, the zip code may be correlated with a continuously updated data feed concerning the weather. Subsequently, the weather visual component may be added to the data visualization.
Atoperation510, the data visualizing module may select a type of visualization such as business or personal. Depending on the type selected, different data visualizations representing personality of the user may be created. The data visualization may also be presented as an avatar that may be utilized to represent a user on a social network website. Thus, if business is selected then atoperation512, thedata visualization module210 may select data suitable for a business-related virtual card. If, on the other hand, personal is selected, than atoperation514, thedata visualization module210 may select data suitable for a personal virtual card.
Atoperation516, thedata visualization module210 may select data for a personalized virtual card and atoperation518, thedata visualization module210 may select images from an image data base to represent the selected data in the data visualization.
FIG. 7 is the second part of a flow chart showing an embodiment of a method for visualization of data to create a personalized virtual card, in accordance with an example embodiment. Continued fromFIG. 6,method500 may proceed to receive a graphical template for visual layers inoperation520. Atoperation522, thedata visualization module210 may create data visualization by combining images in a graphical template. Example data visualization is illustrated inFIG. 8.
Thedata visualization module210 may generate the data visualization by inserting the selected visual data from an image template. Theresource storing module212 may be utilized to store the data visualization as a web resource and to provide the URL of the web resource with a communication.
Atoperation524, thedata visualization module210, depending on the intended use of the visualization, may insert visualization in electronic communication atoperation526. The data visualization stored as a web resource may be recreated upon access if its data components have changed. For example, if the data visualization may include current weather. When the weather changes from sunny to rainy the data visualization may be recreated on access. In some example embodiments, the data visualization provided in a communication may be dynamically updated upon receipt of the communication by the recipient. Atoperation528 the data visualization for social networking websites (e.g., MySpace, Facebook), instant messengers (e.g., Skype) or a customizable internet portal (e.g., iGoogle) may be created.
In some example embodiments, the data visualization may include a user's email address, a photograph of the user, and/or a graphical representation of the user personality such as an avatar. The term avatar, as used within the context of the instant disclosure, may refer to the personality connected with an Internet user. Atoperation530, theresource storing module212 may store the data visualization on the web as a web resource and provide a hyperlink to the intended recipient. At operation532, thedata visualization module210 may generate an image dynamically with each access.
FIG. 8 illustrates a permission requesting web page utilized by systems and methods for visualization of data, in accordance with an example embodiment.FIG. 9 illustrates a visualization of data, in accordance with an example embodiment. As shown inFIG. 9 data from various sources may be visualized to create a user personality card. Calendar, eBay feedback score, percentage of the user eBay positive feedback, and user eBay login name shown may be included in the visualization of data.FIG. 10 toe illustrates a web page enabling utilization of the visualization of data as a widget, in accordance with an example embodiment.
FIG. 11 illustrates a diagrammatic representation of a machine in the example electronic form of acomputer system1100, within which a set of instructions for causing the machine to perform any one or more of the methodologies discussed herein may be executed. In various example embodiments, the machine operates as a standalone device or may be connected (e.g., networked) to other machines. In a networked deployment, the machine may operate in the capacity of a server or a client machine in a server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine may be a personal computer (PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a portable music player (e.g., a portable hard drive audio device such as an Moving Picture Experts Group Audio Layer 3 (MP3) player), a web appliance, a network router, a switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specifies actions to be taken by that machine. Further, while only a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.
Theexample computer system1100 includes a processor or multiple processors1102 (e.g., a central processing unit (CPU), a graphics processing unit (GPU), or both), and amain memory1104 and astatic memory1106, which communicate with each other via abus1108. Thecomputer system1100 may further include a video display unit1110 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)). Thecomputer system1100 may also include an alphanumeric input device1112 (e.g., a keyboard), a cursor control device1114 (e.g., a mouse), adisk drive unit1116, a signal generation device1118 (e.g., a speaker) and anetwork interface device1120.
Thedisk drive unit1116 includes a computer-readable medium1122 on which is stored one or more sets of instructions and data structures (e.g., instructions1124) embodying or utilized by any one or more of the methodologies or functions described herein. Theinstructions1124 may also reside, completely or at least partially, within themain memory1104 and/or within theprocessors1102 during the execution thereof by thecomputer system1100. Themain memory1104 and theprocessors1102 may also constitute machine-readable media.
Theinstructions1124 may further be transmitted or received over anetwork1126 via thenetwork interface device1120 utilizing any one of a number of well-known transfer protocols (e.g., Hyper Text Transfer Protocol (HTTP)).
While the computer-readable medium1122 is shown in an example embodiment to be a single medium, the term “computer-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database and/or associated caches and servers) that store the one or more sets of instructions. The term “computer-readable medium” shall also be taken to include any medium that is capable of storing, encoding, or carrying a set of instructions for execution by the machine and that causes the machine to perform any one or more of the methodologies of the present application, or that is capable of storing, encoding, or carrying data structures utilized by or associated with such a set of instructions. The term “computer-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories, optical and magnetic media, and carrier wave signals. Such media may also include, without limitation, hard disks, floppy disks, flash memory cards, digital video disks, random access memory (RAMs), read only memory (ROMs), and the like.
The example embodiments described herein may be implemented in an operating environment comprising software installed on a computer, in hardware, or in a combination of software and hardware.
Thus, a system and method for visualization of data have been described. Although embodiments have been described with reference to specific example embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the system and method described herein. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense.