Abstract:
An embodiment relates generally to a method of searching. The method includes receiving a query in a structured forum and searching a general and certified knowledgebase based on the query. The method also includes providing a plurality of search results ordered based on an associated rating of each search result of the plurality of the search results.

Description:
FIELD 
     This invention relates generally to forums, more particularly, to systems and methods for improved forums. 
     DESCRIPTION OF THE RELATED ART 
     A forum can be regarded as essentially a website composed of a number of member-written threads. Each thread entails a discussion or conversation in the form of a series of user-member written posts. These threads remain saved on the forum website for future reading indefinitely or until deletion by a moderator. 
     Software packages that implement forum websites are generally well known. These software packages are widely available on the Internet in a variety of programming languages such as HypeterText Preprocess (“PHP”), Perl, Java, and active server pages (“ASP”). The configuration and records of posts can be stored in text files or in a database. 
     Although forums are an effective tool to exchange information, they are not without drawbacks and disadvantages. For example, a user trying to obtain information on a particular issue may find it very difficult to locate a definite answer on the issue. The answer may reside in different parts of different threads. If user is fortunate, another user may recall a similar thread regarding the same issue and forward the thread to the user. Accordingly, there is a need to effectively organize the information in forums for easy access and verification. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Various features of the embodiments can be more fully appreciated, as the same become better understood with reference to the following detailed description of the embodiments when considered in connection with the accompanying figures, in which: 
         FIG. 1  depicts an exemplary system in accordance with an embodiment; 
         FIG. 2  illustrates an exemplary service portal of the system shown in  FIG. 1  in accordance with another embodiment; 
         FIG. 3  depicts an exemplary knowledge server of the system shown in  FIG. 1  in accordance with yet another embodiment; 
         FIG. 4  illustrates an exemplary issue tracker server of the system shown in  FIG. 1  in accordance with yet another embodiment; 
         FIG. 5  depicts an exemplary chat server of the system shown in  FIG. 1  in accordance with yet another embodiment; 
         FIG. 6  illustrates an exemplary diagram of the forum module in accordance with yet another embodiment; 
         FIG. 7  depicts an exemplary flow diagram implemented by the forum module in accordance with yet another embodiment; 
         FIG. 8  illustrates another exemplary flow diagram implemented by the forum module in accordance with yet another embodiment; and 
         FIG. 9  depicts yet another exemplary flow diagram implemented by the forum module in accordance with yet another embodiment. 
     
    
    
     DETAILED DESCRIPTION OF EMBODIMENTS 
     For simplicity and illustrative purposes, the principles of the present invention are described by referring mainly to exemplary embodiments thereof. However, one of ordinary skill in the art would readily recognize that the same principles are equally applicable to, and can be implemented in, all types of information portals, and that any such variations do not depart from the true spirit and scope of the present invention. Moreover, in the following detailed description, references are made to the accompanying figures, which illustrate specific embodiments. Electrical, mechanical, logical and structural changes may be made to the embodiments without departing from the spirit and scope of the present invention. The following detailed description is, therefore, not to be taken in a limiting sense and the scope of the present invention is defined by the appended claims and their equivalents. 
     Embodiments relate generally to a system and method for improving Internet forums. More particularly, a structured forum can be configured to provide a mechanism for user to ask questions from a community based knowledgebase (or certified knowledgebase) as well as a general knowledgebase. The structured forum provides for a rating system to evaluate answers provided by other users and for users to search the knowledgebase with tagging for both the community based and general knowledgebases. The rating system allows the user community to rate the quality of the answers. If an answer is rated highly enough by the user community, the answer can be placed into the certified knowledgebase. The tagging of the answer provides a mechanism for the user to easily find and classify previous verified or certified answers within the community based and general knowledgebases. 
     For other unverified answers, the community based knowledgebase contains previous answers that haven&#39;t been verified or haven&#39;t been rated highly enough to enter the general knowledgebase. In some embodiments, the unverified answers can also be tagged for searching. Accordingly, a user can enter the structured forum and search for validated answers that have been community verified, i.e., certified, as well as unverified answers. 
       FIG. 1  illustrates an exemplary system  100  in accordance with an embodiment. It should be readily apparent to those of ordinary skill in the art that the system  100  depicted in  FIG. 1  represents a generalized schematic illustration and that other components may be added or existing components may be removed or modified. Moreover, the system  100  may be implemented using software components, hardware components, or combinations thereof. 
     As shown in  FIG. 1 , the system  100  includes a service portal  105  coupled to a network  125 . Users  130  can interface with the service portal  105  through the network  125 . The network  125  can be a combination of local area networks, wide area networks, public networks, and private networks or combinations thereof such as the Internet. 
     The users  130  can be interface with the service portal  105  using computing platforms such as personal computers, workstations, private local area networks (e.g., business entity or government entity) or other similar device that can provide network access and interact with the service portal  105 . 
     In some embodiments, the service portal  105  can be configured to provide services. As a non-limiting example, the service portal  105  can be configured to provide information for users to research, compare and purchase software, hardware and consulting services in support of the those software and/or hardware purchases. The service portal  105  can also be configured to provide support services by subscription to those same software and/or hardware purchases. The service portal  105  can further be configured to provide a knowledgebase for a user in a community can search for answers regarding issues. The community can comprise of registered and non-registered users. 
     The service portal  105  can be configured to provide at least the described services with a service backend  130 . The service backend  130  can comprise at least a knowledge server  110 , an issue tracker server  115  and a chat server  120 . 
     The knowledge server  110  can be configured to provide a knowledgebase for the system  100 . The knowledgebase can comprise of Wiki pages, articles, frequently asked questions, transcripts of chat sessions, forums, and other informational items related to issues deemed worth discussing by the community. The knowledge server  110  can also be configured to search and retrieve requested informational items from third party sites such as Google®, Yahoo™, etc. The knowledge server  110  can then rank and prioritize the search results from internal and external sources for the requesting user based on a single interface provided by the server portal  105 . In some embodiments, the knowledge server  110  can be implemented on a separate server using open-source technologies. 
     The service portal  105  can also be configured to interface with the issue tracker server  115 , which provide support services for the service portal  105 . More particularly, a user may have a problem or issue with a purchased software and/or hardware from the service portal  105 . The user can return to the service portal  105  and request support services based on a purchased service subscription through a user interface generated by the service portal  105 . The service portal  105  can redirect the support request to the issue tracker server  115 . The issue tracker server  115  can open an associated service ticket for resolution by support personnel. The issue tracker server  115  can also be configured to attach transcripts of any chat sessions between the support personnel and the user as well as documenting the solution(s) to the issue of the user. In some aspects, the documented solution can be converted into an article, added to a frequently asked question list, Wiki page, etc., and passed onto the knowledge server  110 . 
     The chat server  120  can be configured to couple with the service portal  105 . A user with an issue or question can log into the service portal  105  and search for solutions and/or answers. The service portal  105  can generate a user interface and display an option for requesting assistance via a chat session. If a user selects this option, the service portal  105  can pass the request over to the chat server  120 . The chat server  120  can be configured to provide the chat session to the user via another user interface provided by the service portal  105 . The chat server  120  can also be configured to save the chat sessions for later review. For example, support personnel can turn the chat session into an article or extract discussed solutions in the chat sessions into or add to a frequently asked questions list. 
       FIG. 2  illustrates a more detailed block diagram of the service portal  105  in accordance with another embodiment. It should be readily apparent to those of ordinary skill in the art that the service portal  105  depicted in  FIG. 2  represents a generalized schematic illustration and that other components may be added or existing components may be removed or modified. 
     As shown in  FIG. 2 , the service portal  105  can comprise a user interface module  205 , a controller module  210 , a broker module  215 , a business logic module  220 , a database interface module  225 , and a logging module  245 . The user interface module  205  can be configured to generate the graphical user interfaces (“GUIs”) for users to interact with service portal  105 . The user interface module  205  can generate the necessary functionality of the GUIs based on hypertext markup language (“HTML”) code, cascading style sheets (“CSS”) and/or Java Server Pages (“JSP”). 
     The user interface module  205  can be configured with a controller module  210 , which is configured to provide code support for the functionality embedded in the GUIs of the user interface module  205 . More particularly, the controller module  210  can comprise DWR, Dojo, and a library of JavaScript apps. The controller module  210  can be implemented using direct web remoting (DWR). DWR can be considered a Java and JavaScript open source library which allows a programmer to write Asynchronous JavaScript and XML (“Ajax”) web applications or interactive web applications. DWR allows generally JavaScript code in the GUI generated by the user interface module  205  to use Java methods. 
     The Dojo component can be considered an open-source JavaScript Toolkit to construct the dynamic web user interfaces. As such, the controller module  210  can dynamically generate user interfaces to pass along to the user interface module  205  for display to a user. 
     The library of JavaScript apps can define a list of pre-determined functionality that users are likely to call. For example, one JavaScript can be “Get Price of Product X”. 
     The controller module  210  can also be coupled with the broker module  215 . The broker module  215  can be configured to provide a high-level business logic for the service portal  105 . More particularly, the business logic can generally filter and direct an incoming request to the appropriate server of the service backend  130 . For example, the broker module  215  can receive a request for delivery terms on a selected piece of hardware. The broker module  215  can identify the server that can satisfy the request, e.g., service portal  105 , and forward the request to the selected server. Similarly, a request for technical support can be identified by the broker module  215  and be forwarded to the issue tracker server  215  to be serviced. 
     The broker module  215  can also be coupled with business logic  220 , which is configured to contain the logic to provide the desired business services from the broker module  215  such as processing requests for the database  230 . The business logic module  225  can also provide a schema for inquiries to the databases  230 . The databases  230  can, abstractly, contain two databases: a user profile database  235  and a product catalog  240 . The databases  230  can be implemented using any type of database systems provided by vendors such as MySQL, Oracle, Sybase, International Business Machines, etc. The business logic module  220  can provide the schema to formulate queries to pass to the databases  230  through the database interface module  225 . The business logic module  220  can be implemented using an open source lightweight framework such as Spring Application Framework supported by data access objects, beans, and manager. 
     The database interface module  225  can be configured to provide an abstraction between the databases  230  and the business logic module  220 . The database interface module  225  can be implemented with Hibernate or other similar abstractions. The database interface module  225  provides object relational mapping and persistence management with the databases  230 . 
     The modules  205 - 225  of the service portal  105  can also be implemented using an open source servlet container and webserver such as Tomcat™ in some embodiments. Other embodiments could use proprietary servlet container and webserver technologies. 
     The logging module  245  can be configured to couple with the user interface module  205 , the controller module  210 , the broker module  215 , the business logic module  220  and the database interface module  225 . The logging module  245  can also be configured to provide logging and exception handling for all the coupled modules  205 - 225 . The aforementioned module can provide functions which may be commonly called by the rest of modules  205 - 225  of the service portal  105 . The logging module  245  can be implemented using aspect-oriented programming as known to those skilled in the art. 
       FIG. 3  illustrates a more detailed block diagram of the knowledge server  110  in accordance with another embodiment. It should be readily apparent to those of ordinary skill in the art that the knowledge server  110  depicted in  FIG. 3  represents a generalized schematic illustration and that other components may be added or existing components may be removed or modified. 
       FIG. 2  and  FIG. 3  share some common components. As such, the description of the common components is being omitted and the description of these components with respect to the  FIG. 2  is being relied upon to provide adequate description of the common components. 
     As shown in  FIG. 3 , the knowledge server  110  can comprise at least a user interface module  305 , a controller module  310 , a broker module  315 , a business logic module  320  and a database interface module  325 . 
     Similar to the service portal  105 , the user interface module  305  of the knowledge server  110  can be configured to provide the GUIs for users to interact with the knowledge server  110 . The functionality for selected actions by the users is provided by the controller module  310 . The controller module  310  can be configured to provide the associated code for the requested functionality of the selected action in the GUI. The broker module  315  can be configured to provide high-level business logic for the knowledge server  110 . More particularly, the broker module  315  can provide filtering for the requests entering the knowledge server  110 . For these requests, the broker module  315  can receive these requests from the service portal  105  through the server interface  335 . The server interface  330  can be implemented using simple object access protocols, web services, etc. The knowledge server  110  can also user the server interface  335  to return requested information to the service portal  105 . Unlike the service portal  105 , the knowledge server  110  can be configured to prevent direct access to the knowledge server  110  but can only be accessed through the service portal  105 . 
     The broker module  315  of the knowledge server  110  can also be coupled to the business logic module  320 , which is configured to contain the logic to provide the desired business services as received from the broker module  315  such as processing requests for the database  330 . The business logic module  325  can also provide a schema for queries into the knowledgebase database  330 . The database interface module  325  can be configured to provide a level of abstraction between the queries from the broker module  320  to the actual physical implementation of the knowledgebase database  330 . As previously described, the knowledgebase database  330  can be implemented with database architectures provided by vendors such as MySQL, Oracle, Sybase, International Business Machines, and other similar manufacturers. 
     The modules  305 - 325  of the service portal  105  can also be implemented using be implemented using an open source servlet container and webserver such as Tomcat™ in some embodiments. Other embodiments could use proprietary servlet container and webserver technologies. 
       FIG. 4  illustrates a more detailed block diagram of the issue tracker server  115  in accordance with another embodiment. It should be readily apparent to those of ordinary skill in the art that the issue tracker server  115  depicted in  FIG. 4  represents a generalized schematic illustration and that other components may be added or existing components may be removed or modified. 
     As shown in  FIG. 4 , the issue tracker server  115  can comprise a user interface module  405 , a controller module  410 , a database  415 , and a server interface  425 . Similar to the service portal  105  and the knowledge server  110 , the user interface module  405  of the issue tracker server  115  can be configured to generate GUIs for the service portal  105  to interface thereto. As with the knowledge server  110 , the service portal  105  provides a unified interface to the issue tracker server  115 . The service portal  105  can be configured to receive requests from users to access the issue tracker server  115 . The received requests are processed by the issue tracker server  115  and any information is returned using the issue tracker server&#39;s GUIs as generated by the user interface module  405 . The service portal  105  reformats any returning information from the issue tracker server  115  and the other servers in a unified GUI generated by the user interface module  105  of the service portal  105 . Accordingly, a user can be presented with information from the servers  110 - 120  in a consistent format. 
     The user interface module  405  can be implemented using HTML code, CSS sheets, Hypertext Pre-Processor (“PHP”) code and/or Resources of a Resource (ROR) code. The controller module  410  can provide the associated code for the functionality provided by the GUIs generated by the user interface module  405 . 
     The controller module  410  can be configured to communicate with the other servers ( 205 ,  210 , and/or  220 ) through a communication interface  415 . The communication interface  415  can use SOAP or web service protocols over the Internet to provide the communication conduit. 
     The controller module  410  can also be configured to interface with the database  420 . The database  420  can be configured to store the open and closed service tickets. The database  420  can also be configured to store links to or the actual articles, chats session used to resolve the issue. In some embodiments, the database  420  can be implemented using MySQL 5.x database or other open source database. Other embodiments, the database  420  can be implemented using proprietary databases such as Oracle, Sybase, IBM, etc. 
     Although  FIG. 4  depicts the user interface module  505 , controller module  510 , and the database interface module  515  as separate components, these modules  505 - 515  can be implemented using LAMP, which is an open source Web development platform based on Linux, Apache, MySQL, and PHP. 
       FIG. 5  illustrates a more detailed block diagram of the chat server  120  in accordance with another embodiment. It should be readily apparent to those of ordinary skill in the art that the chat server  120  depicted in  FIG. 5  represents a generalized schematic illustration and that other components may be added or existing components may be removed or modified. 
     The chat server  120  can be configured to provide chat services for users. The chat server  120  can provide a communication link between users and a group of support personnel. The users can request access to support through a GUI of the service portal  105 . Some embodiments can use Wildfire to provide group and instant messaging service using the Extensible Messaging and Presence Protocol (“XMPP”). 
     As shown in  FIG. 5 , the chat server  120  can comprise a user interface module  505 , a controller module  210 , a database interface module  215  and a database  220 . The user interface module  505  of the chat server  120  can be configured to generate GUIs for the service portal  105  to interface thereto. The user interface module  505  can be implemented using HTML code, CSS, and/or Java Server pages. 
     As with the knowledge server  110  and the issue tracker server  115 , the service portal  105  provides a unified interface to the chat server  120 . The service portal  105  can be configured to receive requests from users to access the chat server  115 . The received requests are processed by the chat server  120  to start a chat session with someone from a group of technical support personnel. 
     The received requests for chats can be processed by the controller module  510 , which contains the associated code for the selected function in the GUI by a user. The controller module  510 , in some embodiments, can be implemented using DWR. 
     The controller module  510  can also interface with a database interface module  515 . The database interface module  515  can be configured to translate queries from the controller module  510  to appropriate format of the database  520  to store and retrieve information. The information stored in the database  520  can comprise of chat sessions between users and support personnel. In some embodiments, the database  520  can be implemented with a MySQL database. Returning to the database interface module  515 , this module  515  can be implemented using plain old Java objects as known to those skilled in the art. 
     Although  FIG. 5  depicts the user interface module  505 , controller module  510 , and the database interface module  515  as separate components, other embodiments can implement the functionality of these modules can be implemented using Tomcat Servlet container and web server from Apache Software Foundation. 
     Returning to  FIG. 3 , the knowledge server  110  can be configured with a forum module  340  embedded in the controller module  510 . The forum module  340  can be configured to provide a structured forum. The structure forum can provide a mechanism for users to ask questions from a community based (or certified) knowledgebase as well as a general knowledgebase. The structured forum provides for a rating system to evaluate answers provided by other users and for users to search the knowledgebase with tagging for both the community based and general knowledgebases. The rating system allows the user community to rate the quality of the answers. If an answer is rated highly enough by the user community, the answer can be placed into the certified knowledgebase. The tagging of the answer provides a mechanism for the user to easily find and classify previous verified or certified answers within the community based and general knowledgebases. 
     For other unverified answers, the general knowledgebase contains previous answers that haven&#39;t been verified or haven&#39;t been rated highly enough to enter the certified knowledgebase. In some embodiments, the unverified answers can also be tagged for searching. Accordingly, a user can enter the structured forum and search for validated answers that have been certified or community verified as well as view unverified answers. 
       FIG. 6  illustrates a block diagram of the forum module  340  in accordance with yet another embodiment. It should be readily apparent to those of ordinary skill in the art that the forum module  340  depicted in  FIG. 6  represents a generalized schematic illustration and that other components may be added or existing components may be removed or modified. 
     As depicted in  FIG. 6 , the forum module  340  comprises of a manager module  605  coupled to the user interface module  305 , the database interface module  325 , and a rating module  615 . The manager module  605  is configured to implement the functionality of the forum module  340  as previously described and described in greater detail below with respect to  FIGS. 7-9 . The manager module  605  can be implemented in software code (Java, C, C++, etc.), hardware device (application specific integrated circuit, field programmable gate array, microprocessor, etc.) or combination thereof. 
     Although manager module  605  is depicted as a separate module in  FIG. 3 , it is readily obvious to those of ordinary skill in the art that the functionality of the manager module  605  can be implemented within the controller module  310  or the broker module  315  without departing from the teachings of the described embodiments. 
     The manager module  605  can access the user interface module  305  through the existing controller module  310  interfaces with the user interface module  305  as previously described. The user interface module  305  can be configured to generate GUIs to allow a user to search for information, review responses/answers to posts in the structured forums, and allow users to evaluate the responses/answers. 
     The manager module  605  can be configured to access the database  330  through the existing pathways between the controller module  310  and the database interface module  325 . Accordingly, the manager module  605  can issue requests to the database  330  to search and retrieve items from the database  330 . 
     In some embodiments, the database  330  can include, among other things, a general (or unverified) knowledgebase  345  and a certified knowledgebase  350 . The knowledgebase  345  can be configured to store the threads, responses/answers, and the associated metadata of the stored data. The associated metadata can include, among other things, tags, rating information, and/or review data. 
     The certified knowledgebase  350  can be configured to also store threads, responses/answers and the associated metadata. However, the information stored in the certified knowledgebase  350  has been verified. More particularly, the information has been reviewed and rated high enough by a variety of users to exceed a predetermined threshold. Once this predetermined threshold is crossed, an information item can be placed within the certified knowledgebase  350 . 
     Periodically or by command of a site administrator, the manager module  605  can be configured to review the metadata associated with items in the knowledgebase  345 . If the rating of a selected item crosses the predetermined threshold (based level of rating, number of reviews, etc.), the manager module  605  can be configured to flag the selected item and move over to the certified knowledgebase  350 . 
     In some embodiments, the information from the certified knowledgebase  350  is preferentially displayed and/or highlighted than the information from the knowledgebase  345  for a given query. For example, a result list would order items from the certified knowledgebase  350  higher than items from the knowledgebase  345 . Accordingly, a subsequent user can be assured that the requested information is valid and updated without shifting through the chaff of irrelevant information. 
     The ratings module  610  can be configured to provide a mechanism for a user to review, evaluate the utility of the information item, and store the rating. More particularly, the manager module  605  can invoke the rating module  610  to display a GUI such as an overlay or a web-page to query the user regarding the information item. The rating module  610  can be configured to receive information from user input a designation (numerical or alphabetical) representing a factor of factor. The utility factor can be based on a variety of factors such as accuracy of the information, presentation, style, etc. The ratings module  610  can also receive a review of the article as written by the reviewer of the information item. The ratings module  610  can store this information in the database  330  and provide a link to the stored information where the link is associated (e.g., stored with the metadata) with the information item. 
       FIG. 7  illustrates a flow diagram  700  implemented by the forum module  340 . It should be readily apparent to those of ordinary skill in the art that the flow diagram  700  depicted in  FIG. 7  represents a generalized schematic illustration and that other steps may be added or existing steps may be removed or modified. 
     As shown in  FIG. 7 , a user can review an information item, in step  705 . More particularly, the user may have accessed the service portal  105  through their local computer via a web browser such as Opera, Mozilla, Internet Explorer, or other similar web browser applications. The service portal  105  can present a GUI for the user to search for items in the database  330  of the knowledge server  110 . The service portal  105  can be configured to process the request for the selected query to the controller module  215  of the service portal  105  and forward the request to the knowledge server  110  through the server interface  335 . The knowledge server  110  can be configured to process the request through the broker module  315  of the knowledge server  315 , which passes the request through the business logic module  320  and database interface module  325 . The items matching the request are returned from the database  330  and possibly other third-party source can then be returned to the service portal  105 . 
     In step  710 , the user can rate the reviewed knowledge item, i.e., the thread item, with a numerical and/or alphabetical designation representing the rating of the thread item by entering the designation on a displayed GUI. When the user completes the rating, the user can click a graphical icon which then associates the designation or rating with the thread item, in step  715 . The rating given by the user can be associated with the thread item by placing a link to the rating or including the rating within the metadata of the thread item. In some embodiments, a review written by the user may also be included in the link. In other embodiments, the rating module  610  of the forum module  340  can be configured to maintain the number of ratings and the level of the ratings for each selected item and arrive at a ranking. The ranking of the thread item is also linked or included with the thread item, which is stored in the knowledgebase  345   
     In some embodiments, the forum module  340  can direct a second GUI to be displayed for the user to associate any tag terms with the thread item, in step  720 . More particularly, the second GUI can have a entry box to enter at least one term from the set of community tag terms  615  that the user would like to associate with the thread item. 
     When the user completes the list of associated tag terms, the user can submit the list of associated tag terms to the forum module  340  by activating an appropriate GUI widget to transfer the information as known to those skilled in the art and to associate the list with the thread item, in step  725 . The forum module  340  can be configured to store the list of the associated tag terms in the metadata of thread item or place a link to the list in the metadata of the thread item, in step  730 . 
       FIG. 8  illustrates a flow diagram  800  implemented by the forum module  340  in accordance with yet another embodiment. It should be readily apparent to those of ordinary skill in the art that the flow diagram  800  depicted in  FIG. 8  represents a generalized schematic illustration and that other steps may be added or existing steps may be removed or modified. 
     As shown in  FIG. 8 , the manager module  605  of the forum module  340  can be configured to retrieve a thread item from the knowledgebase  345 , in step  805 . More particularly, the manager module  605  can be invoked periodically or by command by a system administrator to implement this flow diagram. The manager module  605  can be configured to retrieve the ranking of the retrieved thread item and compare the ranking with the predetermined threshold. More particularly, the manager module  605  can retrieve the ranking from the metadata associated with the thread item either directly or by linked. If the ranking of the thread item exceeds the predetermined threshold, in step  810 , the manager module  605  can be configured to move the selected thread item to the certified knowledgebase  350 , in step  815  and subsequently go to the processing of step  820 . 
     Otherwise, if the ranking of the thread item does not exceed the predetermined threshold, in step  810 , the manager module  605  can be configured to determine whether the selected thread item is the last item in the knowledgebase  345 , in step  820 . If the selected thread item is not the last item, the manager module  605  can be configured to go to the next thread item, in step  825 . Subsequently, the manager module  605  can return to the processing of step  805 . Otherwise, if the selected thread item is the last item in the knowledge item  345 , the manager module  605  can be configured to end or go to sleep. 
       FIG. 9  illustrates a flow diagram  900  implemented by the forum module  340  in accordance with yet another embodiment. It should be readily apparent to those of ordinary skill in the art that the flow diagram  900  depicted in  FIG. 9  represents a generalized schematic illustration and that other steps may be added or existing steps may be removed or modified. 
     As shown in  FIG. 9 , in step  905 , a user can enter search terms in a GUI generated by a service portal  105  to search for items in the structured forum of the knowledge server  110 . The user can enter random terms and/or use terms from a set of community of tag terms to search for information items from the knowledge server  110  in the selected GUI. 
     The controller module  210  of the service portal  105  can be configured to format a request packet to the knowledge server  110 , which is passed to the broker module  210  through the server interface  335  and the broker module  315  of the knowledge server  110 . 
     The broker module  315  of the knowledge server  110  can be configured to pass the request packet to the business logic module  320  to formulate a query for the database  330  through the database interface module  325 , in step  910 . More particularly, the query searches the knowledgebase  345  and the certified knowledgebase  350 . In some embodiments, the knowledge server  110  can be configured third party web sites with the selected tag terms. The third party web site results can be grouped and ranked with the results from the knowledgebase  345  and the certified knowledgebase  350 , where the results from the certified knowledgebase  350  are prominently displayed by ranking, in step  915 . 
     In step  920 , the broker module  315  of the knowledge server  110  can forward the search results in a ranked fashion. More particularly, the results are passed onto the service portal  105  where the results are displayed by another GUI generated by the controller module  210  of the service portal  105 . 
     Certain embodiments may be performed as a computer program. The computer program may exist in a variety of forms both active and inactive. For example, the computer program can exist as software program(s) comprised of program instructions in source code, object code, executable code or other formats; firmware program(s); or hardware description language (HDL) files. Any of the above can be embodied on a computer readable medium, which include storage devices and signals, in compressed or uncompressed form. Exemplary computer readable storage devices include conventional computer system RAM (random access memory), ROM (read-only memory), EPROM (erasable, programmable ROM), EEPROM (electrically erasable, programmable ROM), and magnetic or optical disks or tapes. Exemplary computer readable signals, whether modulated using a carrier or not, are signals that a computer system hosting or running the present invention can be configured to access, including signals downloaded through the Internet or other networks. Concrete examples of the foregoing include distribution of executable software program(s) of the computer program on a CD-ROM or via Internet download. In a sense, the Internet itself, as an abstract entity, is a computer readable medium. The same is true of computer networks in general. 
     While the invention has been described with reference to the exemplary embodiments thereof, those skilled in the art will be able to make various modifications to the described embodiments without departing from the true spirit and scope. The terms and descriptions used herein are set forth by way of illustration only and are not meant as limitations. In particular, although the method has been described by examples, the steps of the method may be performed in a different order than illustrated or simultaneously. Those skilled in the art will recognize that these and other variations are possible within the spirit and scope as defined in the following claims and their equivalents.