Cognitive architecture with content provider managed corpus

A method for controlled sharing, in a cognitive computing system having a memory and a processor, of content from a variety of content providers may include receiving, by the cognitive computing system, an inquiry, wherein the inquiry is directed to at least one content topic. The method may then include identifying, by the cognitive computing system, the at least one content topic, and determining that a cognitive component of the cognitive computing system managed by a content provider has access to a content repository addressing the at least one content topic. The method may further include distributing, by the cognitive computing system, the inquiry to the cognitive component. The method may additionally include receiving a response from the cognitive component.

BACKGROUND

The present disclosure relates to distributed computing, and more specifically to an architecture for a cognitive computing system having a distributed corpus with cognitive components managed by content providers.

Cognitive computing systems may include Question and Answer Systems where a cognitive computer system is provided a question, and the system provides a response in the form of, for example, a hypothesis supported by evidence or a certain confidence score. Cognitive computing systems may improve the quality of the computer system's responses (e.g., the accuracy of their hypothesis and the level of confidence in the hypotheses) by ingesting content or data provided from disparate content providers.

SUMMARY

According to embodiments of the present disclosure, a method for controlled sharing, in a cognitive computing system having a memory and a processor, of content from a variety of content providers may include receiving, by the cognitive computing system, an inquiry, wherein the inquiry is directed to at least one content topic. The method may then include identifying, by the cognitive computing system, the at least one content topic, and determining that a cognitive component of the cognitive computing system managed by a content provider has access to a content repository addressing the at least one content topic. The method may further include distributing, by the cognitive computing system, the inquiry to the cognitive component. The method may additionally include receiving a response from the cognitive component.

Other embodiments are directed to a system and a computer program product.

DETAILED DESCRIPTION

Aspects of the present disclosure relate to distributed computing, more particular aspects relate to an architecture for a cognitive computing system having a distributed corpus with cognitive components managed by content providers. While the present disclosure is not necessarily limited to such applications, various aspects of the disclosure may be appreciated through a discussion of various examples using this context.

Cognitive computing systems refer to a category of technologies that use natural language processing and machine learning to enable people and machines to interact more naturally. A Cognitive computing system (CCS) may use arrays of machine learning tools, including, for example, pattern recognition, hypothesis generation, evidence gathering and scoring, to draw on an available corpus of knowledge to discover new insights and answers addressing inquiries presented to the CCS. The corpus of a CCS may be an internal representation (internal to the CSS) of the body of knowledge available to a CCS. A corpus may include content (e.g., data, research, academic studies, and reports) covering topic areas that the CCS is designed to address. The content may be supplied by disparate entities (e.g., content providers) that may produce and maintain content repositories, and who may have an interest in the CCS. Content that is ingested into the corpus of the CCS may be used by the CCS to provide responses to inquiries directed at topics covered by the content. Embodiments of the present disclosure are based on the recognition that content providers may want to control access to, and the distribution of, their content in a cognitive computing system.

Embodiments of the present disclosure are directed towards an architecture (e.g., systems, methods, and computer program products) for operating a distributed cognitive computing system where the corpus, including cognitive components, are managed by content providers. The architecture may include receiving a natural language inquiry directed to one or more content topics. A natural language inquiry (e.g. a question) may be expressed using natural speech (e.g., speech that two human beings might use when interacting with each other). A content topic may be any subject matter which a corpus of a distributed CCS has content to address or support. The architecture may then include classifying the inquiry into one or more content topics. The architecture may also include identifying cognitive workers, associated with disparate content provider's content, that are enabled to address inquiries directed to at least one of the content topics. The architecture may further include distributing the inquiry to the identified cognitive workers for processing, and aggregating the responses returned from cognitive workers.

