This invention relates to displaying content on a web browser. In particular, this invention is drawn to systems and methods for managing and displaying additive content relating to web sites.
It is common for internet users to read and create content or commentary relating to any issue. Numerous web sites and blogs exist whose purpose is to convey opinions, observations, commentary, etc., on a variety of subjects, such as politics, sports, celebrities, hobbies, etc. Often, theses web sites and blogs provide links to third party web pages containing the content to which they are commenting on.
Generally, a social network is a social structure consisting of individuals or organizations. Users of social networks are connected together through various social familiarities such as friends, family, acquaintances, users having similar interests, etc. In an Internet environment, social networking typically refers to web sites to help users connect to friends, business acquaintances, etc.
A typical social network in an Internet environment may offer users places to store and post profiles, blogs, groups, photos, videos, etc. A typical user profile in a social network may include sections about interests of the user such as music, books, movies, marital status, physical appearance, etc. Some social networking sites also allow users to organize links to their friends' from that particular social network as a “friends list”. Examples of typical Internet based social networks include MySpace, Facebook, Match, Classmates, Friendster, LinkedIn, orkut, Youtube, Xanga, etc.
Social networks and other web sites have various problems. Some users may have accounts at multiple websites. For a user that belongs to multiple social networks, the user may find it cumbersome to manage separate profiles or repurpose content among the various social networks to which they belong. If the user wishes to organize a friend list, post personal content, or send and receive email, they must do so separately for each social network.
One problem with social networks relates to security. Social networks have become very popular with children and teenagers. While some social networks allow profiles to be visible only to “friends”, information on friends pubic pages such as addresses, phone numbers, last names, pictures, etc. could place a person in danger. Unfortunately, typical social networking web sites do not allow users to adequately control and secure specific sections of profiles and personal content. Those sites that do offer partial visibility control, don't allow this control to extend to every site upon which the content is displayed.
The present invention is illustrated by way of example and is not limited by the figures of the accompanying drawings, in which like references indicate similar elements and in which:
Generally, the present invention relates to techniques for managing and displaying additive content on web sites. In one example, in the context of third party web sites, the invention provides tools that allow users to place additive content (e.g., a “post-it note” style pagelets) on third party web sites, as well as control who can view the additive content. The creator of the additive content can choose to make the additive content viewable to everyone, or restrict access to the additive content to authenticated users using any desired authentication technique. In one example, the additive content creator can require other users to join a group in order to have access to the additive content. Such a group may be an open or private group, a free or subscription-based group, etc. When group-based additive content is displayed with a web page, it may be displayed in any desired manner. For example, the content may be configured and displayed with a web page as described below with respect to
For example, in the context of social networks, the invention provides tools that put users in control of information in their social networks by allowing users to place “post-it note” style pagelets onto third party web sites and to customize the substance and visibility privileges of this content. The invention also allows users to easily communicate and share private content with other people, in ways chosen by the users, and across multiple sites simultaneously. The invention also allows users to manage personal profiles, related content and disparate friends over multiple social networks. The present invention enables various user features that will enhance their social networking experience and allow the user increased control of their personal profiles.
In order to provide a context for understanding this description, the following description illustrates examples of environments in which the present invention may be used. Of course, the invention may also be used in other types of environments. In the example of a web environment, the present invention provides a tool, used in conjunction with a Web browser, to help a user manage information, such as profiles on social networking web sites, as well as enabling various features that enhance the user's web experience. Examples of how the present invention may be implemented include, but are not limited to, and Internet browser toolbar, a browser extension, a browser plug-in, an executable program that communicates with the browser, etc.
When a user of one of the network clients 10 requests to view a web page hosted by one of the web servers 14, the web browser of the network client 10 will send a request to the appropriate web server 14, which will send web page html content back to the network client 10, where the content will be rendered and displayed for the user. By accessing the application server 16, the invention running on the network client 10 is able to provide the user with various additional functions (described in detail below). For example, the database 18 may store additional content that has been associated with the web page (or portions thereof) retrieved from one of the web servers 14. The invention running on the network client may also use the application server to help facilitate the centralized management of multiple web sites (e.g., social networking web sites), the management of multi-site friends lists, the management of content and profiles across multiple web sites, etc. Descriptions of various examples are described in detail below.
In the example illustrated in
As mentioned above, another feature of the present invention relates to control of content on a social networking (or other) web site. In a typical social networking web site, when a profile owner publishes content to their profile, the content is there for everyone to see, even if the user would prefer to keep some portions private. The present invention provides a way for a user to add content (a.k.a. “personal content” or “private content”) to their profile, while maintaining control of the content visibility at a granular level. In one example, content generated by the profile owner is injected into the profile page of any desired social networking web site by the web browser and associated toolbar of the user viewing the profile page. This content can be viewed by other users, without altering the original content of the profile page hosted by the social networking web site. Other users of the present invention are able to view the owner generated content (assuming they have permission, described below) while they are viewing the original profile web page. For example, a first profile owner can add private content to his or her profile page via the invention (described below). Someone not using the appropriate software would not even know that the owner generated content existed. However, someone using the appropriate software, if authenticated, would know and see the added content. The network client can be configured to display the content in any desired manner. For example, the owner generated content could be displayed automatically when a user visits the corresponding web page, or the user may just be notified that owner generated content existed, allowing the user to choose whether or not to view the additional content.
One feature of the present invention relating to the use of owner generated content relates to controlled access of the content. In one example, a profile owner may not care if everyone can view the owner generated content. In this example, no permission would be required to view the owner generated content, and anyone with the appropriate software could view it. In another example, a profile owner may only desire certain people to view the owner generated content. The invention allows the owner generated content to be viewed by only people having proper permissions. Access to owner generated content can be controlled using various techniques such as: passwords, specific user permissions, group permissions, age verifications, time restrictions (e.g., the content may only be visible during certain times), personal attributes, digital certificates, etc., as well as any combination of these and other techniques. In some social networks, profile owners maintain a list of friends or contacts. In one example, the profile owner may configure the owner generated content to only be available/visible to people (or subsets of people) in the owner's list of contacts. Note that an owner may have multiple contact lists. For example, the owner may have friends list from various social networking web sites, as well as one or more multi-site friends lists enabled by the present invention. The user permission status may be based on any list, or combinations thereof. In another example, authorization to access owner generated content can be based on any number of a user's many profile attributes. For example, a user may have his/her own profile page containing various profile attributes. A profile owner can specify that certain owner generated content be accessible to users whose profile attributes meet one or more requirements (e.g., fall within a specified age group, be from a specified city or area, have specified interests, etc.). Examples of profile attributes may include account information, attributes from one or more registered profiles, tags, comments other people have made about a user, application usage history, etc. Also note that different sets of attributes (i.e., filters) can be applied individually to different content blocks. For example, a profile owner can configure one content block to be visible to people in a particular zip code, and another content block to people that have a registered profile with a particular social network. Numerous other examples are also possible.
When user authentication is based on group permissions, access to additive content on a web page can be controlled based on a users inclusion with or standing with a group or sub-group. For example, a group can be configured such that anyone that is a member of the group is allowed to view any additive content associated with that group. Such additive content may be created by one user (e.g., the administrator of the group), or multiple users (e.g., multiple administrators, multiple authorized content creators, group members, etc.). Groups can be configured in any desired way. For example, a group could be an open group, where anyone is allowed to join the group. A group could also be a closed group, where invitations or other permissions are required to join the group. In another example, a group can be subscription-based, where inclusion in the group requires the user to pay a subscription fee to view the additive content.
When a group content creator generates additive content across multiple web sites, a group member will want to know which web sites include additive content. In one example, the content generator's own web site can provide links to the various web sites that contain additive content. In another example, the user's software (e.g., the toolbar described below) can identify or provide links to third part web sites that have additive content associated with any particular group.
When a user belongs to multiple groups that might each have additive content on the same web site, it may be desired to selectively view additive content. For example, the user's software can allow a user to filter which group's content is viewable. The software may allow a user to enable or disable group content. In another example, the additive content can be displayed in such a way that the user can see which group the content comes from. Group content can be configured to be displayed in certain colors, certain fonts, with identifying marks (e.g., a heading saying “Group A”, the group's logo, etc.).
The next part of the process illustrated in
The next part of the process illustrated in
If it is determined that the retrieved web page is identified in the database, the process proceeds to step 6-18. At step 6-18, the process asks whether the user has been authenticated to view the additional content stored in the application server database. As mentioned above, authentication can be determined in any desired way. In the example of group authentication, the process would determine whether the user is a member of any group for which additive content exists for that web page. Assume that a user is a member of Group A, Group B, and Group C. If content exists for the retrieved web page, the user will be authorized if the content originated from either of Groups A, B, or C. In the event that content exists that originated from two or more groups of which the user is a member, a user would be authorized to view content from multiple groups.
If the user has not been authenticated, the process proceeds to step 6-17, where the web browser renders and displays the default web page. If the user is authenticated, the process proceeds to step 6-20, where the network client retrieves the additional content from the application server. Next, at step 6-22, the additional content from the application server is injected into the web page. At step 6-24, the web browser renders and displays an enhanced web page (e.g., the default web page from the web server, plus the injected content). The additional content can be displayed in any desired manner. Examples are provided in detail below.
The process illustrated in
If, at step 6A-10, it was determined that group-based content exists, the process proceeds to step 6A-18. At step 6A-18, the process determines whether the user is a member of the applicable group. In other words, If the user belongs to the group that provided the additive content for the web page, then the user will be allows to view the additive content. If the user is not authorized to view the group-based content, the process proceeds to step 6A-16, where the web browser renders and displays the default web page. If the user is authorized to view the additive content, the process proceeds to step 6A-20, where the network client retrieves additive content from the application server. Next, at step 6A-22, the additional content from the application server is injected into the web page. At step 6A-24, the web browser renders and displays an enhanced web page (e.g., the default web page from the web server, plus the injected content). The additional content can be displayed in any desired manner. Examples are provided in detail below.
As mentioned above, in order to retrieve and display the content from the application server, the application server needs to determine whether the web page (or subset thereof) retrieved by the network client corresponds to any of the content stored in the application server database. This determination can be achieved in any desired way.
The process illustrated in
In one example, steps 7-16 and 7-18 are performed by the application server based on the contents of the application server database and the extracted information received from the network client. The communication between the application server and the network client can be implemented in any desired manner. In one example, a protocol such as a SOAP or remote procedure call (RPC) can be used over HTTP. In this example, software in the network client generates a message for the application server. The RPC message instructs the application server to execute scripts, and includes at least some of the extracted information. The application server executes scripts that determine whether the web page (or content therefrom) retrieved by the network client corresponds to user data identified in the application server database. This determination by the application server is made based on a comparison of the extracted information received from the network client and information stored in the application server database. More specific examples of this determination are described below.
After the web site has been evaluated, the process proceeds to step 8-16 where values are assembled from information extracted from the web page. The assembled values may vary depending on the content of the web page, the identity of the originating web site, and other factors. Although the assembled values and extracted information can include any desired type of information, examples may include, but are not limited to, usernames, user IDs (e.g., a profile owner identifier), URLs, profile attributes, other content relating to the web page, etc. At step 8-18, the assembled values are sent to the application server. In one example, the assembled values are included in an RPC message that is sent to the application server.
At step 8-20, the application server determines whether there is content stored in the application server database that corresponds to the web page retrieved by the network client. This determination is based on an analysis of the assembled values and information stored in the application server database. In one example, where a site-specific script specifies a comparison of an extracted user ID, the application server would compare the extracted user ID with user IDs stored in the application server database. If no match is found, the application server has determined that no content exists in the database relating to the web page retrieved by the network client. If a match is found, the application server delivers the content stored in the application server database to the network client. In other examples, a site-specific script may specify a comparison of other value(s) with value(s) stored in the database. In another example, where a site-specific script specifies a comparison of a web page URL, the application server will compare the extracted URL with URLs stored in the application server database. As one skilled in the art would understand, the determination of the existence of content corresponding to a specific web page can be achieved in many desired ways.
If, at step 8-20, content is identified that corresponds to the web page retrieved by the network client, the process proceeds to step 8-22. At step 8-22, the process asks whether the user of the network client is authorized to view the content stored in the application server database. If the user is not authorized, the process ends. If the user is authorized, the process proceeds to step 8-24, where the authorized portions of the content is provided to the network client. When the network client receives the content from the application server, the content can be injected into the page and displayed by the browser, as described above.
At step 9-18, the extracted attributes are compared with attributes stored in the application server database. At step 9-20, the process asks whether a match was found in the application server database. If it is determined that no match was found in the application server database, the web browser renders and displays the default web page normally (step 9-22), and the process ends. If, however, a match is found, the process asks, at step 9-24, whether multiple matches were found. Since it is possible that two or more profile owners may have identical information entered into the selected attribute fields, the application server may not know which entry in the application server database corresponds to the web page retrieved by the network client. In the example shown in
To further illustrate the operation of the present invention,
After the web browser receives the web page skeleton (operation 10-16), the web browser will start loading images, iframes, and other external content (operation 10-18). In parallel (or before or after depending upon the page) with operation 10-18, the application server will send (if not already cached) site-specific scripts to the toolbar (operation 10-20). The toolbar will inject various Javascript libraries into the DOM (operation 10-22). Note that, in one example, the toolbar may include portions running in various programming methodologies, such as Javascript, ActiveX, AJAX and C++, for example. After receiving the site-specific scripts, the toolbar extracts content from the received web page (operation 10-24). The toolbar and application server will determine, from the extracted information, whether the requested web page corresponds to a profile owner identified in the database (operation 10-26). If the toolbar and application server determine that the requested web page corresponds to a profile owner identified in the database, the authenticated portions of profile owner generated content stored in the database is sent to the toolbar (operation 10-28). Once the profile content is retrieved by the toolbar (operation 10-30), the profile content is injected into the retrieved web page. In one example, this is accomplished by injecting the profile content into the web browser document object model (DOM) memory (operation 10-32). Finally, the web browser renders and displays the requested web page, including content received from the web site or server, and content received from the application server (operation 10-34). Note that, in some examples, the web browser may start displaying the requested web page before receiving any content from the toolbar and application server.
The following is a description illustrating how the present invention can enable a profile owner to add content to the profile owner's hosted web page. Generally, the invention enables someone to add content to a web page, without altering the original web page as hosted by the website. Access to the edited content can be controlled so as to give desired people access to the extra hidden content. The invention provides the content owner with the greater control over the visibility, substance and portability of their online content and media assets.
Within the browser window 32 the contents of the current web page can be viewed. In the example shown in
When the profile owner desires to add owner generated content, the profile owner can click one of the buttons on the toolbar (or invention palette in the page) 34 to place the current profile page into edit mode.
The profile owner has various options relating to where the generated content is located. For example, the profile owner can configure the content to be a floating box such as the content box 44 as shown in
When the profile owner is finished adding new content or editing existing content blocks, the invention will “publish” all changes back to the application server and database.
The present invention includes various features that will enhance a user's social networking experience. One feature relates to the management of contacts and friends. The present invention allows a user to maintain a contact/friend list to track friends and profiles from multiple social network and other web sites.
In one example, the invention allows a user to click a button on the toolbar, or on the social menu 52, while viewing a friend's profile on a social networking or other web site. This profile is captured, tags can be added, and then the entry can be saved by the palette, along with other profiles previously selected by the user. In this way, the user can collect, organize and manage contacts/profiles in a friends list spanning multiple social networks. For example, a user may go to a first social network and select Joe's profile, then go to a second social network and select Jane's profile, etc. This contact list may be saved and viewed in any desired manner. In one example, the toolbar provides a sidebar which, when not hidden, lists the selected profiles from the various social networks. In the example above, Joe and Jane are be listed in the same place (e.g., in the side bar list), despite the fact that they belong to different social networks. Clicking on either entry would take you to the specific user profile on the original site from which it was added.
The friends/contacts list can be displayed in any desired manner. The list may include pictures, names, nicknames, usernames, marital status, contact information etc. If desired, a user can control what portions of a user's profile are shown in the contact list. A user may also search, categorize and/or sort contacts by category, keywords, tags, etc. In addition, the present invention allows a user to import or export friends and contacts from social networking sites, other applications or lists. When the user clicks on a contact in the contact list, the browser will be directed to that user's profile, on whatever social network the person belongs to. This way, a user of the present invention can easily view the profiles and web pages of their friends, by simply clicking on their profile in the contact list. Another advantage of this feature, is that a person having multiple profiles can be associated with a single entry in the friends list. For example, in the example provided above, Joe may have a profile of both the first and second social networks. The toolbar of the present invention allows the user to store, track and manage Joe 's multiple profiles from one central place.
In one example, advertisements can be included in the sidebar (or wherever the contact list is displayed). When a user is browsing their contact list, they may view ads placed among the contact list. For example, the block labeled “Content” in
As mentioned above, the present invention may be implemented in any desired manner.
The toolbar 34 may also include indicators to convey information to a user. For example, an indicator can provide an indication that the web browser is viewing a supported web site. In another example, an indicator can let a user know that the profile owner is also a toolbar user or that owner generated content is available on the currently viewed page.
In the preceding detailed description, the invention is described with reference to specific exemplary embodiments thereof. Various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention as set forth in the claims. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.
This application is a CIP of co-pending commonly owned U.S. patent application Ser. No. 11/556,614, attorney docket number MIN.P0004, filed on Nov. 3, 2006, entitled “SYSTEM FOR DISPLAYING USER GENERATED CONTENT IN A WEB BROWSER,” (pending) which is incorporated by reference herein. This application also claims priority to co-pending commonly owned U.S. provisional patent application No. 61/076,546, attorney docket number MIN.P0006, filed on Jun. 27, 2008, entitled “SYSTEM AND METHOD FOR MANAGING AND DISPLAYING ADDITIVE CONTENT IN A WEB BROWSER,” (pending) which is incorporated by reference herein.
Number | Date | Country | |
---|---|---|---|
60806529 | Jul 2006 | US | |
60827668 | Sep 2006 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 11556614 | Nov 2006 | US |
Child | 12493183 | US |