Digital proxy created by the author

Through the digital agent and content corpus services created by the author, the problem of incomplete information in electronic document consumption is solved, consumers can achieve the ability to conduct in-depth research on document content, and improve the document consumption experience.

CN111837118BActive Publication Date: 2025-02-18MICROSOFT TECHNOLOGY LICENSING LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN201980018370.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2018-03-20
Filing Date
2019-03-12
Publication Date
2025-02-18
Estimated Expiration
2039-03-12

AI Technical Summary

Technical Problem

When existing electronic documents are consumed, it is difficult for consumers to obtain the author's immediate explanation and supplementary information, resulting in incomplete or difficult to obtain.

Method used

Provides digital agents and content corpus services created by the author. The digital agent can respond to implicit or explicit requests from consumers, determine the corpus associated with the document, formulate queries and search for corpus content. If the result does not meet the consumer's request, it will be used to The author sends a message and adds the response to the corpus.

Benefits of technology

It has achieved in-depth information research capabilities for consumers without increasing the complexity of the document, ensuring the integrity and timeliness of information, and improving the document consumption experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN111837118B_ABST
    Figure CN111837118B_ABST
Patent Text Reader

Abstract

Author-created digital agents and content corpora for electronic documents are described. The content corpus service may include application programming interfaces, such as for adding content to a corpus, attaching a corpus to a document, retrieving a corpus associated with an author, and searching the content of a corpus. The author-created digital agent may receive a request from a consumer of a document, determine a corpus associated with the document, formulate a query based on the request, and search for content associated with a corpus associated with the document.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] Electronic documents include any form of content that can be consumed by a user via a software application. Electronic documents include, but are not limited to, messages (e.g., email files), portable document format files and word processing documents (commonly referred to as "documents"), presentations, spreadsheets, web pages, and free-form content files (e.g., note pages and whiteboards).

[0002] When a document is consumed, it is up to the recipient to interpret the information presented by the author in context. The author is often not present or immediately accessible to answer questions or clarify a point. Instead, content consumers must search for information from online resources or contact the author or others for further information. Summary of the invention

[0003] Digital agents and content corpora for author creation of electronic documents are described.

[0004] An author-created digital agent is provided that, in response to an implicit or explicit request from a consumer receiving a document, can determine a corpus associated with the document, formulate a query based on the request, and use the query to search for content associated with the corpus associated with the document. The implicit request can be actively generated by the digital agent to provide suggested content to the consumer. The implicit request can be generated by the context of the consumer's interaction or lack of action regarding the document and / or other signals about the device, application, or consumer. The author-created digital agent can receive the results of the search; provide the results of the search to the consumer; and determine whether the results include results that satisfy the consumer's request. If the results do not include results that satisfy the consumer's request, the author-created digital agent can prepare a message to the author of the document based on the query and transmit the message to the author. In response to receiving a response to the message from the author, the author-created digital agent can add the response to at least one of the corpora associated with the document.

[0005] The content consumer may invoke the author-created digital agent via the content consumption application, or via a separate application or feature. Once the author-created digital agent is initiated, the author-created digital agent may receive a request for a response regarding the author-created content. The author-created digital agent may identify a document identifier, a corpus identifier, an author identifier, or a combination thereof from the author-created content; determine a corpus associated with the request; and search the content in the corpus for content relevant to the request.

[0006] A content corpus service is provided that may include an application programming interface, for example, for adding content to a corpus, attaching a corpus to a document, retrieving a corpus associated with an author, and searching the content of a corpus.

[0007] A content corpus service can manage a mapping data structure; receive a request to add content to one or more corpora; store or update a mapping of the content to the one or more corpora in the mapping data structure; receive a request to attach at least one of the one or more corpora to a document; and store or update a mapping of at least one of the one or more corpora to the document in the mapping data structure.

[0008] A content creation application or an author-created digital proxy feature may transmit a request for a list of corpora associated with an author identifier to a corpus service, each of the corpora associated with the author identifier comprising a curated, bounded set of content. Either the application or the feature may receive the list of corpora associated with the author identifier from the corpus service; receive a selection of a new corpus or at least one of the list of corpora from a user; and attach the new corpus or at least one of the corpora to the document to create the author-created digital proxy.

[0009] This summary is provided to introduce a series of concepts in a simplified form, which will be further described in the detailed description below. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. BRIEF DESCRIPTION OF THE DRAWINGS

[0010] Figure 1A and Figure 1B An example operating environment is shown.

[0011] Figure 2 illustrates a process that may be performed by a corpus service.

[0012] Figure 3A and Figure 3B An example mapping data structure that may be managed by a corpus manager is shown.

[0013] Figure 4 The process flow of the digital agent created by the author is shown.

[0014] Figure 5A-5F An example scenario of invoking a digital agent created by an author is shown.

[0015] Figure 6 Shown is an example service architecture for a digital agent created by the authors.

[0016] Figure 7A-7C An example scene of a digital agent created by the author is shown.

[0017] Figure 8A-8C An example representation of a digital agent created by the authors is shown.

[0018] Figure 9A-9D An example process that may be performed by a digital agent created by an author is shown.

[0019] Fig.10 An example Robot Framework environment is shown.

[0020] Figures 11A-11F An example scenario of adding content to a corpus is shown.

[0021] Figure 12A-12C An example scenario of attaching one or more corpora to a document is shown.

[0022] Fig.13 A process that may be performed by a corpus editing tool feature is shown.

[0023] Fig.14 Components of a computing device are shown that may be used in certain embodiments described herein.

[0024] Fig.15 Components of a computing system are shown that may be used in certain embodiments described herein. DETAILED DESCRIPTION

[0025] Digital agents and content corpora for author creation of electronic documents are described. The described features can provide a virtual author that appears to move with the document, allowing consumers of the document to interact with the author's avatar or other interface to delve into areas related to the document's content without adding complexity to the document itself.

[0026] As used herein, "electronic document" and "document" are used interchangeably to refer to any type of electronic document. As explained in the background, electronic documents include, but are not limited to, messages (e.g., email files), portable document format files and word processing documents (commonly referred to as "documents"), presentations, spreadsheets, web pages, and free-form content files (e.g., note pages and whiteboards). Documents provide a container for content created by authors.

[0027] Digital agents and content corpora created by authors of electronic documents may involve hybrid intelligence. Hybrid intelligence (also known as hybrid augmented intelligence) refers to a combination of human and machine intelligence, where both human and machine intelligence are used to solve problems. Hybrid intelligence can be used to train artificial intelligence.