Cognitive computing systems may include both natural language processing (NLP) and machine learning cognitive components. The natural language processing components may receive an inquiry from, for example, a user, and process the received inquiries into internal representations that may be receivable by the cognitive components. The cognitive components may interface with a corpus of a CCS to generate hypotheses, collect evidence in support of the hypotheses, and then score (e.g., rank) the hypotheses and evidence according to the level of confidence the CCS has in each hypothesis. A hypothesis generated by the cognitive components may be a guess at the answer to an inquiry. Evidence in support of a hypothesis may include facts, data patterns, or other data available in the corpus. Scoring may include the process of ranking hypotheses and evidence according to their weight. The weight can depend on the amount of support available for each content topic.

As used herein, a node may be a single computer, or a cluster of networked computers configured to perform one or more tasks.

Embodiments of the present disclosure are directed towards architecture for a distributed CSS that can be partitioned into a cognitive controller and a plurality of distributed modules. The cognitive controller may include the NLP components of the distributed CSS as well as components for classifying and distributing inquiries to cognitive workers. The cognitive controller may further include components for receiving and merging responses from cognitive workers. Each of the distributed modules may be a “cognitive worker” (e.g., a one or more computing nodes with associated software applications for performing a unit of work on behalf of the distributed CSS). The unit of work may include generating answers to inquiries received by the distributed CSS. A cognitive worker may be managed by a content provider, and may include the cognitive components of the distributed CSS. A cognitive worker may provide the distributed CSS an interface to a corpus generated from the content hosted by a managing content provider. The content providers may regulate access to the cognitive workers, and hence, access to the corpus (or a portion of the virtual corpus) derived from content owned by a content provider.

Collectively, a set of distributed cognitive workers may form a virtual (or distributed) corpus managed by a cognitive controller. The cognitive controller may provide a single interface to receive, classify, and distribute inquiries to the cognitive workers of the virtual corpus. Additionally, the cognitive controller may aggregate responses from the virtual corpus and provide a single interface for returning results to inquiries. The cognitive workers of the virtual corpus may perform the tasks of hypotheses generation, evidence gathering, and scoring.

Referring now to the figures,FIG. 1depicts a flowchart100of a set of operations for operating a distributed cognitive computing system, according to various embodiments. The operations depicted in the flowchart100may be executed by a distributed CCS as embodied, for example, in one or more scripts or applications executing on a cognitive controller, as described herein.

A cognitive controller may begin the operation of the distributed CCS at operation105by associating with one or more cognitive workers. According to various embodiments, a cognitive worker may exist in one of four association states with respect to the cognitive controller: unassociated, register, associated, and deregister. A cognitive worker that is introduced to a distributed CCS may start in the unassociated state. In some embodiments, a cognitive controller may be aware of the existence of an unassociated cognitive worker, but the cognitive controller may not be able to communicate with, and thus may not be able to distribute inquiries to, the unassociated cognitive worker. Consequently an unassociated cognitive worker may not constitute a component of the virtual corpus of a distributed CSS.

An unassociated worker may transition from the unassociated state to the register state. In some embodiments, the transition to the register state may be initiated by a cognitive controller in an attempt to, for example, establish communications with a cognitive worker. A cognitive controller may initiate the transition to the register state in response to determining that a cognitive worker has access to a content repository addressing at least one content topic of an inquiry being processed by the distributed CCS. A cognitive controller may determine that a cognitive worker has access to a content repository addressing a given content topic by accessing a database of available content topics associated with a cognitive worker. A cognitive controller may also initiate the transition to the register state in response to determining that a cognitive worker has a history of providing responses to inquiries addressing certain content topics with a given or desired level confidence.

In certain embodiments, the transition to the register state may be initiated by a content provider, for example, granting the distributed CCS access to the corpus of a cognitive worker. A cognitive worker in the registration state may indicate that a cognitive controller is in the process of executing a handshake with the cognitive worker. The handshaking process may include verification of communication, including, for example, establishing a set of protocols that may be used for communication. The handshaking process may additionally include a cognitive controller receiving from a cognitive worker a set of content topics on which the cognitive worker is able to process inquiries. A cognitive controller may construct a database of content topics, including the content topics received for each cognitive worker. A cognitive controller may use the set of topics during inquiry classification (e.g., content topic identification), described infra.

