A social network system that provides a keyword search result set from content within the social network receives from an enterprise application a business object and an associated system of record, and generates a social object for the social network, where the social object corresponds to the business object and associated system of record. The system generates a plurality of conversations related to the social object, where each conversation comprises content. The system indexes each of the conversations as a conversation document and receives a keyword search term. The system then searches for the keyword search term within the conversation documents, and generates a result set of relevant conversations in response to the searching, where the relevant conversations are displayed in order of relevance.
|
14. A computer implemented method for providing a keyword search result set, comprising:
receiving, by a processor of a first server that provides a social network, from an enterprise application, a business object and an associated system of record, wherein the enterprise application comprises a customer relationship management (CRM) system, the business object comprises a customer record within the CRM system, and the received system of record corresponds to a stored system of record for the customer record within the CRM system;
generating, by the processor, in the social network, a social object that represents the business object and comprises a membership list that defines access to the social object by members of the social network, wherein changes to the social object by members in the membership list modify the stored system of record for the customer record within the CRM system;
generating, by the processor, a plurality of conversations coupled to the social object that each comprise individual messages, wherein the generated conversations each comprise a conversation membership list, and at least a portion of each conversation membership list matches at least a portion of the social object membership list;
aggregating messages in each conversation into a corresponding conversation document, wherein at least one conversation document includes aggregated messages between a plurality of parties;
indexing the conversation documents, wherein the aggregated messages within a given conversation document are indexed as a whole in order to index the given conversation document;
receiving a keyword search term;
searching for the keyword search term within the indexed conversation documents to generate a result set of conversations;
determining a relevance between the keyword search term and each conversation document in the result set; and
displaying the result set of conversations based on the determined relevance in response to the searching.
18. A social network system comprising:
a social object that represents a business object and an associated system of record received by a social network that is provided by a first server from an enterprise application, wherein the enterprise application comprises a customer relationship management (CRM) system, the business object comprises a customer record within the CRM system, and the received system of record corresponds to a stored system of record for the customer record within the CRM system, wherein the social object comprises a membership list that defines access to the social object by members of the social network, wherein changes to the social object by members in the membership list modify the stored system of record for the customer record within the CRM system;
a plurality of conversations coupled to the social object that each comprise individual messages wherein the generated conversations each comprise a conversation membership list, and at least a portion of each conversation membership list matches at least a portion of the social object membership list;
a social network module that comprises a processor and stored instructions that when executed by the processor implement:
an indexing module that aggregates messages in each conversation into a corresponding conversation document and indexes each conversation document, wherein at least one conversation document includes aggregated messages between a plurality of parties, and the aggregated messages within a given conversation document are indexed as a whole in order to index the given conversation document;
a keyword search module that receives a keyword search term and searches for the keyword search term within the indexed conversation documents to generate a result set of conversations; and
a search results module that determines a relevance between the keyword search term and each conversation document in the result set and displays the result set of conversations based on the determined relevance in response to the searching.
1. A non-transitory computer readable medium having instructions stored thereon that, when executed by a processor, cause the processor to provide a keyword search result set, the providing comprising:
receiving, by a social network that is provided by a first server, from an enterprise application, a business object and an associated system of record, wherein the enterprise application comprises a customer relationship management (CRM) system, the business object comprises a customer record within the CRM system, and the received system of record corresponds to a stored system of record for the customer record within the CRM system;
generating, in the social network, a social object that represents the business object and comprises a membership list that defines access to the social object by members of the social network, wherein changes to the social object by members in the membership list modify the stored system of record for the customer record within the CRM system;
generating a plurality of conversations coupled to the social object that each comprise individual messages, wherein the generated conversations each comprise a conversation membership list, and at least a portion of each conversation membership list matches at least a portion of the social object membership list;
aggregating messages in each conversation into a corresponding conversation document, wherein at least one conversation document includes aggregated messages between a plurality of parties;
indexing the conversation documents, wherein the aggregated messages within a given conversation document are indexed as a whole in order to index the given conversation document;
receiving a keyword search term;
searching for the keyword search term within the indexed conversation documents to generate a result set of conversations;
determining a relevance between the keyword search term and each conversation document in the result set; and
displaying the result set of conversations based on the determined relevance in response to the searching.
2. The computer readable medium of
3. The computer readable medium of
4. The computer readable medium of
5. The computer readable medium of
6. The computer readable medium of
a number of matched messages when the relevant conversations are displayed,
a snippet for each displayed conversation, or
a selectable link for each conversation that when selected displays all relevant content for a corresponding conversation.
7. The computer readable medium of
8. The computer readable medium of
9. The computer readable medium of
10. The computer readable medium of
11. The computer readable medium of
12. The computer readable medium of
13. The computer readable medium of
15. The method of
16. The method of
17. The method of
a number of matched messages when the relevant conversations are displayed,
a snippet for each displayed conversation, or
a selectable link for each displayed conversation that when selected displays all relevant content for the conversation.
19. The social network system of
20. The social network system of
|
This application claims priority of Provisional Patent Application Ser. No. 61/640,913, filed on May 1, 2012, the contents of which is hereby incorporated by reference.
One embodiment is directed generally to a networked computer system, and in particular to a social network system that provides keyword searching and relevance of the search results.
A social network service or system, or “social network”, is an online service, platform, or site that focuses on facilitating the building of social networks or social relations among people who, for example, share interests, activities, backgrounds, or real-life connections. A social network service typically includes a representation of each user, typically referred to as a user “profile”, his/her social links, and a variety of additional services. Most social network services are web-based and provide means for users to interact over the Internet, such as e-mail and instant messaging. Social networking sites allow users to share ideas, activities, events, and interests within their individual networks.
The use of social network services in an enterprise/business context is increasingly popular. Because social networks connect people at low cost, they can be beneficial for entrepreneurs and small businesses looking to expand their contact bases. These networks often act as a customer relationship management tool for companies selling products and services. Companies can also use social networks for targeted advertising in the form of banners and text ads. Since businesses operate globally, social networks can make it easier to keep in touch with contacts around the world.
One embodiment is a social network system that provides a keyword search result set from content within the social network. The system receives from an enterprise application a business object and an associated system of record, and generates a social object for the social network, where the social object corresponds to the business object and associated system of record. The system generates a plurality of conversations related to the social object, where each conversation comprises content. The system indexes each of the conversations as a conversation document and receives a keyword search term. The system then searches for the keyword search term within the conversation documents, and generates a result set of relevant conversations in response to the searching, where the relevant conversations are displayed in order of relevance.
One embodiment is a social network system that creates social objects that correspond to business objects from enterprise business applications. The social network system further enables the creation of related conversations for a social object, and each conversations can include multiple messages. A search functionality allows the most relevant conversations to be determined in response to search terms.
Social network server/system 10, in conjunction with the other devices of
Computer readable media may be any available media that can be accessed by processor 22 and includes both volatile and nonvolatile media, removable and non-removable media, and communication media. Communication media may include computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism, and includes any information delivery media.
Processor 22 is further coupled via bus 12 to a display 24, such as a Liquid Crystal Display (“LCD”). A keyboard 26 and a cursor control device 28, such as a computer mouse, are further coupled to bus 12 to enable a user to interface with system 10.
In one embodiment, memory 14 stores software modules that provide functionality when executed by processor 22. The modules include an operating system 15 that provides operating system functionality for system 10. The modules further include a social network module 16 for providing social network functionality and an relevant search results, as disclosed in more detail below. System 10 can be part of a larger system, such as an ERP system, if that functionality is not already provided by server 40 of
In one embodiment, social network 100 of
A “conversation” in social network 100 in one embodiment is a persistent, shared stream of posts and comments (i.e., messages) including, for example, text, rich-text, documents, audio, video, programmatic content (referred to as “gadgets”), etc. A conversation has a defined membership ranging from “Private” (i.e., membership of one/self), through N-members consisting of individuals and or groups of individuals or sub-groups, to “Public” with visibility open across all members of social network 100. Posts within a conversation are viewed with new posts beneath old posts (i.e., multiple posts can be read as text on a page in a book), or vice versa, or in any type of hierarchical format.
One embodiment generates social objects. All data from enterprise applications and business processes can potentially be socialized as a “social object.” Social objects contain records from a business application or process (referred to as a “system of record”) that are mapped as a visual and programmatic integration into social network 100 via social network server 10. For example, a sales opportunity from within a CRM enterprise application (e.g., the name of a sales prospect and related data for the sales prospect, such as the estimated probability that a sale will close, the expected revenue of the sale, etc.) is integrated into social network 100 as a social object. As a result, social objects are explicitly coupled with conversations, where the social object can be discussed in context, and a record of that discussion can be retained for future viewing.
In one embodiment, a social object in social network 100 includes one or more of the following:
A social object may be generated for social network 100 for any business object of an application that users may desire to collaborate on over social network 100. Examples of social objects include (1) an “Opportunity” social object from a CRM application; (2) a “Customer” social object from a CRM application; (3) a “Service Request” social object from a CRM application; (4) a “Business Process Shipment Escalation” social object from a business process application; (5) a “Portal” subject social object from a web portal application; (6) a “General Ledger Period Close” social object from a financial/ERP application; (7) an “Inventory Item” social object from an inventory/ERP application; and (8) an “Ordered Product” social object from a distributed order orchestration application (e.g., “Fusion Distributed Order Orchestration (DOO)” application from Oracle Corp.).
In one embodiment, a conversation for social network 100 can be created for any collaborative purpose, including having a specific discussion, making a decision or resolving a problem. A conversation can be related to a social object. The conversation can have membership which is identical, a superset or a subset of the social object membership. For example, a conversation can be created that is related to a sales opportunity social object in which the sales team works on preparing the presentation for the customer. A second related conversation can be created in which only the sales lead works with the legal team in reviewing contractual changes requested by the customer. Through related conversations, multiple, parallel threads of work between different constituent parties all related to the changing of state of an object within the system-of-record (e.g., the opportunity changes from a state of “Negotiation” to a state of “Won”) is achieved while maintaining the relationship, understanding and contextual persistent of the collaboration that drove the changes. For example, related conversations for an Opportunity social object may include a conversation for preparing a presentation, with the suggested presentation content and best practice notes for delivery, and a conversation for finalizing the contract with the appropriate draft contract for the deal size, industry, product and sales region with the associated legal team member added. A social object can also be related to another social object.
Social object 300 further includes a wall 302 that shows a history of all of the changes that have occurred on the social object. For example, at 305, the win probability is shown to have been updated by “Julian Henderson” from 50% to 60% on May 14, 2012 at 11:44 a.m. At 307, a new member, “Charles Dreyfus” was given access to the social object on May 14, 2012 at 11:43 a.m.
Social object 300 further includes a list of all members of the social object at 310. The members who are currently online for that social object (e.g., member 311) are shown with a typical thumbnail picture, but members who are currently offline (e.g., member 312) are shown as a grayed out thumbnail picture.
Social object 300 further includes a list of all conversations related to social object 300 at 315. A user can view one of the conversations by selecting the conversation. In one embodiment, social object 300 and new related conversations such as related conversations 315 are created when the user is interacting with the external or third party enterprise system such as a CRM or ERP system executing on, for example, server 40 of
In the example of
At 1002, social network module 16 receives from an application a business object and associated system-of-record. In one embodiment, the application is an enterprise application such as a CRM or ERP application. An example of a system-of-record for a business object is shown in section 602 of
At 1004, social network module 16 generates a social object that corresponds to the business object and that comprises the system-of-record. An example of a social object is social object 300 of
At 1006, social network module 16 assigns one or more members to the social object. An example of assigned members are members 310 of social object 300 of
At 1008, social network module 16 associates a wall to the social object. The wall displays changes to the system-of-record. An example of a wall is wall 302 of social object 300 of
At 1102, the social object is displayed (assuming it has been created) with the system-of-record. For example, as shown in
At 1104, it is determined if there are any existing conversations for the social object. If no at 1104, a conversation is created at 1106. The new conversation at 1106 is automatically related to the social object.
If conversations exist 1104, the conversation is selected at 1108, and the conversation is then related to the social object at 1110.
The functionality of
As disclosed, social network 100 allows a social object to be generated and one or more conversations can be related to the social object. The social object is a set of properties tied to a wall. These properties are directly connected to the object in the system-of-record, and are updated either when they are changed in the system-of-record directly, or through actions in social network 100. Changes made within social network 100 are pushed back to the system-of-record to keep the object's properties current at all times. All changes can be logged on the wall, and related conversations can easily be created to discuss specific issues concerning the social object. The social object can be exposed through any type of applications, including the web client, “Outlook” from Microsoft Corp., or other email applications, standalone embeddable clients, and all mobile clients.
Social network 100 includes a set of predefined integration mechanisms that enable the user to define how and what data is retrieved from the system-of-record, how to display that data in social network 100 (for example, through social objects) and who within social network 100 has access to the data.
These predefined mechanisms are built to handle the most common application chores, such as specifying membership lists in social network 100 and property sensitivity (i.e., not everyone should be able to see or update all properties without authorization), and updating properties in both directions. For example, when a social object property is updated in the system-of-record, that change is published in social network 100 based on the user permission rules that the user has defined.
Social objects are defined in social network 100 as records within a system-of-record, such as customer or service records from a CRM system. Social object records include metadata and a wall, which includes membership lists and related conversations. Social objects expose system-of-record information to users who interact with and collaborate around the data through a user interface of social network 100.
The social objects provide a uniform and collaborative view of information from all integrated system-of-record. The social objects provide a wide range of services and capabilities in one embodiment, including:
As an example of the functionality of a social object, after a CRM Opportunity social object retrieves a stream of data input from the social object's wall, the process may unfold as follows:
Communication also works in the other direction. When the Opportunity is updated from within social network 100, the change is reflected in the system-of-record as well. Before the change is made, social network 100 checks to ensure that the user has the right to update the object, from changing a simple property to changing the state of the object (for example from “Pending” to “Won”). There is no need to go back into CRM to update key fields as social network 100 automatically provides the updates.
Known social networks and other systems allow documents or messages to be searched using a search term. With known indexing and search techniques, the relevance of each individual message generally outranks the combination of message postings. For example, in response to a search of the word “patent”, all messages that include “patent” may be retrieved. In a social network with a large number of participants, the returned messages can number in the hundreds or thousands, and it is difficult for the searcher to determine which messages are more relevant than others so the user can then navigate to the associated containing forum/conversation. In some known social networks, because there are disparate object types, such as long documents and short messages, the lengthier document will generally be seen as more relevant simply because it is longer, and more likely to include more than one occurrence of the search term(s).
Further, in general a typical search engine works by indexing content based on the frequency of “terms” within a “document”. The set of documents to be searched is called a “corpus”. When a query is entered, terms in the query are used to assign a relevance score to each document, the score is sorted, and those documents with the highest scores are deemed most relevant.
As discussed above, in one embodiment, interactions between network participants on social network 100 include a series of posted messages or other “content” (e.g., documents, images, presentations, etc.). Within social network 100, related messages are contained within a conversation 85. Embodiments of the present invention consider a single conversation that has many relevant messages, and fewer non-relevant messages, more relevant than other conversations in search results. One embodiment creates a new virtual “document” that is formed from a conversation's “content” consisting of all the chats/messages in the conversation, which in turn is then indexed as a whole, driving higher levels of relevance.
Embodiments consider a conversation as a collection of messages sent over a period of time in a single unit. The association of multiple messages can be done explicitly by the user or can be inferred from various attributes of the messages by social network 100. In a typical communication system, each message would be treated as a separate document for search purposes, even if the system was capable of aggregating the messages or other content into a conversation for presentation purposes. However, the relevance score produced for individual messages may not be an accurate reflection of the relevance of the conversation taken as a whole. Therefore, embodiments aggregate the set of messages or other content into a single conversation “document” for purposes of computing a relevance score, thus yielding more accurate and relevant search results to the user.
One embodiment indexes new conversations and messages in order to allow relevance searching. When a new conversation is created, by a user or an automated process, such as for example described in conjunction with
When a new message or other content is added to a conversation, by a user or an automated process, embodiments: (1) Append the message to the conversation document; (2) Re-index the conversation document; and (3) Index the individual message as a separate document. When a message in a conversation is edited or deleted, embodiments: (1) Re-create the conversation document by concatenating the current versions of all messages; (2) Re-index the conversation document; (3) If a message was deleted, remove it from the search index; and (4) If a message was edited, index the edited message as a separate document.
At 1502, a keyword based search request for conversation content is received. The search request will typically be provided by a user typing in one or more keywords in a search box.
At 1504, all conversation documents that were created during the indexing phase disclosed above are searched using the keyword(s) from 1502. In one embodiment, “Oracle Text” from Oracle Corp. is used to search the indexed conversation documents. Oracle Text uses standard Structured Query Language (“SQL”) to index, search, and analyze text and documents stored in a database. In other embodiments, any other known text searcher can be used.
In response to the search at 1504, at 1506 conversations are returned to the user in relevance order in a result set, so that conversations that are most relevant to the user's query appear first in the results. In one embodiment, Oracle Text is used to determine a relevance score for the documents. To calculate a relevance score for a returned document in a word query, Oracle Text uses an inverse frequency algorithm based on “Salton's formula.” Inverse frequency scoring assumes that frequently occurring terms in a document set are noise terms, and so these terms are scored lower. For a document to score high, the query term must occur frequently in the document but infrequently in the document set as a whole. In other embodiments, other methodologies used by known indexing engines can be used to determine the relevance of the documents.
At 1508, in one embodiment, for each conversation displayed in the result set, the number of individual messages or other content in the conversation that match the user's query, as well as the total number of messages in the conversation, is determined and displayed. In one embodiment, this number is not used for relevance computation at 1506 but is provided to the user for additional information about matches within the conversation.
At 1510, for each conversation in the result set, a “snippet” (i.e., a keyword in context) is provided. The snippet is a short fragment of the conversation document that shows the most relevant match for the user's query. The snippet may be provided by the underlying search engine. The snippet may be generated from the document name (or other metadata), or any of the messages that make up the conversation document.
At 1512, a “Show more messages” link with each conversation in the result set is provided, assuming there are more messages. Selecting this link will display the individual messages within that conversation that match the user's query.
As described, embodiments allow conversations to be considered conversation documents and individually indexed for search purposes, along with messages and other content. A keyword search results in the most relevant conversations rather than individual messages or content. The relevance of each conversation is based on the messages and content that form the conversation.
Several embodiments are specifically illustrated and/or described herein. However, it will be appreciated that modifications and variations of the disclosed embodiments are covered by the above teachings and within the purview of the appended claims without departing from the spirit and intended scope of the invention.
Olkin, Jeffrey, Rabe, Daniel G., Chang, Ana Ramirez
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
6662164, | May 19 1998 | VERSATA DEVELOPMENT GROUP, INC | Method and apparatus for determining commission |
7447647, | May 02 2005 | Techniques and definition logic embodied in a computer program product stored and performed on a computerized device for providing a singular graphical user interface configured to enable a user to create/manage/transact/report and view all full granular reference product data in a configurable transactable aggregate form | |
7739139, | Nov 02 1997 | Amazon Technologies, Inc | Social networking system |
7886000, | Jun 27 2006 | FINGERPRINT CARDS ANACATUM IP AB | Aggregation system for social network sites |
8171087, | Jan 16 2007 | Oracle International Corporation | Thread-based conversation management |
8819150, | May 18 2010 | GOOGLE LLC | Generating a conversation associated with a webpage |
9253137, | Jun 24 2011 | GOOGLE LLC | Concurrent display of conversation messages and social network posts by conversation message authors |
9672555, | Mar 18 2011 | Amazon Technologies, Inc. | Extracting quotes from customer reviews |
20040122803, | |||
20040128285, | |||
20050223058, | |||
20060064434, | |||
20080103907, | |||
20080109741, | |||
20080147487, | |||
20080275701, | |||
20090222448, | |||
20090222750, | |||
20090292526, | |||
20090305732, | |||
20090307592, | |||
20100070485, | |||
20100125803, | |||
20100169159, | |||
20100169327, | |||
20100198757, | |||
20100211917, | |||
20100318613, | |||
20100325107, | |||
20110035677, | |||
20110113072, | |||
20110113349, | |||
20110137902, | |||
20110161827, | |||
20110179025, | |||
20110246920, | |||
20110314017, | |||
20120001919, | |||
20120011039, | |||
20120110096, | |||
20120143972, | |||
20120158501, | |||
20120179752, | |||
20120197809, | |||
20120245963, | |||
20120254184, | |||
20120254902, | |||
20120290448, | |||
20120290950, | |||
20120331053, | |||
20130024511, | |||
20130024788, | |||
20130073280, | |||
20130091217, | |||
20130097320, | |||
20130124437, | |||
20130166721, | |||
20130173368, | |||
20130185143, | |||
20130198275, | |||
20130262438, | |||
20130262595, | |||
20140012927, | |||
20140189524, | |||
20140189539, | |||
20150263995, | |||
WO2009120775, | |||
WO2011163147, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Dec 14 2012 | RABE, DANIEL G | Oracle International Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 029498 | /0021 | |
Dec 16 2012 | OLKIN, JEFFREY | Oracle International Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 029498 | /0021 | |
Dec 18 2012 | CHANG, ANA RAMIREZ | Oracle International Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 029498 | /0021 | |
Dec 19 2012 | Oracle International Corporation | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Date | Maintenance Schedule |
Jun 01 2024 | 4 years fee payment window open |
Dec 01 2024 | 6 months grace period start (w surcharge) |
Jun 01 2025 | patent expiry (for year 4) |
Jun 01 2027 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jun 01 2028 | 8 years fee payment window open |
Dec 01 2028 | 6 months grace period start (w surcharge) |
Jun 01 2029 | patent expiry (for year 8) |
Jun 01 2031 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jun 01 2032 | 12 years fee payment window open |
Dec 01 2032 | 6 months grace period start (w surcharge) |
Jun 01 2033 | patent expiry (for year 12) |
Jun 01 2035 | 2 years to revive unintentionally abandoned end. (for year 12) |