[0028] A digital agent can be a software agent that acts on behalf of an author or a computer / computing entity. In some cases, a digital agent can be a robotic agent, or "bot." "Bot" is a term for a service. Some robots interact with users; other robots can perform automated functions for other applications. Conversational interfaces are often referred to as "chatbots," and in some cases, virtual / digital assistants (e.g., MICROSOFT CORTANA, APPLESIRI, SAMSUNG BIXBY, AMAZON ALEXA, and GOOGLE ASSISTANT) can be considered a form of chatbot or robot. Robots can communicate with users using text, cards, voice, and even images and interact in other ways. Robots can have varying degrees of complexity (from simple pattern matching for responses to complex integration with existing services) to provide business logic, natural language understanding, and other services. The digital agent created by the described author can be implemented, for example, as a chatbot about Fig.10 Part of the described Robot Framework environment, where an author-created agent is an author-created robot that resides as a service supported by the Robot Framework. In other cases, the described author-created digital agent can be implemented as part of a standalone service. Thus, an author-created digital agent can refer to a service that is invoked by a document (or by a content consuming application) when a content consumer is interacting with the document. The author-created digital agent can be provided in a manner that reduces or removes the need for the author to understand the complexity of agent / bot creation. In some cases, the author-created digital agent can be created on behalf of a user through scaffolded interaction (e.g., through its model of demonstrating, repeating, and / or supporting actions) of an interface with another application (e.g., a content creation application).

[0029] "Avatar" refers to a visual representation of a digital agent; and may include images, video, and audio. Avatars may be used to convey emotions, actions, and movements. In some cases, a digital agent may include visual, audio, and even touch representations. In some embodiments, the author-created digital agents described may not include an avatar, and instead utilize other interfaces.

[0030] The described author-created digital agent utilizes one or more corpora associated with a document to generate information for consumers of the document. The complete content associated with the one or more corpora itself is opaque to the consumer, except for content provided in response to requests from content consumers. The files and fragments of content associated with a particular one or more corpora may change over time due to requests from content consumers (and responses given by the author), active additions and removals of associated content by the author, and learned activities of the author (e.g., where the author-created digital agent learns from the author's behavior and activities to add content to one or more of the author's corpora).

[0031] In some cases, associations can change over time due to changes in behavior, signals, or content external to the document to which the corpus is attached. For example, there can be changes in the documents that are related, changes based on signals surrounding human behavior (e.g., meetings), or changes based on improvements to a learned model. In some cases, deep learning based on sources indicating relationships between users and content can be used to modify and improve author-created digital agents and / or content corpora. For example, an author-created digital agent can leverage content and interactions identified by sources associated with the author, which can be found on social or professional sites (e.g., FACEBOOK, LINKEDIN) and enterprise graphs (e.g., MICROSOFTOFFICE GRAPH) to provide suggestions about content that can be added to the corpus, as well as suggestions about corpora to be added to documents.

[0032] For author-created digital agents, the document has at least one bounded and curated corpus of content from which additional information can be obtained. The bounded, curated corpus can be updated directly by the author or indirectly, for example via artificial intelligence or hybrid intelligence. Because the corpus is bounded, the number of resources that need to be searched is minimized, in some cases reducing power consumption and bandwidth requirements of the computing system on which the content is being consumed. Because the corpus is curated, the content that is searched will be the most relevant to the query, which is particularly useful in situations where terms used in the document can have multiple meanings beyond what the author intended, and / or where code names or terms specific to the author or enterprise are used.

[0033] Figure 1A and Figure 1B An example operating environment is shown; and Figure 2 shows the process that can be performed by the corpus service. Figure 1AIn an example operating environment, corpus service 100 may include an application programming interface (API) that supports digital agents created by authors. Author device 101 may communicate with corpus service 100 via the API. For example, author device 101 may add 102A content to a selected corpus. Additionally, author device 101 may attach 104 a particular corpus to a document. At corpus service 100, corpus manager 110 may manage relationships between content, files, corpora, and documents in response to receiving requests to add 102A and attach 104 from, for example, author device 101 via the API.

[0034] A corpus manager (e.g., corpus manager 110) can manage the mapping of corpora to the documents they support and to the mapping of the content that forms them. A corpus manager can be part of a corpus service with an application programming interface for adding content to a specific corpus or corpora, and attaching one or more corpora to a specific document. A digital agent created by an author can access a corpus service to identify appropriate resources to search. In some cases, a digital agent created by an author can include or access intelligence that can automate the addition (and removal) of content to a corpus, such as when the answer to a request is not found in existing content, and when content indicated as part of a corpus is interacted with (by the author or others). In some cases, a digital agent created by an author can be configured to reference content outside a corpus. In one such case, a digital agent created by an author can have permissions for accessing information from the web, other documents, or other authors.

[0035] A consumer at consumer device 121 may consume a document to which an author (eg, at author device 101 ) has attached a corpus via a content consumption application.

[0036] "Content consumption application" refers to any application in which content can be consumed (e.g., by viewing or listening). In some cases, content consumption applications include editing functionality, and may include content creation applications. Examples of content consumption applications include document viewers (e.g., PDF viewers), email applications, reader applications (e.g., e-book readers), presentation applications, word processing applications, web browser applications, audio players (spoken audio and music), video players, notebook applications, and whiteboard applications.

[0037] When the consumer is consuming the document at the consumer device 121, the consumer is able to delve deeper into the document than what is shown by using a gesture to access the digital agent service 130 to utilize information from the additional corpus, as reflected by the digital agent through the communication query 122. The gesture to access the digital agent service 130 can initiate the digital agent and can include communicating with the robot framework and / or executing scripts in the document file or metadata of the document. In some cases, parts of the digital agent service 130 can be local (e.g., at the consumer device 121), and parts of the digital agent service 130 can be executed at the server. For example, some common questions or commands can be locally served by parts of the digital agent service 130 at the consumer device. The digital agent can search 132 the additional corpus via the digital agent service 130 by communicating with the corpus service 100 (e.g., via one or more APIs). If the answer is not available in the additional corpus, the digital agent service 130 can transmit feedback 134 to the author. In some cases, the digital agent service 130 may accept a response from the author and add the response to one of the author's messages via, for example, the add content API 102B. In some cases, the digital agent service 130 may provide the response from the author to the consumer in an interface that is subsequently presented to the author-created digital agent. In some cases, the digital agent service 130 may provide a notification to the consumer that a response to the message from the author is available.

[0038] In some cases, authors can consume their own documents and access service 130 to utilize information from their own additional corpora. In some such cases, authors can use digital agents to help create new content (which may or may not reuse fragments of existing content).