At the completion of the handshaking process, a cognitive worker may transition to the associated state. An associated cognitive worker may be considered part of a virtual corpus of a CCS. The CCS may not directly access the corpus of an associated worker, but the cognitive controller may consider an associated cognitive worker and corresponding content topics when executing succeeding operations of the flowchart100.

An associated cognitive worker may transition from the associated state to the deregister state by action of the cognitive controller or the content provider. The cognitive controller may initiate the transition of a cognitive worker to the deregister state when, for example, when there is a communication failure between the controller and the cognitive worker. The cognitive controller may also initiate a transition to the deregister state when the cognitive controller is directed to initiate the transition by a user or an occurrence of a programmed event (e.g., when a ranking of a cognitive controller falls below a threshold). In some embodiments, a content provider may initiate a transition to the deregister state to, for example, revoke access to the corpus of a cognitive worker. During the deregistration state, a cognitive controller may purge the set of content topics associated with a cognitive worker (or the associations between a cognitive worker and a set of content topics) from the distributed CCS. A cognitive worker may automatically transition from the deregister state to the unassociated state.

The cognitive controller may execute operation110by receiving an inquiry for processing. The inquiry may be received from a user interface, a communication network, or a computer readable media. Additionally, the inquiry may be received in the form of a natural language question. An example inquiry may be, “what type of vehicle is best to take camping in the mountains?”

A cognitive controller may then execute operation115by identifying content topics addressed by an inquiry. Identifying content topics addressed by an inquiry may include analyzing the natural language inquiry in order to understand what is being asked. The process may include recognizing the syntactic and semantic schemes around which the natural language inquiry is organized, and then disassembling and parsing the inquiry into a representation that the CCS can understand. The cognitive controller may then use available tools, such as semantic analysis and logical inference tools, to discern the meaning of the inquiry and the content topics to which the inquiry is addressed. The process may include comparing hundreds of thousands of sematic relations and generating and weighing millions of logical inferences.

Executing operation115may further include classifying the inquiry, or components of the inquiry, according to a set of content topics stored in a database of content topics received for cognitive workers. Classifying the inquiry may include segmenting or parsing the inquiry for its constituent components (e.g., sub-inquiries), and analyzing the constituent components to determine how closely each component relates to a stored content topic. In some embodiments, the constituent components may be assigned a score indicating the closeness of the relationship to a stored content topic. Referring to the example inquiry previously presented, relevant content topics stored in a database of content topics of a cognitive controller may include military vehicles, recreational vehicles, aviation, troop transportation, or recreational excursions. A cognitive controller receiving the example inquiry may automatically assign the inquiry a score associated with each content topic based on how closely the subject matter of the inquiry relates to a content topic. Scores associated with recreational vehicles and recreational excursions may be higher than scores associated with military vehicles, troop transportation, and aviation.

A cognitive controller may continue flowchart100by executing operation120. Executing operation120may include determining, by a cognitive controller, at least one cognitive worker that is enabled to address the received inquiry. A cognitive worker that is enabled to address the received inquiry may be an associated cognitive worker that may provide an answer with the highest confidence score. A cognitive controller may maintain, in addition to a database of content topics, a database including a number of metrics that may be used to prioritize cognitive workers. The database may include, for example, user feedback, a history of confidence ratings of the cognitive worker's response to inquiries on a topic, and a table of content topic restrictions imposed by content providers. Cognitive workers that have a history of providing the best answers (e.g., as determined by confidence in the answer, and user feedback), or that have fewer content provider restrictions on a particular topic may be prioritized higher than other workers.

A cognitive controller may first identify a set of candidate cognitive workers. The set of candidate cognitive workers may include those cognitive workers having registered content topics that correspond with topics addressed by the inquiry. The cognitive controller may then select a candidate based on a priority determined by, for example, how closely related the inquiry is a topic associated with a candidate cognitive worker, and a candidate cognitive worker's history of addressing inquiries on a given topic (e.g., a history of providing responses to inquiries with a threshold confidence score).

