FOCI ANALYSIS TOOL

A method, a system, and a computer-readable medium are provided. Each knowledge fragment in a current window of consecutive sentences of a document are scanned to find a first relatum, a second relatum appearing after the first relatum, and a relation between the first relatum and the second relatum. The computing device keeps track of the first relata found in the current window and corresponding frequencies of occurrence. The current window is slid by a number of consecutive sentences less than a number of sentences in the current window. The keeping track and the sliding are repeated until all knowledge fragments in the document are scanned. Which of the first relata in corresponding windows is a corresponding prime focus is determined based on a preponderance of their frequencies of occurrence. A visualization is presented showing the prime foci and corresponding windows in which they occur.

BACKGROUND

A document tells a story. If it is to make any sense at all, the document has a beginning, intervening development, and a conclusion. Some documents may tell a complicated story. The story may have a series of foci as well as clusters of subsidiary foci around a central focus. As complexity and length of a document's content increases, so does a need for a tool to help a user quickly understand a document's contents, and the various areas of focus in the contents and their relationships to other areas of focus.

SUMMARY

In a first aspect of various embodiments, a computer-implemented method is provided for detecting foci and connections between the foci in a document. A computing device scans knowledge fragments included in a current window of consecutive sentences of a document to find a first relatum, a second relatum appearing after the first relatum, and a relation between the first relatum and the second relatum. The computing device keeps track of the first relatum found in the current window and corresponding frequencies of occurrence thereof. The current window of consecutive sentences is slid by a number of consecutive sentences less than a number of consecutive sentences in the current window of consecutive sentences. The computing device repeats the keeping track and the sliding until all knowledge fragments in the document have been scanned. The computing device determines which of the first relata in corresponding windows is a corresponding prime focus based on a preponderance of the frequencies of occurrence of the first relata. A visualization is presented showing the prime foci and corresponding windows in which the prime foci occur.

In a second aspect of the various embodiments, a system is provided for detecting foci and connections between the foci in a document. The system includes at least one processor, at least one memory, and a bus connecting the at least one processor with the at least one memory. The at least one processor is configured to perform operations. According to the operations, knowledge fragments included in a current window of multiple windows of consecutive sentences of a document are scanned to find, in each respective knowledge fragment, a first relatum, a second relatum appearing after the first relatum, and a relation between the first relatum and the second relatum. The first relata found in the current window are kept track of along with their corresponding frequencies of occurrence. The current window of consecutive sentences is slid by a number of consecutive sentences less than a number of consecutive sentences in the current window of consecutive sentences. The keeping track and the sliding are repeated until all knowledge fragments in the document have been scanned. Prime foci are determined in corresponding windows based on a preponderance of the frequencies of occurrence of the first relata. A visualization is presented showing the prime foci and corresponding windows in which they occur.

In a third aspect of the various embodiments, a non-transitory computer-readable medium is provided that has instructions for at least one processor stored thereon. The instructions configure the at least one processor to perform a number of operations. According to the operations, knowledge fragments in a current window of multiple windows of consecutive sentences of a document are scanned to find, in each respective knowledge fragment, a first relatum, a second relatum appearing after the first relatum, and a relation between the first relatum and the second relatum. The first relata found in the current window are kept track of along with corresponding frequencies of occurrence thereof. The current window of consecutive sentences is slid by a number of consecutive sentences less than a number of consecutive sentences in the current window of consecutive sentences. The keeping track and the sliding are repeated until all knowledge fragments in the document have been scanned. Based on a preponderance of the frequencies of occurrence of the first relata, one of the first relata in corresponding windows is determined to be a corresponding prime focus. A visualization is presented showing the prime foci and corresponding windows in which the prime foci occur.

DETAILED DESCRIPTION