[0039] In addition to adding content to a corpus and attaching a corpus to a document, authors (or the application they are using) can also obtain information about their available corpora and the content they have added to the corpus. Figure 2 As shown, a request 201 including an author ID may be received 202 by a content corpus service. Based on the author ID, the content corpus service may determine related corpora 204. The related corpora may be provided to the request source as a list. In some cases, a corpus request may be associated with a group of authors, rather than just a single author. In some such cases, a group identifier may be used. In other such cases, multiple author identifiers are transmitted with the request. The corpus list may be used when an author is trying to add content to a corpus, and when an author is trying to attach a corpus to a document.

[0040] For example, Figure 2 As further shown, when an author wants to add content to one of their corpora, a request 211 including content information (e.g., content identifier, location, and / or content itself) and a selected corpus identifier may be transmitted to a content corpus service. The content corpus service receives the request to add content to at least one corpus 212. The content corpus service may use the information from the request to store or update a mapping of content to corpora 214.

[0041] In addition to adding content to a corpus, the API can also be used to attach a specific corpus to a document. Figure 2 As shown, a request 221 for attaching one or more corpora to a document may include a document ID and a selected corpus identifier. The content corpus service may receive a request 222 for attaching at least one corpus to a document; and store or update a corpus to document mapping 224. Storing content to corpora and storing corpora to documents may be managed by the content corpus manager 110.

[0042] In some cases, the content corpus service may receive a request 231 to search a corpus of content attached to a document (232). Request 231 may include a query and an identifier, such as a document ID, a corpus ID, or other identifier that can be used to find content in the corpus (e.g., such as information about the document). Figure 8A-8C The content corpus service may search the corpus using the query (234) and provide the search results to the request source (236). The request source may be a digital agent created by the author, which further provides the search results to the consumer application and / or more directly in a robot window or robot application. In some cases, the results are provided to the robot service, a third-party service, or via an API. The query received with the request may be an explicit query search term initiated by the user, an implicit search term initiated by the user, or an implicit search term generated on behalf of the user by a digital agent, service, a different digital agent or service, or a third party.

[0043] Figure 1B A simplified example operating environment is shown. Figure 1B, different backends can be used to support author-created digital agents. For example, the digital agent service 130 can manage an index or mapping data structure of a corpus, and search and traverse the data structure to identify an appropriate corpus and search for content contained therein. A consumer at a consumer device 121 can consume author-created content in a document with an attached corpus. When a consumer is consuming a document at a consumer device 121, the user is able to delve deeper into the document than the content shown by using a gesture to access the digital agent service to utilize information from the attached corpus, as reflected by asking the digital agent through communication 122. In some cases, in lieu of explicit actions such as gestures, implicit requests can be generated and transmitted to the digital agent service 130. Implicit requests can be based on context of the consumer's interaction or lack of action with respect to the document and / or other signals about the device, application, or consumer (e.g., device information, application information, user information). The digital agent can determine the corpus associated with the document via the digital agent service 130, formulate a query based on the request from communication 122, and search for content 140 associated with the corpus.

