Business intelligent in-document suggestions

Implementing business intelligent in-document suggestion may include detecting a content that a user is inputting into a document or selecting from the document. Based on the content, a key word may be extracted to generate a query. The query may be transmitted to an enterprise search engine for enterprise intelligence. Based on returned search results, a suggestion may be generated and presented to a user device by integrating the suggestion into the document. In some embodiments, the suggestion may include a people suggestion, a document suggestion, a phrase suggestion and a document template suggestion. In some embodiments, adding an additional content or selecting a subset of the content may refine the suggestion.

BACKGROUND

In an enterprise, efficient document collaboration is a crucial activity for business productivity. Conventionally, the document collaboration within the enterprise can be divided into a number of distinct activities, such as authoring a document, searching for enterprise information associated with the document as well as organizing and analyzing the enterprise information. However, this document collaboration may present some problems (e.g., low efficiency) in the light of continuously growing data associated with the enterprise information.

SUMMARY

Described herein are techniques for unifying enterprise search and authoring by leveraging enterprise intelligence. A key word may be extracted from a content that a user is inputting into a document or selecting from the document. Based on the extracted key word, a query may be generated and submitted to an enterprise search service for an enterprise that the user is associated with. The enterprise search service may be for searching enterprise data, such as personnel data, product or service data, etc. Once the query results are received, a suggestion may be generated based on the query results. This suggestion may be then presented to a user device by integrating the suggestion into a user interface for displaying the document.

In some aspects of the disclosure, adding additional content or selecting a subset of the text may refine the suggestion.

In some aspects of the disclosure, the suggestion may be one of a people suggestion, a document suggest, a phrase suggestion or a document template suggestion. In some embodiments, a suggested document may be added to a citation section of the authored document when text is pasted from the suggested document to the authored document. In some embodiments, the citation for the authored document may embed a light-weight viewer for the suggested document.

DETAILED DESCRIPTION

Overview

This disclosure is directed, in part, to implement real-time business intelligent in-document suggestions. As used herein, the term “in-document suggestions” means that the suggestions are presented in a user interface for displaying the document, not that those suggestions are automatically placed within the document. Enterprise intelligence may be leveraged more effectively by exploiting context of an authored document and unifying enterprise search and authoring. This unification may provide a user experience that reduces clicks and context switching, thus increasing the business productivity.

While authoring a document, a key word may be extracted from content that a user is inputting into the document or selecting from the document. Based on the extracted key word, a query may be generated and submitted for enterprise search associated with an enterprise that the user is associated with. Once query results are received, a suggestion may be generated based on the query results. This suggestion may be then presented to a user by integrating the suggestion into a user interface for displaying the document.

Illustrative of Environment

FIG. 1is a schematic diagram of an illustrative computing environment100that supports a processing engine102that performs real-time business intelligent suggestions. The processing engine102may be implemented by a user device104or a host server106of a host108. The processing engine102may acquire content data110. The content data110may be acquired from an interface112that is operating on the user device104, and/or acquired from other sources. The content data110may include user inputs of content into the interface112. For example, in a scenario in which the application is a word processor (e.g., Microsoft Office Word®), the user inputs may include a current text (e.g., words114) that a user116is typing and/or previous text that the user is selecting while authoring a document118.

The content data110may further include application specific data and environment data. The application specific data may include the name and the type of the application, and/or a current state of the application (e.g., idle, receiving, input, processing data, and outputting data). The environment data may include data on the real-world environment. For example, the environmental data may include a time at each instance when the user inputs content, the weather at each time when the user inputs text, etc. The environmental data may also concurrently or alternatively include current system software and/or hardware status or events of the user device104. Additionally, the content data110may include user status data collected from personal web services by the user. The collected status data may provide explicit or implicit clues regarding the document118that the user116is authoring.

After the processing engine102has acquired the content data110, the processing engine102may recognize and extract a key word from the content data110. In some embodiments, the processing engine102may use machine-learning-based techniques, such as natural language processing (NLP), computational linguistics, and/or text analytics to recognize and to extract the key word. In these instances, a learning model may be generated from a corpus of training data that includes a large number of sentences associated with enterprise intelligence. In some embodiments, the training data may include enterprise intelligence associated with an enterprise that the user116is working with.

Based on the key words extracted from the content data110, the processing engine102may formulate a query120and submit the query120to a web service hosted by the host server. For example, the web service may include an enterprise search. In these instances, the host server106may conduct the enterprise search, generate a result122, and transmit the result122to the processing engine102. In some embodiments, the enterprise search may be hosted by other web service providers. In these instances, the host server106may enable the processing engine102to receive the result122from servers of the web service providers.