Contents of a document may tell a story. The document may include a beginning, a middle, and an end, each of which includes a number of sentences and each sentence may include one or more knowledge fragments. Each knowledge fragment includes a first relatum, a second relatum, and a relation between the first relatum and the second relatum. “Dog has fur”, “cat has whiskers”, “boy throws ball”, and “man bites dog” are examples of knowledge fragments. In the knowledge fragment “dog has fur”, the first and second relatum, respectively, are “dog” and “fur” and the relation is “has”. In the knowledge fragment “cat has whiskers”, the first and second relatum, respectively, are “cat” and “whiskers” and the relation is “has”. In the knowledge fragment “boy throws ball”, the first and second relatum, respectively, are “boy” and “ball” and the relation is “throws”. In the knowledge fragment “man bites dog”, the first and second relatum, respectively, are “man” and “dog” and the relation is “bites”.

A prime focus is a collection of consecutive sentences in which a particular first relata has a frequency of occurrence greater than a frequency of occurrence of any other first relata included in knowledge fragments of the collection of sentences. In some embodiments, equivalent first relata may be treated as a same first relatum. For example, in some embodiments, first relata “dog” and “canine” may be treated as a same first relata having either a value of “dog” and/or “canine”. In this specification, two relata may be defined as equal if both relata either have a same value or have values that are considered to be equivalent.

A prime focus may be linked to one or more other prime foci and/or may be linked to one or more subsidiary foci. A subsidiary focus is a first relatum that is not a prime focus.

Various embodiments may process contents of a document and present a visualization showing prime foci, related subsidiary foci, and paths indicating relations therebetween to provide a user with an understanding of the contents in a very short period of time.

FIG.1illustrates an example environment100in which embodiments may be implemented. Environment100may include a network102, a computing device104, and a database106.

Network102may be implemented by any number of any suitable communications media (e.g., wide area network (WAN), local area network (LAN), Internet, Intranet, etc.) or a combination of any of the suitable communications media. Network102may further include wired and/or wireless networks.

Computing device104may include a desktop computer, a laptop computer, a smartphone, a tablet computer, or other type of computing device and may be connected to network102via a wired or wireless connection.

Server108may include a single computer or may include multiple computers configured as a server farm. The one or more computers of server108may include a mainframe computer, a desktop computer, or other types of computers. Server108may be connected to network102via a wired or a wireless connection.

Database106may include a database management system and its contents. In some embodiments, the database management system may be a relational database management system such as, for example, SQL or another database management system. In some embodiments, database106may be directly connected with server108. Server108and database106may be included in a cloud computing environment in some embodiments.

In some embodiments, a user of computing device104may submit a document to server108, which analyzes contents of the document and provides one or more visualizations to computing device104via network102. In an alternate embodiment, computing device104may include a standalone embodiment in which a user selects a document stored on a computer-readable medium of computing device104, and computing device104analyzes contents of the document and presents one or more visualizations to a user via a display screen.

FIG.2illustrates an example computing system200, which may implement any of computing device104and/or server108. Computing system200is shown in a form of a general-purpose computing device. Components of computing system200may include, but are not limited to, one or more processing units216, a system memory228, and a bus218that couples various system components including system memory228to one or more processing units216.

Bus218represents any one or more of several bus structure types, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. Such architectures may include, but not be limited to, Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnects (PCI) bus.

Computing system200may include various non-transitory computer-readable media, which may be any available non-transitory media accessible by computing system200. The computer-readable media may include volatile and non-volatile non-transitory media as well as removable and non-removable non-transitory media.

System memory228may include non-transitory volatile memory, such as random access memory (RAM)230and cache memory234. System memory228also may include non-transitory non-volatile memory including, but not limited to, read-only memory (ROM)232and storage system236. Storage system236may be provided for reading from and writing to a nonremovable, non-volatile magnetic medium, which may include a hard drive or a Secure Digital (SD) card. In addition, a magnetic disk drive, not shown, may be provided for reading from and writing to a removable, non-volatile magnetic disk such as, for example, a floppy disk, and an optical disk drive for reading from or writing to a removable non-volatile optical disk such as a CD-ROM, DVD-ROM or other optical media. Each memory device may be connected to bus218by at least one data media interface. System memory228further may include instructions for processing unit(s)216to configure computing system200to perform functions of embodiments. For example, system memory228also may include, but not be limited to, processor instructions for an operating system, at least one application program, other program modules, program data, and an implementation of a networking environment.