A cognitive controller may further continue the operation of the flowchart100by executing operation125. Executing operation125may include distributing an inquiry to cognitive workers. A cognitive controller may dispatch the inquiry to one or more of the candidate cognitive workers selected in operation120. In some embodiments, a representation of the inquiry generated in operation115may be distributed to one or more selected candidate cognitive workers over, for example, a data communications network. A selected candidate cognitive worker may receive and process the inquiry before providing a response to the cognitive controller. Processing the inquiry may include analyzing the language of the inquiry to understand what question is being asked. The processing may further include inferring or deriving an answer (e.g., generating one or more hypothesis) to the inquiry by applying the results of the analysis to the corpus of the cognitive worker via an array of reasoning and evidence gathering algorithms. The cognitive worker may associate a confidence score with each inferred answer. The confidence score may indicate a level support (or magnitude of evidence) available in a corpus of the cognitive worker for the inferred answer. The selected candidate cognitive worker may then forward each inferred answer and confidence score to a cognitive controller.

In some embodiments, a selected candidate cognitive worker may reject the inquiry (e.g., abandon the processing of the inquiry) if the cognitive worker determines, from the processing, that resolving the inquiry may require access to the corpus in a way that violates one or more content access criteria provided by a content provider. A content access criteria may be a contract, such as a licensing agreement, between an administrator or client of a distributed CCS and one or more content providers. The licensing agreement may enable content providers to charge different fees for different access to their content. A licensing agreement may, for example, enable a content provider to charge a first fee for access to a first content repository and change a second fee for access to a second content repository. A content access criteria based on such a licensing agreement may enable a cognitive worker to process inquiries that require access to the first content repository when the first fee is paid, while rejecting inquires that require access to the second content repository when the second fee is not paid.

In some embodiments, a cognitive controller may determine a priority for associating with, or distributing inquires to, a cognitive worker according a content access criteria implementing a licensing agreement. A cognitive controller, for example, may distribute inquiries to a first set of cognitive workers having access to content repositories with the lowest access fee rates. The cognitive controller may then, in response to determining that responses provided by first set of cognitive workers have confidence scores below a threshold value, distribute inquiries to a second set of cognitive workers having access to content repositories at higher access fee rates.

Operation130may include receiving one or more responses for the cognitive workers. In some embodiments, operation130may further include aggregating and merging the received responses. Aggregating the received responses may include automatically organizing the responses in a table that is in a memory of the cognitive controller. The responses may be organized according to a confidence score associated with the responses. In some embodiments, a cognitive controller may merge responses from multiple controllers into a one or more coherent answers to the inquiry.

The flowchart100may end at operation135. A cognitive controller may execute operation135by providing an answer to an inquiry along with a confidence score via, for example, a graphical user interface.

FIG. 2depicts a block diagram of the components of a cognitive controller205and a cognitive worker230, according to various embodiments. The cognitive controller205and the cognitive worker230may include one or more computing devices, such as the computing device400shown inFIG. 4. The cognitive controller205may further include question analysis component210, question classification component215, work distribution component220, and aggregation component225. The cognitive worker230may include hypothesis generation component235, scoring component240, merging component245, and corpus component250.

The cognitive controller205may include one or more management scripts or applications that orchestrate the interactions of the constituent components of the cognitive controller with each other and with the cognitive workers230. Each component of the cognitive controller205may be a process executing on one or more computing devices. The processes may include one or more algorithms and applications for executing a function of the component.

The question analysis component210may receive an inquiry directed to one or more content topics. The question analysis component210may analyze the received inquiry to understand what question is being asked, as described, for example, in the discussion of operations110and115ofFIG. 1. The question analysis component210may then provide an internal representation of the inquiry to the question classification component215.