[0044] About Figure 1A As described above, if the answer cannot be obtained from the content in the attached corpus (or is otherwise indicated as not satisfying the consumer's request), the digital agent service 130 can transmit feedback 134 to the author. In some cases, content is provided in response to a request from a consumer (determined to be relevant to the request), and the digital agent created by the author can determine whether the content includes results that satisfy the consumer's request through explicit questions (e.g., "Does this answer your question?") or implicit determinations (e.g., because the user continues to ask repeated questions).

[0045] Figure 3A and Figure 3B A mapping data structure that can be used to map a content corpus is shown. Figure 3A and Figure 3B In the illustrated scenario of , four corpora are shown: Corpus A is shown to have Content 1, Content 2, and Content 3; Corpus B has Content 4, Content 5, and Content 6; Corpus C has Content 7, Content 8, Content 9, Content 10, and even the document of the corpus itself, Doc-ID-1, attached; and Corpus D has Content 1, Content 3, Content 11, and Content 12. Although content nodes can be presented to the system as unique nodes, in some embodiments, nodes can be algorithmically collapsed based on, for example, machine learning or other patterns or identifiers, thereby increasing the number of times that multiple documents point to the same content. The arrangement of nodes can affect the way traversal is performed.

[0046] Also shown are mappings between documents and their attached corpora. Here, the first document (Doc-ID-1) is shown to have corpora A and B attached to it. The second document (Doc-ID-2) is shown to have corpora C and D attached to it. The third document (Doc-ID-3) is shown to have corpora B, E, and F attached to it. As can be seen from the mappings, the same content can be included in different corpora, multiple corpora can be attached to two different documents, and a document that itself has an attached corpus can be included in another corpus. Content in a corpus can be indicated by an identifier and a position. For example, content 1 may be located at URL A, content 2 may be located at URL B, content 3 may be located at URL C, content 4 may be located at URL D, content 5 may be located at URL E, content 6 may be located at URL F, content 7 may be located at URL H, content 9 may be located at URL I, content 10 may be located at URL J, Doc-ID-1 may be located at URL K, content 11 may be located at URL L, and content 12 may be located at URL M.

[0047] In some cases, the content may be physically located across different corpora. In some cases, the content at a node is indicated as a link (e.g., a uniform resource identifier). The content itself may be stored separately. Multiple copies may be provided or the content may be stored in an optimized manner.

[0048] Although not shown, other mappings may be included in the mapping structure, including aspects of social graphs, enterprise graphs, or other information that may be desired to be associated with content, corpora, and documents. For example, in some cases, a graph may include nodes representing authors, with the graph further providing a mapping of corpora to the authors who created them or are assigned to them. The mapping to authors may be direct or indirect, such as through the documents being mapped (e.g., built on a document graph).

[0049] Attaching a corpus or one or more corpora to a document can be considered as attaching an author-created digital agent to the document. One or more of the document identifier, corpus identifier, and / or author identifier can be stored as part of the document's metadata. In some cases, a script can be included in the document's metadata to facilitate the creation of an author-created digital agent.

[0050] The digital agent created by the author can determine a corpus associated with a document consumed by a user; and, using one or more queries formulated based on the user's intent, search the content of the corpus.

[0051] The entirety of the content of a corpus associated with a document is intended to be invisible to consumers of the document. That is, a user consuming a document is not provided with the entirety of the corpus, and may never know all of the content in a particular corpus. Content corpora and data structures enable authors to associate content with documents such that the entirety of the content is invisible to consumers of the document. The opacity results from the fact that even though a document itself may contain a certain amount of content, the information contained within a document (based on the attached corpus) may be virtually unlimited in a large graph system. A digital agent or other intermediary may intelligently provide content from a corpus associated with a document, while the document itself may be abridged or minimized file size.

[0052] Figure 4 Shows the process flow of the digital agent created by the author. Figure 4 , an author-created digital agent may receive (402) a request for a response. The request may be considered to include a user's intent. The user's intent may be an explicit or implicit intent for information about content created by the author of the document being consumed. In some cases, the intent may be determined by the author-created digital agent or by an intent determination service. In some cases, the digital agent may receive a natural language statement or question about the content. The request for a response may also include information associated with the document that is used to identify a corpus containing a collection of selected bounded content from which the author-created digital agent obtains results. The information used to identify the corpus may include a document identifier, a corpus identifier, an author identifier, or some other suitable identifier or identifying information that may be used to find content in an additional corpus. In response to receiving the request, the author-created digital agent may use the identifier to determine a corpus associated with the request (404). From the corpus associated with the author-created content, a search of content in the corpus may be performed for content related to the request (406). The results of the search may be returned to the request source (408).

[0053] The digital agent created by the author can be called in various ways. In some cases, a command or menu item can be provided. In some cases, the digital agent created by the author can be called due to the action or inaction of the user. Once called, the digital agent created by the author can be initiated, which includes presenting an avatar or interface to prepare to receive a request for a response (for example, the user's intention about the content in the document). The user's intention can be indicated by the selection of a term, sentence, image or other quantity or type of content. In some cases, the intention can be derived from a non-selected context, which includes but is not limited to a location, a device (for example, the type, model, etc. of the device), an application (for example, a version, type, etc.), the content of the document / file, metadata, permissions, sharing status / sharing history, or a contact. Any of these contexts of intention can be used by the digital agent to generate a request (and / or query). In some cases, the initiation of the digital agent involves calling a digital agent service with a digital agent identifier of the digital agent created by the author. In some cases, as part of the initiation of the digital agent created by the author or in response to receiving a request for a response, information (for example, a document identifier, a corpus identifier, an author identifier, or a combination thereof) can be identified from the document.

[0054] Figure 5A-5F Shows an example scenario that invokes a digital agent created by the author. Figure 5A and 5B , a user may invoke an author-created digital agent using an inline annotation or @mention. For example, "@mentions" may be used in emails, notes, and comments to direct comments to an author-created digital agent. For example, a consumer (e.g., represented by icon 500) may be consuming author-created content in document 505, which is displayed using a content consuming application (which is also a content creating application) such as a word processing application 510. Figure 5A As shown, a consumer can enter an inline comment 515 into the body of a document 505 with an @mention of “@authorbot” to invoke a digital agent created by the author. Figure 5B As shown, a consumer can instead invoke the author-created digital agent by using @mention in a comment 520 of document 505. In some cases, a response made by the author-created digital agent can also appear in the comment, such as Figure 5B As shown in the comments 525.

[0055] refer to Figure 5C, the user can invoke the author-created digital agent from within the email application 530. For example, when viewing an email item 535 with a message containing author-created content 540, the consumer can choose to reply to the sender (e.g., via command 545) or send a message to the author-created digital agent (e.g., via command 550) to invoke the author-created digital agent. In some cases, the user can send an email directly to the author-created digital agent using, for example, a unique email address or a general email address that can be used by the receiving service to identify the appropriate author-created digital agent.

[0056] refer to Figure 5D and Figure 5E , users can call up digital proxies created by authors from the search bar, or call digital proxies commands. For example, Figure 5D As shown, a search bar 555 of a content consumption application can be used to call up a digital agent created by an author. In this illustrative example, the content consumption application is a presentation application 560. Figure 5E In the example of , a toolbar command 565 of a content consumption application can be used to invoke a digital proxy created by an author. In this illustrative example, the content consumption application is a PDF viewer 570.

[0057] refer to Fig. 5F , a user can invoke a digital agent created by the author while in a web browser 575 and viewing content created by the author of the web page. In an illustrative example, a chatbot 580 can appear in the display screen of the web browser or in a separate window, for example, as a result of a consumer staying on a page for a period of time without interacting. The chatbot 580 can provide an interface to the digital agent created by the author.

[0058] Of course, other scenarios are contemplated. For example, a user of a personal digital assistant (e.g., APPLE SIRI or MICROSOFT CORTANA) can invoke a digital agent created by an author by asking the personal digital assistant to contact the digital agent created by the author.

[0059] As described above, the digital agent created by the author can utilize other services for analyzing and interpreting intent. In addition, the digital agent created by the author can utilize search services for supporting query formulation based on intent.

[0060] Figure 6 An example digital agent service architecture for a digital agent created by the author is shown. Figure 6 , such as about Figure 1AAs described, the author-created digital agent 600 can perform a search of a corpus attached to a document via communication with a corpus service 610 (e.g., communication 605). The corpus service 610 can include a search service 612, which may or may not communicate with a mapping resource 614 and a corpus manager 616 to access content identified as part of the corpus. The content can be located on a local storage device 618 of a user device 620, in a cloud storage device 622, on a web resource 624, on a cloud enterprise resource 626, or on an on-site enterprise resource 628. If the answer is not available in the content of the attached corpus, the digital agent service 600 can perform a search of the corpus attached to the document as described above. Figure 1B Said to send feedback to the author.

[0061] Figure 7A-7C Shows an example scene of a digital agent created by the author. Fig. 7A , a consumer (eg, indicated by icon 700 ) may view document 702 in a content consumption application 704 .

[0062] Back to Fig. 7A , document 702 may include a question such as: "Would you like to fund a project tree?" 706. In some cases, the consumer may know what a project tree is and be able to respond to or otherwise consume the document. In other cases, the consumer may not know or may have questions they would like to ask the author. In this case, the consumer may perform a gesture to access the digital agent created by the author. Here, a gesture (710) of selecting the "Explore" command 712 is used. Figure 7B As shown, in response to receiving the explore command, the author-created digital agent can be instantiated and a chat box 720 can be opened. Here, the consumer enters "What is a project tree?" 722 in an input field 724. The question can be entered by explicit statement (e.g., by typing or speaking the question) or can be inferred by selection of content in the document, as some examples. In some cases, the author-created digital agent can then operate as described with respect to FIG. 1. In more detail, as Figure 8A-8C As shown, the information at the document can be used by the digital agent service to access the appropriate information.

[0063] like Figure 7CAs shown, the results of the search for content from the author's corpus can be presented in the digital agent interface. For example, in an illustrative scenario, the author may have included a FAQ file in the corpus attached to the document 702, and the digital agent returns the answer 730 such as "Project Tree is a joint effort of Jill and Jack" provided by the author. The digital agent interface can allow consumers to continue to interact with additional questions (e.g., via input bar 732). Although a robot window / chat box 720 is shown, the digital agent interface can be an avatar. In addition, although input bars 722, 732 are shown, any suitable input mechanism (e.g., verbal or other natural user interfaces) can be used. In some cases, the digital agent can be displayed in a window or screen separated from the content consumption application, and can even be displayed on a separate device. In some cases, instead of a conversational robot, the interface can be a graphical user interface that represents the content of the interaction (e.g., questions and answers) in a more document-like manner.

[0064] Figure 8A-8C shows an example representation of a digital agent created by the author; and Figure 9A-9D shows an example process that can be performed by a digital agent created by the author. Fig. 8A In the example shown, the digital agent 802 can use a document identifier 803 of a document 804 to determine the content to be searched. For example, the document identifier 803 can be used to access a mapping 806 (which can be managed by a corpus manager) that indicates the corpus attached to the document 804 and, therefore, the content to be searched. The content 808 can be stored in a variety of locations. The document identifier 803 can be the name of the document, a portion of the name of the document, or can be a string or other value stored as part of the metadata of the document. As an illustrative example, refer to the document identifier 803 in FIG. Figure 3A and 3B , document 804 may have a document identifier 803 of "Doc-ID-1". Digital agent 802 may access a corpus service using the document identifier, which indicates a mapping of Doc-ID-1 to corpora A and B; and a mapping of the corpus to its contents 1, 2, 3, 4, 5, and 6. In the illustrated scenario, a digital agent created by an author may perform process 900, including: receiving a document identifier with a request for a response (902); determining a corpus associated with the document identifier (904); identifying content associated with the corpus (906); and searching the content associated with the corpus for content relevant to the request (908).

[0065] In some cases, document 804 may include both a document identifier and an identifier of any additional corpora. In other cases, document 804 includes only a document identifier. In some cases, both document identifier 803 and an author identifier (which may also be part of the metadata of the document) are used to determine additional corpora.

[0066] In by Figure 8B In the example shown, the digital agent 810 can use the document corpus identifier 811 of the document 812 to determine the content to be searched. For example, the corpus identifier 811 can be used to access a mapping 814 (which can be managed by a corpus manager) indicating the content to be searched. The content 808 can be stored in various locations. The corpus identifier 811 can be a string or other value stored as part of the metadata of the document. In some cases, the corpus identifier includes the identity of the author. As an illustrative example, refer to Figure 3A and 3B 8, 914. The mapping information shown, document 812 may have a corpus identifier 811 of "Corpus A, B". Digital agent 810 may access a corpus service using the corpus identifier, which indicates the mapping of the corpus to its content 1, 2, 3, 4, 5, and 6. In the illustrated scenario, the author-created digital agent may perform a process 910, including: receiving one or more corpus identifiers with a request for a response (912); identifying one or more corpora corresponding to the one or more corpus identifiers (914); identifying content associated with the corpus (916); and searching the content associated with the corpus for content relevant to the request (918).

[0067] In some cases, document 812 may include both a document identifier and identifiers of any attached corpora.

[0068] In by Figure 8C In the example shown, the document is in the form of a document file 816. The document file 816 includes a document container 818 that provides elements of the document that a consuming application of the document file can put together to display the content of the document. For example, a presentation document can be in the form of a document file 816, where slides and the content of the slides are included as part of the document container 818. In this example, a mapping 820 indicating the content of the corpus attached to the document file 816 can be part of the document file 816. As an illustrative example, refer to Figure 3A and 3B816 may include a mapping of Doc-ID-1 to corpora A and B; and a mapping of corpora to their contents 1, 2, 3, 4, 5, and 6. In the illustrated scenario, the author-created digital agent may perform a process 920, including: determining a set of selected bounded content associated with the document being consumed (922); and searching the content for content relevant to the request (924). Here, the determination of the set of content to be searched is performed using the mapping (or index) indicated in the document file 816.

[0069] Thus, digital agent 822 may access mapping 820 from document file 816 to identify content 808 that may be searched. Of course, as described above, content 808 may be stored at a variety of locations.

[0070] As described above, mappings 806, 814, and 820 may be implemented with respect to Figure 3A and 3B In some cases, the author-created digital agent 802, 810, 822 uses a search service to query resources with the identified content. The search service can be part of or in communication with a corpus service (see, e.g., Figure 6 612) described in more detail.

[0071] In some cases, the document includes an author identifier in place of, or in addition to, other identifiers used by the digital agent to determine appropriate content to search for. Fig.9D As shown, a digital agent created by an author may perform process 930, including: receiving an author identifier with a request for a response (932); determining a corpus associated with the author identifier (934); identifying content associated with the corpus (936); and searching the content associated with the corpus for content relevant to the request (938).

[0072] Fig.10 shows an example Robot Framework environment. Fig.10, a user 1000 can engage with a digital agent that is part of a bot framework through any communication channel 1010, including but not limited to group channel conversations, group chats, instant messaging, web chats, and even email or SMS text conversations. The bot framework includes a bot message routing / connector 1020 that supports communications through the various communication channels 1010 and routes messages to the appropriate bot (e.g., bot 1032) of the known / registered bots 1030. The bots 1030 can access various cognitive services 1040 to support various features (e.g., natural language processing, speech to text, speaker recognition, search, image processing, entity recognition, translation, and other features).

[0073] Communication with the robot 1032 can be via the robot's web API 1050, or in some cases, such as when the user 1000 is within the client application 1060, communication with the robot 1032 can be via the robot's directline API 1070. Thus, communication between the client application 1060 and the robot 1032 can be performed in a more conventional client / service configuration. When the user is consuming a document 1080, and the robot 1032 is an author-created robot (e.g., author-created robot 1082), the robot accesses services such as the content corpus service 1090.

[0074] Other services may make use of the author-created digital agent. For example, a personal digital assistant or other robot may provide a user interface to the author-created digital agent. Content consumers may ask Siri or Cortana questions about the content they are viewing or listening to. The personal digital assistant may pass the question to the author-created digital agent, or perform one or more of the processes performed by the author-created digital agent (and / or the robot framework in which the author-created digital agent operates).

[0075] Figures 11A-11F An example scenario of adding content to a corpus is shown.

[0076] Authors can use content creation applications to create content. Content created by authors can be shared with others in various ways and consumed by content consumers.

[0077] Content creation applications are software applications in which users can create content in digital form. Examples of content creation applications include, but are not limited to, note-taking applications (e.g., MICROSOFT ONENOTE and EVERNOTE), free-form digital canvases (e.g., GOOGLE JAMBOARD and MICROSOFT Whiteboard), word processing applications (e.g., MICROSOFT WORD, GOOGLE DOCS, and COREL WORDPERFECT), presentation applications (e.g., MICROSOFT POWERPOINT and PREZI), and various productivity, computer-aided design, blogging, and photo and design software. Content consumers can consume content using content creation applications, communication applications (e.g., email, messaging applications, etc.), reader applications, and even web browsers.

[0078] Authors can select content and files to be added to one or more corpora while in a content creation application or via other tools. Authors can select content that the author themselves did not create to add to one or more of their corpora. Authors can choose to attach one or more corpora to a document while in a content creation application, other applications, or via other tools. Attaching a corpus to a document refers to the conceptual relationship between the corpus and the document, but can also include attaching metadata to the document, and a more abstract understanding that the corpus will be associated with the document for use by a digital agent created by the author. The creation of a digital agent created by the author can occur when the first corpus is attached to the document. This can be in the form of code added to the document metadata, which itself can call a robot or other service identified by the document metadata, or can be used by an application ("content consumption application") in which the document can be consumed to call a robot or other service identified by the document metadata.

[0079] refer to Fig.11A , an author (e.g., identified by icon 1100) may be creating content in a document 1102 at an author device using a content creation application 1104. In this example, the author has decided to add content (e.g., highlighted text 1106) from document 1102 to one of their corpora. Here, some of the content (but not all of the content) in the document is being added to the corpus. In this illustrative scenario, a user may use menu 1108 to add content to a corpus by a gesture that causes context menu 1108 and selection 1110 of an "add to corpus" command. In some cases, selecting command 1110 may transmit a request 201 to a content corpus service to retrieve a list of the author's corpora; and then upon selection of one or more corpora, transmit request 211.

[0080] refer to Fig. 11B , photos can be added to the corpus, for example, via mobile image sharing. In the example shown, a corpus icon 1112 can be provided in the photo application 1114 so that the user can select (e.g., indicated by a selector 1116) photos 1118 stored on the user's mobile device.

[0081] Fig. 11C A scenario is shown where an entire file is added to a corpus. In this example, a user of the content creation application 1120 may access a command menu for adding content to a corpus 1122. Selecting the command menu for adding content to a corpus 1122 may transmit a request 201 to a content corpus service to retrieve a list of corpora for the author (shown in display area 1124). In some cases, when one or more corpora are selected, the application 1120 may transmit a request 211 to a content corpus service to add the file to the appropriate corpus or corpora.

[0082] Fig.11D Another scenario for adding content to a corpus is shown. Fig.11D 1130. In the example of FIG. 114, a file explorer window 1130 may have a command for adding a file to a particular corpus or corpora. For example, a user may be browsing for files located on a network 1132 and select a file (e.g., file 1134). A context menu 1136 may be available that includes a command icon for adding a file to one or more corpora 1138. In some cases, a ribbon or toolbar menu 1139 for corpus-related actions (not shown) may be available to the file explorer window 1130.

[0083] It should be understood that although a menu is shown for initiating the process flow of adding content to a corpus, other mechanisms for invoking the add content to the corpus API are also contemplated. For example, content can be added to one or more corpora when it is saved (either automatically based on default settings or manually as an option during an automatic or manual save action).

[0084] Fig.11E A scenario is shown in which content can be captured into a corpus using a clipper feature 1140 (which can be, for example, an add-on to a web browser 1142 or a standalone app). Fig.11DIn the example of , a user may select 1144 content displayed in a window (e.g., a window of a web browser 1142) and select one or more corpora from a list 1146. In some cases, the selection of the clipper 1140 transmits a request 201 for the user's corpora. In some cases, the request 201 may be sent after selecting the content in the window. Of course, other implementations are also contemplated. Various clipping features may also be incorporated when sending or "adding" a clip to one or more corpora.

[0085] Fig.11F An example interface 1150 and input field 1152 are shown, which the digital proxy service may present to the author, for example, when the digital proxy service cannot find a suitable response in the existing content of the author's corpus. The digital proxy request may be made via a communication channel, application, or chat box.

[0086] Figures 11A-11F The examples shown reflect explicit addition of content to a corpus. Implicit requests to add content to a corpus may also be identified to facilitate adding the content to the corpus. For example, instead of a command to add content to a corpus, the content creation application may automatically provide suggested corpora to add the document to upon detecting that the user has completed adding the document. In some cases, the suggested one or more corpora may be presented based on context (e.g., user ID, business / organization, topic). In some cases, instead of suggesting one or more corpora based on context, the content may be automatically added to the identified corpus based on context. As another example, when an author responds to a request from a digital agent created by the author (e.g., regarding a topic or topics), the content creation application may automatically provide a suggested corpus to add the document to. Figure 1A and 1B Automatic addition to the corpus may be performed as described in operation 134 of ) or when the author responds to an inline annotation. Both questions and answers may be added to the corpus.

[0087] In some cases, a document graph may be utilized to identify content that may be useful to add to an author's corpus. A document graph may be created, for example, by tracking interactions between (with permissions) users and other users (e.g., because of communications over communication channels, or because of relationships identified in organizations such as groups / managers and departments) and interactions between users and content / documents or portions of content / documents (e.g., reuse, edit, comment, view, etc.).

[0088] Content created intentionally for the corpus, or content created for other purposes (but identified by the author as being useful to the corpus), may be added to the corpus.

[0089] In addition to adding content to the corpus, authors can also add tags to content or files when adding or when viewing content in the corpus. Tags can be keywords. In some cases, tags are positive and negative indicators (or weights). For example, an author can apply positive tags to content that supports their topic and negative tags to content that provides negative treatment to their topic. Tags can be stored as part of a data structure that indicates content in the corpus, or as part of the metadata of the content itself.

[0090] Figure 12A-12C An example scenario of attaching one or more corpora to a document is shown. Fig. 12A As shown, when a corpus is assigned to a document, a workflow for sharing a document (e.g., sharing to a publishing service, sending an email to a user, uploading to a cloud storage device, uploading to an enterprise file management system) can include attaching one or more corpora of an author. The application in which the user is sharing their content can perform an operation that sends a request for a list of the author's content, as described with respect to operations 201, 202, 204, and 206. Reference Fig. 12A , authors in a content creation application 1200 may choose to share 1202 their content, and during the workflow, may choose to attach one or more corpora 1204 to a file. The ability to attach a content corpus to a document implements an authoring approach that allows authors to associate content to a document that is opaque to the content consumer. In fact, in most cases, the entire content in the corpus is never fully visible to the reader of the document.

[0091] refer to Fig. 12B , the corpus 1204 may be added / appended to the document when a save command 1210 or operation is performed.

[0092] In addition to making the addition of corpora available to content creation applications, other applications such as email application 1220 may also include mechanisms for adding, for example, Fig. 12C 104 and a corresponding process (e.g., Figure 2 201, 202, 204 and 206, 211, 212, 214). Attaching a corpus to a document may cause information or code to be added to the document. Figure 8A-8C As described in more detail, metadata or other information that is opaque to the user (or recipient) may be part of a file, content, email, or other document to keep the digital proxy created by the author properly connected to the document itself.

[0093] Fig.13 A process that may be performed by a corpus editing tool feature is shown. The corpus editing tool feature may be a stand-alone application or feature, or may be integrated with other applications. The tool feature may be used to manage connections between documents, an author's corpus, and content associated with the author's corpus. The corpus editing tool feature may include functionality including, but not limited to, one or more of: adding and removing content from a corpus; generating new content including common questions and corresponding answers to those common questions; answering questions that a consumer may have asked; indicating positive or negative treatment (or otherwise weighting or marking content); and adding or removing a document's relevance to a corpus.

[0094] refer to Fig.13 , a tool feature may request a list of corpora associated with an author from a corpus service (e.g., service 100, 610) (1302), receive the list of corpora from the corpus service (1304), and display the list of corpora (1306). The tool feature may receive a selection of a corpus to view content assigned to the corpus (1308), request a list of content associated with the corpus from the corpus service in response to the selection (1310), receive the list of content from the corpus service (1312), and display the list of content (1314). Tagging and weighting functionality may be included. For example, a tool may provide a weight feature (1316), receive a weight for at least one content (1318), and send the weight to the service (1320). The weight may indicate positive or negative treatment of the content, which may be used by the service when ranking results in response to a query.

[0095] The tool feature may also provide a dashboard for users to identify how often particular content is accessed, for example, in response to consumer requests for a digital proxy created by an author.

[0096] Fig.14 Components of a computing device are shown that may be used in certain embodiments described herein. Fig.14 , system 1400 may represent a computing device such as, but not limited to, a personal computer, a reader, a mobile device, a personal digital assistant, a wearable computer, a smart phone, a tablet computer, a laptop computer (notebook or netbook), a gaming device or console, an entertainment device, a hybrid computer, a desktop computer, a smart TV, an electronic whiteboard, or a large form factor touch screen. Therefore, more or fewer elements described with respect to system 1400 may be incorporated to implement a specific computing device.

[0097] The system 1400 includes a processing system 1405 of one or more processors to transform or manipulate data according to the instructions of the software 1410 stored on the storage system 1415. Examples of processors of the processing system 1405 include a general-purpose central processing unit (CPU), a graphics processing unit (GPU), a field programmable gate array (FPGA), a dedicated processor and logic device, and any other type of processing device, combination or variation thereof. The processing system 1405 can be a system on a chip (SoC) or included in a system on a chip (SoC) along with one or more other components (e.g., network connection components, sensors, video display components).

[0098] Software 1410 may include an operating system and applications, including content creation applications or content consumption applications (if not in the form of content creation applications) 1420. In some cases, specific elements or features of the author-created digital agent may be stored and executed at computing system 1400. A device operating system typically controls and coordinates the functions of various components in a computing device to provide applications with a simpler way to connect to lower-level interfaces (such as networking interfaces). Non-limiting examples of operating systems include WINDOWS from Microsoft Corporation, APPLE iOS from Apple Corporation, ANDROID OS from Google Corporation, and the Ubuntu family of Linux OS from Canonical Corporation.

[0099] It should be noted that the operating system can be implemented either natively on the computing device or on a software virtualization layer running on the native device operating system (OS). Fig.14 , but the virtualized OS layers can be thought of as additional nested groups within the operating system space, each containing the OS, applications, and APIs.

[0100] Storage system 1415 may include any computer-readable storage medium that is readable by processing system 1405 and capable of storing software 1410 including content creation application 1420 (as well as any native elements or features of the author-created digital agent).

[0101] The storage system 1415 may include volatile and nonvolatile memory, 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. Examples of storage media for the storage system 1415 include random access memory, read-only memory, magnetic disks, optical disks, CDs, DVDs, flash memory, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other suitable storage media.

[0102] The storage system 1415 may be implemented as a single storage device, but may also be implemented across multiple storage devices or subsystems (co-located or distributed relative to each other). The storage system 1415 may include additional elements (eg, a controller) that are capable of communicating with the processing system 1405.

[0103] The system may further include a user interface system 1430, which may include input / output (I / O) devices and components that enable communication between a user and the system 1400. The user interface system 1430 may include input devices (e.g., a mouse, a trackpad, a keyboard, a touch device for receiving touch gestures from a user, a motion input device for detecting non-touch gestures and other actions of a user, a microphone for detecting voice, and other types of input devices and their associated processing elements capable of receiving user input).

[0104] The user interface system 1430 may also include output devices (e.g., display screens, speakers, touch devices for touch feedback, and other types of output devices). In certain cases, input and output devices may be combined in a single device (e.g., a touch screen display that depicts images and receives touch gesture inputs from a user). A touch screen (which may be associated with or form part of a display) is an input device configured to detect the presence and location of a touch. The touch screen may be a resistive touch screen, a capacitive touch screen, a surface acoustic wave touch screen, an infrared touch screen, an optical imaging touch screen, a dispersive signal touch screen, an acoustic pulse recognition touch screen, or any other touch screen technology may be utilized. In some embodiments, the touch screen is incorporated into the top of the display as a transparent layer to enable a user to interact with an object or other information presented on the display using one or more touches.

[0105] A natural user interface (NUI) may be included as part of the user interface system 1430. Examples of NUI methods include those that rely on voice recognition, touch and stylus recognition, gesture recognition on and adjacent to the screen, air gestures, head and eye tracking, sound and voice, vision, touch, hover, gestures, and machine intelligence. Thus, the systems described herein may include touch-sensitive displays, sound and voice recognition, intent and target understanding, motion gesture detection using depth cameras (e.g., stereo or time-of-flight camera systems, infrared camera systems, red-green-blue (RGB) camera systems, and combinations of these), motion gesture detection using accelerometers / gyroscopes, facial recognition, 3D displays, head, eye and gaze tracking, immersive augmented reality and virtual reality systems, all of which provide a more natural interface, as well as techniques for sensing brain activity using electric field sensing electrodes (EEG and related methods).

[0106] The visual output may be depicted in a variety of ways on a display (not shown), presenting graphical user interface elements, text, images, video, notifications, virtual buttons, virtual keyboards, or any other type of information capable of being depicted in visual form.

[0107] The user interface system 1430 may also include user interface software and associated software (e.g., for graphics chips and input devices) executed by the OS to support various user input and output devices. The associated software assists the OS to use a defined mechanism to transmit user interface hardware events to the application program. The user interface system 1430 including the user interface software may support a graphical user interface, a natural user interface, or any other type of user interface.

[0108] The network interface 1440 may include communication connections and devices that allow communication with other computing systems over one or more communication networks (not shown). Examples of connections and devices that together allow inter-system communication may include network interface cards, antennas, power amplifiers, RF circuits, transceivers, and other communication circuits. The connections and devices may communicate over a communication medium (e.g., metal, glass, air, or any other suitable communication medium) to exchange communications with other computing systems or networks of systems. Transmissions to and from the communication interface are controlled by the OS, which notifies applications of communication events when necessary.

[0109] Fig.15 Components of a computing system that may be used in certain embodiments described herein are shown. Fig.15, system 1500 can be implemented within a single computing device, or distributed across multiple computing devices or subsystems that execute program instructions in concert. System 1500 may include one or more blade server devices, stand-alone server devices, personal computers, routers, hubs, switches, bridges, firewall devices, intrusion detection devices, mainframe computers, network attached storage devices, and other types of computing devices. System hardware may be configured according to any suitable computer architecture, such as a symmetric multiprocessing (SMP) architecture or a non-uniform memory access (NUMA) architecture.

[0110] System 1500 may include a processing system 1510 that may include one or more processors and / or other circuitry that retrieves and executes software 1520 from a storage system 1530. Processing system 1510 may be implemented within a single processing device, but may also be distributed across multiple processing devices or subsystems that execute program instructions in coordination.

[0111] Storage system 1530 may include any computer-readable storage medium that is readable by processing system 1510 and capable of storing software 1520. Storage system 1530 may be implemented as a single storage device, but may also be implemented across multiple storage devices or subsystems (co-located or distributed relative to each other). Storage system 1530 may include additional elements (e.g., a controller) that are capable of communicating with processing system 1510. Storage system 1530 may also include storage devices and / or subsystems on which data, such as information related to an entity, is stored.

[0112] The software 1520 (including the content corpus service (or if a digital agent service is represented, including software supporting digital agents created by various authors) 1540) can be implemented in program instructions, and when the software 1520 is generally executed by the system 1500 or specifically executed by the processing system 1510, it can direct the system 1500 or the processing system 1510 to operate as described herein, among other functions.

[0113] System 1500 may represent any computing system on which software 1520 may be stored temporarily and from which software 1520 may be distributed, transferred, downloaded, or otherwise provided to another computing system for deployment and execution, or also for additional distribution.

[0114] In embodiments where the system 1500 includes multiple computing devices, the server may include one or more communication networks that facilitate communication between the computing devices. For example, the one or more communication networks may include a local area network or a wide area network that facilitates communication between the computing devices. One or more direct communication links may be included between the computing devices. Additionally, in some cases, the computing devices may be installed at geographically distributed locations. In other cases, multiple computing devices may be installed at a single geographic location (e.g., a server farm or office).

[0115] A communications interface 1550 may be included that provides communications connections and devices that allow communications between system 1500 and other computing systems (not shown) through a communications network or collection of networks (not shown) or over the air.

[0116] Alternatively, or in addition, the functions, methods, and processes described herein may be implemented at least in part by one or more hardware modules (or logic components). For example, a hardware module may include, but is not limited to, an application specific integrated circuit (ASIC) chip, a field programmable gate array (FPGA), a system on a chip (SoC) system, a complex programmable logic device (CPLD), and other now known or later developed programmable logic devices. When a hardware module is activated, the hardware module executes the functions, methods, and processes included in the hardware module.

[0117] Embodiments may be implemented as computer processes, computing systems or articles, such as computer program products or computer-readable media. The specific methods and processes described herein may be embodied as software, code and / or data, which may be stored on one or more storage media. Specific embodiments of the present invention contemplate the use of a machine in the form of a computer system, in which a set of instructions, when executed, may cause the system to perform any one or more of the methods discussed above. A specific computer program product may be one or more computer-readable storage media, which may be read by a computer system (and may be executed by a processing system), and a computer program of instructions may be encoded for use in executing a computer process. It should be understood that, as used herein, in any case, the term "storage medium", "computer-readable storage medium" or "computer-readable storage medium" does not consist of a temporary carrier or a propagated signal. Instead, a "storage" medium refers to a non-temporary medium.

[0118] Although the subject matter has been described in language specific to structural features and / or acts, it should be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Instead, the specific features and acts described above are disclosed as examples of implementing the claims, and other equivalent features and acts are intended to be within the scope of the claims.

Claims

1. A method for providing a result to a consumer, comprising: receiving a request from a consumer of a document; identifying, in response to the request, at least one bounded and curated set of content to be searched by determining, based on metadata of the document, an additional content corpus, the additional content corpus being appended to the document via a mapping between the document and the additional content corpus, wherein the additional content corpus is further mapped to at least one curated content of the corresponding bounded and curated set of content, the at least one curated content being content added to the additional content corpus by an author of the document; formulating a query based on the request; searching the at least one bounded and curated set of content mapped to the additional content corpus using the query; receiving results of a search of the at least one bounded and curated set of content; The results of the search are provided to the consumer, wherein other content in the corresponding bounded and curated set of content in the additional content corpus and associated with the document is not visible to the consumer of the document, the other content not being the results of the search.

2. The method according to claim 1, further comprising: determining whether the results include results that satisfy the request of the consumer; If the results do not include the results that satisfy the request of the consumer, preparing a message to an author of the document based on the query and transmitting the message to the author; In response to receiving a response to the message from the author, the response is added as additional content to the supplemental content corpus.

3. The method according to claim 1, further comprising: receiving an instruction for invoking a digital agent created by the author to perform the method; as well as An interface is presented to the digital agent created by the author, the interface being used to receive the request from the consumer.

4. The method according to claim 1, further comprising: The request of the consumer is generated based on the context of the consumer's interaction, the consumer's lack of action, device information, application information, or information of the consumer.

5. The method according to claim 2, further comprising: The consumer is notified that the response to the message from the author is available.

6. The method according to claim 1, wherein: Identifying the at least one bounded and curated set of content to search in response to the request by determining the additional corpus of content includes: Communicate with a corpus service to identify the additional content corpus from a mapping resource, the mapping resource storing a mapping data structure of mappings between the document and the additional content corpus, wherein the communication with the corpus service includes at least one identifier from the metadata of the document.

7. The method according to claim 6, wherein: The at least one identifier comprises a document identifier, a corpus identifier, an author identifier, or a combination thereof.

8. A computing system comprising: processor; Storage devices; as well as Instructions stored on the storage device, which when executed by the processor cause the computing system to perform the method according to any one of claims 1-7.

9. A computer-readable storage medium having stored thereon an author-created digital agent, the author-created digital agent comprising instructions which, when executed by a processor, cause the processor to perform the method according to any one of claims 1-7.

Citation Information

Patent Citations

  • System for automatically generating queries

    US20080005651A1

  • Credibility of an Author of Online Content

    US20090157490A1