Computing system200may communicate with one or more external devices214including, but not limited to, one or more displays, a keyboard, a pointing device, a speaker, at least one device that enables a user to interact with computing system200, and any devices including, but not limited to, a network card, a modem, etc. that enable computing system200to communicate with one or more other computing devices. The communication can occur via Input/Output (I/O) interfaces222. Computing system200can communicate with one or more networks including, but not limited to, a local area network (LAN), a general wide area network (WAN), a packet-switched data network (PSDN) and/or a public network such as, for example, the Internet, via network adapter220. As depicted, network adapter220communicates with the other components of computer system200via bus218.

It should be understood that, although not shown, other hardware and/or software components could be used in conjunction with computer system200. Examples, include, but are not limited to, microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archival storage systems, etc.

In an embodiment, as shown inFIG.3, computing device104or server108may prepare a visual presentation of N sentences included in contents of a document provided for analysis. Computing device104or server108may divide the sentences into a number of sections, or windows, which may overlap. As shown inFIG.4, an example document may be divided into 11 windows, W1 through W11, each window having eight sentences, and each following window including some of the sentences from an immediately preceding window. For example,FIG.4shows window W1 having a first eight sentences of the document, window W2 having eight sentences beginning with a last four sentences of window W1, window W3 having eight sentences beginning with a last four sentences of window W2, window W5 having eight sentences beginning with a last four sentences of window W3, etc. In this example, when a number of remaining sentences not yet assigned to a window are less than half of a window size, then the remaining sentences may be included in a last window of the document such that the last window includes the number of remaining sentences and a last number of sentences from an immediately preceding window such that a window size of the last window has a same window size as other windows of the document. In other embodiments, windows may have a varying number of sentences.

Although the example shown inFIG.4has windows of eight sentences with windows overlapping adjacent windows by half of a window size, other embodiments may divide a document into windows having a different number of sentences and with a different number of sentences overlapping adjacent windows.

FIG.5shows window W1 having four first relata (shown as small circles) with a same or equivalent values in knowledge fragments of sentences included in the window W1. Assuming that the four first relata outnumber a frequency of other first relata with other values in knowledge fragments of sentences included in the window W1, then the value(s) of these four first relata may become a prime focus candidate. Sliding a current window to adjacent window W2, which overlaps with the window W1, five more first relata are detected having the same or the equivalent values with respect to the four first relata of window W1. Thus, window W2 has nine first relata with the same or the equivalent values. Assuming that the same or the equivalent values of these first relata occur more frequently than other values of other first relata in windows W1 and W2, then the same or the equivalent values of the nine first relata become the prime focus in windows W1 and W2.

Various embodiments may determine a central prime focus of a document. A central prime focus is a prime focus located at an approximate central location of contents of the document. Other first relata having either a direct or indirect relation with the central prime focus may be determined. That is, first relata in knowledge fragments of the document having a related second relatum with a value of the central prime focus are considered to be directly related to the central prime focus. Other first relata in knowledge fragments having a second relatum with a value of a first relatum that is related to another second relatum having a relation through one or more other relata to the central prime focus are considered to be indirectly related to the central prime focus.FIG.6shows an example display screen showing a central prime focus O with direct relations to relata X, Y, A and C. Relatum D has an indirect relation with central prime focus O through relatum C. Relata R, M and B have an indirect relation with central prime focus O via relatum A. Relatum F has an indirect relation with central prime focus O via relata B and A. Lines between relatum are paths representing relations between the relatum.

In some embodiments one of the prime foci may be selected from a display such as, for example, a display as shown inFIG.5or another display. Other first relata having either a direct or indirect relation with the selected one of the prime foci may be determined. That is, first relata in knowledge fragments of the document having a related second relatum with a value of the selected one of the prime foci are considered to be directly related to the central prime focus. Other first relata in knowledge fragments having a second relatum with a value of a first relatum that is related another second relatum having a relation through one or more other relata to the selected one of the prime foci are considered to be indirectly related to the selected one of the prime foci. If prime focus O is the selected one of the prime foci, thenFIG.6may be seen as an example display screen showing the selected one of the prime foci O with direct relations to relata X, Y, A and C, an indirect relation with relatum D through relatum C, indirect relations with relata R, M and B via relatum A, and an indirect relation with relatum F via relata B and A. Lines between relata are paths representing relations between the relata.