Once receiving the result122, the processing engine102may generate a suggestion124based on the result122. The suggestion124may be a suggested document, one or more suggested people, a suggested phrase, a suggested documental template, a suggested enterprise statistics and/or any other suggested information that is associated with the enterprise. The processing engine102may then transmit the suggestion124to the interface112.

The suggestion124may then be displayed by the interface112on the user device104. The user device104may, via the interface, enable the user116to compose, edit, format, print and conduct any other productions of a portion (e.g., words114) or entire of the document118. The user device104may be a mobile telephone, a smart phone, a tablet computer, a laptop computer, a network, a personal digital assistance (PDA), a gaming device, a media player, or any other mobile computing device that includes a display, and can interface with a user via a user interface and connect to one or more networks126to exchange information with the host server106or another server providing an enterprise search.

The network(s)126may include wired and/or wireless networks that enable communications between the various computing devices described in the computing environment100. In some embodiments, the network(s)126may include local area networks (LANs), wide area networks (WAN), mobile telephone networks (MTNs), and other types of networks, possibly used in conjunction with one another, to facilitate communication between the various computing devices (i.e., the user device104and/or the host server106). The computing devices are described in greater detail with reference to the following figures.

As discussed herein, a document refers to any multi-line text input area for any application, whether a text area field within a webpage, an editing window for a chat client (e.g., instant messaging client, etc.), and/or any editing surfaces within office suite authoring programs (e.g., electronic mail (email) clients, word processors, note-taking software and presentation software). Additionally, the user116may author the document118within mobile text input areas such as to author an SMS (Short Message Service) text message via the user device104.

Illustrative of Architecture

FIG. 2is a schematic diagram of an illustrative scheme200that implements business intelligent suggestions. The scheme200may include the interface112, the host server106and the processing engine102. At least a part of the processing engine102may be implemented as a cloud-type application that queries, analyzes, manipulates returned results from web services, and presents suggestions on a computing device. In some embodiments, at least a part of the processing engine102may be implemented by a web application that runs on the user device104.

The processing engine102may include a pre-processing component202and a post-processing component204. The pre-processing component202may acquire the content data110from the interface112. The pre-processing component202may include a key word module206and a query module208. Once acquiring the content data110from the interface112, the key word module206may analyze the content data110to extract a key word from the content data110. The extraction may be implemented by machine-learning-based technologies, such as NLP, using a training data associated with enterprise intelligence of an enterprise. In some embodiments, the training data may be associated with the enterprise intelligence of the enterprise that the user is working with. Based on the extracted key word, the query module208may formulate the query120.

In some embodiments, the extraction and query generation may be implemented by hooking into an object model (OM) associated with a word processor (e.g., Microsoft Office Word®). The OM may provide crucial information regarding the content data110acquired from the document118, which lets the key word module206make decisions on what key word(s) to identify and enable query generation. For example, the pre-processing component202may be implemented as a web application that runs on the user device104. The client side object model may be used as a part of a web Extension Framework to integrate the pre-processing component202with the document118. The web application may runs in Silverlight® with an elevated trust. The user116may click a tool bar (e.g., the Ribbon®) or select text manually to trigger acquiring content data110from the web application, extracting the key word, and formulating the query120.

Once the query120is formulated, the query module208may submit the query120to a web service hosted by the host server106. For example, the web service may be an enterprise search. The host server106may host a web application platform (e.g., Microsoft SharePoint) for common enterprise web requirements. In some embodiments, the web application platform may enable an enterprise to manage, scale and/or initiate a board variety of business applications. In some embodiments, the web application platform may include pre-defined “applications” for commonly requested functionalities, e.g., intranet portals, extranets, websites, document & file management, collaboration space, social tools, enterprise search and enterprise intelligence. For example, the enterprise search may be implemented by the web application platform to search the enterprise resources. The enterprise search may index data and documents from a variety of sources such as file systems, intranets, document management systems, electronic mails, and database within the enterprise. Security policies may be used to control the access to the enterprise search.

In some embodiments, the web application platform may be hosted by another web service provider. In these instances, the host server106may host a web application that implements functionalities of the processing engine102.

After the host server106processes the query120, the host server106may return the result122to the post-processing component204. The post-processing component204may include an analyzer210and a suggestion module212. The analyzer210may analyze the result122. In some embodiments, the analyzer210may analyze the result122to remove data that does not align with the key words extract from the interface112. The analyzer210may remove the data from the result122based on a predetermined rule specified by the enterprise and/or the user116. In some embodiments, the analyzer210may receive multiple results. The analyzer210may sort the multiple returned results based on, for example, types. After analyzing and manipulating the result122, the analyzer210may feed the result122to the suggestion module212to generate the suggestion124.

