The present disclosure relates to topic or problem exploration, and more specifically, to methods, systems, and computer program products for exploring a topic or problem through controlled navigation of a knowledge graph.
One of the challenges of exploring an unfamiliar topic is knowing where to start, finding out the relevant sub-topics of the unfamiliar topic, and progressing with the discussion methodically with an objective in mind.
Such an exploration, for the purposes of learning or solving a problem, either individually or as a group, can benefit from the presence of a mentor or expert in the domain. In addition to helping participants understand various subtopics of the major topic, such guidance also includes the introduction of relevant subtopics and facts at appropriate times in order to pace the discussion in a meaningful order within a time-frame set by the individual or group.
In the absence of such an expert, the individual or group may find it hard to progress through the sub-topics, which can lead to them spending more time than necessary on areas that are less significant to the overall objective of the session. This can result in the overall problem not being adequately or methodically explored within the given time.
Embodiments include a computer system for exploring a topic or problem through controlled navigation of a knowledge graph, the computer system including a processor, the processor configured to perform a method. The method includes obtaining a knowledge graph based upon a topic, wherein the knowledge graph comprises a plurality of topic nodes, wherein each of the plurality of topic nodes comprises a weight; receiving a total time period for review of the topic; generating a candidate path through the knowledge graph, wherein the candidate path comprises at least a current topic node and a next topic node selected from the plurality of topic nodes; generating a time period for each of the plurality of topic nodes along the candidate path based upon the weight of the topic node and the total time period; and presenting the next topic node along the candidate path after an expiration of the time period associated with the current topic node.
Embodiments also include a computer program product exploring a topic or problem through controlled navigation of a knowledge graph, the computer program product including a non-transitory computer readable storage medium having computer readable program code embodied therewith. The computer readable program code including computer readable program code configured to perform a method. The method includes obtaining a knowledge graph based upon a topic, wherein the knowledge graph comprises a plurality of topic nodes, wherein each of the plurality of topic nodes comprises a weight; receiving a total time period for review of the topic; generating a candidate path through the knowledge graph, wherein the candidate path comprises at least a current topic node and a next topic node selected from the plurality of topic nodes; generating a time period for each of the plurality of topic nodes along the candidate path based upon the weight of the topic node and the total time period; and presenting the next topic node along the candidate path after an expiration of the time period associated with the current topic node.
Additional features and advantages are realized through the techniques of the present invention. Other embodiments and aspects of the invention are described in detail herein and are considered a part of the claimed invention. For a better understanding of the invention with the advantages and the features, refer to the description and to the drawings.
The subject matter which is regarded as the invention is particularly pointed out and distinctly claimed in the claims at the conclusion of the specification. The foregoing and other features and advantages of the invention are apparent from the following detailed description taken in conjunction with the accompanying drawings in which:
In accordance with exemplary embodiments of the disclosure, methods, systems and computer program products exploring a topic or problem through controlled navigation of a knowledge graph are provided.
Referring to
In exemplary embodiments, the processing system 100 includes a graphics processing unit 130. Graphics processing unit 130 is a specialized electronic circuit designed to manipulate and alter memory to accelerate the creation of images in a frame buffer intended for output to a display. In general, graphics processing unit 130 is very efficient at manipulating computer graphics and image processing and has a highly parallel structure that makes it more effective than general-purpose CPUs for algorithms where processing of large blocks of data is done in parallel.
Thus, as configured in
The system 200 also includes a candidate paths generator 210 which searches the weighted knowledge graph from a topic or problem node to a suitable goal node generating one or more candidate paths along the knowledge graph. The candidate path generator 210 utilizes graph search techniques according to acceptable best practices for searching knowledge graphs according to an exemplary embodiment. In exemplary embodiments, for each of the nodes on each of the candidate paths generated by the candidate path generator 210, the system 200 generates a time frame, wherein the time frame represents the overall time allocated for a session for a given candidate path. The time frame could be based upon the weight of a node in the candidate path along the knowledge graph relative to all the weights of the nodes within the candidate path. For example, if a node has a small weight for topic exploration, the time frame will be smaller than a node that has a greater weight for topic exploration. The system 200 includes a topic generator 214 which generates a sequence of topics based upon one of the candidate paths, according to an exemplary embodiment. The system 200 also includes an exploration context evaluator 212 which tracks the current location of an individual or group along the candidate path. The candidate path generator 210, the topic generator 214, and the exploration context evaluator 212 can be implemented on the processing system 100 as shown in
In exemplary embodiments, a user of the user device 202 containing a user interface 218 which a user inputs a topic or problem and goal into the system 200. The user device 202 may be a touch screen device such as a smart phone or tablet. The topic or problem and goal may be received by the exploration controller 206 which uses the input information to formulate a search. The knowledge graph generator 208 generates a new knowledge graph or pulls from an existing knowledge graph and present this knowledge graph to the exploration controller 206. The candidate paths generator 210 generates one or more candidate paths to reach a suitable goal. In exemplary embodiments, a suitable goal may be a complete exploration and discussion of the topic and any subtopics related to the topic. The topic generator 214 receives the one or more candidate path and generates a sequence of topics based upon this candidate path or paths. The candidate path includes topic or problem nodes wherein each node in the candidate path may represent a possible sub-topic.
In exemplary embodiments, the sub-topics can be assigned a time period for exploration by the candidate paths generator 210. The topic generator may be configured to introduce new sub-topics from the sequence of topics within the candidate path or paths when the time-frame for the sub-topic has elapsed. The user of the user device 202 may be presented with the option of requesting the next sub-topic in the sequence if the user is familiar with the current sub-topic. The user may also request, via the user device 202, the topic generator 214 to show alternative sub-topics which may generate from a parent topic node to continue further exploration. The candidate paths generator 210 is configured to calculate new paths and time periods from the current topic or sub-topic node as exploration advances. The exploration context evaluator 212 may track the location of the user within a candidate path. Should the user's location along the candidate path deviate by a configurable distance d from any one of the candidate paths, the topic generator 214 is notified by the exploration context evaluator 212 to either re-introduce the current sub-topic or introduce the next sub-topic in the sequence based on the time-frame allocated to the current sub-topic.
Referring now to
Next, as shown in block 306, the method 300 generates a candidate path through the obtained knowledge graph. The method 300 also includes generating a time period of the plurality of topic nodes along the candidate path, as shown at block 308. In exemplary embodiments, the time periods for the topic nodes are based on the weight of the topic node as well as the total time period for review of the topic of discussion. Next, as shown in block 310, the method 300 presents, via the user interface of the user device, the next topic node along the candidate path after the expiration of the time period of the current node.
Referring now to
The method 400 also includes presenting a topic node to the user, as shown at block 412. In exemplary embodiments, the topic node presented is the next topic node within the candidate path of the knowledge graph. Additionally, at block 416, the method 400 tracks the current position of the user relative to the candidate path. And at block 418, the method 400 presents the next topic node within the candidate path if the user has deviated from the candidate path by a threshold amount. A threshold amount may be a distance from the topic node. The threshold amount may be determined by a user input showing a user selection of a topic node outside the candidate path. For example, a user may choose a topic node that is tertiary to a topic node within the candidate path for exploration or discussion. If this tertiary topic node strays further than the threshold distance from the topic node, the method 400 will present the next topic node to the user to ensure the user remains on the candidate path. Additionally, at block 414, the method 400 monitors the time frame allocated for the topic node, until not more topic nodes exist in the candidate path. If the topic node time frame expires, the user is presented with the next topic node as shown at block 412. Next, at block 420, after completion of the candidate path, the user is presented with the candidate path taken along with tangential topics for further consideration.
In exemplary embodiments, as a user traverses a candidate path of a knowledge graph and the user's progression is tracked. If the user remains on a topic node beyond the allocated time period, the user is notified that the time period has expired and the user is presented with one or more topic nodes to progress the user through the candidate path. The user may be notified of a time remaining for a given topic node based upon an elapsed time relative to a start time of discussion of a selected topic node. The time remaining may be any of a five, ten, or one minute remaining warning or the like. In an embodiment, the tracking of the user's progress through the knowledge graph can be based on a user input. For example, if a user finishes discussion of a topic node before the allocated time period, the user may input that the user has completed the discussion on this topic node via an input on the user device. Additionally, the remaining total time is recalculated and the remaining topic nodes are reallocated additional time for time periods. The same is true should go over the allotted time period for a topic node.
In exemplary embodiments, after the knowledge graph for a topic for discussion is obtained, the user may customize the knowledge graph by adding or removing topic nodes and adjusting the weights of the topic nodes.
The present invention may be a system, a method, and/or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention.
The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.
Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.
Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting-data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.
Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.
These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.
The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.