In some embodiments, a filter may be set to hide items in a visualization. In one embodiment, the filter may hide paths and foci based on a strength or weight of a relation between foci. For example, as shown inFIG.7, a displayed numerical value appearing next to a path may indicate a strength or weight of a relationship. In some embodiments, higher numerical values indicate a stronger relation or greater weight between relata than lower numerical values. In other embodiments, lower numerical values may indicate a stronger relation or greater weight between relata. Some other embodiments may indicate a strength or weight of a relation by showing one or more letters such as “L” for low, “M” for medium, and “H” for high, or yet other letters with different strength or weight meanings. A strength or weight of a relation may be determined by one or more words used to describe the relation. In some embodiments, groups of one or more words describing relations may have a strength or weight configurable by a user. Thus, a strength or weight of a relation may be determined by the one or more words that describe the relation, and may be different for different users.

In some embodiments, words that appear in relata may be configured by a user to have assigned strengths or weights. An associated filter may be set to a desired value and relata that normally would be displayed in a visualization may become hidden if the assigned weight or strength of the word or groups of words associated with the relata is less than the associated filter setting. Paths to such relata also may become hidden in the visualization.

In some embodiments, an entity that wishes its employees to have access to certain ways of approaching a search for meaning in a document may configure a set of weights or strengths and an associated filter that may be changed only by one or more certain authorized employees. In such embodiments, employees other than the one or more authorized employees then would only be able to view visualizations in a certain way that serves interests of the entity as may be determined by a certain governing group of the entity. The weights configured by the one or more certain authorized employees according to the certain governing group are referred to as frozen weights, while weights that are configurable on a per employee or user basis are referred to as freely selectable weights.

FIGS.8-9are flowcharts of an example process that may be implemented in some embodiments for determining a prime focus of a window. The process may begin with setting a current window to a first window at a beginning of contents of a document (act802). The current window then may be scanned for knowledge fragments (act804) and a list of unique first relata values and equivalents and corresponding frequencies of occurrence in the current window may be determined and maintained (act806).

Next, a determination may be made regarding whether an end of the document has been reached (act808). If the end of the document has not been reached, then the current window may be slid to a next adjacent window (act810) and acts804-808may be repeated.

If, during act808, a determination is made that the end of the document has been reached, then prime foci may be determined for windows based on a first relata value and its equivalent values having a preponderance of frequencies of occurrences in windows (act812).

Next, a first visualization may be presented on a display screen showing prime foci and corresponding windows in which they occur (act814). In some embodiments, the first visualization may be similar to that shown inFIG.5. That is, an indication of prime foci in the windows in which they occur may be displayed as circles or other indications. In some embodiments, each indication may be labeled with one or more alphanumeric characters and a legend may be displayed showing each of the labels and a corresponding prime focus value.

Next, a central prime focus may be determined by finding a prime focus in an approximate central portion of contents of a document, or alternatively, a prime focus may be selected via a graphical user interface using a pointing device (act902;FIG.9), which may be a computer mouse, a trackball device, a user's finger on a touch screen, or other type of pointing device. Other relata may be determined having either a direct or indirect relation with the central prime focus, or alternatively, a direct or indirect relation with the selected prime focus, as previously described (act904). Other first relata related to the central prime focus, or the selected prime focus, may be considered to be subsidiary foci in subsidiary knowledge fragments. A second visualization may be presented on a display screen showing the central prime focus (or the selected prime focus), related first relata, and paths therebetween (act906).

In some embodiments, a strength of relations between at least some of the first relata may be determined (act908). The strength of relations may be determined by words used to express the relation as previously described. A second visualization may be provided on a display screen to indicate a strength of various relations between at least some of the first relata (act910), as shown inFIG.7as previously described.