The question classification component215may receive an internal representation of an inquiry from the question analysis component210via, for example, inter-process communication or a data communication network. The question classification component215may analyze the internal representation of the inquiry using, for example, question analysis algorithms and products, to identify content topics to which the inquiry is directed. The question classification component215may then classify the inquiry according the identified content topics. In some embodiment, the question classification component215may provide a confidence score that can indicate a degree to which the inquiry matches a given content topic (e.g., an indication of how much support the cognitive controller has for inferring that the inquiry is directed to a given topic). The question classification component215may then provide the classified inquiry, content topics, and confidence scores to the work distribution component220.

The work distribution component220may receive a classified inquiry, content topics, and associated confidence scores from the question classification component215for distribution to one or more cognitive workers. The work distribution component220may cross-reference the received content topics with a database of content topics supported by associated cognitive workers to determine a set of candidate cognitive workers that may address the inquiry. One or more cognitive workers may then be selected from the set of candidate cognitive workers based on, inter alia, a priority assigned to each cognitive worker, as described herein. The work distribution component may then distribute the inquiry, including content topics, to one or more cognitive workers230. The inquiry and content topics may be distributed to the cognitive workers230in, for example, a data structure or file over a data communication network.

The aggregation component225may receive responses to an inquiry from one or more cognitive workers230. The responses may include a confidence score, as described herein. The aggregation component225may then aggregate (e.g., including sorting and merging) the received responses, as described in the discussion operation130ofFIG. 1. The aggregation component225may then provide an answer to the inquiry based on the received responses, as described in the discussion of operation130ofFIG. 1.

The cognitive worker230may include one or more management scripts or applications that may orchestrate the interactions of the constituent components of the cognitive worker with each other and with the cognitive controller205. Each component of the cognitive worker may be a process executing on one or more computing devices. The processes may include one or more algorithms and applications for executing a function of the components of the cognitive worker230.

The hypothesis generation component235may receive an internal representation of an inquiry from a cognitive controller205(e.g., from the work distribution component220of the cognitive controller). The hypothesis generation component235may analyze the received inquiry and generate one or more hypotheses (e.g., inferred or derived potential answers), as described during the discussion of operation125ofFIG. 1. The hypothesis generation component235may then provide the one or more hypotheses to scoring component240.

The scoring component240may receive one or more hypothesis from the hypothesis generation component235. The scoring component240may then access the corpus250to gather evidence supporting each hypothesis. The evidence may then be used to provide an initial confidence score for the each hypotheses. The scoring component240may then provide the hypotheses and initial confidence scores to the merging component245.

The merging component245may receive hypotheses and associated confidence scores from scoring component240for aggregation and merging. The aggregation and the merging may include generating a table or list of hypotheses ordered according to confidence scores. The aggregating and the merging may further include combining responses and generating final confidence scores for each hypotheses. The merging component245may then provide the hypotheses and final confidence scores to cognitive controller205.

The corpus component250may represent the available set of knowledge accessible to cognitive worker230. The corpus component250may include databases, algorithms, network graphs, and other data and machine learning components derived from content supplied by a content provider. The corpus component250may be accessed and made available to a distributed CCS though the hypothesis generation component235and the scoring component240.

FIG. 3depicts a block diagram of a distributed cognitive computing system300having a distributed virtual corpus with cognitive components managed by content providers, according to various embodiments. The cognitive computing system300may include cognitive controller305, data communication network310, and a set of content providers315A through315N. The cognitive controller305may receive natural language inquiries, distribute classified inquiries to cognitive workers, aggregate responses from the cognitive workers, and provide scored answers to the received inquiries, as described herein. The data communication network310may be a high speed and high bandwidth packet switched telecommunications network configured to facilitate the exchange to data (e.g., inquiries and responses to inquiries) between cognitive controller305and the content providers315A to315N.

The content providers315A through315N may be entities that produce and/or manage content repositories. A content provider, for example, may be a local government, while the managed content repository may be a database of information about the local population, including names, social security numbers, addresses and criminal records. The content providers315A to315N may include virtual corpus components316A and316N. Virtual corpus components316A and316N may further include cognitive workers320A through320N, and content repository325A through325N. The content providers315A through315N may manage one or more components of the virtual corpus316A and316N of the distributed CCS300. The content providers315A through315N may, for example, create a content access criteria for determining whether cognitive workers320A through320N may associate with, or disassociate (e.g., deregister) from, cognitive controller305, thus dictating whether the distributed CCS300may have access to virtual corpus components316A through316N.

