System and method for investigating relationships between entities
By processing the connections between entities that identify the document collection and graphically display them in the user interface, it solves the problem that existing tools are difficult to manage entity-based data and relationships, and realizes effective identification and management of entity relationships.
Patent Information
- Application Number
- CN202411483975.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2019-04-10
- Filing Date
- 2019-06-25
- Publication Date
- 2025-02-07
AI Technical Summary
Existing tools are difficult to effectively discover and manage entity-based data and relationships.
By processing the document collection to identify documents containing common occurrence mentions to two different entities, identify the connections between entities, and display these relationships graphically in the user interface.
It realizes effective identification and management of relationships between entities, and enables users to intuitively view and interact with these relationships through a graphical user interface.
Smart Images

Figure CN119397032A_ABST
Abstract
Description
[0001] Case information
[0002] This application is a divisional application of the invention patent application with application number 201980055147.1 filed on June 25, 2019 and invention name “System and method for investigating relationships between entities”.
[0003] CROSS-REFERENCE TO RELATED APPLICATIONS
[0004] This application claims priority to U.S. Provisional Patent Application No. 62 / 689,737 filed on June 25, 2018, U.S. Provisional Patent Application No. 62 / 794,177 filed on January 18, 2019, and U.S. Provisional Patent Application No. 62,832,085 filed on April 10, 2019. The entire contents of each of these applications are incorporated herein by reference.
[0005] This application is also related to U.S. Patent Application No. 16 / 001,874 filed on June 6, 2018 and U.S. Patent Application No. 14 / 710,342 filed on May 12, 2015 (now U.S. Patent No. 9,275,132). The entire contents of each of these applications are incorporated herein by reference. Technical Field
[0006] The present disclosure generally relates to investigation of entity-based relationships, including systems, methods, and user interfaces for querying or otherwise investigating and managing relationships between entities. Background Art
[0007] Various tools have been developed to help collect and categorize information. However, there is still a need for improved tools to discover and manage entity-based data and relationships. Summary of the invention
[0008] A connection between two different entities is identified by processing a document collection to identify one or more documents containing co-occurring mentions of each of the two different entities. This relationship can be graphically displayed in a user interface using icons for each of the two entities, etc., together with a graphical link interconnecting the entities. The graphical link can be an active element of the user interface that responds to user interaction by providing access to evidence within the document collection that confirms the connection between the two entities. In one aspect, a search input form bar in the user interface can be used to explicitly request documents that confirm the relationship between the two entities. In another aspect, a user can ground entity mentions by explicitly selecting documents that mention the entity of interest. BRIEF DESCRIPTION OF THE DRAWINGS
[0009] The foregoing and other objects, features and advantages of the apparatus, systems and methods described herein will be apparent from the following description of specific embodiments thereof, as illustrated in the accompanying drawings, which are not necessarily drawn to scale, emphasis instead being placed upon illustrating the principles of the apparatus, systems and methods described herein.
[0010] Figure 1 A networked environment for entity-centric information retrieval and aggregation is shown.
[0011] Figure 2 A system for recommending content is shown.
[0012] Figure 3 A flow chart of a method for recommending content is shown.
[0013] Figure 4 A system for recommending content is shown.
[0014] Figure 5 A flow chart of a method for recommending content is shown.
[0015] Figure 6 A flow chart of a method for logging activities in a computer-assisted knowledge discovery process is shown.
[0016] Figure 7 A system for computer-assisted research and knowledge discovery is shown.
[0017] Figure 8 Demonstrated computer system.
[0018] Fig. 9 A flow chart of a method for investigating entity relationships is shown.
[0019] Fig.10 A flow chart showing a method for investigating relationships between entities.
[0020] Fig.11 Shows the user interface for investigating relationships between entities.
[0021] Fig.12 Shows the user interface for investigating relationships between entities.
[0022] Fig.13 Shows the user interface for investigating relationships between entities.
[0023] Fig.14 Shows the user interface for investigating relationships between entities.
[0024] Fig.15 Shows the user interface for investigating relationships between entities.
[0025] Fig.16 Shows the user interface for investigating relationships between entities. DETAILED DESCRIPTION
[0026] The embodiments will now be described with reference to the accompanying drawings, in which preferred embodiments are shown. However, the foregoing may be embodied in many different forms and should not be construed as limited to the illustrative embodiments set forth herein.
[0027] All documents mentioned herein are incorporated herein by reference in their entirety. References to items in the singular should be understood to include items in the plural, and vice versa, unless otherwise expressly stated or apparent from the context. Grammatical conjunctions are intended to express any and all combinations of disjunctive conjunctions and conjunctions of the clauses, sentences, words, etc. being joined, unless otherwise stated or apparent from the context. Thus, the term "or" should generally be understood to mean "and / or" and the like.
[0028] The detailed description of the range of values herein is not intended to be restrictive, but is individually related to any and all values falling within the range, unless otherwise indicated in this article. In addition, each individual value in such a range is incorporated into this specification as if it is individually narrated in this article. The words "approximately", "approximately", etc. are to be interpreted as indicating deviations that are satisfactorily operated for the intended purpose as understood by those of ordinary skill in the art when accompanying numerical values. The range of values and / or numerical values is only provided as examples in this article, and does not constitute a limitation on the scope of the described embodiments. The use of any and all embodiments or exemplary language ("for example", "such as", etc.) provided in this article is only intended to better illustrate the embodiments and not to limit the scope of the embodiments or claims. The language in this specification should not be interpreted as indicating any unclaimed element as being essential to the practice of the embodiments.
[0029] In the following description, it should be understood that terms such as “first”, “second”, “third”, “above”, “below”, etc. are words of convenience and should not be construed as limiting terms unless explicitly stated otherwise.
[0030] Figure 1 A networked environment for entity-centric information retrieval and aggregation is shown. Generally, environment 100 may include a data network 102 interconnecting multiple participating devices in a communication relationship. Participating devices may include, for example, any number of client devices 104, servers 106, content sources 108, and other resources 110.
[0031] Data network 102 may be any one or more networks or one or more interconnected networks suitable for communicating data and information between participants in environment 100. This may include a public network such as the Internet, a private network, a telecommunication network such as a public switched telephone network or a cellular network using third generation (e.g., 3G or IMT-2000), fourth generation (e.g., LTE (E-UTRA) or Advanced WiMax (IEEE 802.16m)), and / or other technologies, as well as any of a variety of enterprise area networks or local area networks and other switches, routers, hubs, gateways, etc. that may be used to carry data between participants in environment 100.
[0032] Each participant in the data network 102 may include an appropriate network interface, including, for example, a network interface card, which term is used broadly herein to include any hardware suitable for establishing and maintaining wired and / or wireless communications (along with software, firmware, etc. to control the same). A network interface card may include, but is not limited to, a wired Ethernet interface card ("NIC"), a wireless 802.11 networking card, a wireless 802.11 USB device, or other hardware for wired or wireless local area networking. The network interface may also or alternatively include cellular network hardware, wide area wireless network hardware, or any other hardware for centralized, ad hoc, peer-to-peer, or other radio communications that can be used to connect to a network and carry data. In another aspect, a network interface may include a serial or USB port directly connected to a local computing device such as a desktop computer, which in turn provides more general network connectivity to the data network 102.
[0033] The client device 104 may include any device within the environment 100 that is operated by a user for practicing entity-centric information acquisition and aggregation techniques as contemplated herein. Specifically, the client device 104 may include any device for initiating and conducting searches, aggregating information, drafting entity profiles, performing other research tasks, etc., as well as managing, monitoring, or otherwise interacting with the tools, platforms, and devices included in the systems and methods contemplated herein. By way of example, the client device 104 may include one or more desktop computers, laptop computers, network computers, tablet computers, mobile devices, portable digital assistants, messaging devices, cellular phones, smart phones, portable media or entertainment devices, or any other computing devices that may participate in the environment 100 as contemplated herein. As discussed above, the client device 104 may include any form of mobile device that may be used to interact with the networked environment 100, such as any wireless, battery-powered device. It will also be understood that one of the client devices 104 may coordinate the related functions (e.g., searching, storing entity profiles, etc.) when they are performed by another entity (such as one of the server 106, content sources 108, or other resources 110).
[0034] Each client device 104 may generally provide a user interface, such as any of the user interfaces described herein. The user interface may be maintained by a locally executed application on one of the client devices 104 that receives data about an entity from, for example, the server 106 and the content source 108. In other embodiments, such as where one of the servers 106 or other resources 110 includes a web server that provides information through one or more web pages displayed within a web browser or similar client that may be executed on one of the client devices 104, the user interface may be remotely provided and presented on one of the client devices 104. The user interface may generally create an appropriate visual presentation for user interaction on a display device of one of the client devices 104, and provide for receiving any appropriate form of user input, including, for example, input from a keyboard, mouse, trackpad, touch screen, gestures, or one or more other user input devices.
[0035] The server 106 may include a data storage device, a network interface, and a processor and / or other processing circuitry. In the following description, where a function or configuration of the server 106 is described, this is intended to include corresponding functions or configurations of the processor of the server 106 (e.g., programmed). Generally, the server 106 (or its processor) may perform a variety of processing tasks associated with the entity-centric information acquisition and aggregation techniques discussed herein. For example, the server 106 may manage information received from one or more of the client devices 104 and provide related support functions, such as search and management of data. The server 106 may also or alternatively include a back-end algorithm that reacts to actions performed by a user at one or more of the client devices 104. The back-end algorithm may also or alternatively be located elsewhere in the environment 100.
[0036] The server 106 may also include a web server or similar front end that facilitates web-based access to the capabilities of the server 106 by the client device 104. The server 106 may also or alternatively communicate with the content source 108 and other resources 110 to obtain information for providing to the user through a user interface on the client device 104. Where the user specifies search criteria such as search type, language filter, relevance criteria (e.g., for determining the relevance of search results to an entity), confidence criteria (e.g., for determining whether a result is relevant to a particular entity), etc., or otherwise specifies search criteria, such as by performing actions on an entity profile included on the client device 104, this information may be used by the server 106 (and any associated algorithms) to access other resources, such as the content source 108 or other resources 110, to obtain relevant or new information and re-rank the search results. In this context, additional processing may be usefully performed, such as recommending new search strategies to the user or recommending potentially new information to the user for addition to the entity profile.
[0037] The server 106 may also maintain a database 112 of content along with an interface for enabling a user to perform searches and retrieval of the database content at a client device 104 using any of the techniques provided herein (e.g., automatically through actions performed on an entity profile). Thus, in one aspect, the server 106 (or any system including the server 106) may include a database 112 of entity information, and the server 106 may act as a server providing a search engine for locating specific attributes in the database 112 and providing supporting services (such as retrieval of located documents).
[0038] In another aspect, the server 106 can support search activities by periodically searching for content at remote locations on the data network 102 and indexing any resulting content for subsequent searches by the client 104. This can include storing location or address information for specific documents and parsing documents in any appropriate manner to identify terms, images, media, metadata, etc., as well as the creation of feature vectors or other derivative data to assist in similar type comparisons, dissimilar comparisons, or other analysis. In one aspect, the database 112 can be manually curated according to any desired criteria. The server 106 can provide or otherwise support an interface such as any interface described herein, which can be provided to a user at the client 104.
[0039] The server 106 may also or alternatively be configured to track syndicated content, etc., such as by providing an interface for managing subscriptions to content sources. This may include tools for searching existing subscriptions, locating or specifying new sources, subscribing to content sources, etc. In one aspect, the server 106 may manage subscriptions and automatically direct new content from these subscriptions to the client device 104 based on input from the user. Thus, while it is contemplated that the client device 104 may autonomously subscribe to content sources through a network interface and receive new content directly from such sources, it is also contemplated that this feature may be maintained through a remote resource such as the server 106. In one aspect, the server 106 may include a search engine or other host for any of the search engine algorithms, search techniques, data stores or other algorithms, processes, etc. described herein, including but not limited to entity-based search tools, grounded entity mention tools, recommendation engines, disambiguation processes, machine learning or machine analysis platforms, etc.
[0040] Content sources 108 may include any data or information source in any structured, semi-structured, or unstructured format that can be utilized by the techniques described herein, for example, to update or refine an entity profile created by a user. For example, content sources 108 may include, but are not limited to, Web pages (e.g., public or private pages), search engines or search services, interfaces to various search services, application programming interfaces (APIs) to remote data sources, local or remote databases (e.g., private databases, corporate databases, government databases, institutional databases, educational databases, etc.), libraries, other online resources, social networks, computer programs and applications, other entity profiles, etc. The content sources 108 may include various types of information and data, including, but not limited to, textual information (e.g., published or unpublished information, such as books, journals, periodicals, magazines, newspapers, papers, reports, legal documents, reports, dictionaries, encyclopedias, blogs, wikis, etc.), graphical information (e.g., charts, graphs, tables, etc.), images or other visual data (e.g., photographs, drawings, paintings, plans, perspectives, models, sketches, diagrams, computer-aided designs, etc.), audio data, numerical data, geographic data, scientific data (e.g., chemical compositions, scientific formulas, etc.), mathematical data, etc.
[0041] Other resources 110 may include any resource that can be usefully adopted in the devices, systems and methods as described herein. For example, other resources 110 may include, but are not limited to, other data networks, human actors (e.g., programmers, researchers, annotators, editors, etc.), sensors (e.g., audio or visual sensors), text mining tools, web crawlers, knowledge base acceleration (KBA) tools or other content monitoring tools, etc. Other resources 110 may also or alternatively include any other software or hardware resources that can be usefully adopted in networked applications as contemplated herein. For example, other resources 110 may include a payment processing server or platform for authorizing content subscriptions, content purchases or other payments. As another embodiment, other resources 110 may include a social networking platform that can be used, for example, for sharing entity profiles or other research conducted by users or as an additional source of entity information. On the other hand, other resources 110 may include a certificate server or other security resources for third-party verification of identity, encryption or decryption of content, etc. In another aspect, other resources 110 may include a desktop computer or the like that is co-located with (e.g., on the same local area network as) one of the client devices 104 or is directly coupled thereto via a serial or USB cable. In this case, other resources 110 may provide supplemental functionality to client device 104. Other resources 110 also include supplemental resources such as scanners, cameras, printers, and the like.
[0042] The environment 100 may include one or more web servers 114 that provide web-based access to and from any other participants in the environment 100. Although depicted as a separate network entity, it will be readily appreciated that the web server 114 may be logically or physically associated with one of the other devices described herein and may include or provide a user interface for web access to one of the servers 106 (or databases 112 coupled thereto), one of the content sources 108, or any of the other resources 110, for example, in a manner that permits user interaction, for example, from a client device 104, over the data network 102.
[0043] It will be understood that the participants in environment 100 may include any hardware or software for performing the various functions as described herein.For example, one or more of client device 104 and server 106 may include a memory and a processor.
[0044] The various components of the above-described networked environment 100 can be arranged and configured to support the techniques described herein in a variety of ways. For example, in one aspect, the client device 104 is connected to a server 106 via a data network 102, which performs a variety of processing tasks related to entity-centric information acquisition and aggregation. For example, the server 106 can host a website running an entity-centric information acquisition and aggregation program, where a user builds an entity profile that is used as a query for searching, acquiring, and ranking information related to an entity. In this way, as the user builds an entity profile on an interface displayed on the client device 104, the server 106 can use the content source 108, other resources 110, or database 112 to update the search for new and relevant information related to the entity profile. As discussed in more detail below, the server 106 (or another participant in the environment 100) can include one or more algorithms that define the search and allow the server 106 to react to actions (such as modifications made to the entity profile or selection of information) that have been taken on the entity-centric information acquisition and aggregation program. More generally, aspects of searching, processing, and presenting information as described herein may be distributed in any suitable manner. For example, a search engine's, for example, search functionality may be distributed between one or more servers that locate and process documents and between client devices that may, for example, locally resolve queries within a user interface, transmit requests for information to a remote search engine, present results from the search engine, or otherwise participate in various searches, processing, and presenting of information and other functionality described herein. Similarly, where documents on a local device or cloud storage facility are included within a search, the search engine may be deployed in a distributed manner or otherwise provided with access to a repository of documents of interest.
[0045] Figure 2 A system for recommending content is shown. Specifically, the recommendation engine 202 can provide recommendations to human users in the user interface 206 about related documents and concepts, for example, from the document corpus 204, based on user interactions.
[0046] The user interface 206 may, for example, include any display, interface device, interface component, etc. suitable for displaying content such as knowledge graph 208 to a human user and receiving input such as graphical interface input, text input, etc. from a human user. This may, for example, include a display for any of the above-mentioned client devices. Generally, the knowledge graph 208 may include one or more documents represented by a document icon in the user interface 206, together with one or more concepts represented by a concept icon in the user interface 206. In order to form the knowledge graph 208, these documents and concepts may be associated by relationships (such as, graph edges represented as visual indicators mentioned in the user interface 206). As depicted, the user interface 206 presented in the display may include a document icon 210, a first concept icon 212, and a first visual indicator 216. The document icon 210 may, for example, be associated with a first document 218 in a document corpus 204, which may be stored in, for example, a single database or data storage device or distributed across a data network or other distributed environment, and indexed to be suitable for identification by a search engine, etc. It will be appreciated that, although depicted separately from user interface 206, first document 218 and one or more other documents in document corpus 204 may be located on a device that hosts and controls user interface 206. The documents may also or alternatively be remote from the device, or some combination thereof.
[0047] It should be understood that while the knowledge graph 208 is referred to herein as an appropriate way to present information visually, any other visual representation of the corresponding data may also or alternatively be used. For example, as described herein, user and machine interactions with visual representations such as the knowledge graph 208 are recorded in an operation log that serves as a data repository for related activities. While records in the operation log may be aggregated to create a knowledge graph 208 for presentation to a user, records may also or alternatively be aggregated to create any other appropriate visual representation of the items represented by the operation log. Thus, for example, for convenience, where text references the knowledge graph 208, it should be understood that the text is also intended to reference other visual representations such as summary cards and mention highlighting described below, as well as any other visual representation suitable for presenting information organization to a user and / or receiving user input related to such information.
[0048] Generally, the first concept can be mentioned in the first document 218, as represented by the first visual indicator 216 associating the first concept icon 212 with the document icon 210 in the user interface 206. The user interface 206 can be configured to automatically or in response to a user request identify documents in the document corpus 204 that also mention the first concept (in Figure 2 ) in the knowledge graph 208. The recommendation engine 202 may automatically or in response to an explicit user request identify documents 213 in the document corpus that identify the first concept (a) and the second concept (b), and then recommend the second concept (b) for inclusion in the knowledge graph 208. Generally, the recommendation engine 202 may automatically create a second concept icon 214 identifying the second concept and a second visual indicator 222 for visually associating the first concept icon 212 with the second concept icon 214 in the user interface 206. The recommendation engine 202 may also or alternatively identify candidate relationships and communicate the relationships to an agent executing locally on the device hosting the user interface 206, and the agent may determine how to best configure and display the visual indicators and / or icons. It will also be understood that the recommendation engine 202 may automatically populate the knowledge graph 208 within the user interface 206, or may present candidate documents, concepts, or relationships to the user through the user interface 206 so that the user may accept, reject, modify, or request clarification of the proposed addition.
[0049] The recommendation engine 202 can also provide a variety of supporting information for any proposed addition. For example, the recommendation engine 202 can create a ranked list 224 of multiple other documents 213 (including references to (a) and (b)), and transmit the ranked list 224 to the device for presentation in a display (e.g., in the user interface 206). This can include, for example, snippets, content excerpts, etc. that confirm the relationship between (a) and (b), or references to either or both of the corresponding concepts within the one or more documents. A variety of ranking techniques can be used to select and sort the documents in the ranked list 224, as discussed, for example, below.
[0050] Figure 3 A flow chart of a method for recommending content is shown. Generally, a user can interact with a knowledge graph displayed in a user interface, and a recommendation engine can responsively generate recommendations for addition to the knowledge graph based on specific user requests and other contextual information. This process can continue iteratively to support the creation of a knowledge graph through a sequence of user-initiated computer-assisted recommendations and selections, such as described below.
[0051] As shown in step 302, method 300 may begin by providing a document icon, a first concept icon, and a first visual indicator for presentation in a display. The document icon may be associated, for example, with a first document in a document corpus such as a local document repository, a remote document repository, a document collection indexed by a search engine, or some combination thereof. The first concept icon may be associated with a first concept mentioned in the first document and also mentioned in a plurality of other documents in the document corpus. As further described herein, a visual indicator may visually associate the document icon with the first concept icon in a display. These display elements may be provided by a remote source, generated locally in response to a remote storage model for a knowledge graph, generated locally to display various aspects of an operation log (as described herein), or otherwise provided or created to visually present a knowledge graph within a user interface in a display. As described above, although a knowledge graph is a convenient technique for presenting information from an operation log, any other visual representation of an operation log suitable for conveying information organization and / or receiving user input associated therewith may also or alternatively be used.
[0052] As shown in step 304, method 300 may include displaying a knowledge graph that, for example, visually illustrates and associates documents, concepts, and mentions therebetween, all as generally contemplated herein. Generally, a knowledge graph may be an interactive object within a user interface and may support user interaction with various vertices (e.g., documents or concepts) and edges (e.g., mentions between documents / concepts), such as by facilitating the retrieval and display of additional supporting information or requests for additional recommendations. The knowledge graph may be displayed along with any other useful contextual information. For example, method 300 may include presenting excerpts from a plurality of other documents for presentation in a display, the excerpts confirming a relationship of a first concept in the knowledge graph to a second concept in the knowledge graph.
[0053] As shown in step 306, method 300 may include creating a recommendation for a second concept, such as a second concept that is different from the first concept mentioned in multiple other documents from a corpus of documents that mention the first concept. This may include creating the recommendation using a recommendation engine, etc. In one aspect, the recommendation may be created in response to an explicit user request for a recommendation, such as an interaction with a knowledge graph in a user interface. In another aspect, the recommendation may be automatically generated, for example, in response to navigation through a knowledge graph or other user context, user activity, etc.
[0054] As shown in step 308, method 300 may include providing a visual element for recommendation. For example, this may include: generating a second concept icon identifying the second concept and a second visual indicator for visually associating the first concept icon with the second concept icon in a display, and providing the second concept icon and the second visual indicator for presentation in the display. As described above, this may be performed locally at a client hosting the user interface, or remotely, such as by a recommendation engine providing recommendations for the knowledge graph or by a server or other cloud service hosting the knowledge graph presentation platform. In one aspect, the first visual indicator may have an appearance that is visually distinguishable from the second visual indicator, such as to allow a user to distinguish between user-selected relationships and machine-selected relationships, thereby allowing a user to distinguish the order in which the relationships were created, or to provide any other information useful for distinguishing between different sources and types of relationships contained within the knowledge graph.
[0055] As shown in step 310, method 300 may include creating a ranked list of multiple other documents that mention the first concept for presentation in a display. The documents may be advantageously ranked, for example, based on the context of the knowledge graph (such as a history of user selections leading to the current graph, machine-generated recommendations, etc.). The list may also or alternatively be ranked for a variety of potential uses, such as based on how well the document supports the relationship between two concept icons or whether each document contains new information that may be useful for adding to the knowledge graph. By way of non-limiting example, the ranked list may include a ranking based on at least one of the similarity to the first concept, the difference from the first document, or the strength of verification of the second concept with the first concept. Creating the ranked list may also include presenting the ranked list for presentation in a display, for example, using a local program / resource or from a remote resource in response to a user selection of a second visual indicator.
[0056] As shown in step 312, method 300 may include receiving user input. This may include keyboard input, mouse operation, or other user input indicating the user's desired action in the context of the knowledge graph and associated information.
[0057] As shown in step 314, method 300 may include generating additional recommendations. For example, where the user input includes a user selection of a second document, generating additional recommendations in response to the user selection may include providing a second document icon, a third concept icon, and a third visual indicator for presentation in the display, the second document icon being associated with the second document, the third concept icon being associated with a concept in the second document, and the third visual indicator visually associating the second document icon with the third concept icon in the display. This may facilitate presentation of the additional recommendations in the display. It will be noted that while additional recommendations may be generated in response to explicit user input, additional recommendations may also or alternatively be generated without user input, for example as a background task based on the state of a knowledge graph, or in response to a user action suggesting that the user will request additional recommendations or that the user may be interested in additional recommendations that are already available.
[0058] In one aspect, the additional recommendations may include, for example, a recommendation for a third concept in response to a user selection of the first concept icon and / or the second concept icon in the user interface. Further, the process may be iterative and may include identifying relationships between elements of the knowledge graph in addition to new documents or concepts of potential interest. Thus, for example, the additional recommendations may include: creating a fourth visual indicator in response to receiving a user selection of the second document to visually associate at least one of the first concept icon and the second concept icon with the third concept icon on the display.
[0059] The recommendation engine used to generate such recommendations may be executed locally on the client presenting the display. The recommendation engine may also or alternatively be executed remotely from the client presenting the display. In general, the recommendation engine may be supported by any of a variety of databases and other data sources, content indexes, processing resources, services, etc. Thus, although Figure 3 Not shown, but will be understood, method 300 may include storing the document corpus in one or more locations accessible to the recommendation engine. In another aspect, method 300 may include storing an index for the document corpus, the index identifying at least one concept for each document in the document corpus.
[0060] As shown in step 316, method 300 may include updating other visual representations of the knowledge graph or operation log. For example, this may include updating a data structure containing information about the knowledge graph (e.g., relationships between documents and concepts together with confirmation information of such relationships). This may also or alternatively include updating data structures, such as, operation logs including historical records of user interactions and machine interactions with the knowledge graph and / or elements of the knowledge graph. For example, method 300 may include storing an operation log including one or more user interactions with at least one of a document icon, a first concept icon, and a second concept icon, and at least one recommendation from a recommendation engine. Storing the operation log may include storing the operation log in a persistent memory independent of a device hosting the display. Storing the operation log may also or alternatively include storing the operation log in a persistent memory independent of a device hosting the recommendation engine.
[0061] Updating the knowledge graph may also or alternatively include updating a display of the knowledge graph, which may include locally updating the display on the device or remotely updating the display from a remote resource. In one aspect, the display may be associated with a remote client having a user interface controlled by a server or other remote resource, and providing the document icon, the first concept icon, and the first visual indicator may include transmitting the document icon, the first concept icon, and the first visual indicator to the remote client for presentation in the user interface of the remote client.
[0062] It will be appreciated that some or all of the steps of method 300 may be repeated iteratively to develop the knowledge graph. For example, additional input may be received as in step 312, and additional recommendations may be generated and used to further update the knowledge graph.
[0063] According to the above, a system for recommending content is also disclosed herein. The system may include a device, the device including a display, a processor of the device and a recommendation engine coupled to the device in a communication relationship. The processor may be configured to provide a document icon, a first concept icon and a first visual indicator for presentation in the display, wherein the document icon is associated with the first document, wherein the first concept icon is associated with a first concept mentioned in the first document and also mentioned in multiple other documents, and wherein the first visual indicator visually associates the document icon with the first concept icon in the display. A recommendation engine that can be remote from the device or locally on the device or some combination thereof may be configured to receive a request for a concept related to the first concept from the device and create a recommendation for a second concept mentioned in multiple other documents, the second concept being different from the first concept and being related to the first concept, and the recommendation engine is further configured to transmit a recommendation including excerpts from the multiple other documents that confirm the relationship between the first concept and the second concept to the device.
[0064] Figure 4 A system for recommending content is shown. Generally, system 400 is configured to present human-readable confirmation of automatic content recommendations such as those described herein.
[0065] The system 400 may include a display 402 having a user interface 404 that displays a representation of a number of documents 406, such as a list of files, an icon group, or any other suitable representation of files in a document corpus 408. In response to a selection of a document 403 in the user interface 404, the system 400 may initiate a search by recommending one or more other documents 410 from the document corpus 408 using a recommendation engine 412, as generally described herein. Specifically, the recommendation engine 412 may search for documents that mention a first concept (a) in the selected document 403, and documents that mention a second concept (b) that is potentially related to the first concept (a). As further described herein, the recommendation engine 412 may return a graphical representation of any document and concept, along with the relationship therebetween. The recommendation engine 412 may also return information (such as a fragment or excerpt from the document 410 that confirms the relationship to the selected document 403), which may be presented in a list 414 (such as a ranked list), etc.
[0066] List 414 may further include interactive content, such as links to supporting documents 410, links to the location of concepts within knowledge graph 416, and the like.
[0067] The recommendation engine 412 or some other appropriate service or entity within the system 400 may also maintain an operations log 418 as described herein, which generally stores records of human and machine user interactions with the knowledge graph 416, which may be shared, edited, used as context for further recommendations, etc. It will also be understood that the system 400 may be configured to support iterative creation of the knowledge graph 416. For example, the list 414 may be used as a representation of the document 406, such that as each new recommendation list is created, it may be used by the user to search for additional concepts and recommendations.
[0068] Therefore, the knowledge graph 416 may be generally extensible and may be further shared with other users, for example as an operation log 418, to provide a platform for collaborative knowledge discovery.
[0069] Figure 5 A flow chart of a method for recommending content is shown.
[0070] As shown in step 502, method 500 may begin by displaying a representation of a first plurality of documents from a document corpus, such as by displaying a representation of the first plurality of documents from a document corpus in a user interface of a device as described above. This may include a file list, a window with icons for the documents, or any other suitable representation of documents for display and manipulation within a user interface.
[0071] As shown in step 504, method 500 may include receiving a user selection, such as by receiving a user selection of a first concept in a first document from a first plurality of documents in a user interface. This may include a keyboard operation, a mouse click, or any other suitable user interface interaction.
[0072] As shown in step 506, method 500 may include automatically performing several steps to create visual elements of a knowledge graph. For example, this may include selecting a first concept icon associated with a first concept mentioned in a first document, and presenting the first concept icon for display in a user interface. This may also include presenting a first visual indicator in the user interface, the first visual indicator visually connecting the document icon for the first document with the first concept icon. This may also include (e.g., automatically in response to a user selection) using a recommendation engine away from the device to create a recommendation for a second concept different from the first concept. For example, the second concept may be a concept mentioned in a second plurality of documents from a document corpus, the second plurality of documents each including a reference to a first concept and a second concept (selected by the user). This may also include (optionally also automatically in response to a user selection) presenting a second concept icon associated with the second concept for display in the user interface, and presenting a second visual indicator in the user interface, the second visual indicator visually connecting the first concept icon with the second concept icon.
[0073] As shown in step 508, method 500 may include creating a ranking list of one or more content selections from a second plurality of documents containing mentions of a first concept and a second concept. The list may include, for example, document titles, file names, creation dates, etc., as well as information fragments related to the concepts to facilitate manual review. The ranking list may be used to rank in any appropriate manner for editing, updating, verifying, or otherwise reviewing or modifying the knowledge graph. For example, the ranking list may be ranked according to the graph distance between two related concepts. The ranking list may be ranked according to a confirmed estimate of the relationship between the first concept and the second concept, for example, machine learning, artificial intelligence, semantic processing, or any other tool for automatically evaluating and comparing document content may be used to evaluate it. The ranking list may also or alternatively be ranked according to the distance between the mentions of the first concept and the second concept in each document in the second plurality of documents, which may be used as a proxy for the relationship between the two concepts in the document. The ranking list may also or alternatively be ranked according to the number of mentions of the first concept and the second concept, or any other appropriate metric or metric combination for evaluating or estimating the relationship between concepts or the relevance to the knowledge graph.
[0074] As shown in step 510, method 500 may include presenting at least a portion of the ranked list for display in a user interface. In this manner, a set of documents related to each other through the second concept and the first concept selected by the user may be automatically generated and presented as a list in the user interface for further user interaction. For example, the ranked list of one or more content selections may include content that supports the relationship between the first concept icon and the second concept icon.
[0075] As shown in step 512, method 500 may include creating recommendations for the user. For example, after presenting the ranked list, a user request for additional related concept recommendations may be received. In response to such user request, method 500 may include adding one or more additional concept icons associated with concepts mentioned in documents from the document corpus to the user interface, and adding at least one visual indicator for each additional concept icon, the visual indicator visually associating the additional concept icon with one or more other concept icons in the concept icons displayed in the user interface.
[0076] As shown in step 514, method 500 may include receiving and processing any number of additional user requests to iteratively explore, expand, and refine the knowledge graph. For example, method 500 may include receiving a second user request for content that confirms the relationship between the two concept icons. In response to this second request, the method may include presenting one or more content items within a document from a document corpus that describes the connection between the two concept icons.
[0077] This may also or alternatively include updating the display in the user interface, such as by updating the presentation of documents, the knowledge graph, the ranked list of documents, and any other part of the user interface. This may also or alternatively include updating the operation log storing human and machine interactions with the knowledge graph.
[0078] Figure 6 A method for logging activities in computer-assisted knowledge discovery processes is presented.
[0079] As shown in step 602, method 600 may include displaying information. Generally, this may include any structured representation of knowledge, information, data sources, relationships, etc. This may, for example, include a knowledge graph as described herein, or any other knowledge representation suitable for presentation in a user interface of a device, etc. Therefore, in one aspect, this may include presenting a graph in a visual display element on a first surface. This may include, for example, a display of a computer, a tablet computer, a smart phone, etc., and a window or other active graphical portion of an application, process, etc. within such physical display media. For a knowledge graph, etc., the graph may include a plurality of graph elements, the graph elements including one or more documents and concepts presented as vertices of the graph, and one or more relationships between one or more documents and concepts presented as edges of the graph.
[0080] As shown in step 604, the method may include receiving a user action. This may, for example, include receiving user input from a human user using one of a plurality of graph elements in a visual display element, or any other input from a human user using a user interface or device that presents a knowledge graph or other knowledge representation. In one aspect, this may include a request for a recommendation, a request for confirmation of a relationship in a knowledge graph, a request for a document identified by a document icon in a knowledge graph, or any other information related to or based on the content of a knowledge graph. In another aspect, a user action may be a manipulation of a knowledge graph. For example, a first action may include adding a first document as a vertex to a graph, removing a vertex from a graph, removing an edge from a graph, or adding an edge to a graph.
[0081] In one aspect, where a user interface displays a mention of a concept (e.g., as a concept icon or as text within a document), a first action performed by a user may include a user interaction with the first mention, such as a selection of the first mention, a request for related documents, a request for related concepts, and the like.
[0082] As shown in step 606, method 600 may include storing a record of the first action. The record may usefully include any information about the state of the knowledge graph, the nature of the user interaction, or other information useful for identifying or interpreting the action or the context in which the action was taken. In one aspect, the record may include a relationship between the first document and one or more other documents (e.g., other documents within a display or within a search or recommendation provided to the user). In another aspect, the record may include a relationship between the first mention and one or more other mentions in one or more other documents. More generally, the record may include any information about a knowledge graph or other knowledge representation, the way a user interacts with a user interface, the specific or general nature of any request or instruction provided by the user, and the like. In one aspect, the record may include identification information of a first document associated with the first action and a first mention of a first concept within the first document associated with the first action.
[0083] Storing the record may also or alternatively include storing a record of the first action in an operation log. As described herein, the operation log may be persistently stored in a data storage device that is accessible by the first surface and is also accessible by a machine-based algorithm (such as a machine-based algorithm for generating recommendations, etc.) operating on a computing platform that is executed independently of the device hosting the first surface.
[0084] As shown in step 608, method 600 may include receiving a computer action, such as a second action from a machine-based algorithm in response to a first action from a user. The second action may be any appropriate response to the user action. For example, the second action may identify a second mention of a concept selected by a user in a second document. In another aspect, this may include any recommendation provided by a recommendation engine, etc., as contemplated herein, including related or potentially related documents or concepts identified by a machine learning algorithm, a neural network, or other pattern matching algorithm, etc. In another aspect, this may include data processing or manipulation. For example, the computer action may include an automatic selection of one or more excerpts from a second document within a knowledge graph, within a list of possible recommendations added to the knowledge graph, or some combination thereof, the one or more excerpts confirming a relationship between a first mention of a first concept and a second mention of a second concept. This may also or alternatively include a recommended change to the knowledge graph, such as adding vertices, edges, etc. For example, a machine-based algorithm may identify a relationship between two concepts already within a knowledge graph or a new concept associated with the knowledge graph, and the second action may include adding an edge to the graph to indicate the relationship.
[0085] As shown in step 610, method 600 may include storing a record of the computer action. This may, for example, include storing the second action (or a description of the second action) in an operations log or other suitable repository. This may also include recording any context information suitable for subsequent use of the record, etc.
[0086] As shown in step 612, method 600 may include updating, for example, a knowledge graph or other knowledge representation in a user interface, or a display of related items such as a ranked list of documents, recommendations, etc. In one aspect, this may include presenting the second document recommended in step 608 in a visual display element on the first surface.
[0087] As shown in step 614, method 600 may include other activities that can be performed based on the accumulated records in the operation log or other similar records accumulated by human and machine operations on the knowledge graph, etc. As described above, the operation log can be stored in a network-accessible location, which allows, for example, sharing and collaboration between multiple users. The current version of the knowledge graph can be exported from the operation log and displayed on any number of devices as needed. More generally, the operation log can be used in any appropriate manner to display, share, edit, or otherwise manipulate the knowledge graph or other visual representations of the operation log.
[0088] For example, this can include applying the operation log to display the graph on the second surface. In one aspect, this allows the user to port a specific research project contained in the knowledge graph to the second surface, such as another device used by the user. In another aspect, this allows the user to share the knowledge graph with other users by applying the operation log to display the graph on the second surface for other users.
[0089] In another aspect, this may include facilitating sharing of the operation log with one or more other users so that these other users can view, modify, copy, or otherwise interact with the graph. This may, for example, include sharing a data structure of the operation log with one or more other users via a data network, or publishing an interactive knowledge graph based on the operation log for use by other users.
[0090] In another aspect, a single user may have multiple research projects, each represented by a separate operation log. Therefore, method 600 may include storing several operation logs, some of which may be associated with different projects to which human users have write permissions. In order to ensure that user actions are correctly distributed in such logs, the user interface may adopt any of a variety of mechanisms to manage where specific user actions are recorded. For example, in one aspect, the user interface may request an explicit selection of a specific project or operation log, and this project may be used to capture all user interactions, such as across different devices, documents, applications, etc., until the user specifies a different project or operation log. In another aspect, the system may infer changes based on changes in applications, changes in devices, etc. Therefore, method 600 may include monitoring the activities of human users on one or more surfaces, and automatically selecting one of a plurality of operation logs to record current activities, or requesting a user selection of one of a plurality of operation logs under various conditions or in response to various events. In another aspect, the system may record operations in multiple logs. For example, a user may have a long-running history log that allows recording of all of its operations, as well as multiple other logs for certain explorations or tasks that also receive a subset of user operations.
[0091] In another aspect, the operation log may also be used for other types of processing. For example, method 600 may include ranking a list of documents that mention a concept and a second concept based on an aggregation of data in the operation log. This includes data that explicitly specifies, for example, the content of a document or the structure of a knowledge graph. This may also or alternatively include data that implies a relationship. For example, the context of a user action may imply relevance, such as the context in which a recommendation request is made. In another aspect, the order of user actions may imply relevance, such as the order in which a user adds concepts to a knowledge graph or requests confirmation of edges of a graph. In another aspect, the frequency of user actions may imply relevance, such as the frequency with which a user requests confirmation of a particular edge of a graph or the frequency with which a user requests concepts related to a particular concept represented by a vertex in a graph.
[0092] According to the foregoing, a system for logging activities in a computer-aided knowledge discovery process is also disclosed herein. Generally, the system may include a data storage device, an operation log stored on the data storage device, and a device having a display and a processor.
[0093] The data storage device may be, for example, any of the databases, data storage devices, data repositories or other memories described herein, and combinations thereof. Generally, the operation log may include a cumulative record of human and machine interactions with the project, which in turn may be presented as a knowledge graph or other visual representation of the information stored in the operation log. For example, the operation log may include a record of one or more human interactions and one or more machine interactions with a visual representation in a display (such as one or more documents, one or more concepts, etc.). The data storage device may be a remote data storage device accessible by a device via a data network, and may be shared, private (e.g., protected from access by other users), or some combination thereof. In another aspect, the data storage device may be a local data storage device on a device associated with the display.
[0094] The processor of the device can be configured to support the creation and use of logs and related functions, such as generating or displaying a visual expression of an operation log. For example, the processor can be configured to present a visual expression of an item in a display based on the operation log, and the processor can be configured to receive a user interaction with the visual expression in the display. In order to maintain the operation log, the processor can be configured to add user interactions to the operation log. For example, in the case where the data storage device is local, the processor can directly execute the process of adding a record to the log, etc. On the other hand, in the case where the data storage device is a remote data storage device, etc., the processor can enable the device to transmit appropriate instructions and other information to the data storage device to create a record of user interactions in the operation log at a remote location. The processor can also perform other related functions, such as requesting recommendations associated with user interactions from a recommendation engine (the recommendation engine can be a local recommendation engine executed on the device or a remote recommendation engine accessible through a data network), and adding responses to the operation log by the recommendation engine.
[0095] The visual representation of the items presented in the display may take any appropriate form. This may, for example, include icons or vertices forming a knowledge graph. This may also or alternatively include summary cards providing excerpts of documents as described below, highlighting or other visual indicators of mentions of potentially relevant content within the document, and summary information about mentions, concepts, etc. More generally, any visual representation in an operation log that usefully presents information to a user and / or facilitates recording of user input related to the item may be usefully employed within the visual representation of the items contemplated herein.
[0096] The systems and methods described herein can be used to support computer-assisted research and knowledge discovery. Generally, this is supported by a system 700 including the various architectural features described herein. For example, a knowledge graph or similar construction facilitates human understanding and interaction with a document corpus 710 through a clear visual representation of related concepts within a user interface 702 of a user device 704, together with convenient access to supporting documents and text. At the same time, a machine analysis system 706 including, for example, a recommendation engine, a search engine, etc., facilitates the discovery of new relationships and insights based on the relationships between entities and concepts within the available document corpus 710. Human and machine interactions with this knowledge graph can be supported by an operation log 708 or a similar data structure that preserves the context and history of the knowledge graph, which can be aggregated in a manner that supports sharing and collaboration between human users on the one hand, and improved context analysis by machine algorithms on the other hand.
[0097] Further features and aspects of a machine-assisted knowledge discovery platform using this architecture are described below, beginning with several representative descriptions of terms used herein.
[0098] As used herein, a recommendation engine may be any system or method that interprets contextual information from one or more human users and responds by recommending content from a corpus of documents based on algorithmic predictions that the users will select to make recommendations (e.g., by opening and reading the recommended documents).
[0099] A "user" is a human or computer process that interacts with a tool (such as a program, web service, or display).
[0100] A "collaborative agent" (also known as an "intelligent assistant" or "intelligent virtual assistant") can be any software system that interacts with a user through one or more communication channels, such as a voice conversation on a phone, a data feed, an email, or a text message in a chat application. A typical collaborative agent focuses on the limited scope of a single channel. In this document, "machine-based user" is used interchangeably with "collaborative agent" because both humans and collaborative agents are users of the knowledge operating system (KOS) contemplated herein.
[0101] As used herein, a surface may include any medium for communicating with a user. A surface may include any device, screen, application window, acoustic environment, vibration actuator, and any other sensor-actuator mechanism for interacting with a user. A widely used surface is an application window in a computer, such as a web browser, Microsoft Word application, PDF viewer, or other programs through which a person can read this document. A "visual surface" may include any such surface having a visual component.
[0102] Typically, human users use several surfaces in a day. For example, people often have an email program and a web browser open on a laptop at the same time, and also have a mobile phone with an ongoing chat conversation open at the same time. These many surfaces are of great value to machine learning algorithms in understanding the user's behavior. Based on this context, the collaborative agent can try to infer what the user needs next.
[0103] For example, "recommending content" by a recommendation engine refers to an attempt to help a user access content that the user may not have previously realized or perceived would be helpful to the user. A typical goal of content recommendation is to provide enough information in the recommendation display to characterize the potential utility of a piece of content being recommended. This context around the recommendation can help a human user perceive the benefit of accepting or using the recommendation.
[0104] "Knowledge" as contemplated herein includes at least concepts and relations between concepts. This can include relations between entities, which is a special concept. "Entities" can be distinguished by strongly typed attributes (such as hometown, phone number, number of stories, and DNA). Named entities have given names, which are usually not unique. Pronoun mentions of entities refer to the antecedent; for example, he, you. Noun mentions of entities describe specific entities for which no name is provided, such as "the general" or "the three journalists." Examples of entity classes include: individuals, companies or organizations, facilities or buildings, vehicles, devices or network identifiers (e.g., phone numbers, skype handles, email addresses, IP addresses), compounds, planetary objects, and proteins.
[0105] A "document" is a digital media object that contains a reference to the concept. Non-digital records, such as printed forms of documents, are merely artifacts and not documents in the sense of the word as generally described herein. Documents appear in many contexts. This can include, for example, source documents that a user can use as reference material and working notes that a user is creating, such as replies in an email thread.
[0106] Software systems often interact with mentions in various forms, and therefore described herein are some concepts and terms for identifying mentions. A "surface form" is a string of characters or a sequence of sounds or a set of pixels in an image or another raw data representation that at least some users recognize as a reference concept. As described above, the following position is taken: a concept is defined in context only by its surface form. Therefore, in order to identify a concept, it is necessary to identify the document and the part of the document that is the mention. Many documents contain rich structures (such as hierarchical headings and tables), and these can be used to identify parts of the document. Typically, a surface form mention is a specific subrange of characters or pixels in a document, and these ranges are often referred to as "spans". Many algorithms have been developed for automatically selecting mention spans from documents.
[0107] A "corpus of documents" is a collection of data files, such as images in the Portable Network Graphics (PNG) format, or Microsoft Word files in the Portable Document Format (PDF) or .docx format, or web pages written in Hypertext Markup Language (HTML), or any of many other data formats. The documents in the corpus can contain a wide variety of digital media, including images, video, audio, text, time series, numerical matrices, or any other information that can be expressed in binary form so that it can be transferred between computer systems. Even paper documents can be represented as a corpus by scanning the paper to make images, which can then be converted to text by optical character recognition, etc. The size of the document corpus can be unlimited (such as the public Web where new documents are created very frequently).
[0108] Text documents typically contain words that can be spoken in audio documents. Such speakable information is often referred to as natural language because its structure is a natural phenomenon that emerged through human conversation before the computer age. Other data in the document describes structured information for interpretation by a machine, such as Hypertext Markup Language (HTML), which contains tags that tell a web browser how to display information. A typical web page contains both structured HTML and natural language.
[0109] A widely used technique for identifying mention spans in text is to describe the entire text of a document as a single continuous array of characters or Unicode code points. Mention spans can then be uniquely identified by the start and end indexes in this code point array. Even documents with rich structures can be serialized into a single string. For example, a web page can be represented as HTML, and a string from an HTML document can be used as a single continuous string of the document. In order to run multiple mention span selection algorithms on the same document, it is often useful to ensure that their identifiers use the same code point array. This makes it easy to detect when different algorithms select the same or overlapping mention spans, and it enables the ordering of mention spans to be preserved even when different algorithms select spans. For example, both a regular expression for detecting email addresses and a statistical sequence labeling model (such as a skip-chain conditional random field model) can be run, and by running them on the same underlying code point array, the mention spans selected by these two algorithms can be combined into a single set. If a particular algorithm cannot correctly handle HTML markup tags, those tags can be replaced by space code points so that the array position of the subsequent natural language text remains unchanged. The present disclosure may refer to the index position in such an array as a "character offset". For example, if the present disclosure considers the letter "W" in the previous sentence as position zero, the character offset of the word "refer" is [9,13] (inclusive) or [9,14) (where the end index position is not included in the refer span).
[0110] Uniform Resource Locators (URLs) are widely used to identify documents in network-connected systems, such as the World Wide Web (WWW) and other content management systems (CMS). As defined in various standard documents, such as IETF RFCs (https: / / tools.ietf.org / html / rfc3986 and https: / / tools.ietf.org / html / rfc1738), URLs provide a communication "scheme," "host name," and file "path" for accessing documents. A URL may include additional data elements, such as query parameters and hash fragments. In practice, URL strings are often of variable length and may therefore cause operational problems in software systems. A common technique for dealing with these problems is to apply a one-way hash function with a low collision rate, such as MD5, SHA1, or SHA256, which generates a fixed-length string that can be easily represented in hexadecimal. Since hashes collide very infrequently, they are often used as unique identifiers for documents. This disclosure refers to such a hash-based identifier HashDocID and any type of string-based identifier for a document as "docID."
[0111] Thus, a textual mention can be identified by a combination of a docID and a character offset that identifies the start and end of the mention span within the document. Such a combination is called a "mention identifier" or "mentionID". For example, consider again the example sentence that begins "We often refer...". Imagine a document containing only this one sentence, and assume that the document has a URL "file: / / server / doc.txt" with an MD5 hash of da98292ac64ea61dc4706dac2a48881a. Therefore, the mentionID for the word "refer" in the document is "da98292ac64ea61dc4706dac2a48881a:9,14", where colons are used to delimit the docID from the start to the end of the character offset.
[0112] Similar considerations provide useful specific identifiers for sub-images in pictures and videos, and for utterances in audio tracks. These mentioned identifiers are called mentionIDs. Entities are subsets of concepts, and therefore entities are identified by their mentionIDs. For the purposes of describing the embodiments herein, a mention is a unique entity or characterization of an entity that needs to be described or addressed. For clarity, to reference the mentionID of a particular entity (such as the singer BlackFrances), the system may write "MentionID(BlackFrances)". This may make it simpler to construct illustrative embodiments that use the mentionIDs.
[0113] A relationship can be a property of an entity. A relationship can be identified by two entities as concepts, and thus confirmed by mentions (at least one mention for each of the two entities). That is, a pair of mentionIDs can be necessary information for identifying a relationship.
[0114] Relationships can be described as having a "type" defined by a special kind of document, often called an ontology. References to various concepts in an ontology (such as, "a member of...") can be used to describe relationships between entities, such as, "Black Francis was a member of the Pixies." A tuple of (MentionID(Black Francis), MentionID(ThePixies)) can be a more basic object. To reference a relationship with a type, a tuple identifying the pair of entities and an identifier of the ontology part and ontology document defining the type of the relationship can be identified simultaneously.
[0115] Documents that demonstrate a relationship between two concepts can provide evidence of the type of relationship. For example, consider a journal article describing how vitamin C can help the body fight the virus that causes the common cold (disease). Such a document provides evidence of a relationship between the concept "vitamin C" and the concept "common cold." Mentions of other concepts in the document provide context that characterizes the relationship.
[0116] Coreference resolution, or "coref," is the process of assigning meaning to mentions. In general, two mentions with the same surface-form name are likely candidates for referring to the same concept. If the context surrounding the two mentions is similar, then it is more likely that humans will perceive the mentions as having the same meaning, i.e., as coreferring. An algorithm can compare data in the context surrounding the two mentions and estimate the likelihood that a human would perceive the mentions as coreferring.
[0117] This process can occur in a human or machine-based agent that interprets the mentions. The process can reduce ambiguity by asserting that certain mentions refer to the same concept (i.e., co-reference). Actors experience this ambiguity reduction when assigning meaning to each mention. This is subtle because no one can directly touch the meaning or facts. Instead, facts can be inferred from evidence. Therefore, the literal meaning of the assigned meaning may not be available. Instead, the operational concept of disambiguation is coreference resolution. If an actor believes that a particular mention refers to the same concept as another mention, the actor believes that the two mentions are co-referenced or co-referenced, that is, have the same meaning. People say "I understand X" or "I know the meaning of X" when X has been related to other concepts through coreference resolution and the understanding of some of its relationships. To relate a mention to other mentions of the same concept is to resolve its meaning or to "coref" it, after which it has been "corefed".
[0118] The coref of an agent carries extra weight because it identifies the actor. Identity can have many practical meanings for actors in the real world. Since many online network actors conceal their identities, the specific term "role" can be used to refer to an online actor that another actor may not have accurately integrated into other roles.
[0119] When discovering information about concepts and entities, several types of documents may be encountered. For example, this can include "primary source" documents, which are typically artifacts created for communication between actors contemporary with various events (e.g., photographs of events or transcripts of interviews). This can also include "secondary sources," which typically analyze primary source documents during subsequent events that depend on or focus on previous events, for example, typical smart bulletins, such as single source report documents that record a single primary source document (such as an interview with a person or a scan of a paper artifact). Newspaper articles are a common example of secondary source material. "Third source" typically compiles information from secondary source documents to provide a summary or condensation of those analyses, for example, a properly written encyclopedia article (such as, many Wikipedia articles).
[0120] As used herein, context can be a part of a document that enables or helps people understand the intended communication mentioned in the context. Context is variable. Typically, including a larger portion of a document as context will enable readers to understand more. On the other hand, larger contexts require more time to be digested by human readers and processed by machines. For example, the fragments of text in a search result list are intended to give readers enough context to effectively decide whether to open a link to access the complete document. It will be understood that, as used herein, context can also include a user or computer context in which an action is taken. This can, for example, include a device or application making a request and any other observable physical context (time of day), computing context (network address, execution process, etc.), research context (location in a knowledge graph, type of information request, etc.), etc.
[0121] A citation is a reference to a document. A URL is a citation. However, a citation can also or instead provide the reader with any information to disambiguate a specific version of a document. When a document contains a citation to another document, the context of the citation can indicate some concept mentioned in both.
[0122] This system contemplated herein can employ a utility function that can be generally adapted to mimic a user's implicit utility function for evaluating sources of potentially useful information. In one aspect, this can dynamically mimic a particular user's research activity, such that the machine can collaborate with the user by dynamically optimizing a utility function that tracks the user's utility function.
[0123] This may include capturing the context around the (in-document) mentions, and further capturing feedback from the user as to whether a particular mention drives the user's interest. This means that the utility function of the software agent may be defined by the user's current work context. Specifically, the objective function of the software agent may be to find evidence of relationships between entities mentioned in the user's work context and other entities that are not yet in the user's work context. By dynamically re-ranking such related entities and related content, the system may encourage users to add (reference) these documents to the user's current project. A recommendation engine or other computer-assisted discovery tool as contemplated herein may therefore mimic the manual process of querying remote systems, retrieving documents, summarizing content, corefing entities, and finding entities to fill in the gaps between the work contexts of human collaborators.
[0124] A knowledge graph or other visual representation may usefully employ a variety of visual display elements. In one aspect, this may include vertices representing documents or concepts (e.g., as icons), and edges representing mentions among documents and concepts (such as mentions corroborated by the content of various documents). A variety of additional, useful visual display elements or visual knowledge elements are discussed below.
[0125] 1. Mention highlighting in context: The closest to text can be visual highlighting, which is widely used in the field of text display systems. Visual highlighting can change the color or color contrast or other visual aspects of the characters in the character spans that constitute the mention spans of interest for some purpose. Highlighting can also or alternatively be used on images, where the outline of a shape or polygon can be presented on top of the image to identify the sub-image or other image content of interest. The audio track can be segmented with sub-segments identified by any appropriate visual, audio or text (e.g., by annotation) means. The highlighting of the mention of the concept in the video can also be straightforward, for example, using visual and audio indicators. For the highlighting of the mention in the context, the complete source document can be loaded into the viewer or editor. This is usually the native form of the document. For example, a web browser can display an HTML web page or PDF document loaded from a certain URL, and then the highlighting can be inserted into the document object model (DOM) of the document. For example, a suitable highlighting tool is described in the HTML highlighting project created as part of DARPA Memex and open sourced on GitHub as "dossier / html-highlighter." This is an embodiment of a tool that inserts highlighting into the context of a document.Other highlighting tools are publicly available, and one of ordinary skill in the art will readily appreciate various highlighting resources and techniques suitable for highlighting concept mentions within a document.
[0126] 2. Summary Cards: The list of search result snippets is a familiar form of so-called "summary cards in a queue". Other familiar forms of summary cards are draggable cards in Trello or Jira or Zenhub's Kanban-style work boards, and plugins on GitHub. Such card-based displays can show a portion of the content that is extracted from a document or created as a summary by a summary generation algorithm and is displayed so that the user can see a representation of the document, where a subset of the concepts mentioned in the document is highlighted to the user in a compact form. Typically, this compact form enables the user to view representations of many documents simultaneously in one view on a visual display. For example, a summary card can show a surface form of one or more concepts mentioned in a document or several documents. Summary cards can represent multiple documents; for example, a card can show that several documents all mention the same two concepts together, thereby providing evidence of the relationship between the concepts. Summary cards can also show images or sub-images or portions of videos or audio tracks. The phrase "snippet" can be used to refer to a portion of content that is extracted or summarized from a document and displayed in a summary card. The visual display of the summary card can be displayed in a list, or in a tab, or in a multi-column display. The list of summary cards may be referred to as a "queue" because user actions on the cards may sort the list by removing cards from positions near the top of the queue.
[0127] 3. Vertices in the graph: A visual representation of information from a document can be presented with an icon or a collection of symbols connected by lines. The icons in such a graph display can represent a specific concept or a collection of concepts. The icon can represent a specific edition or version of a document or a document, a snapshot of the content from a URL at a specific time by a specific requester, or any other document or document part. The icon can also or alternatively represent a concept based on a collection of references from one or more documents. For example, the present disclosure mentions the concept "graph", and a document icon can be presented by connecting it with a line to a concept vertex marked with a surface form "graph", thereby depicting the visual display of the relationship as a vertex in the graph. The marks on the graph can provide visual context to the user in much the same way as the highlighting and summary cards in the context provide context to the user. The lines in such a graph display can have various visual qualities, attributes, marks, and other symbols. For example, the line connecting the document icon to the concept mentioned in the document can be a dashed line with an arrow pointing to the mentioned concept. The line connected to the concept mentioned together in multiple documents can be depicted as a solid line or a colored line with various meanings assigned to different colors.
[0128] Highlighting in context can identify the mention span in context. Summary cards can identify mentions of interest (or potential interest) in a view depicting multiple documents. Graphs can use vertices to represent concepts / mentions and documents, where edges depict the relationship between these items. All three levels of visual abstraction can be referred to as visual knowledge elements in this article, and can support the display of knowledge / information and user input (such as identifying mentions of interest, eliminating mentions that users decide not to be interested in, requesting input for recommendations, etc.). These same visual knowledge elements can also implement automated or computer-based interactions with knowledge structures, and support operations (such as machine-based selection and presentation of mentions that users may be interested in, and dynamic updates to the presentation of mentions within user interfaces or other visual contexts). Generally, these different visual knowledge elements that the system can display to users are aggregates generated by client applications that process knowledge operation records (KORs) from logs. For example, a summary card queue can be constructed by a user interface display application that processes operations from logs. Therefore, more generally, a knowledge operating system as contemplated herein can support organizing related actions and documents into operation logs, as well as different expressions of the resulting knowledge structure aggregated using data in the log.
[0129] The aforementioned visual elements can support the presentation of information in the knowledge structure. The system can also include controls to support different actions in this context. For example, buttons or other controls (such as drop-down menus, drag-and-drop operations, dials, sliders, etc.) can be used to enable users to request actions. For example, an email program can present a button marked as "Compose" to open a new draft email document or "Send" to send an email. Such visual action buttons can be different from visual knowledge elements because the former are marked by the actions they provide to the user to initiate, while the latter are marked by source data that the user can read or access.
[0130] In one exemplary implementation, when a user brings a mouse pointer near a mention span with in-context highlighting, a visual action button such as an icon may be displayed, and if the user clicks the icon, the system may activate additional processing of the mentioned concept. The user may also select a span of characters, images, audio, or other digital media, even if it is not specifically identified by the visual knowledge element. If the user selects such a custom mention span, the system may also display a visual action button so that the user can initiate an action based on the span selected by the user.
[0131] In one aspect, context tracking can be used to facilitate knowledge discovery. A machine-based collaborative agent can track the user's work context by receiving user actions from multiple documents. This tracking can be recorded in an operation log as described herein, which can, for example, be implemented as an append-only record of knowledge operations, where knowledge operations are any actions that a human or machine-based agent may take within a corpus. In the following discussion, this operation log is also referred to as a "knowledge operation log" or "KOJ". Such a log can be implemented by defining a list of known operations and then recording the observed operations with timestamps in a database. As described above, each record may also or alternatively include user context and other information related to the recorded operation. Therefore, a database definition project of timestamped operations is sometimes equivalently referred to as a "knowledge project."
[0132] As a significant advantage, the knowledge project implemented in this way can allow the user activities related to the knowledge project to be tracked together across multiple documents, applications, devices, etc. This can also enable the different types of visual knowledge elements described herein to be synchronized and coordinated. For example, consider that a certain user may have opened one or more documents in a web browser such as Firefox, and also opened one or more documents in Microsoft Word, and also opened one or more emails in Outlook, and also opened other emails in the Gmail client, and also opened other files in other tools. If the user invites a collaborative agent (such as, a recommendation engine or other machine-assisted tools) to enter several documents in these documents, the knowledge project can track the concepts mentioned in these documents and can react to user operations. This can also be combined with user actions on other devices (such as, tablet computers, smart phones, etc.). The user can also initiate multiple knowledge projects and add various documents to various projects. The document can be in one or more projects, and multiple users and / or machine-based collaborative agents can share projects.
[0133] Adding a document to a project can be an operation on a corresponding knowledge operation log. In one exemplary implementation, the OpDocumentAdd operation triggers an algorithm of the collaborative agent to automatically analyze the document to select mention spans, and add concepts to the project through the OpConceptAdd operation.
[0134] User Actions
[0135] Examples of user actions on visual knowledge elements may include the following.
[0136] 1. Affirmative Action: Users can select mentions for tracking. Such actions can be received through several different visual knowledge elements. Users can click on a visual action button displayed in context or near a highlight. Similarly, users can click on a summary card that mentions a concept mentioned in a summary document. Similarly, users can click on a vertex in the visual graph.
[0137] 2. Negative Actions: Users can reject proposals from collaborative agents by clicking a visual action button on a summary card, which can be labeled with a description of the action, such as "wrong entity" or "not interested". Similarly, users can reject red in-context highlights to tell the algorithm that a particular proposal is not helpful. Similarly, users can discard vertices in the visual graph display. Specific implementations may provide multiple discard actions, allowing users to convey more information about their feelings on a given vertex or edge or evidence.
[0138] 3. Neutral discard actions: Users can prune automatically generated visual knowledge elements without having to tell the system that they are wrong. These non-positive and non-negative actions can allow users to clean up the view by deactivating highlights, removing summary cards, or removing vertices or edges from the graph display.
[0139] 4. Process initiation actions: Specific command and control processes can be exposed to the user on the visual knowledge element. For example, an exemplary implementation can provide an "auto builder" button that allows the user to tell the system that they are interested in a specific set of multiple concepts and therefore request that the collaborative agent perform all available exploration actions on these concepts.
[0140] 5. Exploration Actions: Machine-based users can act on mentions by automatically formulating queries that use the surface form of the mention or variations of the surface form or alternative words derived from the mention, and then sending these queries to a remote search engine to fetch documents, which can run through the various indexing layers described below and ultimately suggest adding certain mentions in these documents to the project.
[0141] 6. Recommended Mentions: Machine-based users can act on mentions by recommending other mentions that they estimate are likely to co-reference.
[0142] 7. Recommending related entities: Machine-based users can act on a mention by recommending mentions of other entities that co-occur with the mention that are likely to co-refer with the mentioned mention.
[0143] 8. Recommended Actions: Human-based or machine-based collaborative agents can recommend and take a very wide range of actions. In one aspect, an action proposed or taken by a machine-based user occurs in response to a mention.
[0144] Generally, user actions can be added to a knowledge action log. This can enable a machine-based collaborative agent to apply algorithms to maintain a history of conversations with human users about the knowledge or actions they seek. The log can enable machine-based tools to better infer the user's intent in a way that advances one or more of the user's research goals.
[0145] A set of positive and negative actions can include indicating that two mention spans are or are not the same entity. For example, when a summary card identifies a mention span from a user's document (such as a mention of a person named John Smith), the collaborative agent algorithm can find mentions of "John Smith" in some other documents and present a summary card about the document. By reading the contextual information provided in the summary card or provided in the form of a full view of other documents, the user can determine that the mentions in other documents do not refer to the same person as the John Smith mentioned in the user's document. To indicate this "wrong entity" assertion, the user can click a button that displays a minus symbol. The machine can use this feedback to improve its coreference resolution processing in future processing. Conversely, if the user determines that it is the same person, the user can provide this as feedback to the machine by clicking a visual action button that shows a plus symbol. Such actions can create positive and negative coreference assertions in operations stored in the knowledge log.
[0146] The system can infer coref assertions from other user actions. For example, continuing with the John Smith example above, consider that the user is editing a document in progress (such as a draft email) and uses a summary card about other documents to create a citation. Such a citation action can be recorded in the knowledge log by an operation, which can be named OpCitationAdd. In subsequent processing, the system can interpret this operation to mean that the user also believes that the John Smith mentioned in the other document is the same John Smith as the user's document, that is, the two mentions are co-referenced.
[0147] Indexing Layer
[0148] Several data structures and indexes can be used in combination to provide document search, concept search and association, tracking of live knowledge structures, etc. within a knowledge operating system as contemplated herein. Other aspects of the knowledge operating system (such as knowledge graphs, recommendation lists, edge or vertex information, etc.) can be created by aggregating records from these indexes, and specifically, aggregating records from the tier3 index described below that stores logs of human and computer actions across multiple surfaces.
[0149] A "Tier 0 index" can be a standard index of the entire content of each document in the corpus. In one aspect, this index (or multiple indexes) can provide a fast method for finding and retrieving documents. For example, an inverted index can enable so-called "full text" searches that support keyword and phrase queries to find documents that mention a word or phrase entered by a user. Keyword-based indexes can achieve searches based on exact match searches of specific values (such as metadata) associated with the document. Use of these techniques in conjunction with documents and knowledge operation logs can achieve the advantageous capabilities of the knowledge operation log as described below. As used herein, "standard indexing" refers to either or both of full-text and keyword-based retrieval techniques.
[0150] The "Tier 1 Index" is a standard index for each mention chain sub-document. Additional feature data can be calculated by NER and other mention selection algorithms, and these mention spans are used as part of the context indexed for each mention chain sub-document, thus enabling more complex retrieval queries, such as efficiently retrieving documents that mention two names that are close to each other. Named Entity Recognition (NER) and other Natural Language Processing (NLP) tools are widely used in the art to generate metadata about all types of documents. Algorithms can be used to segment data streams and mark mentions of concepts and entities in text, images, audio, and video. The system can use these enrichment algorithms to identify sets of mentions of interest in documents, which are referred to as "mention chains" in this article. These can be built into MCs or "mention chain sub-documents" around specific mentions. These sub-documents contain the context surrounding the mention so that users (human or machine based) can understand the meaning of the mention.
[0151] The "Tier2 index" is generated by an algorithm called hierarchical agglomerative clustering (HAC), which groups mention chain documents together into nested mention sets. Sets closer to the leaf level in the hierarchy may contain elements that the algorithm estimates are more likely to be co-referenced. For example, two mentions with the same surface form name are candidates that may refer to the same concept. If the contexts surrounding the two mentions are similar, humans are more likely to perceive the mentions as having the same meaning, that is, perceived as co-referenced. The algorithm can compare the data in the contexts surrounding the two mentions and estimate the likelihood that humans perceive the mentions as co-references. The structured tree generated by HAC can provide a fast search data structure for finding mentions of the same concept. The tree structure can be stored as keyword-based metadata on the mention chain documents. For example, if MC is assigned to leaf set 34 contained in subset 97, which itself is contained in subset 104, which itself is contained in subset 14, then the tree address of the MC is [14,104,97,34], which is an ordered keyword set. These keywords are stored in the MC record in the search index as retrieval keywords for quick search.
[0152] The model can define thresholds for the likelihood of co-referencing for each nested set. For example, the set defined as closest to the leaf level is 90% likely, the next 80%, the next 70%, etc. Sets further away from the leaf level may be less certain. Referring to the above example, another leaf with tree address [14,104,3,402] has a least common ancestor (LCA) in set 104, and therefore will have a 70% chance of being co-referencing.
[0153] This allows for efficient retrieval as follows: after HAC has operated on a set of mention chain documents including at least one from a user document, other mentions that may refer to the same entity mentioned in the user document can be retrieved by requesting documents that share an ancestor keyword.
[0154] Tier3 indexes can enable collaborative synchronization across a user's many windows, applications, devices, and fellow knowledge workers. Generally, a Tier3 index can contain a sequence of records of user actions, including one or more human users and one or more machine users across multiple surfaces, such as stored in an operation log or similar data structure. Aggregation of Tier3 indexes can be used to derive various features of a knowledge operating system (such as the display of a knowledge graph or associated visual display elements (such as cards or lists)).
[0155] Actuator frame
[0156] The actuator framework may enable the system to find data and pull it into the project.
[0157] Metasearch is a specific implementation of the actuator framework. Metasearch crawls the so-called deep web by pushing queries into a search form bar on a database-backed website and fetching documents from links in search results returned by the database-backed index. Metasearch processes the history of the operation log to find mention strings and formulate queries based on these strings. The metasearch actuator can enable collaborative agent algorithms to push those query strings to search engines (such as search engines for federal agencies (e.g., the Securities and Exchange Commission or the U.S. Patent Office)), commercial databases, etc. to find documents. This process can be automatic to eliminate the need for human action and supervision. By automatically tracking the links returned in the search engine results page (SERP), the metasearch actuator framework can obtain additional documents that it can add to the project.
[0158] Another embodiment of the actuator framework is an active wikifier system. A wikifier is an algorithm that links mentions of an entity to a reference knowledge base (such as a wiki). A system as contemplated herein can dynamically respond to mentions that users add to an item by meta-searching well-known reference sources and profiles in social media so that it can link the user's mentions to those external sources. The system can use a cache of common wikiified targets so that it does not need to meta-search for the most common concepts. However, the dynamic wikifier actuator framework can enable collaborative agents to keep up with the evolving state of wiki resources throughout the web.
[0159] Knowledge Operating System
[0160] The Knowledge Operating System (KOS) is a content management system (CMS) that facilitates various actions on KOJ (also referred to herein as "projects"). Users can create new projects, give it names, and add mentions from documents to the project. Each project has a separate representation in a serializable data structure that can be stored persistently on disk. In this way, projects are like new types of documents. In the same way that traditional documents can reference other documents via citations or structured references (such as, URLs), KOJs can also contain references to many other documents. Unlike most other types of documents, KOJs can track user actions related to the documents they reference. Unlike any other kind of document, KOJs can enable algorithms to use those tracked actions to automatically expand KOJs themselves.
[0161] KOS can provide a programming interface (such as a representational state transfer web service that transmits JavaScript object notation) that enables client programs to interact with the surface so that user actions on other documents can be tracked. KOS can also provide an actuator framework that enables automatic algorithms to obtain documents and data from different data sources so that they can be added to KOJ. The KOS web service can enable multiple surfaces to display visual knowledge elements that present information from the same project. Various surfaces can repeatedly poll the KOS interface, or KOS can use a protocol that enables it to push changes to a log.
[0162] KOS can advantageously enable users to control and manage projects across devices and applications, and can collaborate with human and machine resources in knowledge discovery. Unlike search history in traditional search engines, KOS can enable users to conduct multiple simultaneous projects. Users can choose where to record exploration actions so that each project accurately tracks the user's BDI for a specific activity or effort area. Although it is possible to try to infer which project a user is working on by only looking at the user's clicks and similar actions, this is not the way for one person to work with another person. If two people are working together on different projects, one person usually tells the other which project he / she is thinking about. People often hear teammates or colleagues say "Let's switch the topic to another project now..." or "As you will recall, for this upcoming meeting, the important factor is..." and other context setting statements. Therefore, users can generally specify projects. In another aspect, KOS can transparently (e.g., without user notification) or interactively (e.g., with explicit user notification and request) or some combination thereof to infer projects and / or switch between multiple topics.
[0163] Today, most human users of computers are accustomed to manipulating computer software as if it were an inanimate tool without a mind. With the advent of algorithms enabling intelligent virtual assistants, software may need the ability to solicit and receive such project context-setting signals from human collaborators. KOS can enable such context-setting.
[0164] In one implementation, each user action is recorded in KOJ. User actions occur on surfaces such as tabs in MS Word or web browsers. User actions can be captured by software plug-ins running inside these applications or by screen image capture software running in the parent operating system. Some exemplary implementations of the method for setting context are described below.
[0165] In order to enable the user to specify which KOJ will receive the action, the KOS can display a visual action button for selecting a KOJ. In one implementation, a separate such visual action button is displayed for selecting an item in each web browser tab (e.g., in Chrome or Firefox), or a single visual action button for a surface or device is displayed. The KOS can be deployed on a specific user device as a desktop application, etc., and can enable the user to invite a machine-based collaborative agent to each document, application, window, etc. In one aspect, the user can drag and drop an icon representing each new document into different projects, or drag and drop an icon representing a project into each new document, window, or application that the user wishes to be associated with the project.
[0166] In one aspect, a user may activate automatic project switching, for example in the software preferences panel of the KOS desktop application. When this switch is set to "on", then when a user selects a project in one window or application, then all other documents or windows open elsewhere that are associated with a KOS project may also automatically switch to that project. This may save the user the trouble of manually switching each window to a new project. Such automatic project switching may have the disadvantage that it makes it more difficult for a user to have multiple projects active at the same time, so it may be easy to disable the automatic switching feature or to provide a conditional switching feature (wherein the user is asked whether to switch other windows or documents to the new project when a new project or project switch is detected).
[0167] In another exemplary implementation, a user may select a document from a list of search results and click a button for "Add to Project." The system may display a selector showing the names of existing projects so the user can select which project will receive mentions from the selected document. The system may also enable the user to start a new project. In this workflow, when the user clicks to confirm which project or names a new project, the system may automatically take two actions: (1) it opens a draft email to help the user share the project with colleagues; and (2) it opens the vertices in a graph view of the project, including documents and other vertices. When the graph view is opened, if the user identifies a mention or string as part of their search process, the vertices for those concepts may automatically expand to show related concepts.
[0168] The system can provide a project dashboard showing a summary view about each project. The summary view can list some documents and concepts in the project and provide links to open vertices in the graph view of the project. In one aspect, projects can be shared so that multiple users can participate in a single project. For example, two human users and two different software systems can contribute operations to a single log.
[0169] A log as contemplated herein can be an active document in that it can continue to accumulate new operations. Like other active documents, a log can be forked to create copies that subsequently differ from the original. A log can also be locked so that new operations cannot be added. A log can have several forms of access control permissions. Users who can access the log with read-only permissions can be defined by one access control permission set, and users who can access the log with write permissions can be defined by a different access control permission set. An "owner" user set can be defined as having the right to change the read-only user list and write the allowed user list.
[0170] In order to authorize the collaborative agent algorithm to act on behalf of the user, access rights may be granted to the log for use by the agent. These access rights may be referred to as "access rights to the log". Such rights may require that they come from the user who has control over the log, as the log will not be a means of attack for a malicious user to gain access to data that the user himself / herself cannot access. The log may allow a user to assign specific access rights to several collaborative agents operating on the log.
[0171] For example, when a user starts a project from a document found in a search results list, the user may have performed the search with a set of access permissions. By default, the journal may be granted those same access permissions as its access rights so that collaborative agents reacting to the data in the journal can continue to search for relevant content to expand the project on behalf of the user. Since users may wish to share projects with other users, KOS may enable users to select a more restricted set of access permissions for the journal's access rights. In this way, others invited to the project may not be able to gain access to all of the same data that the original creator of the project had access to.
[0172] For example, the original creator of a blog may have invited a collaborative agent to read and index all of the user's emails. When the user decides to make another blog around a specific issue, the user can limit the permissions that the blog can use so that others invited to the project cannot access the user's emails through the blog.
[0173] In another aspect, the log can be configured to support asynchronous modification of multiple users. The following examples provide details of an example implementation of a user interface for collaborative machine-assisted knowledge discovery using a graph of entities and relationships. When a user double-clicks a concept vertex to request more concepts related to the vertex, the following series of events may occur. First, the user interface may request the relevant concepts of the vertex from the machine analysis system 706, for example, through a desktop application or other local software agent that supports the display of the knowledge graph. The machine analysis system 706 (or other appropriate backends that support KOS) may produce a work unit that is intended to complete a request to find relevant concepts and add them to the graph. This work unit is executed asynchronously. The machine analysis system 706 may submit the request to its operation record in a manner that includes a timestamp indicating when the user initiated the request for the relevant concept. The submission may also include an identifier for the work unit. The machine analysis system 706 may respond to the request using all operations (including the above submissions) submitted to the record since the last presentation of the user interface 702. The client may use a new operation to present a loading icon on a specific vertex. Note that since the "loading" state is part of the atlas record, this loading icon can effectively remain even if the user closes the atlas and reopens it. Since the submitted operation contains a timestamp, the user interface 702 can omit the loading icon after a predetermined timeout.
[0174] Asynchronously, the work unit can begin execution and the machine analysis system 706 can perform a search for related concepts. A write lock on the operation record can then be acquired. While this lock is held, no other processes can be written directly to the record. Note that this does not affect the usability of the user interface or the graph for any actual or potential user. This write lock may be necessary at any time when performing a full-graph deduplication operation to prevent data contention. With the lock in place, any related concepts can be deduplicated for the current graph. In one aspect, this process can be implemented using name similarity heuristics, etc. Any new concept vertices and evidence edges can be created in the graph by writing the operation record. By default, all new edges can be hidden. The write lock can then be released.
[0175] Asynchronously, the next time the user interface receives an update from the backend (either by polling or by another operation similar to 1-4), it can include the additional vertices and edges added in the operation record. Since they are hidden by default, the user interface can display an indicator on the vertices indicating how many hidden edges there are. When the user asks to see them, the user interface (or more precisely, the process controlling the user interface) can perform an operation to show them.
[0176] A simple implementation of a write lock can be to acquire a table-level ROW EXCLUSIVE PostgreSQL lock on the operation log. However, this can block write requests to all graphs rather than a specific graph. In another aspect, this problem can be solved by setting the isolation mode to SERIALIZABLE, but this may lead to duplicate processing, for example, an end user double-clicks two different vertices in rapid succession. In another aspect, the system can use PostgreSQL transaction-level advisory locks to implement write locks on the log to support concurrent use by multiple users.
[0177] Knowledge Operation Log
[0178] A Knowledge Operation Log (KOJ) may be a collection of Knowledge Operation Records (KORs). The collection may be sorted into append-only records. This operation record may form a record of exploration events or knowledge-oriented actions taken by users of the log.
[0179] Operational transformation logs are standard in this field. Collaborative editing tools such as Etherpad, Google Wave, Google Docs, Office 365, and Dropbox Paper use such log structures to track editing events in multi-person editable documents. In order to enable such systems to work, subfields of computer science have merged to study conflict-free replicated data types (CRDTs). As is standard in the field of CRDT and related operational logs, the data in the log can be simplified by forming checkpoint operations that summarize the aggregated effects of previous operations up to that point. This can enable clients of the log to not have to reprocess the entire history of operations; instead, the client can start from the most recent checkpoint and update its view of the state of the log by performing subsequent operations.
[0180] The KOR can usefully include fields for each action record, such as an identifier of the user for taking an action, an identifier for a mention in a document from the corpus, and an action on a visual knowledge element of a referenced mention, where appropriate or helpful. Various aspects of the KOR (such as a user identifier) can be used to present a knowledge graph or other visual presentation of a project in a manner that shows a specific contribution of a specific user. Thus, for example, in the case where multiple human users are added to a project, the vertices or edges added by each user can be color-coded, marked by a user icon or avatar, or otherwise visually encoded to identify the source of a specific addition. The activities of machine users can also or alternatively be visually encoded in this manner. Similarly, modification permissions can depend on the added user, for example, the vertex to which the user requests a change to a vertex. Thus, for example, a user can prohibit, allow, or conditionally allow changes to the modification of the user entry.
[0181] Generally, the users contemplated herein may include both human users and machine users. For example, a machine user may include a machine-based algorithm that performs an action of presenting a summary card that mentions "John Smith," and a human user may perform an action of clicking on the summary card, e.g., to request more information about it.
[0182] By collecting a collection of KORs, human and machine based users can view past actions of all users across many surfaces. Further, actions and actions across multiple KORs can facilitate algorithmic inference of user intent, allowing machine users to take further actions that advance human research interests and / or generate more KORs on the log.
[0183] In an exemplary implementation, operations called "OpEdgeSubstantiateStart" and "OpEdgeSubstantiateEnd" implement relation evidence bundles. A user action expressing interest in a relationship is recorded as an OpEdgeSubstantiate Start operation. This operation can carry identifiers of two concepts in the relationship that the user wants to see evidence for. The collaborative agent reacts to this operation by running an algorithm to find evidence. When it finds evidence, it stores the evidence bundle in a storage system. It then adds an OpEdgeSubstantiateEnd operation to the log using a pointer to the storage location. A client program processing the log can then display the evidence by accessing the stored evidence using the pointer. These two operations can form a group in the log. An undo operation can carry a pointer to an operation or group of operations, so that grouping of operations facilitates undoing. A quote operation enables a user to attach a paragraph from a document to a log. This enables a user to take action on a longer portion of data containing many mentions.
[0184] By processing the logs of KOR, the process can create aggregates that represent the history of actions of machine and human users. To construct the aggregates, the system can process the sequence of actions in the log. A checkpoint operation can then store the results of the aggregates on the log as a summary of certain aspects of past actions. There are many possible aggregates that can be formed from a single log. For example, all the actions of one user can be collected into a description of the activities and / or intentions of the one user. Alternatively, the actions of multiple users can be used to capture a set of intentions that indicate, for example, the thought process of a group of users or the research goals.
[0185] In an exemplary implementation, the mechanism for aggregating operations to model the intention of one or more users is as follows. The system can generate a feature vector describing the context around each mention. The vector can be part of a high-dimensional vector space, where each word, phrase, or concept mentioned in the corpus is considered as a dimension of the vector space. In order to form an aggregation for a given set of users, the system can create a summary vector. Initially, the summary vector is a zero vector. The system then iterates the operations in the log, thereby filtering the operations performed by the users in a given set. If the KOR that passes the filter carries an identifier for the mention in the corpus, the system can use the feature vector of the mention to refine the summary vector. If the operation carries an affirmative user action, the feature vector of the mention will be added to the summary vector. If the operation carries a negative user action, the feature vector of the mention will be subtracted from the summary vector. If the mention carries a neutral or vague user action or no user action, the system can use the feature vector of the mention to add the summary vector with a weighting coefficient, which changes the magnitude and sign of the change on the summary vector.
[0186] The summary vector can provide a data structure that models the user's current knowledge state. The dimensions of the vector space with non-zero components in the summary vector can describe the user's current knowledge state. Dimensions with positive values can describe the user's desired knowledge. The system can use this summary vector aggregated from the log to rank mention recommendations and related concept recommendations. The system can generate candidate mentions and candidate related concepts by querying the above-mentioned Tier0, Tier1, and Tier2 indexes using different strings with positive values in the summary feature vector. If the feature vector of the candidate mention has a strong overlap with the summary vector, the system can assert that the context of the mention is likely to be "on topic", that is, about what the user is researching. Similarly, for relationship recommendations, if the combination of feature vectors for mentions of co-occurring concepts has a strong overlap with the summary vector, the system can assert that it is likely to be on topic.
[0187] Co-occurrence is a simple way to generate candidate relationships. Two concepts are said to "co-occur" if their mentions appear in the same document. The likelihood that such co-occurrence implies a meaningful relationship between the two concepts increases with the proximity of the mentions. That is, mentions that are closer together in text or images or other media may be more likely to actually be related.
[0188] The system can measure the overlap of these vectors using a simple dot product, Mahalanobis distance, or another pairwise kernel function or a weighted sum of potential functions consisting of kernels applied to parts of the vectors. In one aspect, a feature vector can be a product of vectors from several smaller vector spaces. For example, one subspace is the names of people that appear in the context of mentions, while another subspace is the names of organizations that appear in the context of mentions.
[0189] In addition to the likelihood that a mention or related concept is relevant to the user's project, the summary vector can be used to estimate the likelihood that the mention will be useful to the user. If the user is seeking new material that the user is not yet aware of, the system can count the number of dimensions in the feature vector of the mention (or the related concept combination of the vector of the mention), and then also count the number of those dimensions that are not present in the summary vector. The novelty score can be calculated as the ratio of the number of concepts that are not in the aggregate summary vector to the number of concepts in the candidate's vector. When considering a list of many candidate recommendations, the system can also seek to diversify the candidates. This can be achieved, for example, using any of a variety of diversification models (such as, maximum marginal relevance) to this dedicated context, where the aggregate summary vector from KOJ can represent user intent.
[0190] One advantage of KOJ is that different visual display elements can synchronize their knowledge presentation to the user. For example, a user may be working with KOS, which displays a queue of summary cards in each document the user has opened. A user action to discard a card from one card queue can cause the card to be removed from other queues showing the same item. Similarly, a user can take a confirmation that they are interested in a proposed document that the automated system believes mentions an entity of interest. The action can be received through some visual knowledge element (e.g., a highlight in context in a document). Through KOJ, other visual displays can be updated in response to this. For example, if a user clicks an action button on a highlight of a mention in context, the vertex aggregation within the graph of the item can show a vertex for the concept with appropriate lines connecting it to other vertices.
[0191] The KOJ structure can also advantageously facilitate the use of machine learning algorithms. By recording positive and negative user actions, KOJ can provide a source of true positives and false positives for training classifiers and other trainable algorithms. Because KOJ dynamically tracks users and user focus, KOJ can provide a high-quality source of training labels for a wide range of machine learning models, etc.
[0192] A quote annotation can be a special type of operation where a user captures a snippet of text and stores it in the log as a snapshot of the observed data. A quote annotation can mention other concept vertices in the graph, which can be represented as a mention edge from the quote annotation to the concept. A quote annotation can also be created when a user wants to cite a mention chain. When a user cites a mention chain, a new quote annotation can be created along with the quote, and it can have a reference edge to the concept vertex containing the corresponding mention chain.
[0193] One problem that may be helpful to solve in KOS is deduplication of documents or references to the same concept. For example, consider that a user may request related concepts for two different concepts at approximately the same time. Such requests can be processed asynchronously by the backend. When a new related concept is discovered, it can be added to the operation log as a separate operation. If some of these concepts are identical (i.e., the mentions that the coref algorithm can detect may be referencing the same concept), several different solutions can be used as described below.
[0194] There are several different high-level approaches to the aforementioned problem. One can be identity-based, meaning that the process of selecting an identifier for a vertex provides it with an identity, and therefore deduplication happens automatically in the context of the user graph. The problem with this approach can be that all deduplication logic is pushed into the identity of the defined concepts, which usually means introducing a canonical dictionary of defined concepts and requiring all documents to conform to the same dictionary, which can be impractical to implement or impose on real data.
[0195] Another approach could be to tackle the deduplication problem head on. That is, whenever a vertex is automatically added to the knowledge graph, it can first be compared to other concepts in the log to determine if it refers to a concept that has already been mentioned elsewhere in the project. If so, the system can decide to discard it entirely or merge it with the vertex. The actions of discarding or merging can be summarized by the term "deduplication".
[0196] Figure 8 800 may include a computing device 810 connected to a network 802, for example, via an external device 804. The computing device 810 may be or include any type of computing device described herein, such as, for example, the computing device described above with reference to FIG. Figure 1The computing device 810 may be any computing device described herein. For example, the computing device 810 may include a desktop computer workstation. The computing device 810 may also or alternatively be any other device having a processor and communicating via the network 802, including but not limited to a laptop computer, a desktop computer, a personal digital assistant, a tablet computer, a mobile phone, etc. The computing device 810 may also or alternatively include a server, a search engine, a cloud computing resource, etc., or the computing device 810 may be set on a server or in a virtual or physical server farm, or in any other physical or virtualized environment or form.
[0197] The computing device 810 may be the Figure 1 The computing device 810 may be any computing device described herein. For example, the computing device 810 may be a server, a client, a database, a search engine, or any other facility or computing device described herein. In some aspects, the computing device 810 may be implemented using hardware (e.g., in a desktop computer), software (e.g., in a virtual machine, etc.), or a combination of software and hardware (e.g., with a program executed on a desktop computer). The computing device 810 may be a stand-alone device, a device integrated into another entity or device, a platform distributed across multiple entities, a virtualized device executed in a virtualized environment, or some combination thereof.
[0198] The network 802 may include any network or combination of networks, such as one or more data networks or internetworks suitable for coupling other entities in a communicative relationship and transmitting data and control information between participants in the computer system 800. The network 802 may include a public network such as the Internet, a private network, and a telecommunication network such as a public switched telephone network or a cellular network using third generation cellular technology (e.g., 3G or IMT-2000), fourth generation cellular technology (e.g., 4G, LTE.MT-Advanced, E-UTRA, etc.), or Advanced WiMAX (IEEE 802.16m) and / or other technologies, as well as any of a variety of enterprise area networks, metropolitan area networks, campus networks, or other local area networks or enterprise networks and any switches, routers, hubs, gateways, etc. that may be used to carry data between participants in the computer system 800. The network 802 may also include a combination of data networks and need not be limited to strictly public or private networks.
[0199] External device 804 may be any computer or other remote resource connected to computing device 810 via network 802. This may include a server, a search engine, a client, a database, a network storage device, a device that hosts content, or any other resource or device that may be connected to computing device 810 via network 802.
[0200] Computing device 810 may include processor 812, memory 814, network interface 816, data storage 818, and one or more input / output devices 820. Computing device 810 may further include or communicate with one or more peripheral devices 822 and other external input / output devices 224.
[0201] The processor 812 may be any processor as described herein, and may generally be capable of processing instructions for execution within the computing device 810 or computer system 800. The processor 812 may include a single-threaded processor, a multi-threaded processor, a multi-core processor, or any other processor, processing circuit, or combination of the foregoing suitable for processing data and instructions as contemplated herein. The processor 812 may be capable of processing instructions stored in the memory 814 or on the data storage device 818. The processor 812 may also or alternatively include a virtualized machine that emulates a physical processor.
[0202] The memory 814 can store information within the computing device 810 or computer system 800. The memory 814 can include any volatile or non-volatile memory or other computer-readable medium, including but not limited to random access memory (RAM), flash memory, read-only memory (ROM), programmable read-only memory (PROM), erasable PROM (EPROM), registers, etc. The memory 814 can store program instructions, program data, executable files, and other software and data that can be used to control the operation of the computing device 810 and configure the computing device 810 to perform functions for the user. The memory 814 can include several different stages and types for different aspects of the operation of the computing device 810. For example, the processor can include on-board memory and / or cache for faster access to certain data or instructions, and can include a separate main memory, etc. to expand memory capacity as needed.
[0203] In general, the memory 814 may include a non-volatile computer-readable medium containing computer code, which, when executed by the computing device 810, creates an execution environment for the computer program in question, for example, code constituting processor firmware, a protocol stack, a database management system, an operating system, or a combination of the foregoing and / or code that performs some or all of the steps set forth in the various flow charts and other algorithm descriptions set forth herein. Although a single memory 814 is depicted, it will be understood that any number of memories may be usefully incorporated into the computing device 810. For example, a first memory may provide non-volatile memory, such as a disk drive for permanent or long-term storage of files and code even when the computing device 810 is powered off. A second memory, such as a random access memory, may provide volatile (but higher speed) memory for storing instructions and data for executing a process. A third memory may be used to improve performance by providing even higher speed memory physically adjacent to the processor 812 for registers, caches, etc. In another aspect, the memory 814 may include virtual memory that emulates physical memory resources.
[0204] The network interface 816 may include any hardware and / or software for connecting the computing device 810 in a communicative relationship with other resources via the network 802. This may include connection to resources (such as remote resources accessible via the Internet and local resources available using short-range communication protocols) using, for example, a physical connection (e.g., Ethernet), radio frequency communication (e.g., WiFi), optical communication (e.g., fiber optic, infrared, etc.), ultrasonic communication, or any combination of these or other media that may be used to carry data between the computing device 810 and other devices. The network interface 816 may include, for example, a router, a modem, a network card, an infrared transceiver, a radio frequency (RF) transceiver, a near field communication interface, a radio frequency identification (RFID) tag reader, or any other data reading or writing resource, etc.
[0205] The data storage device 818 may be any internal memory storage device that provides a computer-readable medium, such as a disk drive, an optical drive, a magnetic drive, a flash drive, or other device capable of providing mass storage for the computing device 810. The data storage device 818 may store computer-readable instructions, data structures, program modules, and other data for the computing device 810 or computer system 800 in a non-volatile form for subsequent retrieval and use. The data storage device 818 may store computer executable code for an operating system, application programs and other program modules, software objects, libraries, executable files, and the like. The data storage device 818 may also store program data, databases, files, media, and the like.
[0206] The input / output interface 820 may support input from and output to other devices that may be coupled to the computing device 810. The peripheral device 822 may include any device or combination of devices for providing information to or receiving information from the computing device 810. This may include human input / output (I / O) devices such as a keyboard, mouse, mouse pad, trackball, joystick, microphone, foot pedal, camera, touch screen, scanner, or other device that may be employed by the user 830 to provide input to the computing device 810. This may also or alternatively include a display, speaker, printer, projector, headset, or any other audiovisual device for presenting information to the user or otherwise providing machine-usable or human-usable output from the computing device 810. Other hardware 826 may be incorporated into the computing device 810, such as a coprocessor, a digital signal processing system, a math coprocessor, a graphics engine, a video driver, and the like. Other hardware 826 may also or alternatively include expanded input / output ports, additional memory, additional drives (e.g., a DVD drive or other accessories), and the like. The bus 832 or a combination of buses may serve as an electromechanical platform for interconnecting components of the computing device 810, such as the processor 812, memory 814, network interface 816, other hardware 826, data storage 818, and input / output interfaces. As shown in the figure, the various components of the computing device 810 may be interconnected using a system bus 832 or other communication mechanism for conveying information.
[0207] The methods and systems described herein may be implemented using the processor 812 of the computer system 800 to execute one or more sequences of instructions contained in the memory 814 to perform predetermined tasks. In an embodiment, the computing device 810 may be deployed as a number of parallel processors that are synchronized to execute code together to improve performance, or the computing device 810 may be implemented in a virtualized environment, where software on a hypervisor or other virtualization management facility emulates components of the computing device 810 when appropriate to reproduce some or all of the functionality of the hardware instantiation of the computing device 810.
[0208] Fig. 9 A flow chart of a method for investigating relationships between entities is shown. In general, a search engine can search for information identifying mentions of entities, or more specifically groups of entity-related mentions, and relationships between such groups of entity-related mentions within a corpus of documents. An associated user interface can interactively present information to a user so that the user guides the selection and presentation of entities (or groups of entity-related mentions) and relationships of interest.
[0209] As shown in step 902, method 900 can begin by providing access to a collection of documents. This can include any of a variety of techniques for connecting a search engine and user display to documents of interest. For example, this can include providing a connection to a search engine that has searched, analyzed, and indexed available documents (such as a local directory, a cloud storage facility, or a public network (such as the World Wide Web) or any combination of these). This can also or alternatively include providing direct access, for example, through a connection between a device supporting a hosted user interface and a document source, which can be used to dynamically search and process documents when a user query is received. More generally, any technology for supporting user searching, programmatic searching and retrieval, analysis (e.g., evidence including entity mentions, also referred to herein as "evidence paragraphs", which materialize relationships between entities or otherwise support entity-related mention groupings), user display and viewing, and user interaction with underlying content can be used to provide access to documents, as shown in step 902. It will be understood that a wide range of indexing technologies, network search engines, etc. are available. Similarly, data hosting and data repository systems involve a wide range of access control technologies and access integration technologies, including Kerberos, Active Directory, Oauth, Public Key Infrastructure (PKI) and other data transmission, login technologies and / or cloud-based storage technologies. Any of the foregoing may be used alone or in combination with recommendation engines, machine analysis systems, etc. to provide access to documents and support user investigation of entity-related mention groups within such documents as described herein.
[0210] As shown in step 904, method 900 may include receiving user input. This may be any user input that initiates further processing by the entity investigation platform described herein. As shown in step 906, method 900 may include processing the document. In this context, processing the document may include general background processing such as searching and analyzing to create an entity database, indexing content, etc., or processing the document may include specific processing in response to a specific user request or other user input. In general, receiving user input may occur before, during, or after document processing, or any combination of these, depending on the specific user interaction.
[0211] For example, in one aspect, receiving user input may include providing text input to a search input form bar to initiate a new search or project. Processing of the document may then include searching within an available document corpus for candidate entity mentions to be presented to the user. In one aspect, the user may identify two or more entities directly within the search input form bar, and method 900 may include displaying several candidate mentions within a user interface, such as as tags, etc. In another aspect, documents containing mentions of various entities or excerpts from such documents may be displayed within a user interface, and each document may be displayed with one or more tags identifying the mentions within the document. The user may then specifically select the mentions of interest.
[0212] It will be understood that the term "entity" as used herein does not imply a specific known entity in the physical world. In general, it is meaningless for the data processing contemplated herein to draw conclusions about entities in the real world. Instead, the entity described herein is an inference of the relationship between several mentions located in a document, where a set of co-referencing mentions can be inferred or predicted to refer to a single thing called an entity. Therefore, the "entity" contemplated herein is a set of mentions that appear to be co-referencing due to the surrounding context of the document in which the mention appears, or a data structure that characterizes or retains such entity-based mention groups, rather than the underlying factual identification of real-world entities. Therefore, unless explicitly stated or otherwise clear from the context, the term "entity" as used in the attached description and claims should be understood as a shorthand for entity-related mention groups that reference a single entity appearing within a document, or any data structure that characterizes or reflects entity-related groups, etc. Generally, the corresponding mentions in such entity-related groups are mentions that appear to be co-referencing, without implying any conclusions about the importance of co-referencing or the single entity implied by such co-referencing in the real world.
[0213] In another aspect, steps 904 and 906 of method 900 may include identifying a first entity and a second entity, each of which is mentioned in the document collection, such as by selecting a text span that references the first entity and the second entity in the document collection. This may also or alternatively include several different user interactions for specifying entities or selecting from entities. For example, a user may explicitly select two entities from a list of entities provided by the platform, or a user may enter two entity descriptions and the platform may suggest mentions within the document that may correspond to the entities described by the user. In another aspect, a user may identify an entity, and the platform may search for other related entities that may be of interest based on, for example, co-references within the document. The user may then select a second entity from the entity tags and mentions identified by the platform and presented to the user in a user interface.
[0214] In one aspect in which entities are identified and user input includes a request for evidence supporting a relationship within a document, processing the document may include processing a collection of documents to identify evidence (e.g., an evidence paragraph) that substantiates a connection between a first entity and a second entity, the evidence comprising co-occurring mentions of the first entity and the second entity within at least one document of the collection of documents. This may also or alternatively include processing the collection of documents to identify an evidence paragraph in one or more documents in the collection of documents that substantiates a connection between the first entity and the second entity, such as an evidence paragraph that includes a first mention of the first entity and a second mention of the second entity.
[0215] Other interactions may also or alternatively be used to identify and select relationships between entities based on evidence available in a document collection. For example, the method may include presenting a number of candidate connections to a user based on co-references between a plurality of entities, and creating a connection in a user interface for display in response to a selection by a user of one of the number of connections (e.g., as described below). In another aspect, method 900 may include receiving a selection by a user of a first entity and automatically suggesting a connection with a second entity, thereby providing the user with assistance in identifying possible relationships suggested by information in a document collection and selecting from the possible relationships. In another aspect, method 900 may include receiving a selection by a user of a first entity and a second entity, and searching within the document collection for evidence passages to confirm the connection.
[0216] As shown in step 908, method 900 may include storing a relationship description that characterizes evidence from within a document collection that confirms a connection between a first entity and a second entity, or otherwise provides support for a possible relationship between two entities based on information within one or more documents in the document collection. For example, this may include the title and / or location of a document containing a co-reference of the two entities, along with the full text of the document, or one or more excerpts that mention the two entities. This may also or alternatively include relevant information of interest, such as the likelihood that the mention involves an entity of interest, the distance between mentions of the two entities (e.g., the number of words), identification of an explicit statement of a relationship between the entities (e.g., based on a semantic analysis of the documents, etc.), the number of other documents containing a co-reference, or any other information useful for confirming or characterizing a relationship between the entities based on one or more documents in the collection.
[0217] This information may be stored as a relationship description 909 in a log, a database, or other data repository accessible by a platform supporting a user interface. The underlying entity (e.g., entity-related mention group) and one or more relationships may be identified, and the relationship description 909 may be created automatically, manually in response to a user request, or some combination thereof. For example, receiving user input as described above may include presenting several connections as candidates to the user based on the co-occurrence of mentions of multiple entities, and creating the relationship description 909 in response to a selection of one of the several connections by the user. In another aspect, receiving user input may include receiving a selection of a first entity by the user and automatically suggesting a connection with a second entity. In another aspect, receiving user input may include receiving a selection of a first entity and a second entity by the user and searching for evidence (e.g., evidence paragraphs) within a document collection to confirm the connection. Receiving user input may also or alternatively include receiving a selection of more than two entities by the user and searching for confirmation of the connection within a document collection. More generally, the relationship description 909 may be created automatically and / or interactively using any of the techniques described herein.
[0218] As shown in step 910, method 900 may include graphically displaying a relationship between a first entity and a second entity. Generally, once a relationship between two entities has been identified or selected, further user interaction may be supported within a graphical user interface using several techniques. For example, this may include displaying a first icon for the first entity and a second icon for the second entity within the user interface, and displaying a connector symbol connecting the first icon and the second icon within the user interface, etc. The connector symbol may be a line, an arrow, or other visual feature that visually connects the first icon to the second icon and represents the connection between the first entity and the second entity, etc. To support user interaction, the connector symbol (also referred to herein as a "connector") may also include a user interface element that the user may activate to access a relationship description 909 of evidence supporting the connection.
[0219] As shown in step 912, method 900 may include receiving a user interaction with the display. For example, this may include the user clicking or hovering over a connector symbol within the user interface, selecting a first icon and a second icon, or otherwise interacting with the graphical display in a predetermined manner to request additional information, provide additional input, or otherwise interact with the relationship description 909 or supporting evidence.
[0220] As shown in step 914, method 900 may include responding to user interactions. As described above, method 900 may include the steps of processing a plurality of documents, identifying mentions of entities therein, and further identifying corroborative information within such documents that demonstrates a relationship between two entities, which corroborative information may be stored as a relationship description. Using this information, the user interface may support a variety of useful interactions to facilitate investigating the basis of a particular relationship, as well as searching for additional related entities and relationships suggested by the document collection.
[0221] In one aspect, responding to a user interaction may include responding to a user interaction with a connector by providing access to evidence in a user interface. For example, in response to a user interaction with a connection that visually connects two icons, this may include providing access to evidence supporting the relationship depicted within the user interface, such as by displaying a portion of a previously stored description of the relationship. In this context, providing access may include displaying at least a portion of the evidence as text, etc. For example, the evidence may include text from one or more documents in a document collection that contain co-occurring mentions of a first entity and a second entity, and providing access to the evidence may include highlighting the co-occurring mentions within the text.
[0222] In another aspect, responding to a user interaction (such as a mouse hover or mouse selection) with a connector symbol displayed in the user interface can include updating a search input form field of the user interface to include a search request for documents evidencing a connection between the first entity and the second entity.
[0223] According to the foregoing, a system including a search engine and a computer is also described herein. The search engine can be hosted on any of the above devices, and can be configured to receive identification of a first entity and a second entity, and process a document collection to identify evidence that confirms a connection between the first entity and the second entity, the evidence including co-occurrence mentions of the first entity and the second entity in at least one document in the document collection. The computer can include a processor, a memory, a display, and a user input device, and the computer can be configured to support user interaction with the relationship description 909 and the document collection to investigate entity relationships, as described herein. For example, the processor can be configured by a computer executable code to perform the following steps: identifying a first entity and a second entity; submitting the first entity and the second entity to a search engine; and in response to the results from the search engine, displaying a first icon for the first entity, a second icon for the second entity, and a connector symbol in a user interface, the connector symbol visually connects the first icon to the second icon and represents the connection therebetween, and the connector symbol is operable through the user interface to provide access to evidence in the user interface. In one aspect, the search engine is executed locally on the computer. In another aspect, the search engine is a remote search engine accessible by the computer through a data network. The search engine can also be distributed between these devices in several ways. For example, the computer may locally parse the text of the query (e.g., to identify explicit search operators) or otherwise pre-process the text before forwarding the query to the search engine. In another aspect, a local search engine on a computer may support investigation of locally hosted documents and may collaborate with a remote search engine that processes document collections distributed over a wide area network or otherwise hosted or available on computer resources other than the computer.
[0224] Fig.10 A flow chart showing a method for investigating relationships between entities.
[0225] As shown in step 1002, method 1000 may begin by receiving a keyword search from a user via a search input form bar from a user interface for a search engine, such as any search engine or other entity-based tool described herein. The keyword search may include any text input and any operators or other text that forms an explicit statement of the user's search intent.
[0226] As shown in step 1004, method 1000 may include predicting user intent based on a keyword search. For example, this may include predicting one or more entities that the user intends to reference in the keyword search by applying a co-reference algorithm to the keyword search or otherwise analyzing the text of the keyword search to identify possible entities identified therein. As noted, in this context, the term "entity" should be understood as a shorthand for a group of entity-related mentions that have been identified as co-references. Therefore, step 1004 may be more specifically understood to include applying a co-reference algorithm to the keyword search to predict entities that the user intends to reference and are characterized by one or more entity-related mention groups, or in other words, to predict the entity-related mention groups that the user intends to reference.
[0227] As shown in step 1006, method 1000 may include presenting a first search result. This may, for example, include displaying the search results in a user interface including a first plurality of entity tags (also referred to herein as "tags") and a plurality of documents, for example, obtained from a document collection. Generally, each document will not be displayed in its entirety. Instead, the display of the document in the user interface will include the following display: metadata (such as title, date, source, and / or other information) together with representative content (such as evidence paragraphs or other excerpts, etc.) and optionally highlighting entity mentions within the evidence paragraphs. Each of the plurality of documents may contain a reference to at least one of the one or more entities located by the search engine (or a reference in at least one of the one or more entity-related mention groups located by the search engine), and each of the plurality of entity tags may correspond to at least one of the mentions. It will also be understood that each entity tag therefore represents a specific reference from an entity-related mention group that has been identified as co-referencing or otherwise related. Generally, the document collection may be hosted locally on a user device receiving a keyword search, distributed over a wide area network, hosted on a remote cloud storage facility, or some combination thereof.
[0228] As shown in step 1008, method 1000 may include receiving a user selection of one of the entity tags, for example, by receiving a selection from the user of a first entity tag for a first entity from a first plurality of entity tags. As noted, the first entity may be characterized by a first entity-related group of mentions, or may be a corresponding entity-related group of mentions. The selection may mechanically include a click or other operation on the entity tag within a user interface. Generally, such a first selection may indicate user confirmation that the keyword search was intended to reference the first entity, thereby grounding the corresponding entity mention in a particular document selected by the user.
[0229] As shown in step 1010, method 1000 may include adding a first entity tag to a search input form bar. Thus, a portion of the text may be replaced by a corresponding entity and / or a specific context provided for the entity in a document selected by a user. In one aspect, this action (placing the entity tag in the search input form bar) is a user interface function that provides visual feedback to the user that a specific entity has been selected with reference to one or more specific documents. In another aspect, this provides entity-based search functionality by providing information that can be used to replace one or more keywords initially provided by the user to support improved entity-based searches around entities.
[0230] As shown in step 1012, method 1000 may include finding evidence of relationships with other entities. In this context, evidence may be any evidence paragraph, etc. that tends to confirm the relationship between entities according to a relevance algorithm or other tool or metric. Also as noted herein, each entity may be characterized by or may include a group of entity-related mentions. Thus, method 1000 may include applying a relevance algorithm or other tool or metric to identify text in a second plurality of documents that provides evidence (such as, evidence paragraphs) of a relationship between a first entity and one or more other entities, or otherwise locate information that confirms the existence of a possible relationship with other entities.
[0231] As shown in step 1014, method 1000 may include presenting in the user interface a second plurality of entity labels for one or more other entities (or one or more other entity-related mention groups) identified during the search for evidence of relationships with other entities. For example, the labels may be displayed directly below the search input form bar or in some other visually adjacent location for convenient visual analysis and selection by the user.
[0232] As shown in step 1016, method 1000 may include receiving a second selection from the user of a second entity tag for a second entity (or group of entity-related mentions) from a second plurality of entity tags, such as by pointing and clicking on one of the tags in the second plurality of entity tags in a user interface.
[0233] In response to the user selection of the second tag, method 1000 may include performing a search based on the second tag, as shown in step 1018. Specifically, a new search may be performed for documents that confirm the relationship between the first entity and the second entity, such as by evidence paragraphs, etc. This may include a completely new search of any appropriate document collection, or this may include the retrieval of results obtained in a previous search for evidence of the relationship (e.g., in step 1012 above).
[0234] As shown in step 1020, method 1000 may include displaying the results of the new search, for example, by presenting a second search result that includes one or more documents in a second plurality of documents that confirm the relationship between the first entity and the second entity. These results may be displayed in any of a variety of ways. For example, this may include graphically displaying the relationship between the first entity and the second entity in a user interface as a first icon for the first entity, a second icon for the second entity, and a connector symbol that visually connects the first icon to the second icon, for example, thereby visually demonstrating the relationship. The connector symbol may include a user interface element that provides the user with access to the evidence of the relationship within the second plurality of documents. Displaying the results may also or alternatively include displaying the relationship as a first entity tag connected to a second entity tag via a relationship operator (such as, "<>" symbol) within a search input form bar. It will be understood that additional related processing may also or alternatively be performed. For example, a relationship description characterizing the relationship between the first entity and the second entity may be stored in any appropriate manner and location, for example for further use by the user within the user interface.
[0235] In another aspect, a plurality of entity tags and relationships that have been identified using the techniques herein may be graphically displayed. Thus, for example, presenting a second search result may include graphically presenting a plurality of entity tags that are each connected to the first entity by an edge in a graph, wherein each edge is operable within the user interface for a user to retrieve a supporting evidence paragraph, and each entity tag is operable by a user to add or remove a corresponding entity-related mention group from the knowledge graph reflected by the graphical display.
[0236] In another aspect, disclosed herein is a system that supports the above-described method 1000. For example, the system disclosed herein may include a search engine, a data network, and a computing device coupled to the search engine through the data network. A computing device may include a processor, a memory, and a display, wherein the memory stores code executable by the processor to perform the following steps: receiving a keyword search from a user in a search input form field of a user interface, predicting one or more entities expected by the user; presenting a first search result to the user in the user interface, the first search result including a first plurality of entity tags and a plurality of documents, each of the plurality of documents containing a mention of at least one of the one or more entities located by a search engine, and each of the plurality of entity tags corresponding to at least one of the mentions; receiving a first selection from the user of a first entity tag for a first entity from the first plurality of entity tags, the first selection indicating that the user confirms that the keyword search was expected to reference the first entity; adding the first entity tag to the search input form field; identifying text in a second plurality of documents, the text providing evidence of a relationship between the first entity and one or more other entities; presenting a second plurality of entity tags for the one or more other entities in the user interface; receiving a second selection from the user of a second entity tag for a second entity from the second plurality of entity tags; and presenting a second search result including one or more documents from the second plurality of documents, the one or more documents confirming the relationship between the first entity and the second entity.
[0237] Additional user interface techniques that support discovery and navigation of entity-based relationships are also disclosed herein. For example, in one aspect, the method contemplated herein includes: displaying a user interface for a search engine, the user interface including a search input form bar; receiving user input to the search input form bar; parsing the user input to identify a first text string identifying a first entity, a second text string identifying a second entity, and an operator between the first text string and the second text string, the operator specifying a request to the search engine to search for evidence of a relationship between the first entity and the second entity; in response to the operator, searching a document collection for one or more documents, the one or more documents containing a co-reference algorithm predicted mention that the author intended to reference the first entity, and a co-reference algorithm predicted mention that the author intended to reference the second entity, and other mentions of text that provide evidence of a relationship between the first entity and the second entity predicted by a relevance algorithm; and presenting multiple documents of the one or more documents in the user interface.
[0238] Fig.11A user interface for investigating relationships between entities is shown. Generally, user interface 1100 may be presented on a display of a computing device and may include a search input form bar 1102 configured to receive text input from a user. Fig.11 As shown, a summary 1104 of a document of interest, for example, from a search result, can be displayed along with one or more entity tags 1106 that reference entities that may be described by the document. The entity tags 1106 can be user-selectable, and as described above, can respond to the user selection by (a) visually placing the selected tag within the search input form bar 1102, and / or (b) grounding the mention of the entity in a particular document shown in the search result. As further described herein, along with the grounded entity mentions in the particular document, the user interface 1100 can then present tags for several additional entities that can be related to the entity identified in the search input form bar 1102. The user can, for example, select the corresponding entity by interacting with the entity tags 1106, and the user indication of these relationships can be used to search for appropriate evidence paragraphs that confirm the relationship, to create a graphical visualization of the confirmed relationship, etc., all as described herein.
[0239] Fig.12 Shows a user interface for investigating relationships between entities. Fig.12 In a user interface 1200 of FIG. 1 , two entities are presented in a search input form field 1202, along with an operator symbol 1204 (in this embodiment, "<>") indicating a search for documents that substantiate a relationship between the two entities, with results 1206 typically presented within the user interface 1200, e.g., with mentions of the corresponding entities highlighted for quick visual identification. A graphical presentation 1208 of entity relationships may also be provided based on a specific user search or based on pre-existing items containing descriptions of the corresponding relationships and other information, etc. It will be noted that connector symbols 1210, such as lines or arrows, may be used to depict relationships, and may be user-selectable to perform functions such as searching for documents containing paragraphs of evidence supporting the existence or nature of the relationship.
[0240] Additional details and explanations are now provided by way of non-limiting example implementations of the above methods and systems. By way of non-limiting example, further details of fundamentalized entity mentions and related techniques may also be found in U.S. Provisional Application No. 62 / 832,085, filed on April 10, 2019, and the application is incorporated herein by reference in its entirety.
[0241] As used herein, a mention of a concept may be a string that a human reader may recognize as a reference to a shared concept. Mentions are grounded when they include sufficient additional mentions of other concepts that the reader can interpret the meaning of the mention set to reduce uncertainty. This disambiguation process goes hand in hand with grounding. The more thoroughly a concept is grounded in a rich discussion of its meaning, the more thoroughly its ambiguity is dispelled, and the more precisely the reader can understand it. Concepts are general ideas that can be communicated between people, making the discussants believe that they have a shared concept. Events are concepts anchored in space and time, so that people discussing such shared ideas have a shared understanding of where and when the event occurred. Events typically have a spatial range and a time span that occurred or is occurring. "Entities" are a special subset of concepts that are also identified by distinguishing attributes, so that people discussing entities have a shared understanding of which entity they are discussing. People and companies are familiar entity types. Entities typically have names, and when people discuss a given entity, its name is typically used as a shared concept to refer to a real-world entity. While the foregoing description emphasizes entities, it will be appreciated that the systems and methods herein may be used with any other concepts instead of or in addition to entities.
[0242] When a document mentions two concepts together, the concepts "co-occur". The co-occurrence of mentions that reference two different entities does not necessarily imply that the two entities have a direct relationship. For example, a web page may contain a list of companies that sell blowers, and just because the names of two different companies appear in the list, the co-occurrence does not necessarily mean that the two companies have a direct relationship (such as a partnership). Such co-occurrence can only confirm an indirect relationship, such as both are manufacturers of similar or related products. However, the opposite is often true. That is, if two entities have a direct relationship, the direct relationship is often expressed or mentioned in text passages or other media objects that reference the two entities, that is, contain co-occurrence references to the two entities. Therefore, it is often useful to find documents that contain co-occurrence references because these documents are candidate documents for confirming or providing evidence of the relationship between two entities or concepts.
[0243] A search engine interface as contemplated herein can enable a user to express a request for such candidate documents that can confirm a relationship. The visual interface can include at least three elements: (i) a first visual icon of a first grounded mention that disambiguates the first entity, (ii) a visual icon of a second grounded mention that disambiguates the second entity, and (iii) a graphical link interconnecting the first visual icon and the second visual icon. Such input can be interpreted by a search engine query parser as a request to search for documents that confirm a possible relationship between the first entity and the second entity. An icon represents a grounded mention, for example, a character span in a particular document that a human would likely recognize as a reference that the author of the document intended to reference some real-world entity.
[0244] In a preferred embodiment, a user may enter one, two, three, or more such visual icons for different entities. By entering one such visual icon depicting a basicized mention, a user may request documents that mention that particular entity, rather than other documents that may mention different entities with similar or string-identical names to the depicted basicized mention. By entering two or more visual icons depicting basicized mentions to various entities, a user requests documents that mention these multiple entities. Such queries may be referred to as "multi-entity queries."
[0245] In an embodiment, the search engine algorithm responds to such multi-entity queries by ranking documents that mention more identified entities higher in the list. Such queries may be referred to as SHOULD BOOSTING queries, rather than STRICT AND. If the search engine algorithm applies STRICT AND semantics to the query, it will respond only with documents that mention all entities identified by the user's multi-entity query input. On the contrary, the SHOULD BOOSTING semantics allow the ranking algorithm to respond with documents that mention entities that are less than all entities identified by the multi-entity query input. Although documents that mention all or most entities are given a higher ranking, the result list may include documents that mention less than all entities (may only include one of the entities). If the ranking algorithm determines that the content in those results is related to the context of the basicized mentions depicted in the visual icons of the various entities in the user's multi-entity query input, the result list may even include results that do not mention the entities in the input query.
[0246] The context around grounded mentions can enable human readers to perceive meaning and infer coreferences intended by the source / author.Such context can be used with the systems and methods described herein to improve search results and anchor search activities, particularly mentions of user-tagged entities.
[0247] In a preferred embodiment, the user interface allows the user to identify multiple basicized mentions for each visual icon in the query. For example, the visual icon of John Smith can represent a collection of several mentions of a specific person named by the name. These documents can appear in multiple documents, and their various context paragraphs surround the mentions in each document. A given document can mention an entity multiple times, and provide context around the words of each such mention. In a preferred embodiment, the search engine algorithm establishes a vector representation of the dimension reduction of the context around one or more mentions, so that each visual icon corresponds to a machine representation of the aggregated or condensed context around these mentions. Such vector representations are common in the art and can take many forms. For example, a representation can use a bag of words, and the bag of words counts words and phrases from a word window (such as a three-sentence window) around each mention. In another embodiment, after the internal activity of the neural network is trained to predict phrases based on naturally occurring word sequences, an embedding vector is constructed from the internal activity of the neural network. In another example method, an embedding vector is learned by factorizing a matrix of co-occurrence statistics. Other methods can be combined with these and other vectorization methods. A notable feature of all of these approaches is that the search query input collects the user's own disambiguated grounded mentions of the user's intended goal of the search, and the search engine algorithm can in turn improve the ranking of results based on these improved inputs.
[0248] The phrase "entity reference set" or ERS is used herein to refer to a collection of mentions of an entity, and more specifically to a set of entity-based mentions collected by a user (using the interface described herein) as part of a fundamentalized query. Although this group of mentions is sometimes also referred to herein as simply an "entity", an entity reference set is more precisely a collection of identifiers of documents and specific sub-ranges within each document, where the document content references the entity of interest. ERS can also contain "negative mentions", which are entity mentions that the user has marked as not referencing the entity in question. Mentions that the user has marked as correctly referencing the entity in question are called "positive mentions". For example, when exploring content about John Smith, chairman of General Motors, if the user finds a document that mentions the correct person, the user can mark the document in the ERS as a positive mention of John Smith. If the user finds a mention of John Smith, a football coach, the user can mark the latter mention as not referencing the expected person, and therefore mark it as a negative mention. In this way, the user can have a query with a visual icon depicting two different ERS that have similar or even identical surface-form name strings. One ERS may refer to the chairman, while another may refer to the coach, and the basicized mentions in each ERS disambiguate the intended meaning, even though the surface name strings are the same.
[0249] The process of collecting entity mentions can be called "mention-level bookmarking" because the identifier stored by the system (e.g., in a relationship description or other data structure) identifies the document and the specific mention document. A collection of such bookmarks for an entity is an ERS. Several ERS can be used together to specify a multi-entity query for evidence of one or more relationships between entities. A collection of entity reference sets can also be tracked as a "project". As described above, a knowledge operation log or "KOJ" can implement a project that carries one or more basic entities (i.e., a disambiguation reference to an entity of interest). Such projects are knowledge artifacts that users can save with the project name and return to in the future, just like other types of office document artifacts such as presentations and memos. The search engine algorithm can allow users to identify specific projects as the context of the query, and then the search engine can rank documents differently based on the project. A preferred embodiment of using projects for search contexts is to build an aggregate vector from all contexts of all basic mentions in all entity reference sets in the project, and use the vector as a diversification effect on search results. The diversification effect will slightly suppress documents that appear to be redundant for the project, so that users have a higher probability of learning new information from search result hits.
[0250] The vector constructed for each ERS can use positive mentions and negative mentions differently. Positive mentions can provide boost phrases that expand the documents retrieved by the search engine, while negative mentions can provide suppressive phrases that reject incorrect documents. For example, if the user is only looking for documents about the chairman, positive mentions can provide "car" as a context word, which the search ranking algorithm can use to boost the ranking location documents about the correct John Smith. Conversely, negative mentions can provide the context word "stadium", which the search ranking algorithm can use to lower the ranking of documents about the wrong John Smith.
[0251] Search engine ranking algorithms can use such grounded mention context information to improve ranking in several ways. As another example of ranking improvement, the search engine can suppress documents that are similar to the context of the positive mention, because this provides new and more likely novel information that helps the user understand the target entity. Alternatively, the search engine can promote documents that are similar to the context of the positive mention, because this provides documents that are more likely to confirm the understanding that the user has already gleaned from the already collected mentions of the document.
[0252] Such ranking techniques can be implemented on top of a standard keyword search engine (such as Elasticsearch or SOLR) using the Lucene indexing engine. A collection of ERS can appear in a user interface, and a query processing module can interpret a multi-entity query of an entity reference set to construct a query against a low-level search index configured to receive complex queries containing both positive and negative boost contexts. Negative boost can be implemented as positive boost on a SHOULD NOT clause.
[0253] When a query retrieves a collection of documents from such a search engine, it may also request the engine to generate an aggregation of other co-occurring terms, such as mentions of other entities or to set identifiers for groups of mentions that the disambiguation engine has evaluated as co-referencing. The user interface may present terms from such aggregations as recommended other entities of interest. Other entities that receive frequent mentions within the subset of documents retrieved by the query are "related entities". The system may collect related entities and present them to the user as an encouragement for further exploration using multi-entity queries.
[0254] For example, a multi-entity query may have three entities identified by grounded mentions in three ERS. The first references GM Chairman John Smith, the second references Detroit, and the third references Allison Transmission. In response to this query, the search engine can find documents that mention the entities, and then aggregate queries to find other entities that are also frequently mentioned in these documents (such as Delta Airlines, where Mr. Smith is also a member of the board of directors). The system can use this approach to present many candidate connections to other entities that the user may not have considered exploring. By proposing such related entities, the system invites the user to explore more multi-entity queries. For example, a user can remove Detroit and Allison Transmission and add Delta to make a new two-entity query to explore the evidence of the relationship between Mr. Smith and Delta.
[0255] Such aggregate queries for generating related entity suggestions may produce surface-form name strings that may not be sufficient to form an ERS for grounded mentions, particularly where multiple entities share similar or identical surface-form name strings. Thus, the system may further align the related entities with specific documents that mention the proposed related entities, e.g., based on user-selected groundings, such that when the user selects such a suggestion, it enters the search query form bar as an ERS depicted by an entity visual icon.
[0256] When a document mentions a particular entity one or more times, the user interface can depict this by a visual line connecting the document icon to the concept icon with an arrow pointing toward the concept icon. A collection of such arrows from a particular document is another way to visualize ERS.
[0257] Evidence of a relationship can be collected from a collection of documents. Documents that demonstrate a relationship between two concepts can provide further evidence of the type of relationship. For example, consider a journal article describing how vitamin C can help the human body fight the virus that causes the common cold (disease). Such a document provides evidence of a relationship between the concept "vitamin C" and the concept "common cold". Mentions of other concepts in the document provide context that characterizes the relationship.
[0258] As described above, coreference resolution or "coref" is the process of assigning meaning to mentions. To aid coreference resolution, the context of user actions can hint at relevance, such as the context in which a recommendation request is made. In another aspect, the order of user actions can hint at relevance, such as the order in which users add concepts to a knowledge graph or request confirmation of edges of a graph. In another aspect, the frequency of user actions can hint at relevance, such as how often users request confirmation of a particular edge of a graph or how often users request concepts related to a particular concept represented by a vertex in a graph.
[0259] The process of reading or understanding spoken language is the process of interpreting the intended meaning of the author or speaker. Human thought constantly infers or guesses what the author expects or means. If the reader or listener has never observed or imagined what the communicator is trying to quote, it is difficult for the reader or listener to understand. On the contrary, when the reader or listener has previously had an idea, the understanding action is greatly simplified by detecting this equivalence. In a similar way, instead of submitting a keyword search to a search engine, the technology described in this article requests explicit human input at some time to more accurately express the expected search query by identifying specific paragraphs written by some humans who are expected to quote the entity of interest of the search user. For example, instead of typing a keyword search for "john smith" and sorting out the search result hits by citing many different people with the name, the user of the search engine envisioned in this article can refine his / her query by identifying paragraphs that mention a specific John Smith. In doing so, the search user takes advantage of the rich context around those mentions, where the author who wrote the context is writing in the framework of thought that the author expects to quote that specific John Smith as a condition.
[0260] By way of further example of the described techniques and terminology used herein, consider the following text: "John Smith, CEO of Zeel Corporation since 1992, saw his compensation jump 21% to $1.2 million at age 47 and also succeeded Sandra Jones as chairman of the financial services company, who had served in the position for three years."
[0261] The paragraph includes mentions that reference specific entities: John Smith, Zeel Company, and Sandra Jones. These entities co-occur in this specific mention string. However, there are also some nominal mentions, such as "his" and "who", which human readers naturally parse as references to the same real-world entities as other mention strings in the paragraph. In this case, "his" refers to the same entity that "John Smith" refers to, and "who" refers to the same entity as "Sandra Jones". That is, "his" co-refers to "John Smith", and "who" co-refers to "Sandra Jones". Confusing these associations leads to co-reference errors, such as assuming that "who" refers to John Smith or "his" Sandra Jones. Other paragraphs in other documents may also refer to these entities, and human readers perform the co-reference process when determining whether another mention string "John Smith" in another document refers to the same entity as "John Smith" in this paragraph.
[0262] For example, two mentions with the same surface form name are candidates for possibly referring to the same concept. If the context surrounding the two mentions is similar, then it is more likely that humans will perceive the mentions as having the same meaning, i.e., as being co-referential. The algorithm can compare the data in the context surrounding the two mentions and estimate the likelihood that humans will perceive the mentions as being co-referential.
[0263] The paragraph also contains relationships between co-occurring entities. For example, John Smith, Zeel Corp, and Santra Jones are related through the content of this paragraph. Processing these mentions across documents can include extracting a string of mentions corresponding to each entity while keeping track of related co-occurring entities. The relationships between entities can be visualized using graphical links that interconnect the entities. When a document mentions a particular entity multiple times, it can be depicted by an edge with an arrow pointing to the document icon. This paragraph can then become a piece of evidence that confirms the relationship between two or more co-occurring entities, for example, an evidence paragraph.
[0264] Relationships and their evidence are important goals for users to search to learn more about the entities themselves individually, but also to understand the connections between them. As described above, the user can change the query in the search input form bar by selecting a specific connection, such as in a graphical display or via the selection of two entity labels. In this search input form bar, the "<>" symbol (or another symbol) can act as a search operator to explicitly indicate a query for documents that confirm the relationship between the two entities connected by the symbol. The keyword search input can first display the first search string and the search results listed in response to the first search string. The knowledge object summary card (or other characterization of the knowledge operation log) can display related entity recommendations, and in response to the user clicking on the related entity recommendation, the user interface can change the keyword input to display the query string representing the related entity and the search operator for finding evidence of the relationship between the related entities. In addition, the user interface can change the search result list to show documents that mention the related entity, and at least one of the listed results can show a highlighted mention of the related entity. For example, a user can search for "John Smith <> Zeel Company", which is a search for the relationship between the two entities. During this search process, additional user interface controls can be provided so that the user can control novelty and relevance, as well as positive and negative coreference, etc., to differentially trade off between seeing more evidence that confirms a relationship and evidence of new relationships that the user has not yet seen.
[0265] Figures 13 to 16 Various user interfaces for investigating relationships between entities are presented through the embodiments and further descriptions of the present teachings. Fig.13 In the user interface 1300 of , a keyword search 1302 is in the query input form bar. In response to the keyword search 1302 being entered, the search engine has displayed a search result hit list 1304. Typically, the results show a text snippet 1306. In the system taught herein, the results may also display one or more tags 1308, each tag depicting one or more mentions of an entity within the document. The tag 1308 may show an example surface form name string from the document. In an embodiment, coloring, bolding, or other visual emphasis may be placed on the tag 1308, where a co-reference algorithm predicts that the tag may refer to an entity that the user intended by the keyword search 1302. Since the keyword search 1302 is not yet grounded, the user interface 1300 enables the user to ground his / her query by selecting the tag 1308. Upon selecting the tag 1308, the system inserts a visual representation of the tag into the search box, such as Fig.14 Specifically, Fig.14 As shown in the user interface 1400, in response to the Fig.13The user action of selecting a specific tag in a specific document in the result list of the form bar 1402 displays the tag 1416 in the form bar 1402. This action identifies the specific mention as a reference to the user by Fig.13 The same entity as expected by the keyword search 1302. By upgrading the query to a basicized entity mention search query (shown in the form bar 1402), the interaction allows the system to disambiguate and appropriately suppress Fig.13 The bottom search result hit 1304 is unlikely to refer to the user's intended entity of interest, so Fig.13 The bottom search result hit 1304 has been suppressed and is Fig.14 It is not shown in the Fig.14 has an empty result 1414, where it would have been displayed Fig.13 The bottom search result hits 1304. Fig.13 The bottom search result hit 1304 mentions different entities with the same name, and the improved query with label 1416 enables the search engine ranking algorithm to eliminate the incorrect results, resulting in empty result 1414.
[0266] Return to Fig.13 1300, the system also presents the user with a plurality of related entities 1310, for example, in this particular embodiment, mentions of the entity Jack Wang 1312 from documents in the corpus 1314. The search engine algorithm recognizes that Jack Wang is mentioned in various documents related to the user's keyword search 1302 query, and uses a statistical ranking algorithm to rank the mentions of "Jack Wang" higher than the mentions of other entities, and therefore decides to list the entity in the search engine. Fig.13 It is displayed in the user interface 1300.
[0267] exist Fig.13 In user interface 1300 of , a user is viewing the results of an ERS query for tag 1416 for John Smith. The ERS includes the mention depicted by 1408 because the user previously clicked on that tag. The user can select one or more additional tags to add them to the ERS. For example, the user can click on Chairman Smith 1422 to add the additional mentions to the ERS in the query form bar. In an embodiment, the user interface allows the user to open a second window that lists the mentions in the ERS, and allows the user to remove mentions from the ERS or split them into separate ERS. In an embodiment, the user interface tracks the various entity reference sets (ERS) that the user has aggregated over the course of a period of time.
[0268] exist Fig.14In user interface 1400, the system is displaying results in response to an ERS based mention search query for John Smith's tag 1416. The user can click on a tag, such as QingChun Company 1418. The tag represents a specific set of mentions in the document represented by the result, so when the user selects the tag, the user is selecting a set of mentions in one or more documents 1420 that provides disambiguation context as to which QingChun Company the user intended. By clicking on the tag QingChun Company 1418, the user indicates to the system that the user wishes to see a paragraph of evidence that can confirm the relationship between the two entities identified by the mention depicted by tag 1416 and the tag QingChun Company 1418. Fig.15 Such a multi-entity query is depicted in the user interface 1500 of , where the relational operator 1524 (i.e., <>) is parsed by the query parser of the search engine as an instruction to find the following documents: the documents can confirm the relationship between the entity identified by the mention depicted by the ERS depicted by 1528 and the ERS depicted by 1526. The search engine user interface 1500 provides visual emphasis for the text substrings inferred by the algorithm that may be references to two entities of interest. For example, the results depicted by 1530 have references to Chairman Smith 1516 and QingChun Company 1518.
[0269] Fig.14 The user interface 1400 in also shows labels on particular results. Result 1404 mentions a person named John Smith, and the mention is depicted by 1408. The user interface 1400 also shows a collection of proposed entities 1410 that may have a relationship with the entity identified by the ERS in the search query input form field 1402. For example, visual icon 1412 depicts a collection of mentions of a person named Jack Wang, and the user can click on this visual icon 1412 to put it into the search box as a new query for evidence of a relationship between the entity identified by the mention of this visual icon 1412 and the entity identified by the mention of John Smith (label 1416).
[0270] Fig.16 The user interface 1600 of exemplifies a method for displaying a relationship connector symbol 1608 between two tag icons depicting mentions of entities from a document corpus. Fig.16, user interface 1600 is showing the results of a query in a search input tool 1602. The results identify documents containing mentions of various entities, and the result display may show tags depicting some of those mentions, such as, tag 1610 depicting a mention of Jack Wang. Such entities identified by tags may or may not be in the query of the search input tool 1602. In this embodiment, the document depicted in the first result 1609 may be one of the documents from the corpus, which is depicted by a visual icon 1604 displayed to the user as a relationship of possible interest. The visual icon 1604 depicting the ERS of Jack Wang is connected to the visual icon 1606 depicting the ERS of Sally Smith by a connector symbol 1608. These two visual icons 1604 and 1606 identify a collection of one or more mentions from the document corpus that the coreference algorithm has grouped together as possible mentions of the same entity. The system can propose a relationship between these two entities because the relationship recommender algorithm predicts that the user may be interested in reading documents that confirm such a relationship. When the user interacts with connector symbol 1608, for example by clicking on it, user interface 1600 may react by changing the query in search input tool 1602. This updated query is shown in second search input tool 1611, with icon 1614 depicting ERS for Jack Wang and visual icon 1616 depicting ERS for Sally Smith, and relationship search operator 1612 indicating to the search ranking algorithm that it should fetch documents that may demonstrate a relationship between the two entities.
[0271] Fig.16 The user interface 1600 shows the results in response to this updated query. Result 1618 shows visual emphasis on mentions 1620 of two entities from the query. Result 1622 also shows visual emphasis such as bolding on the mentions of the entities. Positive and negative co-reference input indicators 1624 can enable the user to agree or disagree with the co-reference algorithm prediction that a given mention co-references with other mentions in the ERS icon 1614 in the second search input tool 1611 query. In an embodiment, color coding or other indicators help the user effectively recognize which mention proposed by the system to which entity reference set the user is adding. For example, Sally mentions can be purple and Jack mentions are green.
[0272] Fig.16 The user interface 1600 in FIG. 1 may also show additional relationship proposals with a second connector symbol 1626. This encourages the user to iteratively explore the network of related entities.
[0273] In a preferred embodiment, the user interface allows the user to enter a batch assignment of positive or negative coreference tags in a small number of clicks (such as only one click). For example, consider that the user is researching a specific Jack Wang. When the user initiates a relationship query for an entity related to Jack Wang (such as Sally Smith), it may be the case that all results refer to Jack Wangs that are different from the user's exploration target. For example, when the user sees the proposed relationship between Jack Wang and Sally Smith and clicks on the connector symbol 1608, the user is exploring and may find that this relationship belongs to a different person with the same name ("Jack Wang") as their person of interest. In this case, the batch tagging capability enables the user to discard all results in a single quick action. Such a discard assigns a negative coreference tag between the ERS in the query and the individual Jack Wang mentions (such as the first ten) in the results displayed to the user. Such a discard action can also remove the mention of Sally Smith from the recommended relationship so that the user will not be disturbed by any further proposals for the relationship.
[0274] The above systems, devices, methods, processes, etc. can be implemented with hardware, software, or any combination thereof suitable for a specific application. Hardware can include general-purpose computers and / or special computing devices. This includes implementation in one or more microprocessors, microcontrollers, embedded microcontrollers, programmable digital signal processors, or other programmable devices or processing circuits and internal and / or external memory. This can also or alternatively include one or more application-specific integrated circuits, programmable gate arrays, programmable array logic components, or one or more other devices that can be configured to process electronic signals. It will be further understood that the implementation of the above process or device can include using a structured programming language (such as C), an object-oriented programming language (such as C++), or any other high-level or low-level programming language (including assembly language, hardware description language, and database programming language and technology) that can be stored, compiled, or interpreted to run on one of the above devices, as well as a heterogeneous combination of processors, processor architectures, or a combination of different hardware and software to create a computer executable code. On the other hand, the method can be embodied in a system that performs its steps, and can be distributed across devices in several ways. At the same time, processing can be distributed across devices (such as the various systems described above), or all functions can be integrated into dedicated stand-alone devices or other hardware. In another aspect, means for performing the steps associated with the above-described processes may include any of the hardware and / or software described above. All such permutations and combinations are intended to fall within the scope of the present disclosure.
[0275] Embodiments disclosed herein may include a computer program product including computer executable or computer usable code that performs any and / or all of its steps when executed on one or more computing devices. The code may be stored in a non-transitory manner in a computer memory, which may be a memory (such as a random access memory associated with a processor) or a storage device such as a disk drive, flash memory, or any other optical, electromagnetic, magnetic, infrared or other device or combination of devices from which the program is executed. In another aspect, any of the above systems and methods may be embodied in any suitable transmission or propagation medium that carries the computer executable code and / or any of its inputs or outputs.
[0276] The elements described and depicted herein (including flow charts and block diagrams throughout the accompanying drawings) imply logical boundaries between elements. However, according to software or hardware engineering practices, the described elements and their functions can be implemented on a machine by a computer executable medium, and the computer executable medium has a processor, and the processor can execute program instructions stored thereon as a monolithic software structure, as an independent software module, as a module using external routines, codes, services, etc., or any combination thereof, and all such implementations can be within the scope of the present disclosure. Embodiments of such machines may include, but are not limited to, personal digital assistants, laptop computers, personal computers, mobile phones, other handheld computing devices, medical equipment, wired or wireless communication equipment, transducers, chips, calculators, satellites, tablet PCs, e-books, widgets, electronic devices, devices with artificial intelligence, computing devices, network equipment, servers, routers, etc. In addition, the elements or any other logical components depicted in the flow charts and block diagrams can be implemented on a machine capable of executing program instructions. Therefore, although the aforementioned drawings and descriptions set forth the functional aspects of the disclosed system, the specific arrangement of the software used to implement these functional aspects should not be inferred from these descriptions, unless explicitly stated or otherwise clear from the context. Similarly, it is understood that the various steps identified and described above are all variable, and the order of these steps can be suitable for the specific application of the technology disclosed herein. All such changes and modifications are intended to fall within the scope of the present disclosure. In this way, the depiction and / or description of the order of the various steps should not be understood as requiring a specific execution order for these steps, unless the specific application requires or is clearly stated or otherwise clear from the context. In the absence of clear instructions to the contrary, the disclosed steps can be modified, supplemented, omitted and / or reordered without departing from the scope of the present disclosure.
[0277] The method steps of the implementations described herein are intended to include any appropriate methods of causing such method steps to be performed consistent with the patentability of the following claims, unless a different meaning is expressly provided or otherwise clear from the context. Thus, for example, the step of performing X includes any appropriate method for causing another party (such as a remote user, a remote processing resource (e.g., a server or cloud computer), or a machine to perform the step of X. Similarly, performing steps X, Y, and Z may include any method of directing or controlling any combination of such other individuals or resources to perform steps X, Y, and Z to obtain the benefits of such steps. Thus, the method steps of the implementations described herein are intended to include any appropriate methods of causing one or more other parties or entities to perform the steps consistent with the patentability of the following claims, unless a different meaning is expressly provided or otherwise clear from the context. Such parties or entities need not be under the direction or control of any other party or entity, and need not be located in a particular jurisdiction.
[0278] It will be understood that the above methods and systems are described by way of example and not limitation. Many variations, additions, omissions and other modifications will be apparent to those skilled in the art. In addition, the order or presentation of the method steps in the above description and accompanying drawings is not intended to require this order in which the described steps are performed, unless a specific order is explicitly required or otherwise clear from the context. Therefore, although specific embodiments have been shown and described, it will be apparent to those skilled in the art that various changes and modifications in form and detail may be made without departing from the spirit and scope of the present disclosure, and it is intended to constitute a part of the present invention as defined by the following claims as to be interpreted in the broadest sense permitted by law.
Claims
1. A computer program product for interacting with relationships between entities, the computer program product comprising computer executable code embodied in a non-transitory computer readable medium, which when executed on one or more computing devices, performs the following steps: Provides access to a collection of documents; identifying the first entity and the second entity by displaying spans of text in the document collection that reference each of the first entity and the second entity; processing the document collection to identify evidence paragraphs in one or more documents in the document collection that substantiate a connection between the first entity and the second entity, the evidence paragraphs comprising text from the one or more documents containing co-occurring mentions of the first entity and the second entity; displaying within a user interface a first icon for the first entity, a second icon for the second entity, and a connector symbol visually coupling the first icon to the second icon and representing the connection therebetween; and In response to user interaction with the connector symbol, access to the evidence paragraph is provided within the user interface.
2. The computer program product of claim 1, wherein providing access to the evidence paragraph comprises displaying at least a portion of the evidence paragraph.
3. The computer program product of claim 1, further comprising code for performing the following steps: highlighting the co-occurring mentions within the text. 4 . The computer program product of claim 1 , wherein the connector symbol comprises a line connecting the first icon to the second icon.
5. The computer program product of claim 1, wherein processing the collection of documents comprises processing the collection of documents in response to a user request.
6. The computer program product of claim 1 , further comprising code for performing the following steps: presenting a plurality of candidate connections to a user based on coreferences between a plurality of entities, and creating the connection in the user interface for display in response to selection of one of the plurality of connections by the user.
7. The computer program product of claim 1, further comprising code for receiving a selection of the first entity by a user, and automatically suggesting a connection with the second entity.
8. The computer program product of claim 1, further comprising code for receiving a selection of the first entity and the second entity by a user, and searching the document collection for responsive evidence passages to confirm the connection.
9. The computer program product of claim 1, further comprising code for performing the following steps: responding to a second user interaction with the connector by updating a search input form field of the user interface to include a search request for documents confirming a connection between the first entity and the second entity.
10. A method comprising: storing a relationship description representing evidence from within a document collection substantiating a connection between a first entity and a second entity, the relationship description comprising text from one or more documents in the document collection containing co-occurring mentions of the first entity and the second entity; displaying a first icon for the first entity and a second icon for the second entity in a user interface; displaying within the user interface a connector symbol connecting the first icon and the second icon, the connector symbol representing a connection between the first entity and the second entity, and the connector symbol comprising a user interface element that a user can activate to access the relationship description of evidence; as well as Responding to user interaction with the connector symbol by providing access to the evidence in the user interface.
11. The method of claim 10, wherein providing access to the evidence comprises displaying at least a portion of the relationship description. 12 . The method of claim 10 , further comprising highlighting the co-occurring mentions of the first entity and the second entity within the text.
13. The method of claim 10, wherein storing the relationship description further comprises creating the relationship description in response to a user request.
14. The method of claim 10, further comprising presenting a plurality of connections to a user based on co-occurrence of mentions of a plurality of entities, and creating the relationship description in response to selection of one of the plurality of connections by the user.
15. The method of claim 10, further comprising receiving a selection of the first entity by a user, and automatically suggesting a connection with the second entity.
16. The method of claim 10, further comprising receiving a selection of the first entity and the second entity by a user, and searching the document collection for one or more responsive evidence paragraphs to confirm the connection.
17. The method of claim 10, further comprising receiving a selection by a user of more than two entities, and searching within the document collection for confirmation of the connection.
18. The method of claim 10, further comprising responding to a second user interaction with the connector by updating a search input form field of the user interface to include a search request for documents evidencing a connection between the first entity and the second entity.
Citation Information
Patent Citations
Knowledge operating system
US20180349511A1
Entity-centric knowledge discovery
US9275132B2