In some embodiments, the suggestion module212may generate suggestion124. The suggestion124may be a people suggestion, which may indicate certain people aligned with the content data110. The people may be, for example, an expert of a certain technical area related to the content data110and/or the extracted key word. The people suggestion may further indicate information of the people, such as their expertise, office locations, current availabilities, pictures, contact information, documents authored by the people, enterprise groups that the people belong to, and/or any other enterprise information associated with the people.

In some embodiments, the suggestion124may be a document suggestion, which may indicate a document aligned with the content data110. The document suggestion may further indicate an enterprise policy, a document template, a legal statement, confidential information, an enterprise statistics, metadata associated with the suggested document and the document118. For example, the document template may be aligned with the content data110or a format of the document118. In some embodiments, the suggestion124may be a phrase suggestion that assists the user116to input additional content. In some embodiments, the suggestion module212may generate multiple suggestions, which may include a people suggestion, a document suggestion, a phrase suggestion and/or other suggestions aligned with the content data110.

After the suggestion124is generated, the suggestion module212may transmit the suggestion124to the interface112. The interface112may then display the suggestion124on the user device104, the displaying being discussed in a greater detail inFIGS. 5-7.

In some embodiments, the processing engine102may include an applications programming interface (API)214that may be available for access by a web application that runs on the user device104or for access by web services hosted on the host server106. For example, the API214may be object-oriented component-based API, such as the Windows Communication Foundation (WCF) included on the .NET™ Framework manufactured by the Microsoft Corporation, Redmond, Wash.

In some embodiments, the processing engine102may include a cache component216. The cache component216may store list query results and/or objects such as suggested documents, sites and webs that are associated with the enterprise. These objects may be expensive to create. Therefore, the cache component216may improve the performance of the processing engine102if the same objects are repeatedly accessed. In some embodiments, the cache component216may be implemented by using a back-end caching. In these instances, the cache component216may reside within a site architecture (e.g., the host server106) that provides the enterprise search, and cache the list query results and/or suggested information including, for example, people, documents, templates and statistics that are aligned with the content data110. In some embodiments, the cache component216may be implemented by using a proxy caching. In these instances, the cache component216may reside outside of the site architecture that provides the enterprise search.

Illustrative Operation

FIG. 3is a flow diagram of an illustrative process300to enable real-time enterprise search while authoring. The process300is illustrated as a collection of blocks in a logical flow graph, which represent a sequence of operations that can be implemented in hardware, software, or a combination thereof. In the context of software, the blocks represent computer-executable instructions that, when executed by one or more processors, cause the one or more processors to perform the recited operations. Generally, computer-executable instructions include routines, programs, objects, components, data structures, and the like that perform particular functions or implement particular abstract data types. The order in which the operations are described is not intended to be construed as a limitation, and any number of the described blocks can be combined in any order and/or in parallel to implement the process. Other processes described throughout this disclosure, including the process400, in addition to the process300, shall be interpreted accordingly.

At302, the interface112may enable the user116to author the document118. In some embodiments, the user116may conduct an online chat or email composition. Via the interface112, the user116may compose, edit, format, print and conduct any other productions of a portion (e.g., the words114) or entire of the document118(e.g., a chat log or an email).

At304, the processing engine102may facilitate an enterprise search while the user116is authoring. The processing engine102may acquire the content data110from the interface112and generate the query120based on the content data110. The query120may be transmitted to the host server106, which may then conduct the enterprise search and return the result122to the processing engine102. In some embodiments, the result122may be stored in the cache component216. In these instances, the result122may be directly returned to the post-processing component204. Accordingly, the ambient search in this disclosure may integrate searching, analyzing and writing tightly.

At306, the interface112may present the suggestion124on the user device104. The suggestion124may be a people suggestion, a document suggestion, a template suggestion, enterprise statistics and/or other suggested information aligned with the content data110. The suggestion124may be surfaced inside of the user interface112displaying the document118such that the suggestion124is integrated into the user interface112. In some embodiments, the suggestion124may be surfaced by implementing an Input Method Editor (IME). In some embodiments, the suggestion124may be attached to the document118, which, for example, may be an electronic mail (email).

FIG. 4is a flow diagram of an illustrative process400for real-time enterprise search by generating a query while authoring and presenting business intelligent suggestions. At402, the processing engine102may detect the content data110that the user116is inputting or selecting. This detection may trigger ambient search conducted by the processing engine102. In these instances, the processing engine102may extract key words from the content data110in response to the detection. For example, the processing engine102may conduct the ambient search in response to detecting that user116manually selects text of the document118. In some embodiments, the user116may trigger the ambient search by clicking a tool bar of an application (e.g., a ribbon of Microsoft Office Word®).