As previously mentioned, in some embodiments, words that appear in relata may be configured by a user to have assigned strengths or weights. An associated filter may be set to a desired value and relata that normally would be displayed in a visualization may become hidden if the assigned weight or strength of the word or groups of words associated with the relata is less than the associated filter setting. Paths to such relata also may become hidden in the visualization.

In some embodiments, stronger strengths may be indicated by higher numbers. In other embodiments, stronger strengths may be indicated by lower numbers. Still, in other embodiments, words such as “high”, “medium”, and “low” (or the initials “h”, “m”, and “1”) may indicate strengths of relations. Other embodiments may indicate strengths by other means.

As mentioned previously, in some embodiments, a strength filter may be provided. The strength filter may include a user interface that displays a slider showing various strength settings.FIG.10illustrates an example strength filter showing 10 possible strength settings 0-9. An indicator such as, for example, indicator1002, may be moved to a desired strength filter setting by selecting, with a pointing device, indicator1002and dragging indicator1002to the desired strength filter setting. The pointing device may be a computer mouse, a trackball, a user's finger on a touch screen display, or other device for selecting and moving indicator1002. When the strength filter associated with relations between relata or foci is set to a value, paths having strength values less than the set value may be hidden in a visualization. In addition, any relata or foci and paths that do not have a visible path to a selected prime focus may be hidden in the visualization.

In some embodiments, a visualization may be saved in response to receiving a command via a user interface. In one embodiment, a right click of a pointing device on the visualization may display a menu that includes a command to save the visualization. Selecting this command using the pointing device may cause the visualization to be saved.

FIGS.4and5show examples in which contents of a document was divided into windows of 8 sentences, wherein adjacent windows overlapped by a number of sentences less than a window size such as, for example, 4 sentences. In some embodiments, a graphical user interface may be provided to permit a user to set the window size.FIG.11shows an example graphical user interface for setting a window size. In this example interface, a user may select input box1102with a pointing device and may input a numerical value to set the window size to a desired number of sentences. In some embodiments, the window size may be set to an integer value that is greater than or equal to 2 and less than or equal to 22. In other embodiments, a different minimum integer value and maximum integer value may be permitted.

Adjacent windows may overlap by a number of sentences less than the window size. In some embodiments, the adjacent windows may overlap by about half the window size. For example, if the window size is an even number E, then the adjacent windows may overlap by E/2 sentences. Otherwise, if the window size is an odd number O, then the adjacent windows may overlap by (O+1)/2 sentences. In other embodiments, adjacent windows may overlap by a different amount of the window size.

In other embodiments, a graphical user interface for setting the window size may be provided in a form of a slider, similar to the slider shown inFIG.10, but with a lowest numerical setting being a minimum allowed window size and a highest numerical setting being a maximum allowed window size. The window size may set by selecting an indicator with a pointing device and sliding the indicator to a desired window size.

In other embodiments, other graphical user interfaces may be provided for setting the window size.

As analysis through contents of a document takes place, foci may or may not be discovered based on the window size. For example, a window size of 5 sentences has a statistically smaller probability of isolating a focus than a window size of 20 sentences. Thus, a user may start by setting a larger window size such as, for example, 18 sentences and may run an analysis of the contents. The user may then set the window size to a smaller number of sentences such as, for example, 14 sentences and may rerun the analysis. Further, the user may start the analysis with a small window size such as, for example, 4 sentences, may increase the window size to, for example, 8 sentences and rerun the analysis, and may further increase the window size to, for example, 12 or 16 sentences and rerun the analysis. By setting different window sizes and running or rerunning the analysis, the user can discover which window size is best for determining foci with a minimum amount of noise (extraneous or irrelevant clutter).

Various embodiments provide users with a quick understanding of document contents in a very short amount of time. For example, prime foci and relations among prime foci, subsidiary foci, and other relata can be easily understood via multiple visualizations. An ability to select a prime focus among multiple prime foci and be presented with relations to other prime foci and subsidiary foci provides a powerful tool for a user to understand various themes and relations among the themes.