In some embodiments, the content access criteria may restrict the type of inquiries a cognitive worker associated with a cognitive controller can process. The content access criteria may restrict access to virtual corpus components316A and316N to limit the use of content repositories325A through325N (or the corpus derived from the repositories) in formulating solutions to inquiries received by distributed CCS300.

Referring back to the local government example, a content access criteria governing access to the local population content repository via a cognitive worker may dictate that a cognitive worker may associate with a cognitive controller only when the distributed CCS is processing inquiries received from a government entity. In another embodiment, a content access criteria may dictate that a cognitive worker may only process inquiries that do not require access to the names and address of individuals in the local population.

FIG. 4is a block diagram illustrating an embodiment of a computing device400that includes a memory and processor for implementing and executing the architecture for cognitive computing system having a distributed virtual corpus, according to various embodiments. The components of the computing device400can include one or more processors406, a memory412, a terminal interface418, a storage interface420, an Input/Output (“I/O”) device interface422, and a network interface424, all of which are communicatively coupled, directly or indirectly, for inter-component communication via a memory bus410, an I/O bus416, bus interface unit (“IF”)408, and an I/O bus interface unit414.

The computing device400may include one or more general-purpose programmable central processing units (CPUs)406A and406B, herein generically referred to as the processor406. In certain embodiments, a processor may be any electronic device having a datapath for executing a sequence of programmed instructions and capable of performing arithmetic logic computations (e.g., using an arithmetic logic unit), include application specific integrated circuits, and field programmable gate arrays. In an embodiment, the computing device400may contain multiple processors; however, in another embodiment, the computing device400may alternatively be a single CPU device. Each processor406executes instructions stored in the memory412.

The computing device400may include a bus interface unit408to handle communications among the processor406, the memory412, the display system404, and the I/O bus interface unit414. The I/O bus interface unit414may be coupled with the I/O bus416for transferring data to and from the various I/O units. The I/O bus interface unit414may communicate with multiple I/O interface units418,420,422, and424, which are also known as I/O processors (IOPs) or I/O adapters (IOAs), through the I/O bus416. The display system404may include a display controller, a display memory, or both. The display controller may provide video, audio, or both types of data to a display device402. The display memory may be a dedicated memory for buffering video data. The display system404may be coupled with a display device402, such as a standalone display screen, computer monitor, television, a tablet or handheld device display, or another other displayable device. In an embodiment, the display device102may include one or more speakers for rendering audio. Alternatively, one or more speakers for rendering audio may be coupled with an I/O interface unit. In alternate embodiments, one or more functions provided by the display system404may be on board an integrated circuit that also includes the processor406. In addition, one or more of the functions provided by the bus interface unit408may be on board an integrated circuit that also includes the processor406.

The I/O interface units support communication with a variety of storage and I/O devices. For example, the terminal interface unit418supports the attachment of one or more user I/O devices, which may include user output devices (such as a video display devices, speaker, and/or television set) and user input devices (such as a keyboard, mouse, keypad, touchpad, trackball, buttons, light pen, or other pointing devices). A user may manipulate the user input devices using a user interface, in order to provide input data and commands to the user I/O device426and the computing device400, may receive output data via the user output devices. For example, a user interface may be presented via the user I/O device426, such as displayed on a display device, played via a speaker, or printed via a printer.

The storage interface420supports the attachment of one or more disk drives or direct access storage devices428(which are typically rotating magnetic disk drive storage devices, although they could alternatively be other storage devices, including arrays of disk drives configured to appear as a single large storage device to a host computer, or solid-state drives, such as a flash memory). In another embodiment, the storage device428may be implemented via any type of secondary storage device. The contents of the memory412, or any portion thereof, may be stored to and retrieved from the storage device428as needed. The I/O device interface422provides an interface to any of various other I/O devices or devices of other types, such as printers or fax machines. The network interface424provides one or more communication paths from the computing device400to other digital devices and computer systems.