At404, the processing engine102may extract a key word from the content data110. The extraction may be implemented by a machine-learning-based technology, such as NLP. In some embodiments, the machine-learning-based technology may be trained by using a business model including data associated with the enterprise intelligence of an enterprise. In some embodiments, the extraction of the content data110may be implemented by using an object model (OM) such that the document118can be explored in a syntactic way. The OM may be associated with the application running the interface112, and provide crucial information regarding the document118. This crucial information may enable the processing engine102to identify the key word for query generation.

At406, the processing engine102may formulate the query120based on the key word extracted from the content data110. In some embodiments, the query120may be structured such that an enterprise search engine may be used to search the enterprise wide resources and/or other search engines may be used to search other data sources. At408, the query120may then submitted to an enterprise search hosted by the host server106. At410, the result122may be received by the processing engine102. In another embodiment, the query120is submitted to a search engine of an enterprise designated for searching data of the enterprise.

After receiving the result122, the processing engine102may analyze the result122at412. For example, the processing engine102may parse the result122and sort them based on various types. These types may be documents, people, templates, phrases, and other search results aligned with the content data110. Based on the analyzed and sorted result111, the processing engine102may generate the suggestion124at414.

The suggestion124may be a document suggestion, a people suggestion, a phrase suggestion and/or other suggestions aligned with the content data110. For example, the document suggestion may indicate specific policies, legal statement (e.g., contracts), document templates that are aligned with the content data110. The people suggestion may indicate people who authored the suggested documents, experts in certain technical area that is related to the technical area reflected in the content data110, and other people that are aligned with the content data110. The phrase suggestions may include phrases assisting the user116to input additional content in the document118. In some embodiments, adding additional words or selecting a subset of text (e.g., the content data110) may trigger another ambient search and/or refining the suggestion124.

At416, the suggestion124may be presented to the interface112on the user device104, is the displaying being discussed in a greater detail inFIGS. 5-7. In some embodiments, the interface112may automatically add a suggested document to a citation section of the document118when text is pasted from the suggestion document to the document118. In these instances, the citation section of the document118may embed a light-weight view in the suggested document.

Illustrative Interfaces

FIGS. 5-7are illustrative user interfaces (UI) that enable enterprise search while authoring. WhileFIGS. 5-7illustrate three example user interfaces, it is to be appreciated that multiple other graphical or non-graphical user interfaces may be employed to enable enterprise search while authoring.

FIG. 5is an illustrative user interface (UI)500of an application that surfaces business intelligent in-document suggestions by implementing the process400with reference toFIG. 4. The UI500may be presented by a web application (e.g., Microsoft Live Office® web applications) hosted on the host server106, and displayed by the user device104. In some embodiments, the UI500may be presented by an application (e.g., Microsoft Office Word®) that runs on the user device104. In these instances, a web extension for the application is built upon a web extension framework, which may enable web applications to authenticate with active users and allow integration with the application.

The UI500may include a title section502, a toolbar section504, a scrollbar section506, a status section508and a content section510. The title section502may include a title of the document118(e.g., Document1). The toolbar section504may be filled with graphical representations of control elements, which are grouped by different functionalities. For example, the toolbar section504may include a ribbon512that is used to trigger the ambient search conducted by the processing engine102. The scrollbar section506may control the presentation of continuous text, picture or other content that can be scrolled. The status section508may display messages, such as a cursor position, a number of pages in the document118, and a state of the caps lock, num lock, and scroll lock keys. The content section510may allow the user116to input or select the content data110.

The UI500may also include a suggestion section514that enable the user116to review and to manipulate suggestions generated by the processing engine102. The suggestion section514may include a search box516that may indicate a key word extracted from the content data110. In some embodiments, the search box516may enable the user116to input a key word as a query for the enterprise search. The suggestion section514may also include a document suggestion518, a people suggestion520, a project suggestion522, and an indicator524. The project suggestion522may provide information for projects that are running in the enterprise and aligned with the content data110. The indicator524may indicate a current page number and/or a number of pages in suggested information. The document suggestion518and the people suggestion520are discussed in a greater detail inFIGS. 6 and 7.

FIG. 6is an illustrative user interface (UI)600that further illustrates the document suggestion518as shown in the UI500ofFIG. 5. The document suggestion518may include a summary box602indicating a number of the suggested documents, a title box604indicating a title and a type of the suggested document (e.g., Product A designs), a key word box606indicating key words associated with the suggested document, and a sub-scrollbar608that enable the user116to read other suggested documents.

