An embodiment of the invention relates generally to Internet communication and, more specifically, to providing online-discussion forums.
The Internet exists as a collection of millions of interconnected, independently operated computer systems. Individuals, companies, and other organizations have become accustomed to harnessing the power of the Internet to present information to others and engage in e-commerce by maintaining passive and interactive web sites. To create a web site, a software application called a web server is installed on an Internet-connected computer and web pages are placed therein.
A remote user is able to access web pages in a particular web server by pointing an Internet browser to the URL that points to the IP address of the web server. Often, this is accomplished by entering the web site URL into an address bar of the browser. In this manner, a user can be in one location and access web sites and information located in various geographic areas of the world. Similarly, other users can be in other physical locations and access the same or different information. Accordingly, web sites receive many requests for information from various physically separated individuals. Many web sites have thousands of visitors either simultaneously or over the course of time. Therefore, there are often very large numbers of physically separated individuals who share a common interest in the information provided by a particular web site.
The value in communicating with other individuals with common interests is obvious. In the physical world, people join organized entities such as clubs and sports teams to share experiences and learn from each other. Similarly, people loosely associate in non-organized entities in coffee shops, restaurants, and bars. Even online, the value of communicating with others who share similar interests has manifested itself through the use of chat rooms, forums, weblogs (“blogs”) and instant messaging (collectively, “message forums”).
Chat rooms are virtual meeting spaces that allow for simultaneous communications between multiple people. These virtual spaces are analogous to coffee shops or bars whereby anyone in the space can talk with any other person within the space. Generally, chat rooms are organized around a topic so that the people who enter the virtual space have a common interest. For instance, there are chat rooms for politics, sports, dating, and cars. To enter a chat room, a user must visit an independent web site and search for different chat rooms to join.
Forums are similar to chat rooms in that they allow online communication between multiple users. However, forums are significantly different from chat rooms in that forums allow for communication over time between other users. A chat room requires simultaneous participation between other users. A forum allows a first user to post a message and subsequent users to read that message at times when the first user is no longer online. Forums are arranged around topic areas such as programming languages, health, cars, and education. A user must visit an independent web site to search for various forums to enter.
A blog may be considered as a personal or corporate web site in which an author writes, as their consideration of a given subject evolves, their opinions, impressions, etc., so as to make them public and receive reactions and comments about them.
Instant messaging is Internet communication between users. It is similar to chat rooms in that it requires simultaneous communication between online users. However, it is different from chat rooms in that it involves communication between two individuals. In this way, instant messaging is more analogous to phone conversations. To communicate with another user using a chat program it is necessary to know the username of the user and for that user to be simultaneously online.
Chat rooms, forums, blogs and instant messaging are strong indicators of the benefits of online communications that revolve around common interests. Therefore, when thousands of individuals visit a web site simultaneously or over time, it would be extremely useful for those individuals to have the ability to easily communicate with each other. However, the existing Internet communication technologies standing alone are unsuitable to address this issue. This invention addresses this and many other problems.
Preferred and alternative embodiments of the present invention are described in detail below with reference to the following drawings:
An embodiment of the invention is directed to a method for allowing users to participate in message forums at any web site by using an Internet browser to access and display content from a web site; transmitting the web site URL to one or more servers and/or centralized databases employing one or more domain identifiers; retrieving information from the database that is associated with the URL; and displaying the information adjacent to and contemporaneously with the content from the web site.
In one embodiment, a Message Client is installed and deployed on a client computer whereby the Message-Client GUI is displayed within a browser. For example, the GUI may be displayed within a browser window as a horizontal browser band docked at the bottom of the window. However, the GUI may be displayed in other browsers, in alternative positions, or independently of a browser. To enable the Message Client functionality, the user may authenticate himself or herself by using a username and password or other form of authentication. The Message Client automatically obtains the browser's current URL and username and transmits this information over the Internet to a remote server. Alternatively, the URL may be obtained manually. The remote server accepts the URL and optional username, optionally saves the information for reference, and retrieves information associated with the URL in the server database. The URL associated information is transmitted back to the requesting Message Client and displayed in the GUI adjacent to and contemporaneously with the web site content. This information may include, but is not limited, to usernames, user information, forum names, forum messages, dates, and times. This information is received and processed by the Message Client whereby useful information is organized, formatted, and displayed in the GUI. The user may, among other things, filter, read, search, sort, move, save, print, rate users, rate forums, block users, group, pin, and organize this information. In addition, the client enables the user to communicate with other individuals by means of message forums, message boards, blogs, emails, chat rooms, or instant messaging. However, other forms of communication could also be used, like voice or symbolic communication. These communications are archived in association with corresponding web content and/or a forum, that may or may not be associated with web content, within the central server for reference by all users.
In another embodiment, the GUI may be minimized or maximized.
In yet another embodiment, the GUI buttons may be dynamically disabled and enabled depending on whether the underlying function is supported in the given context.
In an additional embodiment, the GUI menu bars may be expanded and retracted to conserve screen space.
In another embodiment, the GUI offers the user suggestions of other web sites or forums that may be of interest.
In yet another embodiment, the GUI sub-windows have scroll features to conserve screen space.
In another embodiment, hierarchical GUI menus are expandable or retractable.
In yet another embodiment, GUI sub-windows have panes that are individually resizable to conserve screen space.
In another embodiment, display information is segregated into pages whereby the user can navigate individual pages to conserve screen space.
In a further embodiment, the GUI allows the user to create, manage, or remove folders for retaining and bookmarking information relating to favorite messages, users, or forums.
In a further embodiment, advertisements are displayed in a GUI sub-window.
In a further embodiment, the user can manage account options from the GUI.
Embodiments of the invention are operational with numerous other general-purpose or special-purpose computing-system environments or configurations. Examples of well-known computing systems, environments, and/or configurations that may be suitable for use with embodiments of the invention include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, mobile devices, such as cell phones, distributed-computing environments that include any of the above systems or devices, and the like.
Embodiments of the invention may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Embodiments of the invention may also be practiced in distributed-computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed-computing environment, program modules may be located in both local- and remote-computer storage media including memory storage devices.
With reference to
Depending on the exact configuration and type of computing device, memory 104 may be volatile (such as random-access memory (RAM)), non-volatile (such as read-only memory (ROM), flash memory, etc.) or some combination of the two. This most basic configuration is illustrated in
Additionally, device 100 may have additional features/functionality. For example, device 100 may also include additional storage (removable and/or non-removable) including, but not limited to, magnetic or optical disks or tape. Such additional storage is illustrated in
Device 100 may also contain communications connection(s) 112 that allow the device to communicate with other devices. Communications connection(s) 112 is an example of communication media. Communication media typically embodies computer-readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio-frequency (RF), infrared and other wireless media. The term computer-readable media as used herein includes both storage media and communication media.
Device 100 may also have input device(s) 114 such as keyboard, mouse, pen, voice-input device, touch-input device, etc. Output device(s) 116 such as a display, speakers, printer, etc. may also be included. All such devices are well-known in the art and need not be discussed at length here.
Referring now to
In an embodiment, each of the client devices 210, 250 and servers 230, 260 may include all or fewer than all of the features associated with the device 100 illustrated in and discussed with reference to
The client devices 210, 250 are linked via the network 220 to servers 230, 260 so that computer programs, such as, for example, a browser, running on one or more of the client devices 210, 250 can cooperate in two-way communication with servers 230, 260. Server 230 may be coupled to database 240 to retrieve information therefrom and to store information thereto. Database 240 may include a plurality of different tables (not shown) that can be used by server 230 to enable performance of various aspects of embodiments of the invention.
In operation, according to an embodiment of the invention, a user of the client device 210 may download from the server 230, or otherwise conventionally obtain, computer-executable instructions that, when installed and executed by the client device 210, provide a message-forum client application 215 that includes GUI 330 displayable on a display screen 300 (
Referring to
Upon, or prior to, display of the web page 320, the GUI 330 may be displayed on the screen 300. As illustrated in
In an embodiment, the client application 215, upon the user's selection of the web page 320, prompts the client device 210 to provide to the server 230 an identifier (e.g., URL, IP address, domain name, etc.) of the network location of the selected web page. Additionally, to enable message-forum functionality, the user of the client device 210 may identify himself by providing to the server 230 a username/password combination or other conventional form of authentication.
In an embodiment, upon receipt of the address identifier, the server 230 queries the database 240 for message-forum information associated in the database with the identifier and/or web page 320. Alternatively, the server 230 may query a memory device internal to the server 230 for such message-forum information. This information may include, for example, comments pertaining to the web page 320 and previously posted to the server 230 over the network 220 by the user of the client device 210 and/or a user of, for example, the client device 250. This information may further include usernames, user information, forum names, forum messages, dates, times, and/or any other conventional information associated with online forums. If no such information is present in the database 240, the server 230 may issue a message to the client device 210 informing the user that no comments or other content pertaining to the web page 320 has been posted to the server 230.
Such associated information present in the database 240 (or other queried memory) is provided by the server 230 to the client application 215 and displayed in, or otherwise used to populate, the GUI 330. The user may, for example, filter, read, search, sort, move, save, print, rate users, rate forums, block users, group, pin, and organize this information. In addition, the client application 215, via the GUI 330, enables the user to post to the server 230 comments or other content pertaining to the web page 320 and/or forums that may or may not be associated with a web page. The server 230 may store the posted content in the database 240 in such manner as to associate the posted content with the web page 320 and/or corresponding network-location identifier. In an embodiment, the client application 215, via the GUI 330, enables the user to control the format and editorial permissions with respect to information posted by the user to the server 230. For example, the user may in this manner create a blog to which only the user may post comments. Alternatively, the user may create a “closed community” message board to which only the user and, for example, people to whom the user provides a password may post comments.
In an embodiment, each time the browser associated with window 310 is pointed to a network address (e.g., when the user transitions from one web page or site to another), the client application 215 automatically populates the GUI 330 with any information corresponding to the network address and present in the database 240. Alternatively, the client application will attempt to populate the GUI 330 only in response to manual prompting by the user.
GUI 330 may include Menus 25, 26, and 30. Menus 25 and 26 may contain selections that are relevant to the entire client software. Menu 30 may include selections that are relevant to the particular message being viewed in Sub-Window 13. Sub-Window 27 may display forums available for a particular URL, favorite forums, and recommended forums or any other information that can be displayed in a hierarchical manner. Sub-Window 20 may display messages within the particular forum selected in Sub-Window 27. The messages in Sub-Window 20 may be listed according to Subject 24, Author Name 23, Creation Date 22, and Size 21. The messages in Sub-Window 20 may be sorted by Subject 24, Author Name 23, Creation Date 22, and Size 21. Selection 31 may allow a large number of messages to be segregated and displayed in groups. Sub-Window 13 may display the message selected in Sub-Window 20 and indicate the message author's Rating 19. The user may respond to the message in Sub-Window 20 by selecting Reply Button 11. Additionally, the user may forward the message in Sub-Window 20 by selecting Forward Button 12. For example, by selecting the Forward Button 12, the user may invoke a conventional email client allowing the user to or may otherwise forward the message to a particular email address. Alternatively, the user may print the message in Sub-Window 20 by selecting Print Button 14. In addition, the user may contact the message author using Email User Button 15. The message author may be evaluated for the quality of the message using Rating Buttons 16 or 17. Finally, the user may block the message author using Block Button 18 so as to prevent all messages from the particular author from being displayed in the GUI 330. Sub-Window 10 may display dynamic or static advertisements.
In an embodiment, the server 230 may obtain forum- and/or category-categorization information over the network 220. A categories hierarchy may be represented thru textual information such as “Top/Arts/Television”. The server 230 may pre-process the data from the original table (Original) and output it to new tables that are organized such that querying the categorization and forum information is optimized. The data is processed from the Original table containing both the detailed information and the hierarchical information for categories and put into two new tables: one containing the detailed information for the categories (CatInfo) and one containing strictly the relationship between categories themselves and categories-forums relationship (CatItems).
The server 230 may extract all the detailed information from the Original table in one pass and put it in the CatInfo table; furthermore a unique identifier is created for each category. In this implementation, the unique identifier is a GUID. On a second pass the server 230 walks thru the categories and processes the hierarchical information for the category. For example, for each token delimited by the ‘/’ character in the following string, “Top/Arts/Television”, one entry will be added to the CatItems table. Each entry consists of the included category identifier in one column and the including category identifier in the other one.
For forums categorization, a similar process is applied where one entry is added for each category that includes the forum.
Table Definitions:
Query Definitions:
At a block 610, a first network-address identifier corresponding to first content associated with a first content source is received. For example, the server 260 may function to host a first web site that a user of the client device 210 desires to access. Consequently, the user may point a browser running on the client device 210 to the first web site by entering, for example, a URL, IP address, domain name and/or other identifier associated with the first web site.
At a block 620, the first network-address identifier is provided to a second content source. The second content source may have a second network address different from the first network address. For example, the client application 215 may receive from the browser, and prompt the client device 210 to provide to the server 230, the identifier entered by the user. In an embodiment, the client device 210 may further provide user-authentication information to the server 230.
At a block 630, second content corresponding to the first network-address identifier is received from the second content source. For example, the server 230 may query the database 240 for message-forum information associated in the database with the identifier and/or associated web content. Such associated information present in the database 240 is provided by the server 230 to the client application 215.
At a block 640, the second content is displayed. For example, information provided by the server 230 to the client application 215 may be displayed in, or otherwise used to populate, the GUI 330. In an embodiment, the first and second content may be displayed simultaneously in the same window, or separate respective windows, by the client device 210.
It should be noted that, in an embodiment, the process 600 can be substantially repeated with respect to second and subsequent web sites. For example, a second network-address identifier corresponding to third content associated with a third content source may be received. In this instance, a server (not shown), other than servers 230, 260, may function to host a second web site that a user of the client device 210 desires to access. Consequently, the user may point the browser running on the client device 210 to the second web site by entering, for example, a URL, IP address, domain name and/or other second identifier associated with the second web site.
This second network-address identifier may be provided to the second content source. For example, the client application 215 may prompt the client device 210 to provide to the server 230 the second identifier entered by the user.
Fourth content corresponding to the second network-address identifier may be received from the second content source. For example, the server 230 may query the database 240 for message-forum information associated in the database with the second identifier and/or associated web content. Such associated information present in the database 240 is provided by the server 230 to the client application 215.
The fourth content may then be displayed. For example, information provided by the server 230 to the client application 215 may be displayed in, or otherwise used to populate, the GUI 330.
At a block 710, an identifier of a second network address is received at a first network address from a first client device of a plurality of client devices. For example, the server 260 may function to host a web site that a user of the client device 210 desires to access. Consequently, the user may point a browser running on the client device 210 to the web site by entering, for example, a URL, IP address, domain name and/or other identifier associated with the web site. The client application 215 may then prompt the client device 210 to provide to the server 230 the identifier entered by the user.
At a block 720, in response to receiving the identifier from the first client device, first content corresponding to the second network address is provided to the first client device. For example, the server 230 may query the database 240 for message-forum information associated in the database with the identifier and/or associated web content. Information present in the database 240 is provided by the server 230 to the client application 215. This information may include user-interface elements (e.g., selectable hyperlinks, data-entry fields, etc.) enabling the user to interact with the client device 210 and/or server 230. Moreover, at least a portion of this information may have been received by the server 230 from the client device 210, 250 or other client device.
At a block 730, second content from the first client device is received at the first network address. For example, the client application 215 may enable the user of the client device 210 to post to the server 230 comments or other content that may, but need not, pertain to the web site. The server 230 may store the posted content in the database 240 in such manner as to associate the posted content with the identifier and/or associated web content.
At a block 740, the identifier is received at the first network address from a second client device of the plurality of client devices. For example, a user may point a browser running on the client device 250 to the web site hosted by the server 260 by entering the identifier associated with the web site. The client device 250 may then provide to the server 230 the identifier entered by the user.
At a block 750, in response to receiving the identifier from the second client device, the second content is provided to the second client device. For example, the server 230 may query the database 240 for message-forum information associated in the database with the identifier and/or associated web content. Such associated information present in the database 240, including the content posted by the user of the client device 210, is provided by the server 230 to the client device 250. This information may include user-interface elements (e.g., selectable hyperlinks, data-entry fields, etc.) enabling the user to interact with the client device 250 and/or server 230.
While the preferred embodiment of the invention has been illustrated and described, as noted above, many changes can be made without departing from the spirit and scope of the invention. Accordingly, the scope of the invention is not limited by the disclosure of the preferred embodiment. Instead, the invention should be determined entirely by reference to the claims that follow.
The present application claims priority from U.S. Provisional Application No. 60/651,953 filed Feb. 9, 2005, and from U.S. Provisional Application No. 60/727,288 filed Oct. 14, 2005, each of which is herein incorporated by reference.
Number | Date | Country | |
---|---|---|---|
60651953 | Feb 2005 | US | |
60727288 | Oct 2005 | US |