Brainstorming in a cloud environment
Claim Score by NHIP
Abstract
The embodiments provide a cloud brainstorming service implemented on at least one cloud server. The brainstorming service includes a message service component configured to receive a plurality of ideas, over a network, from one or more users of devices. The users represent members of a brainstorming session. The brainstorming service also includes a brainstorming logic component configured to process the plurality of ideas and store the plurality of processed ideas in an in-memory database system, and a clustering component configured to retrieve the plurality of processed ideas from the in-memory database system and arrange the plurality of processed ideas into one or more clusters, where each cluster is a group of similar ideas. The message service component is configured to provide the plurality of processed ideas that are arranged into the one or more clusters, over the network, to the one or more users for display.

Term
7.5 yearsto projected expiry
Projected expiry 25 March 2034, counted from filing; an application has no term until it is granted.
- Priority
- Filed
- Published
- Today
- Projected expiry
20 claims: 3 independent, 17 dependent
- 1A cloud brainstorming service implemented on at least one cloud server, the brainstorming service comprising:at least one processor;a non-transitory computer-readable storage medium including instructions executable by the at least one processor, the instructions configured to implement, a message service component configured to receive a plurality of ideas, over a network, from one or more users of devices, the users representing members of a brainstorming session;a brainstorming logic component configured to process the plurality of ideas and store the plurality of processed ideas in an in-memory database system;and a clustering component configured to retrieve the plurality of processed ideas from the in-memory database system and arrange the plurality of processed ideas into one or more clusters, each cluster being a group of similar ideas, the message service component configured to provide the plurality of processed ideas that are arranged into the one or more clusters, over the network, to the one or more users for display.
- 13Broadest claimClaim Score 63, broad(NHIP)A method for brainstorming performed by at least one or more processors, the method comprising:receiving a plurality of ideas, over a network, from one or more users of devices, the users representing members of a brainstorming session;processing the plurality of ideas and storing the plurality of processed ideas in an in-memory database system;retrieving the plurality of processed ideas from the in-memory database system and arranging the plurality of processed ideas into one or more clusters, each cluster being a group of similar ideas;and providing the plurality of processed ideas that are arranged into the one or more clusters, over the network, to the one or more users for display.
- 20A non-transitory computer-readable medium storing instructions that when executed cause one or more processors to perform a brainstorming process, the instructions comprising instructions to:receive a plurality of ideas, over a network, from one or more users of devices, the users representing members of a brainstorming session;process the plurality of ideas and store the plurality of processed ideas in an in-memory database system;retrieve the plurality of processed ideas from the in-memory database system and arrange the plurality of processed ideas into one or more clusters, each cluster being a group of similar ideas;and provide the plurality of processed ideas that are arranged into the one or more clusters, over the network, to the one or more users for display.
Independent claims3
94 paragraphs in 5 sections, as filed
CROSS-REFERENCE TO RELATED APPLICATION
0001This application claims priority under 35 U.S.C. §119 to Chinese Patent Application No. 201210175201.6, filed on May 30, 2012, titled “BRAINSTORMING IN A CLOUD ENVIRONMENT”, which is incorporated herein by reference in its entirety.
BACKGROUND
0002With respect to product innovation or daily management, brainstorming activities are becoming more and more important. Brainstorming may be considered a group or individual creativity technique by which efforts are made to find a conclusion for a specific problem by gathering a list of ideas contributed by its members. Although there are various types of specific techniques, in conventional brainstorming sessions, most people use sticky notes and a white board as tools to facilitate the collection and organization of ideas for a particular topic. In one example, the topic may be ideas to work more efficiently. As such, one or more members of the brainstorming session may contribute ideas (e.g., PowerPoint presentations, time lines, additional meeting rooms, etc.), which are written down on sticky notes, and then arranged into clusters (categories) on the white board. However, such mechanisms are inefficient and are limited to people in the same location having a large white board with sticky notes. Further, the ideas presented on the white board are typically not organized in a consistent manner, and it is relatively subjective and difficult to classify the ideas in an organized manner. Also, such a conventional mechanism makes it nearly impossible to have more than one version of the clusters, and require additional time for generating a summary for the brainstorming session. Further, such brainstorming sessions are typically not shared with different teams.
SUMMARY
0003Embodiments provide a cloud brainstorming service implemented on at least one cloud server. The brainstorming service includes a message service component configured to receive a plurality of ideas, over a network, from one or more users of devices. The users represent members of a brainstorming session. The brainstorming service also includes a brainstorming logic component configured to process the plurality of ideas and store the plurality of processed ideas in an in-memory database system, and a clustering component configured to retrieve the plurality of processed ideas from the in-memory database system and arrange the plurality of processed ideas into one or more clusters, where each cluster is a group of similar ideas. The message service component is configured to provide the plurality of processed ideas that are arranged into the one or more clusters, over the network, to the one or more users for display.
0004In one embodiment, the message service component may be configured to provide, over the network, an idea submission page to the one or more users for display in response to a new brainstorming event, where the idea submission page provides a template to permit the users to submit ideas. Also, the message service component may be configured to receive, over the network, the plurality of ideas from the one or more users after submission by the one or more users.
0005The message service component configured to provide an idea submission page to the one or more users for display in response to a new brainstorming event may include providing, over the network, a new brainstorming session template to a host of the brainstorming session. The host may be one of the users. The new brainstorming session template may provide brainstorming settings for selection by the host. The providing an idea submission page may also include receiving, over the network, the selected brainstorming settings including information identifying the members of the brainstorming session and providing, over the network, the idea submission page to each of the members.
0006The brainstorming logic component configured to process the plurality of ideas may include a duplication checker configured to detect duplicate ideas among the plurality of ideas and delete the detected duplicate ideas.
0007In one embodiment, the duplication checker may determine whether any synonyms exists for each word in each idea based on a reference dictionary stored in the in-memory database system, replace each word with an assigned word if a synonym exists for a corresponding word, calculate a similarity metric for each of the plurality of ideas, and detect a duplicate idea if two or more ideas have a similarity metric above a threshold value. Also, the duplication checker may merge duplicate ideas into a single idea while retaining submitter information for each of the users who submitted the duplicate ideas.
0008In one embodiment, the clustering component may select the plurality of processed ideas from the in-memory database system. Each idea may be a text string. Also, the clustering component may filter the selected plurality of processed ideas including parsing the plurality of processed ideas into word sets, removing stop words from each word set, extracting words from the word sets, and selecting feature words from the extracted words. Further, the clustering component may transform text data of the selected feature words into a plurality of vector space models (VSMs), and arrange the plurality of processed ideas into one or more clusters based on the plurality of VSMs.
0009The brainstorming logic component may include a manual adjuster configured to receive adjustment information, over the network, from a host of the brainstorming session and to adjust the one or more clusters based on the adjustment information including at least one of adding a new cluster, changing a name of the cluster, adjusting the ideas among the plurality of clusters, creating a new idea, and combining duplicate ideas.
0010The brainstorming logic component may include a summary generator configured to automatically generate a summary of the brainstorming session. The summary may include the plurality of ideas, cluster result information and voting result information. According to one aspect, the summary generator may be configured to provide the summary in an email communication, within a document for display, or a link to an internal portal.
0011The brainstorming logic component may include an idea voting component configured to receive voting information, over the network, from each of the members, and the message service component may be configured to provide, over the network, voting results information to be displayed with the plurality of ideas.
0012The in-memory database may be configured to store brainstorming topics, ideas, and results, and the brainstorming logic component may include a social share component configured to analyze relationships and similarities between each topic and idea. The message service component may be configured to provide a plurality of topics and ideas displayed according to their similarity.
0013The embodiments also provide a method for brainstorming performed by at least one or more processors. The method may include receiving a plurality of ideas, over a network, from one or more users of devices. The users may represent members of a brainstorming session. The method further includes processing the plurality of ideas and storing the plurality of processed ideas in an in-memory database system, retrieving the plurality of processed ideas from the in-memory database system and arranging the plurality of processed ideas into one or more clusters, each cluster being a group of similar ideas, and providing the plurality of processed ideas that are arranged into the one or more clusters, over the network, to the one or more users for display.
0014According to one embodiment, the receiving step may include providing, over the network, an idea submission page to the one or more users for display in response to a new brainstorming event, where the idea submission page provides a template to permit the users to submit ideas, and receiving, over the network, the plurality of ideas from the one or more users after submission by the one or more users.
0015The providing, over the network, an idea submission page to the one or more users for display in response to a new brainstorming event may include providing, over the network, a new brainstorming session template to a host of the brainstorming session. The host may be one of the users. The new brainstorming session template may provide brainstorming settings for selection by the host. The method may further include receiving, over the network, the selected brainstorming settings including information identifying the members of the brainstorming session and providing, over the network, the idea submission page to each of the members.
0016The processing the plurality of ideas may include detecting duplicate ideas among the plurality of ideas including determining whether any synonyms exists for each word in each idea based on a reference dictionary stored in the in-memory database system, replacing each word with an assigned word if a synonym exists for a corresponding word, calculating a similarity metric for each of the plurality of ideas and detecting a duplicate idea if two or more ideas have a similarity metric above a threshold value. The deleting the detected duplicate ideas may include merging duplicate ideas into a single idea while retaining submitter information for each of the users who submitted the duplicate ideas.
0017The method may further include selecting the plurality of processed ideas from the in-memory database system, where each idea may be a text string, and filtering the selected plurality of processed ideas including parsing the plurality of processed ideas into word sets, removing stop words from each word set, extracting words from the word sets, and selecting feature words from the extracted words. The method may further include transforming text data of the selected feature words into a plurality of vector space models (VSMs), and arranging the plurality of processed ideas into one or more clusters based on the plurality of VSMs.
0018The method may further include receiving adjustment information, over the network, from a host of the brainstorming session, and adjusting the one or more clusters based on the adjustment information including at least one of adding a new cluster, changing a name of the cluster, adjusting the ideas among the plurality of clusters, creating a new idea, and combining duplicate ideas.
0019The method may further include automatically generating a summary of the brainstorming session. The summary may include the plurality of ideas, cluster result information and voting result information.
0020The embodiments may provide a non-transitory computer-readable medium storing instructions that when executed cause one or more processors to perform a brainstorming process. The instructions comprising instructions to receive a plurality of ideas, over a network, from one or more users of devices, process the plurality of ideas and store the plurality of processed ideas in an in-memory database system, retrieve the plurality of processed ideas from the in-memory database system and arrange the plurality of processed ideas into one or more clusters, and provide the plurality of processed ideas that are arranged into the one or more clusters, over the network, to the one or more users for display.
0021The details of one or more implementations are set forth in the accompanying drawings and the description below. Other features will be apparent from the description and drawings, and from the claims.
BRIEF DESCRIPTION OF THE DRAWINGS
0022<figref idref="DRAWINGS">FIG. 1</figref> illustrates a system for providing a cloud brainstorming service according to an embodiment;
0023<figref idref="DRAWINGS">FIG. 2</figref> illustrates a brainstorming logic component of the system of <figref idref="DRAWINGS">FIG. 1</figref> according to an embodiment;
0024<figref idref="DRAWINGS">FIG. 3</figref> is a flowchart illustrating example operations of the cloud brainstorming service using the system of <figref idref="DRAWINGS">FIG. 1</figref> according to an embodiment;
0025<figref idref="DRAWINGS">FIG. 4</figref> is a flowchart illustrating example operations of a duplicate checker of the brainstorming logic component according to an embodiment;
0026<figref idref="DRAWINGS">FIG. 5</figref> is a flowchart illustrating example operations of a clustering component of the system of <figref idref="DRAWINGS">FIG. 1</figref> according to an embodiment;
0027<figref idref="DRAWINGS">FIG. 6</figref> illustrates a screenshot depicting a home page providing an overview of existing brainstorming sessions according to an embodiment;
0028<figref idref="DRAWINGS">FIG. 7</figref> illustrates a new brainstorming session template according to an embodiment;
0029<figref idref="DRAWINGS">FIG. 8</figref> illustrates an idea submission page according to an embodiment;
0030<figref idref="DRAWINGS">FIG. 9</figref> illustrates a screenshot providing cluster results according to an embodiment;
0031<figref idref="DRAWINGS">FIG. 10</figref> illustrates a screenshot depicting the voting results according to an embodiment;
0032<figref idref="DRAWINGS">FIG. 11</figref> illustrates a screenshot depicting a social share aspect according to an embodiment; and
0033<figref idref="DRAWINGS">FIG. 12</figref> illustrates a screenshot depicting ideas in a topic group according to an embodiment.
DETAILED DESCRIPTION
0034Embodiments provide a cloud-based service for brainstorming, which allows people in different locations having access to the web or mobile device to participate in live brainstorming sessions. Among other features, the cloud brainstorming service provides an automatic clustering mechanism which automatically groups similar ideas, thereby allowing the host and participants to be more focused on the creation of ideas themselves, as opposed to organizing the submitted ideas, which may be relatively difficult if the brainstorming session includes a large number of participants. Further, the embodiments encompass the use of an in-memory database system, which permits the cluster results to be provided to the participants in real-time or near real-time. Further, the user has the option of adjusting the cluster results manually (e.g., adding a new cluster, changing a name of the cluster, adjusting the ideas among the plurality of clusters, creating a new idea, and combining duplicate ideas). Also, the cloud brainstorming service may encompasses a social share component, which allows users to view brainstorming sessions (e.g., topics, ideas) conducted by other groups or team members. The similar topics may be grouped together as well as similar ideas within each topic so that a user may easily browse brainstorming sessions, thereby reducing duplicate efforts.
0035According to one aspect, the cloud brainstorming service may provide a new brainstorming template over a network to a host of a brainstorming session after the host logs into the system and selects a new brainstorming session option. Then, the host is able to enter brainstorming settings such as the period of time when the brainstorming session is active, the participants (or members), a brief description of the session, and one or more topics for which ideas are solicited. Upon receiving the brainstorming settings, the cloud brainstorming service may provide an idea submission page to each of the participants. During the time period identified by the brainstorming settings, each participant may enter and submit his/her ideas for each identified topic, and the cloud brainstorming service is configured to de-duplicate redundant ideas, arrange the submitted ideas into one or more clusters (e.g., categories) and provide the clustered ideas over the network in real-time as each user submits his/her ideas. Although the participants are located in different locations, the clustered results may be displayed via a user interface that is common to each of the members so that each participant can view the submitted results as the ideas are populated. The ideas and clustered results may be stored in the in-memory database system, which allows for relatively quick processing and retrieval. These and other features are further explained with reference to the figures.
0036<figref idref="DRAWINGS">FIG. 1</figref> illustrates a system <b>100</b> for providing a cloud brainstorming service according to an embodiment. The system <b>100</b> may include a plurality of user devices <b>102</b>, as shown in the user interface (UI) layer. A user may operate the device <b>102</b>-<b>1</b> or the device <b>102</b>-<b>1</b> to log into the system <b>100</b>, and create/join a brainstorming session. The UI layer may be developed by Hyper Text Markup Language 5 (e.g., HTML5), and may be configured to operate in different types of browsers and platforms.
0037By way of non-limiting example, then, the devices <b>102</b> may include a laptop or desktop computer, a netbook, a tablet computer, a smartphone, a camera, or any device capable of accessing a network. As known, the devices <b>102</b> may include an application executing on an operating system such as the application illustrated with respect to device <b>102</b>-<b>1</b> and/or a web browser illustrated with respect to device <b>102</b>-<b>2</b>. The application/web browser may include functionality that permits the devices <b>102</b> to communicate with the brainstorming cloud service located on application server <b>104</b>. In this regard, the term “cloud” or “cloud-aware” references the use of “cloud computing,” which, generally speaking, includes a style of computing in which computing resources such as application programs and file storage are remotely provided over a network such as the Internet, typically through the web browser. For example, many web browsers are capable of running applications, which can themselves be application programming interfaces (“API's”) to more sophisticated applications running on remote servers. In the cloud computing paradigm, a web browser interfaces with and controls an application program that is running on a remote server. Through the browser, the user can create, edit, save and delete files on the remote server (e.g., the application server <b>104</b>) via the remote application program. Thus, it may be observed that the application server <b>104</b> and the devices <b>102</b> may also represent examples of cloud computing. The application associated with device <b>102</b>-<b>1</b> may be virtually any type of application capable of running on an operating system, and the web browser associated with device <b>102</b>-<b>2</b> may be any type of web browser known in the art.
0038Although only two devices <b>102</b> are illustrated in <figref idref="DRAWINGS">FIG. 1</figref>, the embodiments encompass any number of devices <b>102</b>, thereby having a plurality of users who may be participants in the brainstorming session. Each device <b>102</b> may communicate with the application server <b>104</b> (in the middle layer) via a network. The network may be the public Internet or other wide area public or private network such as a corporate or other intranet, and/or a smaller-scale, local or personal network, any of which may be implemented using standard network technology.
0039In the middle layer, the application server <b>104</b> hosts the cloud brainstorming service. For example, the application server <b>104</b> may include an Application Programming Interface (API) <b>106</b>, a session management unit <b>108</b>, a user management unit <b>110</b>, a security management unit <b>112</b>, a message service component <b>114</b>, a brainstorming logic component <b>116</b>, a data management component <b>122</b>, a software frame work <b>126</b>, a clustering component <b>124</b> (e.g., the clustering component may be implemented in a distributed solution having a software framework <b>126</b>), a node cluster <b>118</b>, and a load balancer <b>120</b>. The application server <b>104</b> may include other components that are well known to one of ordinary skill in the art. The application server <b>104</b> may communicate with the devices <b>102</b> via the API <b>106</b> (through the use of the message service component <b>114</b>) and the application server <b>104</b> may communicate with the database layer via the data management component <b>122</b>.
0040For example, the API <b>106</b> may represent the backend functional API(s) being exposed as a RESTful API, which is a web service implemented using Hypertext Transfer Protocol (HTTP) and principles of Representational state transfer (REST). The API <b>106</b> may permit communications between the application server <b>104</b> and each device <b>102</b>. The data management component <b>122</b> manages all data operations which communicate with the database layer, which includes an in-memory database system with multi-tenancy <b>126</b>. All of the data captured in the cloud brainstorming service may be stored in the in-memory multi-tenancy database system <b>126</b>.
0041The in-memory multi-tenancy database system <b>126</b> may include a plurality of index servers <b>128</b> and one or more in-memory database systems <b>130</b>. The in-memory database system <b>130</b> may be a type of database system that supports real-time analytics and transactional processing. For example, the in-memory database systems <b>130</b> may include a parallel processing data store that utilizes row-based, column-based, and/or object-based storage techniques. In one embodiment, the in-memory database systems <b>130</b> may be HANA Enterprise 1.0 (any other versions) that is developed by SAP.
0042The in-memory database systems <b>130</b> may be equipped with multi-tenancy mechanisms, thereby transforming the database system into the multi-tenancy in-memory database system <b>126</b>. For example, each index server <b>128</b> may be associated with a different customer or tenant. In particular, a customer may be an enterprise such as a company, and the company may utilize the cloud brainstorming service provided by the application server <b>104</b> for facilitating brainstorming sessions within the company. Therefore, the company is associated with a dedicated index server that allows the brainstorming data of that company to be stored in the in-memory database system <b>130</b> in such a manner that the company's brainstorming data is separate from brainstorming data of other tenants or companies. As such, each index server <b>128</b> may be associated with its own storage volumes, transaction domain and virtual memory. Therefore, the data operating in each tenant environment would not affect the data stored in other tenant environments. Although <figref idref="DRAWINGS">FIG. 1</figref> illustrates six index servers (e.g., first index server <b>128</b>-<b>1</b>, second index server <b>128</b>-<b>2</b>, third index server <b>128</b>-<b>3</b>, fourth index server <b>128</b>-<b>4</b>, fifth index server <b>128</b>-<b>5</b> and sixth index server <b>128</b>-<b>6</b>), the embodiments encompass any number of index servers.
0043The session management unit <b>108</b> may be configured to manage the brainstorming session when a user logs into the system (e.g., entering a login ID, password combination). The session management unit <b>108</b> may generate a brainstorming session that includes the user's login information such as user's login name, password, as well as other basic information, and any relevant authorizations. Also, the session management unit <b>108</b> may track user activities in the system <b>100</b> such as if the brainstorming session is not authenticated or the session has expired, as well as the brainstorming session time period.
0044The user management unit <b>110</b> may be configured to manage user information, user registrations, user authorization settings, and any type of user hierarchy settings. The user management unit <b>110</b> may be employed as a multi-tenancy system having a plurality of separate databases that stores each of the various types of user information. Also, the user management unit <b>110</b> may be configured to register each user and/or device <b>102</b> who may wish to use the cloud brainstorming service, and to store identification information from such users within its database. For example, the user management unit <b>110</b> may provide a registration page over network in order to allow a particular user register with the cloud brainstorming service. Upon entering the relevant information, the user management unit <b>110</b> may register the user based on the registration information received over the network from the user and store the identification information along with any other type of user information within its database. However, there are many example scenarios and techniques by wish user and/or devices <b>102</b> may come to be registered with the cloud brainstorming service through the user management <b>110</b>. The security management unit <b>112</b> may be configured to cooperate with the session management unit <b>108</b> and the user management unit <b>110</b> to handle all security check rules and authorizations checks.
0045The message service component <b>114</b> may be configured to manage all exchanged messages between the devices <b>102</b> and the application server <b>104</b>. For instance, the message service component <b>114</b> may be configured to coordinate all messages from the host to the participants (and vice versa), as well as update the brainstorming session pages in a real-time or near real-time manner so that each of the participants have relatively immediate access to the progress of the brainstorming session. For example, brainstorming is a team activity and involves one host and many other participants. In some cases, the participants may be in different locations and cannot communicate with each other face to face. As such, the message service component <b>114</b> may synchronize all the information and operations between the devices <b>102</b> such that the participants can share the same screen and stand in the same page for better understanding and communication.
0046For example, when a user (the host) wishes to create a new brainstorming session, the message service component <b>114</b> may provide, over the network, a new brainstorming session template to the host of the brainstorming session. The new brainstorming session template may provide brainstorming settings for selection by the host. For example, the brainstorming settings may include the subject of the brainstorming session, the participants, the time period, a brief description of the brainstorming session, and one or more topics to be discussed in which ideas are solicited from the identified members. The new brainstorming session template is further described later in the disclosure with respect to <figref idref="DRAWINGS">FIG. 7</figref>.
0047Thereafter, the message service component <b>114</b> may receive the new brainstorming information over the network from the host, and provide an idea submission page to the identified participants. For example, the idea submission page permits each participant to enter his/her ideas for each of the topics identified by the host in the new brainstorming session template. The idea submission page is further described later in the disclosure with respect to <figref idref="DRAWINGS">FIG. 8</figref>. When a particular user submits his/her ideas, the brainstorming logic component <b>116</b> and/or the clustering component <b>124</b> may perform one or more processes on the submitted ideas such as de-duplicating ideas and arranging the ideas into clusters (as further explained below), and the message service component <b>114</b> may provide the de-duplicated ideas (or processed ideas) that are arranged into the clusters, over the network, to the particular participant. Thereafter, after each participant submits his/her ideas, the same process is repeated, and the message service component <b>114</b> automatically updates the results for each of the participants.
0048More generally, the message service component <b>114</b> provides interactions among the cloud brainstorming service, the host and each of the other participants such that the participants can collaborate on the ideas and topics during the brainstorming meeting and can see each other participants' ideas as well as the clustering results immediately via the message service component <b>114</b>. To realize this, the embodiments encompass a HTTP/HTTPS protocol. The HTTP/HTTPS protocol may permit the passage of messages through most proxies and firewalls such that the brainstorming session will not be affected by the network topology. Also, the embodiments encompass the use of Comet technology based on HTTP/HTTPS in order to permit the devices <b>102</b> to receive push notifications about the others' operations. As a result, the users of the devices <b>102</b> do not need to refresh the display screen (time by time time) to view the updated results. In addition, each of the participants may be able to vote for the top ideas for a particular topic. Therefore, the message service component <b>114</b> may also provide the voting results immediately for display as the voting information is received from each of the participants using the same mechanisms.
0049The brainstorming logic component <b>116</b> may be configured to handle the core logic of the system <b>100</b> such as data collecting, duplication check, social share and/or manual adjustment of the clusters. The details of the brainstorming logic component <b>116</b> are further illustrated in <figref idref="DRAWINGS">FIG. 2</figref>, which is explained later in the disclosure.
0050The clustering component <b>124</b> may be configured to retrieve the submitted ideas (which may have already been de-duplicated) from the in-memory database system <b>130</b> and arrange the submitted ideas into one or more clusters, where each cluster is a group of similar ideas. For example, for a particular brainstorming topic such as “working efficiently,” the submitted ideas may include face-to-face conversion (as opposed to teleconferences), no overtime meetings, less PowerPoint presentations, more meeting rooms, faster and more stable network, second large LED screen, headset for phone, increases in salary, timeliness, and using cloud brainstorming service, for example. The clustering component <b>124</b> may be configured to automatically arrange these ideas into one or more clusters or categories. In one example, the clusters may be “communication,” “facility” and “miscellaneous.” As such, the clustering component <b>124</b> may arrange the following ideas into the “communication” cluster: face-to-face conversion, no overtime meetings, and less PowerPoint presentations, for example. Also, the clustering component <b>124</b> may arrange the following ideas into the “facility” cluster: more meeting rooms, faster and more stable network, second large LED screen and headset for phone, for example. Further, the clustering component <b>124</b> may arrange the following ideas into the “miscellaneous” cluster: increases in salary, timeliness, and use of cloud brainstorming service, for example. Not only may the clustering component <b>124</b> arranged the submitted ideas into one or more clusters, but also the clustering component <b>124</b> may determine the name associated with each cluster (e.g., communication, facility, and miscellaneous). In one embodiment, the clustering component <b>124</b> may use support vector classification to implement the clustering mechanism. The clustering component <b>124</b> may utilize a vector model based on training data in order to parse the sentence of the idea and automatically assign it to the appropriate category, which is further explained below.
0051Because the clustering component <b>124</b> may consume a relatively large amount of resources, the embodiments encompass a distributed computing solution to use one or more isolated hosts to process the clustering steps in parallel. As such, in order to accomplish the distributed computing solution, the embodiments encompass any type of software framework <b>126</b> such as a HADOOP distributed file system, which is known to one of ordinary skill in the art. Because the clustering component <b>124</b> may be implemented in a distributed computing solution, the clustering component <b>124</b> may perform the clustering operations across a number of application servers <b>104</b>. Alternatively, the clustering component <b>124</b> does not necessarily have to be implemented using a distributed computing solution, where the clustering logic may be implemented on the application server <b>104</b> associated with the brainstorming logic component <b>116</b>, message service component <b>114</b>, and the other components associated with the cloud brainstorming service.
0052In addition, the clustering component <b>124</b> may be pushed into the in-memory database system level. For example, as indicated above, the in-memory database systems <b>130</b> may have the capabilities of transactional and analytical processing. As such, the in-memory database stations <b>130</b> may include one or more processing units for carrying out such operations. Therefore, the embodiments encompass the situation where the clustering component <b>124</b> is located within the in-memory database systems <b>130</b>, and the clustering results are provided to the participants via the message service component <b>114</b> in conjunction with the API <b>106</b>.
0053After the clustering component <b>124</b> arranges the submitted ideas into the one or more clusters, the message server component <b>114</b> may provide the submitted ideas which are arranged into the one or more clusters over the network to the participants for display via a display screen that is common to each of the participants. Also, the clustering component <b>124</b> may store the cluster results in the in-memory database system <b>130</b>. The details of the clustering operating are further detailed with respect to <figref idref="DRAWINGS">FIG. 5</figref> of the disclosure.
0054According to one embodiment, in order to improve the scalability and availability of the application server <b>104</b>, the node cluster <b>118</b> may be configured to balance the clustering operations throughout the number of application servers <b>104</b> when the clustering operating is implemented in a distributed solution. In particular, one application server <b>104</b> may include a cluster management node as a master application server. The other application servers <b>104</b> may be configured as slave servers, which may be centrally managed by the cluster management node. The cluster management node may dispatch the user requests to the appropriate application servers <b>104</b> based on configured algorithms such as round-robin, response-time, least-loaded, and/or weighted, for example. Also, the system <b>100</b> may include a load balancer <b>120</b> that may be configured to balance the loading across the number of application servers <b>104</b> according to methods that are well known to one of ordinary skill in the art.
0055<figref idref="DRAWINGS">FIG. 2</figref> illustrates the brainstorming logic component <b>116</b> according to an embodiment. Referring to <figref idref="DRAWINGS">FIG. 2</figref>, the brainstorming logic component <b>116</b> may include a data collector <b>132</b>, a duplication checker <b>134</b>, a manual adjuster <b>136</b>, a social share component <b>138</b>, a summary generator <b>140</b>, and an idea voting component <b>142</b>.
0056The data collector <b>132</b> may be configured to collect the submitted ideas via one or more different communication channels from the devices <b>102</b> over the network. For example, as indicated, each member of the brainstorming session may submit his/her ideas via the idea submission page. As such, the message service component <b>114</b> may receive the plurality of ideas over the network from the users. The data collector <b>132</b> may collect the submitted ideas and store the ideas in the in-memory database system <b>130</b>. In particular, the data collector <b>132</b> may store original submitted ideas and processed ideas in different tables in the in-memory database system <b>130</b>. Further, the data collector <b>132</b> may store submission information associated with each of the submitted ideas in the in-memory database system <b>130</b> such as user information and time of submission. Because the in-memory database system <b>130</b> may already support a number of parallel sessions, the data collector <b>130</b> may directly store the submitted ideas and the submission information directly in the in-memory database system <b>130</b>. Alternatively, the data collector <b>130</b> may utilize data collection techniques such as data synchronizations tools, data services, and/or extract, transform, and load (ETL) mechanisms.
0057The duplication checker <b>134</b> may be configured to detect duplicate ideas among the plurality of submitted ideas and delete the detected duplicate ideas. For example, in the brainstorming sessions, users may be encouraged to submit as many ideas as possible. As such, there may be a number of duplicate ideas, which do not have to be independently stored in the in-memory database system <b>130</b>. As such, the duplication checker <b>134</b> may be configured to detect duplicate ideas, and delete the duplicate ideas such that duplicate ideas are not presented to the participants and/or stored in the in-memory database system <b>130</b>. According to an embodiment, the duplication checker <b>134</b> may be configured to determine whether any synonyms exit for each word in each idea based on a dictionary stored in the in-memory database system <b>130</b>. The duplication checker <b>134</b> may be configured to replace each word with an assigned word if a synonym exits for a corresponding word. Thereafter, the duplication checker <b>134</b> may calculate a similarity metric for each of the plurality of ideas, and detect a duplicate idea if two or more ideas have a similarity metric above a threshold value. The details of the duplication checker <b>134</b> are further illustrated in <figref idref="DRAWINGS">FIG. 4</figref>, which is explained later in the disclosure.
0058The manual adjuster <b>136</b> may be configured to receive adjustment information over the network, from a host (or possibly another participant) of the brainstorming session, and adjust the clusters based on the adjustment information including adding a new cluster, changing a name of the clusters, adjusting the ideas among the clusters, creating a new idea, and/or combining duplicate ideas. For example, upon reviewing the arrangement of the ideas into the clusters, a user may decide to change the name of one or more clusters, add a new cluster, create a new idea, or combine duplicate ideas (which were not detected by the duplication checker <b>134</b>). In such a case, the manual adjuster <b>136</b> may receive the adjustment information reflecting the above-described functions, and adjust the clustering results accordingly. In other words, the user can change the idea-cluster relationship, add a new cluster, or move an idea into a different cluster. The manual adjustment may be marked in the in-memory database system <b>130</b> as one of the idea's attributes so that further automatic clustering/duplication check will not make any changes on the manual adjustment result.
0059The social share component <b>138</b> may be configured to analyze relationships and similarities between each topic and idea for all or most brainstorming sessions. For example, the in-memory database system <b>130</b> may be configured to store brainstorming topics, ideas, and results for a number of brainstorming sessions. In other words, the in-memory database <b>130</b> stores information for all the brainstorming sessions related to a certain enterprise. According to one aspect, a user of the cloud brainstorming session may enter a social share page, which may provide a plurality of topics and a plurality of ideas for each topic, and arrange similar topics into groups. Further, the user may be able to select a particular topic within the group, and the user is presented with the top ideas related to that particular topic (or all the ideas). The social share component <b>138</b> may use the same clustering mechanism to check the similarity between topics. As such, users can use this function to check whether there are similar ideas or topics which are already discussed by other teams before or after the brainstorming meeting, as well as browse the top ideas they are discussing.
0060The summary generator <b>140</b> may be configured to automatically generate a summary of the brainstorming session. For example, by using the cloud brainstorming service, the brainstorming session information is stored and managed in the in-memory database system <b>130</b>. As such, the summary generator <b>140</b> may access this information such as the topics, ideas, cluster results, participant information, session information (e.g., date, period of time), voting results information, and generate a summary report that includes one or more of these types of information. Upon selection by the user, the summary generator <b>140</b> may generate a summary report, and provide the generated summary to the requested user. In one embodiment, the summary generator <b>140</b> may generate a portable document format (PDF) document or WORD version, and transmit the document via a linked email system. Also, the summary report may be included an email to the user. Alternatively, the summary report may be provided to the user on the user interface associated with the brainstorming session. In another embodiment, the summary generator <b>140</b> may be integrated with an internal portal associated with the company registered with the cloud brainstorming service. The summary itself may encompass virtually any type of format such as the list of top ideas, pie charts of ideas for each clusters, or any other type of arrangement having one or more the above-described brainstorming information.
0061The idea voting component <b>142</b> may be configured to receive voting information, over the network, from each of the members, and the message service component <b>114</b> may be configured to provide, over the network, voting results information to be displayed with the submitted ideas. For example, as indicated above, after the ideas are submitted to the cloud brainstorming service, the clustering component <b>124</b> arranges the submitted ideas into one or more clusters, and provides the arrangement of the ideas to each member of the brainstorming session. According to one embodiment, each participant of the brainstorming session may vote for the top ideas. As such, the idea voting component <b>142</b> may receive the voting information from each of the participants and rank the submitted ideas. Then, the message service component <b>114</b> may provide the voting results information over the network to be displayed with the arrangement of the submitted ideas.
0062<figref idref="DRAWINGS">FIG. 3</figref> is a flowchart illustrating example operations of the cloud brainstorming service using the system <b>100</b> of <figref idref="DRAWINGS">FIG. 1</figref> according to an embodiment. Although <figref idref="DRAWINGS">FIG. 3</figref> is illustrated as a sequential, ordered listing of operations, it will be appreciated that some or all of the operations may occur in a different order, or in parallel, or iteratively, or may overlap in time.
0063A plurality of ideas may be received, over a network, from one or more users of devices, where the users represent members of a brainstorming session (<b>302</b>). For example, the message service component <b>114</b> may be configured to receive, over the network, from one or more users of the devices <b>102</b>. In particular, when a user (the host) wishes to create a new brainstorming session, the message service component <b>114</b> may provide, over the network, a new brainstorming session template to the host of the brainstorming session. The new brainstorming session template may provide brainstorming settings for selection by the host. For example, the brainstorming settings may include the subject of the brainstorming session, the participants, the time period, a brief description of the brainstorming session, and one or more topics to be discussed in which ideas are solicited from the identified members. Thereafter, the message service component <b>114</b> may receive the brainstorming session settings via the new brainstorming session template, and then provide an idea submission page to the identified participants. For example, the idea submission page permits each participant to enter his/her ideas for each of the topics identified by the host in the new brainstorming session template. Then, the message service component <b>114</b> may receive, over the network, the plurality of ideas from the participants after the participants submits his/her ideas.
0064The plurality of ideas may be processed and stored in an in-memory database system (<b>304</b>). For example, the brainstorming logic component <b>116</b> may process the plurality of ideas and then store the processed plurality of ideas in the in-memory database system <b>130</b>. In a further example, the data collector <b>132</b> may be configured to collect the submitted ideas via one or more different communication channels from the users of the devices <b>102</b>. As indicated above, each member of the brainstorming session may submit their ideas via the idea submission page. As such, the message service component <b>114</b> may receive the plurality of ideas over the network from the users such as devices <b>102</b>. The data collector <b>132</b> may collect the submitted ideas and store the ideas in the in-memory database system <b>130</b>. Also, the system may process the plurality of ideas by using the duplication checker <b>134</b> that may be configured to detect duplicate ideas among the plurality of ideas and then delete the detected duplicate ideas. The deletion of duplicate ideas may include merging duplicate ideas into a single idea while retaining submitter information for each of the user who submitted duplicate ideas. According to an embodiment, the duplication checker <b>134</b> may be configured to determine whether any synonyms exits for each word in each idea based on a reference dictionary stored in the in-memory database system <b>130</b>. The duplication checker <b>134</b> may be configured to replace each word with an assigned word if a synonym exits for a corresponding word. Thereafter, the duplication checker <b>134</b> may calculate a similarity metric for each of the plurality of ideas, and detect a duplicate idea if two or more ideas have a similarity metric above a threshold value.
0065A plurality of processed ideas may be received from the in-memory database, and the plurality of processed ideas may be arranged into one or more clusters, where each cluster is a group of similar ideas (<b>306</b>). For example, the clustering component <b>124</b> may be configured to retrieve the submitted ideas stored in the in-memory database system <b>130</b> and arrange the submitted ideas into one or more clusters, where each cluster is a group of similar ideas. The clustering component <b>124</b> may be configured to automatically arrange these ideas into one or more clusters or categories.
0066The plurality of processed ideas that are arranged into the one or more clusters may be provided, over the network, to the one or more users for display (<b>308</b>). For example, the message service component <b>114</b> may provide the ideas that are arranged into the clusters, over the network, to the one or more users for display. Further, according to another embodiment, a user may wish to adjust the results of the clustering operation. In such a case, the manual adjuster <b>136</b> may be configured to receive adjustment information over the network, from a host of the brainstorming session, and adjust the clusters based on the adjustment information including adding a new cluster, changing a name of the clusters, adjusting the ideas among the clusters, creating a new idea, and/or combining duplicate ideas. For example, upon reviewing the arrangement of the ideas into the clusters, the host may decide to change the name of one or more clusters, add a new cluster, create a new idea, or combine duplicate ideas. In such a case, the manual adjuster <b>136</b> may receive the adjustment information reflecting the above-described functions, and adjust the clustering results accordingly. In other words, the user can change the idea-cluster relationship, add a new cluster, or move an idea into a different cluster.
0067In addition, the host of the brainstorming session may permit voting on the best ideas within each topic. As such, the idea voting component <b>142</b> may be configured to receive voting information, over the network, from each of the members, and the message service component <b>114</b> may be configured to provide, over the network, voting results information to be displayed with the submitted ideas. For example, as indicated above, after the ideas are submitted to the cloud brainstorming service, the clustering component <b>124</b> arranges the submitted ideas into one or more clusters, and provides the arrangement of the ideas to each member of the brainstorming session. According to one embodiment, each participant of the brainstorming session may vote for the top ideas. As such, the idea voting component <b>142</b> may receive the voting information from each of the participants and rank the submitted ideas. Then, the message service component <b>114</b> may provide the voting results information over the network to be displayed with the arrangement of the submitted ideas.
0068Also, a user may wish to view a summary of the brainstorming session. As such, the summary generator <b>140</b> may be configured to automatically generate a summary of the brainstorming session. For example, by using the cloud brainstorming service, the brainstorming session information is stored and managed in the in-memory database system <b>130</b>. As such, the summary generator <b>140</b> may access this information such as the topics, ideas, cluster results, participant information, session information (e.g., date, period of time), and generate a summary report. Upon selection by the user, the summary generator <b>140</b> may generate a summary report, and provide the generated summary to the requested user.
0069<figref idref="DRAWINGS">FIG. 4</figref> is a flowchart illustrating example operations of the duplicate checker <b>134</b> according to an embodiment. Although <figref idref="DRAWINGS">FIG. 4</figref> is illustrated as a sequential, ordered listing of operations, it will be appreciated that some or all of the operations may occur in a different order, or in parallel, or iteratively, or may overlap in time.
0070Synonyms may be replaced (<b>402</b>). For example, the duplication checker <b>134</b> may be configured to determine whether any synonyms exit for each in each idea based on a reference dictionary stored in the in-memory database system <b>130</b>. In particular, the in-memory database system <b>130</b> may store a relatively large reference dictionary. The duplication checker <b>134</b> may be configured to scan each word in each idea in order to check if any synonyms exit in the database. If synonyms are detected, the duplication checker <b>134</b> may be configured to replace the word with an assigned word. For example, the term “street”, “St.” or “road” may be all replaced by the term “street.”
0071Similarities may be calculated (<b>404</b>). For example, the duplication checker <b>134</b> may calculate a similarity metric for each of the plurality of ideas, and detect a duplicate idea if two or more ideas have a similarity metric above a threshold value. In particular, the duplication checker <b>134</b> may utilize a similarity algorithm to calculate the similarities between all submitted ideas. The similarity algorithm may be the Levenshtein Distance algorithm, the Longest Common Substring (LCS) algorithm, or a combination of these algorithms. Basically, the duplication checker <b>134</b> calculates a similarity metric for each of the submitted ideas using the similarity algorithm, and then based on the similarity metric, the duplication checker <b>134</b> determines whether any of the ideas are duplicates based on the similarity metric being equal to or above a threshold value.
0072Duplicate ideas may be merged (<b>406</b>). For example, once duplicate ideas are detected, the duplication checker <b>134</b> may be configured to delete the duplicate ideas. In one embodiment, the duplication checker <b>134</b> may be configured to merge the duplicate ideas into a single idea while retaining submitter information for each of the participants who submitted the duplicate ideas. For example, the duplication checker <b>134</b> may be configured to collect the submitters' information related to the duplicate ideas from the in-memory database system <b>130</b>, and then assign the submitter's information to the leading idea. Subsequently, the duplication checker <b>134</b> may be configured to remove all duplicates ideas except the leading ideas.
0073<figref idref="DRAWINGS">FIG. 5</figref> is a flowchart illustrating example operations of the clustering component <b>124</b> according to an embodiment. Although <figref idref="DRAWINGS">FIG. 5</figref> is illustrated as a sequential, ordered listing of operations, it will be appreciated that some or all of the operations may occur in a different order, or in parallel, or iteratively, or may overlap in time.
0074The submitted ideas may be pre-processed (<b>502</b>). For example, the clustering component <b>124</b> may retrieve the de-duplicated ideas from the in-memory database system <b>130</b> by applying one or more specific filters to the ideas. At this point, each idea is a text string, and the clustering component <b>124</b> may parse the de-duplicated ideas using a word separating process in order to generate word sets.
0075Stop words may be removed (<b>504</b>). For example, the clustering component <b>124</b> may be configured to remove stop words from each word set. Stop words may be referred to as filter words such as “is”, “a”, “the”, etc., which are essentially meaningless and not relatively helpful for the clustering operation.
0076Bag of words may be created (<b>506</b>). For example, the clustering component <b>124</b> may be configured to extract words from the word sets. In particular, the words in the word sets are still in the original sequence before creating the bag of words. Thus, the clustering component <b>124</b> may be configured to analyse and extract the words from the word sets and remove the sequence. The result of performing such an analysis and extraction are referred to as a bag of words model. The clustering component <b>124</b> may utilize an SCPCD algorithm, or any other known technique for creating a bag words from a set of word sets.
0077Feature words may be selected from the bag of words (<b>508</b>). For example, the clustering component <b>124</b> may be configured to select one or more feature words from the extracted words (e.g., the bag of words). Feature words may be an important attribute for a bag of words. According to one embodiment, the clustering component <b>124</b> may utilize any type of DF algorithm in order to carry out the feature words selection.
0078VSMs models may be created (<b>510</b>). For example, the clustering component <b>124</b> may be configured to transform text data of the selected feature words into a plurality of vector space models (VSMs). In particular, the clustering component <b>124</b> may be configured to model the feature words using the VSMSs for text analytics. A python based procedure may be instituted to loop the processed word sets and transform them into the VSM model.
0079A K-means calculation may be performed (<b>512</b>). For example, the clustering component <b>124</b> may be configured to arrange the plurality of processed ideas into one or more clusters based on the plurality of VSMs. One approach is the K-means simulator. If the clustering component <b>124</b> utilizes the K-means simulator, the clustering component <b>124</b> may first calculate the center point of all automatically generated clusters. Then, the clustering component <b>124</b> may calculate the distance from each VSM to its respective center point. As a result, the clustering component <b>124</b> may assign the idea corresponding to the VSM that is closest to the cluster.
0080<figref idref="DRAWINGS">FIGS. 6-12</figref> illustrate various screens shots of the cloud brainstorming service according to an embodiment. For example, <figref idref="DRAWINGS">FIG. 6</figref> illustrates a home page <b>600</b> providing an overview of all existing brainstorming sessions. For example, the home page <b>600</b> may be a home page for a particular user of the cloud brainstorming service. As show in <figref idref="DRAWINGS">FIG. 6</figref>, the home page <b>600</b> provides a plurality of existing brainstorming sessions <b>610</b>, where each brainstorming session <b>610</b> may include one or more topics <b>615</b>. With respect to each topic, the home page <b>600</b> may indicate a status of the brainstorming session—new, idea, finish, or vote. The term “new” may indicate that the topic is relatively new such as topic <b>615</b>-<b>1</b> under brainstorming session <b>610</b>-<b>1</b>. In other words, the term “new” may indicate that a particular topic has recently been presented for the submission of ideas. The term “idea” may indicate that the user may have already viewed the topic, but still needs to submit his/her ideas such as topic <b>615</b>-<b>3</b> under brainstorming session <b>610</b>-<b>2</b>. The term “finish” may indicate that the user has submitted his/her ideas as well as the voting information that indicates the user's preferred rank of ideas. The term “vote” may indicate that the user still must submit his/her voting information related to the top such as topic <b>615</b>-<b>2</b> under brainstorming session <b>610</b>-<b>2</b>, for example.
0081<figref idref="DRAWINGS">FIG. 7</figref> illustrates a new brainstorming session template <b>700</b> according to an embodiment. For example, when a user (the host) wishes to create a new brainstorming session, the message service component <b>114</b> may provide, over the network, the new brainstorming session template <b>700</b> to the host of the brainstorming session. The new brainstorming session template <b>700</b> may provide brainstorming settings for selection by the host. For example, the brainstorming settings may include the subject <b>710</b> of the brainstorming session, the participants <b>715</b>, the time period <b>720</b>, a brief description <b>725</b> of the brainstorming session, and one or more topics <b>730</b> to be discussed in which ideas are solicited from the identified members <b>715</b>. Upon completing of the brainstorming session template <b>700</b>, the host may select the send selection, which the message service component <b>114</b> may receive, over the network, the selected brainstorming settings. In response, the message service component <b>114</b> may provide, over the network, an idea submission page to each of the members <b>715</b>, as further shown in <figref idref="DRAWINGS">FIG. 8</figref>.
0082<figref idref="DRAWINGS">FIG. 8</figref> illustrates an idea submission page <b>800</b> according to an embodiment. In the example of <figref idref="DRAWINGS">FIG. 8</figref>, the idea submission page <b>800</b> relates to topic <b>730</b>-<b>2</b>. In this case, the user has entered ideas <b>810</b> related to this topic. Upon completing the number of ideas the user wishes to submit, the user may select the submit selection in order to send the ideas to the cloud brainstorming service. As such, the message service component <b>114</b> may be configured to receive the ideas related to this topic, over the network, from the user. The other members of this brainstorming session would submit their ideas in the same manner. As a result, the message service component <b>114</b> receives a plurality of ideas, over the network, from the members of the brainstorming session.
0083When all the ideas are submitted, the duplication checker <b>134</b> may detect duplicate ideas and merge the duplicate ideas while retraining the submitter information, as previously described above. Next, the clustering component <b>124</b> may arrange the plurality of de-duplicated ideas into one or more clusters in the manner previously described. As a result, the message service component <b>114</b> may provide, over the network, the plurality of de-duplicated ideas that are arranged into the one or more clusters to the members for display.
0084<figref idref="DRAWINGS">FIG. 9</figref> illustrates a screenshot <b>900</b> providing the cluster results according to an embodiment. For example, the screenshot <b>900</b> provides the arrangement of the plurality of ideas into the clusters such as the first cluster <b>910</b>-<b>1</b> (e.g., communication), the second cluster <b>910</b>-<b>2</b> (e.g., facility <b>910</b>-<b>2</b>) and the third cluster <b>910</b>-<b>3</b> (e.g., miscellaneous). The term “new” indicates that an idea has recently been received. Also, the screen shot <b>900</b> provides a user control <b>915</b> for manually adjusting the number of clusters. For example, by operating the user control <b>915</b>, the user can define the quantity of clusters, and the clustering component <b>124</b> will re-clusters the ideas automatically. Also, the user can manually modify the cluster result such as creating a new cluster, changing the cluster of a particular idea (e.g., move an idea from one cluster and place it into another cluster), create a new idea, and/or combine duplicate ideas. In one embodiment, the manual adjuster <b>136</b> may be configured to receive adjustment information over the network, from a host of the brainstorming session, and adjust the clusters based on the adjustment information including adding a new cluster, changing a name of the clusters, adjusting the ideas among the clusters, creating a new idea, and/or combining duplicate ideas.
0085With respect to voting mechanism, the host can specify the quantity for each participant to vote, and, when a user completes his/her turn, the user may be able to see the overall voting status, as provided in <figref idref="DRAWINGS">FIG. 10</figref>. <figref idref="DRAWINGS">FIG. 10</figref> illustrates a screenshot <b>1000</b> depicting the voting results according to an embodiment. The voting results may be provided in real-time or near real-time. For example, the idea voting component <b>142</b> may be configured to receive voting information, over the network, from each of the members, and the message service component <b>114</b> may be configured to provide, over the network, voting results information to be displayed with the submitted ideas. As shown in <figref idref="DRAWINGS">FIG. 10</figref>, the screenshot <b>1000</b> includes information indicating the amount of votes casts for each idea.
0086<figref idref="DRAWINGS">FIG. 11</figref> illustrates a screenshot <b>1100</b> depicting the social share aspect according to an embodiment. For example, the social share component <b>138</b> may be configured to analyze relationships and similarities between each topic and idea for all the topics and ideas submitted through the cloud brainstorming service. For example, the in-memory database system <b>130</b> may be configured to store brainstorming topics, ideas, and results for a number of brainstorming sessions. In other words, the in-memory database <b>130</b> stores information for all the brainstorming sessions related to a certain enterprise. According to one aspect, a user of the cloud brainstorming session may enter a social share page as illustrated in <figref idref="DRAWINGS">FIG. 1100</figref>, which may provide a plurality of topics and a plurality of ideas for each topic. As shown in <figref idref="DRAWINGS">FIG. 11</figref>, the topics are arranged into groups, where each group includes a set of similar topics. For instance, one group of topics relates to gifts and another group of topics relates to baby names. Although only four groups of topics are illustrated in <figref idref="DRAWINGS">FIG. 11</figref>, the embodiments encompass any number of groups. The social share component <b>138</b> may use the same clustering mechanism to check the similarity between topics. As such, users can use this function to check whether there are similar topics which are already discussed by other teams before or after the brainstorming meeting, as well as browse the top ideas they are discussing. For example, the user may be able to drill-down into the ideas for each of the topics, as shown in <figref idref="DRAWINGS">FIG. 12</figref>.
0087<figref idref="DRAWINGS">FIG. 12</figref> illustrates a screenshot <b>1200</b> depicting ideas in a topic group according to an embodiment. For example, after the user selects a group, the social share component <b>138</b> may provide the top five ideas for the topic group, and/or each topic. As shown on the right side of <figref idref="DRAWINGS">FIG. 12</figref>, the top five ideas are presented for the first two topics (e.g., gift for teacher, birthday gift) along with information indicating the ranking of the ideas (e.g., 1st, 2<sup>nd</sup>, 3<sup>rd</sup>). The user may adjust the screenshot <b>1200</b> by scrolling in order to review the other top ideas for the other two topics. Although the top five ideas are presented in the example of <figref idref="DRAWINGS">FIG. 12</figref>, the embodiments encompass any number of ideas to be displayed within the social sharing screenshot <b>1200</b>. As a result, users are able to share their brainstorming session with other users, and also browse other brainstorming sessions. Also, the social share component <b>138</b> may recognize the text of all brainstorming topics, group similar topics together, and generate the top N most important ideas of these groups such that the users are able to understand the overall discussion results for his/her interested topics.
0088For example, as indicated above, after the ideas are submitted to the cloud brainstorming service, the clustering component <b>124</b> arranges the submitted ideas into one or more clusters, and provides the arrangement of the ideas to each member of the brainstorming session. According to one embodiment, each participant of the brainstorming session may vote for the top ideas. As such, the idea voting component <b>142</b> may receive the voting information from each of the participants and rank the submitted ideas. Then, the message service component <b>114</b> may provide the voting results information over the network to be displayed with the arrangement of the submitted ideas.
0089Implementations of the various techniques described herein may be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. Implementations may implemented as a computer program product, i.e., a computer program tangibly embodied in an information carrier, e.g., in a machine-readable storage device or in a propagated signal, for execution by, or to control the operation of, data processing apparatus, e.g., a programmable processor, a computer, or multiple computers. A computer program, such as the computer program(s) described above, can be written in any form of programming language, including compiled or interpreted languages, and can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network.
0090Method steps may be performed by one or more programmable processors executing a computer program to perform functions by operating on input data and generating output. Method steps also may be performed by, and an apparatus may be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
0091Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. Elements of a computer may include at least one processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer also may include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. Information carriers suitable for embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory may be supplemented by, or incorporated in special purpose logic circuitry.
0092To provide for interaction with a user, implementations may be implemented on a computer having a display device, e.g., a cathode ray tube (CRT) or liquid crystal display (LCD) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input.
0093Implementations may be implemented in a computing system that includes a back-end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front-end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation, or any combination of such back-end, middleware, or front-end components. Components may be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (LAN) and a wide area network (WAN), e.g., the Internet.
0094While certain features of the described implementations have been illustrated as described herein, many modifications, substitutions, changes and equivalents will now occur to those skilled in the art. It is, therefore, to be understood that the appended claims are intended to cover all such modifications and changes as fall within the scope of the embodiments.
Contents5
11 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US11270263B2 | Cited by | United States of America | Applicant |
| CN104077380A | Cited by | China | Search report |
| CN106484813A | Cited by | China | Search report |
| US2015073870A1 | Cited by | United States of America | Pre-grant |
| US9270621B1 | Cited by | United States of America | Search report |
| US2016299672A1 | Cited by | United States of America | Pre-grant |
| US11258852B2 | Cited by | United States of America | Applicant |
| WO2025069508A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US11080654B2 | Cited by | United States of America | Search report |
| US9503447B2 | Cited by | United States of America | Applicant |
| WO2020263182A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US2022051070A1 | Cited by | United States of America | Search report |
| US10303799B2 | Cited by | United States of America | Search report |
| US9898710B2 | Cited by | United States of America | Search report |
| US9800567B2 | Cited by | United States of America | Applicant |
| US9584324B2 | Cited by | United States of America | Applicant |
| US10771551B2 | Cited by | United States of America | Applicant |
| US2014351160A1 | Cited by | United States of America | Pre-grant |
| US2003037041A1 | Cites | United States of America | Pre-grant |
| US2005022106A1 | Cites | United States of America | Pre-grant |
| US2005081097A1 | Cites | United States of America | Pre-grant |
| US2005278321A1 | Cites | United States of America | Pre-grant |
| US2007061434A1 | Cites | United States of America | Pre-grant |
| US2007226296A1 | Cites | United States of America | Pre-grant |
| US2008080718A1 | Cites | United States of America | Pre-grant |
| US2008209533A1 | Cites | United States of America | Pre-grant |
| US2008266449A1 | Cites | United States of America | Pre-grant |
| US2009094039A1 | Cites | United States of America | Pre-grant |
| US2009292586A1 | Cites | United States of America | Pre-grant |
| US2010070542A1 | Cites | United States of America | Pre-grant |
| US2011071981A1 | Cites | United States of America | Pre-grant |
| US2011196713A1 | Cites | United States of America | Pre-grant |
| US2012226515A1 | Cites | United States of America | Pre-grant |
| US2013103663A1 | Cites | United States of America | Pre-grant |
| US2014075004A1 | Cites | United States of America | Pre-grant |
3 members in 2 offices
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 2012101752016 | China | – | |
| 201210175201 | China | A |
Members3
| Document | Office | Kind | |
|---|---|---|---|
| US2013326346A1 | United States of America | A1 | |
| CN103455908A | China | A | |
| US9652743B2 | United States of America | B2 |
87 transactions on the USPTO file
Allowed after 2 non-final rejections, 2 final rejections and 2 RCEs.
- Non-final rejections
- 2
- Final rejections
- 2
- RCEs
- 2
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Payment of Maintenance Fee, 8th Year, Large EntityM1552 | M1552 | |
| Payment of Maintenance Fee, 4th Year, Large EntityM1551 | M1551 | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Email NotificationEML_NTR | EML_NTR | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Response to Reasons for AllowanceREAS | REAS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Reasons for AllowanceEX.R | EX.R | |
| Examiner's Amendment CommunicationEX.A | EX.A | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail Advisory Action (PTOL - 303)MCTAV | MCTAV | |
| After Final Consideration Program Amendment too ExtensiveAFNE | AFNE | |
| Advisory Action (PTOL-303)CTAV | CTAV | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| PILOT- Request for After Final Consideration ProgramRAFC | RAFC | |
| Response after Final ActionA.NE | A.NE | |
| Mail Interview Summary - Applicant Initiated - TelephonicMEXAT | MEXAT | |
| Interview Summary - Applicant Initiated - TelephonicEXAT | EXAT | |
| Electronic request for Examiner InterviewM865E | M865E | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Mail Interview Summary - Applicant Initiated - TelephonicMEXAT | MEXAT | |
| Interview Summary - Applicant Initiated - TelephonicEXAT | EXAT | |
| Electronic request for Examiner InterviewM865E | M865E | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Priority document has successfully retrieved via PDX/DASPD.RECVD | PD.RECVD | |
| Email NotificationEML_NTR | EML_NTR | |
| Filing Receipt - ReplacementFLRCPT.R | FLRCPT.R | |
| Response after Non-Final ActionA... | A... | |
| Request from applicant for the USPTO to retrieve the Priority DocumentPDREQUST | PDREQUST | |
| Mail Interview Summary - Applicant Initiated - TelephonicMEXAT | MEXAT | |
| Interview Summary- Applicant InitiatedEXIA | EXIA | |
| Interview Summary - Applicant Initiated - TelephonicEXAT | EXAT | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Email NotificationEML_NTR | EML_NTR | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Final PDX/DAS request for priority document has failedPD.FAIL | PD.FAIL | |
| Final PDX/DAS request for priority document has failedPD.FAIL | PD.FAIL | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Application Is Now CompleteCOMP | COMP | |
| Email NotificationEML_NTR | EML_NTR | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Sent to Classification ContractorPGPC | PGPC | |
| Cleared by OIPE CSRL194 | L194 | |
| Request from applicant for the USPTO to retrieve the Priority DocumentPDREQUST | PDREQUST | |
| Applicants have given acceptable permission for participating foreignAPPERMS | APPERMS | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Initial Exam Team nnIEXX | IEXX |
6 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Maintenance fee paymentMAFP | MAFP | |
| Maintenance fee paymentMAFP | MAFP | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| Fee payment procedurePAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP | |
| AssignmentAS | AS | |
| AssignmentAS | AS |
Numbers
- Publication
- 20130326346
- Application
- 13588773
Titles
- English
- BRAINSTORMING IN A CLOUD ENVIRONMENT
Patent term adjustment
- A delay
- +562 daysthe office missed an examination deadline
- B delay
- +23 dayspendency past three years
- Net adjustment
- 585 days
Classification
- IPC, 3
- G06F15 16
- G06F17 24
- G06F17 30