The document suggestion518may also include an expander610that enables the user116to further review one of the suggested documents (e.g., Product A designs) by expanding the document suggestion518to an expanded suggestion document612. The expanded suggestion document612may display the suggested document in a greater detail (e.g., Product A designs). The expanded suggestion document612may include a expanded title box614, a expanded key word box616, a content preview box618, a status box620, and a full screen view box622that enable the user116to view “Product A designs” in a full screen. The content preview box618may provide a preview of the suggested document for the user116to review. The expanded suggestion document612may also include a restorer624that enable the user116to restore the expended suggestion document612to the document suggestion518.

FIG. 7is an illustrative user interface (UI)700that further illustrates a people suggestion520as shown in the UI500ofFIG. 5. The people suggestion520may include a summary box702indicating a number of the suggested people, a title box704indicating a name, a title and a picture of the suggested people (e.g., Lucy Lee), a sub-scrollbar706that enable the user116to read other suggested people, and a contact box708indicating various communication tools that enable the user116to contact the suggested people. The various communication tools may include an email, a video conference, a teleconference and an instant messaging.

The people suggestion520may also include an expander710that enables the user116to further review one of the suggested people (e.g., Lucy Lee) and to expand the people suggestion520to an expanded people suggestion712. The expanded people suggestion712may display the suggested document in a greater detail. The expanded people suggestion712may include a expanded title box714, a expanded contact box716, an expertise box718, a recently authored document box720, a status box722, a profile box724and a full screen view box726that enable the user116to view “Product A designs” in a full screen. The expanded people suggestion712may also include a restorer728that enable the user116to restore the expended people suggestion712to the people suggestion520.

Illustrative Computing Device

FIG. 8shows an illustrative computing device800that may be used to implement the platform for continuous mobile-cloud services. It will readily be appreciated that the various embodiments described above may be implemented in other computing devices, systems, and environments. The computing device800shown inFIG. 8is only one example of a computing device and is not intended to suggest any limitation as to the scope of use or functionality of the computer and network architectures. The computing device800is not intended to be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the example computing device.

In a very basic configuration, the computing device800typically includes at least one processing unit802and system memory804. Depending on the exact configuration and type of computing device, the system memory804may be volatile (such as RAM), non-volatile (such as ROM, flash memory, etc.) or some combination of the two. The system memory804typically includes an operating system806, one or more program modules808, and may include program data810. The operating system806includes a component-based framework812that supports components (including properties and events), objects, inheritance, polymorphism, reflection, and provides an object-oriented component-based application programming interface (API). The computing device800is of a very basic configuration demarcated by a dashed line814. Again, a terminal may have fewer components but will interact with a computing device that may have such a basic configuration.

The computing device800may have additional features or functionality. For example, the computing device800may also include additional data storage devices (removable and/or non-removable) such as, for example, magnetic disks, optical disks, or tape. Such additional storage is illustrated inFIG. 8by removable storage816and non-removable storage818. Computer-readable media may include, at least, two types of computer-readable media, namely computer storage media and communication media. Computer storage media may include volatile and non-volatile, removable, and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. The system memory804, the removable storage816and the non-removable storage818are all examples of computer storage media. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD), or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transmission medium that can be used to store the desired information and which can be accessed by the computing device800. Any such computer storage media may be part of the computing device800. Moreover, the computer-readable media may include computer-executable instructions that, when executed by the processor(s)802, perform various functions and/or operations described herein.

In contrast, communication media may embody computer-readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave, or other transmission mechanism. As defined herein, computer storage media does not include communication media.

The computing device800may also have input device(s)820such as keyboard, mouse, pen, voice input device, touch input device, etc. Output device(s)822such as a display, speakers, printer, etc. may also be included. These devices are well known in the art and are not discussed at length here.

The computing device800may also contain communication connections824that allow the device to communicate with other computing devices826, such as over a network. These networks may include wired networks as well as wireless networks. The communication connections824are one example of communication media.

It is appreciated that the illustrated computing device800is only one example of a suitable device and is not intended to suggest any limitation as to the scope of use or functionality of the various embodiments described. Other well-known computing devices, systems, environments and/or configurations that may be suitable for use with the embodiments include, but are not limited to personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-base systems, set top boxes, game consoles, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and/or the like. For example, some or all of the components of the computing device800may be implemented in a cloud computing environment, such that resources and/or services are made available via a computer network for selective use by the user devices104.

CONCLUSION

Although the techniques have been described in language specific to structural features and/or methodological acts, it is to be understood that the appended claims are not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as exemplary forms of implementing such techniques.