Although the computing device400shown inFIG. 4illustrates a particular bus structure providing a direct communication path among the processors406, the memory412, the bus interface408, the display system404, and the I/O bus interface unit414, in alternative embodiments the computing device400may include different buses or communication paths, which may be arranged in any of various forms, such as point-to-point links in hierarchical, star or web configurations, multiple hierarchical buses, parallel and redundant paths, or any other appropriate type of configuration. Furthermore, while the I/O bus interface unit414and the I/O bus408are shown as single respective units, the computing device400, may include multiple I/O bus interface units414and/or multiple I/O buses416. While multiple I/O interface units are shown, which separate the I/O bus416from various communication paths running to the various I/O devices, in other embodiments, some or all of the I/O devices are connected directly to one or more system I/O buses.

In an embodiment, the memory412may include a random-access semiconductor memory, storage device, or storage medium (either volatile or non-volatile) for storing or encoding data and programs. In another embodiment, the memory412represents the entire virtual memory of the computing device400, and may also include the virtual memory of other computer systems coupled to the computing device400or connected via a network430. The memory412may be a single monolithic entity, but in other embodiments the memory412may include a hierarchy of caches and other memory devices. For example, memory may exist in multiple levels of caches, and these caches may be further divided by function, so that one cache holds instructions while another holds non-instruction data, which is used by the processor. Memory412may be further distributed and associated with different CPUs or sets of CPUs, as is known in any various so-called non-uniform memory access (NUMA) computer architectures.

The memory412may store all or a portion of the components and data shown inFIGS. 1-3. In particular, the memory412may store cognitive applications412A, and content management applications412B along with other modules, scripts and library components used to implement the methods of the present disclosure. The cognitive applications412A may be a cognitive controller or a cognitive worker application that may be configured to execute the operations of the cognitive controllers and the cognitive workers that are described herein. The content management applications412B may include content provider scripts and applications for facilitating access to content repositories and the virtual corpus components of a distributed CSS, as described herein. The memory412may also include a graphical user interface (GUI)412C for interfacing with the cognitive applications412A and the content management applications412B. These programs and data structures are illustrated inFIGS. 1-3as being included within the memory412in the computing device400; however, in other embodiments, some or all of them may be on different computer systems and may be accessed remotely, e.g., via a network430. The computing device400may use virtual addressing mechanisms that allow the programs of the computing device400to behave as if they only have access to a large, single storage entity instead of access to multiple, smaller storage entities. Thus, while the components and data shown inFIGS. 1-3are illustrated as being included within the memory412, these components and data are not necessarily all completely contained in the same storage device at the same time. Although the components and data shown inFIGS. 1-3are illustrated as being separate entities, in other embodiments some of them, portions of some of them, or all of them may be packaged together.

In an embodiment, the components and data shown inFIGS. 1-3may include instructions or statements that execute on the processor406or instructions or statements that are interpreted by instructions or statements that execute the processor406to carry out the functions as further described below. In another embodiment, the components shown inFIGS. 1-3may be implemented in hardware via semiconductor devices, chips, logical gates, circuits, circuit cards, and/or other physical hardware devices in lieu of, or in addition to, a processor-based system. In an embodiment, the components shown inFIGS. 1-3may include data in addition to instructions or statements.

FIG. 4is intended to depict representative components of the computing device400. Individual components, however, may have greater complexity than represented inFIG. 4. InFIG. 4, components other than or in addition to those shown may be present, and the number, type, and configuration of such components may vary. Several particular examples of additional complexity or additional variations are disclosed herein; these are by way of example only and are not necessarily the only such variations. The various program components illustrated inFIG. 4may be implemented, in various embodiments, in a number of different ways, including using various computer applications, routines, components, programs, objects, modules, data structures etc., which may be referred to herein as “software,” “computer programs,” or simply “programs.”