Natural language processing methods and systems

Scheme for enriching an input network with knowledge from a fractal semantic knowledge network. The input network comprises objects and pointers between these objects, and the knowledge network comprises semantic units, and a plurality of Jani, whereby any of these Jani is associated with one or more of the semantic units such that the respective Janus is able to operate on one or more of the semantic units. The following steps are carried out: finding a counterpart element for an object or a pointer by looking for a semantic unit that is related to the object or the pointer; establishing a classification connection between the object or the pointer and its counterpart element; assigning the module that is associated with the counterpart element, if any, to the object or the pointer; examining the objects' or the pointers' neighborhoods in the input network by comparing them with the counterpart elements' neighborhoods in knowledge network to verify the classification connection.

CLAIM FOR PRIORITY

This application claims priority from European Application No. 00113438.6, filed on Jun. 24, 2000, and which is hereby incorporated by reference as if fully set forth herein.

FIELD OF THE INVENTION

The present invention concerns the processing of an input network in conjunction with a fractal semantic network—with local pervasive intelligence-serving as knowledge base in order to use knowledge from this knowledge base for the purpose of understanding.

BACKGROUND OF THE INVENTION

Natural language understanding is a topic that is attracting a lot of attention since it eventually will allow improvement of the interface and interaction between humans and machines, such as computers or personal digital assistants (PDAs), for example.

Despite a lot of efforts, the advances in natural language understanding are not very satisfying. In particular, the research area of automated apprehension of meaning from speech or from text has not made much progress over the last years.

In the area of automated apprehension of meaning there are two different philosophies, the “holistic” approach and the “componentized” approach. While the latter approach has achieved a great number of detailed results in the individual components such as anaphora resolution and deep syntactic analysis, among many others, it has not yet achieved the goal of combining these individual components to one global and overall solution within which these components can interact. It is even unclear at the moment whether there exists for these components any suitable form of combination that includes feedback mechanisms.

When it comes to understanding the meaning of speech, i.e. the semantical interpretation of speech, the breakthrough has not yet been achieved. As a consequence, the pragmatical analysis, the control of tools and devices by natural speech, has also not been developed very far. Current systems still require a command language with a few simple keywords to perform their understanding tasks. A typical example of a modern speech/text recognition system is described in the article “Enabling agents to work together,” by R. V. Guha et al., Communications of the ACM, Vol. 37, No. 7, July 1994, pp. 127-142, and reviewed by T. J. Schult in the German article “Transparente Trivialitäten; Cyc-Wissensbasis in WWW,” c't, 1996, Vol. 10, pp. 118-121. The Cyc-system described by R. V. Guha is a knowledge based system for true/false categorization of input statements. T. J. Schult points out in his article that the knowledge representation in the database used in the Cyc-system is not standardized and uses only the following relations for deduction: ‘is element of’, ‘is subset of’, and ‘has subsets’. Guha's approach is “holistic”.

In the present context, we focus on the “holistic” approach that is also referred to as the cognitive approach. A knowledge database is employed in order to be able to perform the meaning understanding task. This kind of an approach has been used by others before, but the present model to represent the world knowledge in a knowledge database modeled as a fractal semantic network is unique and has a number of important differences compared to all other models around. In particular, a self-similar hierarchical network of n-th order is employed, as for example disclosed and claimed in PCT Patent application WO 99/63455, International Application No.: PCT/IB99/00231, entitled “Processing of Textual Information and Automated Apprehension of Information”, currently assigned to the assignee of the present application. Furthermore, local pervasive intelligence is employed, as specified in the German Patent application “Fraktales Netz n-ter Ordnung zum Behandeln komplexer Strukturen”, application No.: 199008204.9, filing date 15 Feb. 1999, assigned to the assignee of the present application and to Delphi Creative Technologies. This local pervasive intelligence is called a Janus, using a name of the Roman mythology (plural: Jani). The Janus is described in very general terms in this German patent application. These two patent applications are incorporated in their entirety.

It is to be noted that there is a fundamental difference between data or information and knowledge. One can accumulate arbitrary amounts of data or information without having any knowledge, while the converse is not possible. Data or information is the isolated representation of pure facts, while knowledge arises from strong connections between these facts, and from abstraction, which in turn allows both for performing understanding and learning.

It is an object of the present invention to provide an efficient scheme for the extraction of meaning from an input by using knowledge.

It is an object of the present invention to provide a system for the efficient processing of an input in order to extract meaning from the input by using knowledge.

SUMMARY OF THE INVENTION

The present invention concerns a method and system for enriching an input network with knowledge from a fractal semantic knowledge network. The input network comprises semantic units and the knowledge network comprises semantic units and a plurality of modules, whereby any of these modules is associated with one or more of the semantic units in the knowledge network. The modules are able to operate on the one or more of the semantic units. The following steps are performed: (a) finding a counterpart element for a semantic unit in the input network by looking for a related semantic unit in the knowledge network; (b) establishing a classification connection between the semantic unit in the input network and its counterpart element in the knowledge network; (c) assigning the module(s) that is (are) associated with the counterpart element, if any, to the semantic unit in the input network; and (d) examining the semantic unit's neighborhood in the input network by comparing it with the counterpart element's neighborhood in the knowledge network to verify and value the classification connection.

The present invention also concerns software modules (Classification Jani) for comparing the neighborhoods of those semantic units to which they are assigned with neighborhoods of the counterpart elements of the knowledge network in order to verify classification connections between the semantic units to which they are assigned and the counterpart elements. In addition, the software modules update classification values (Cx) of the classification connections if the neighborhoods of the semantic units in the input network resemble the neighborhoods of the counterpart elements in the knowledge network.

Furthermore, the present invention concerns software modules (Segmentation Jani) for grouping/segmenting the semantic units of the input network according to the segments/groups that their counterpart elements of the knowledge network belong to. To achieve this, the software modules look for counterpart semantic units in the knowledge database which belong to segments on higher levels of hierarchy; and, if such segments are identified, create segment units in the input network, connect the corresponding semantic units from the input network to the newly created segment units, and connect the newly created segment units with classification connections to the segments in the knowledge network.

The herein described Classification step and Segmentation step are the fundamental processes for driving the self-organization of the fractal semantic input network on a local scale. They may be repeated iteratively.

The process of Classification stands for the common task of comparing one semantic unit in an input network to other semantic units in the knowledge database. The goal here is to find comparable semantic units in the sense that they are alike, can perform similar tasks, have similar goals, are more general or more specific, are constituents or groups, or are in similar states, among other things. In our model the process of Classification is performed through extensive local neighborhood analysis. This means that the degree of similarity of two semantic units is determined by the degree of similarity of their local neighborhoods in the input network and in the knowledge database with respect to the above comparison factors.

While the Classification focuses on finding similar structures among semantic units, the Segmentation focuses on grouping semantic units according to similarities found during the Classification process.

In one aspect the present invention provides a method for enriching an input network with knowledge from a fractal semantic knowledge network, wherein said input network comprises objects and pointers between said objects, and the knowledge network comprises semantic units and a plurality of modules arranged in a fractal semantic network, whereby any one of said modules is associated with one or more of said semantic units such that the respective module is able to operate on the one or more of said semantic units, said method comprising the steps of: finding a counterpart element for an object or a pointer by looking for a semantic unit that is related to the object or the pointer; establishing a classification connection between the object or the pointer and its counterpart element; assigning the module that is associated with the counterpart element, if any, to the object or the pointer; determining the neighborhood of the object or the pointer in the input network and the neighborhood of the counterpart element in the knowledge network, and comparing the neighborhoods to verify the classification connection.

In another aspect of the present invention is a software module being assignable to an object or a pointer of an input network, whereby said software module when being triggered, performs the steps of: comparing the neighborhood of the object or pointer to which it is assigned with a neighborhood of a counterpart element of a fractal semantic knowledge network in order to verify a classification connection between said object or pointer to which it is assigned and the counterpart element; updating a classification value (Cx) of the classification connection if the neighborhood of said object or pointer in the input network resembles the neighborhood of the counterpart element in the knowledge network.

Another aspect of the present invention provides a software module being assignable to an object or a pointer of an input network, whereby said software module when being triggered, performs the steps of: looking for semantic units in a fractal semantic knowledge database which belong to a counterpart segment on a higher level of hierarchy; and if such a counterpart segment is identified, creating a new segment unit in the input network, and creating a classification connection from the new segment unit to the counterpart segment.

Furthermore the present invention provides a natural language processing system for enriching an input network with knowledge from a fractal semantic knowledge network, whereby the input network comprises objects and pointers between said objects, and the knowledge network comprises semantic units, the system comprising: a module for finding a counterpart element for an object or a pointer by looking for a semantic unit that is related to the object or the pointer; a module for establishing a classification connection between the object or the pointer and its counterpart element; a module for examining the objects' or the pointers' neighborhoods in the input network by comparing them with the counterpart elements' neighborhoods in knowledge network to verify the classification connection.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

In the following, the basic concept of the present invention is described. Before addressing different embodiments, the relevant terms and expressions are defined and explained.

According to the present invention, objects50.xand51.xfrom an input network18are matched with entries (semantic units40.xand47.x) in a knowledge database11in order to be able to enrich the input network18by classifying and segmenting/structuring it, as schematically illustrated inFIGS. 1 and 4A. By applying knowledge stored in this knowledge database11, one is able to get an understanding of what is conveyed or represented by such an input network18. Usually, there is some sort of an input string12that needs to be processed. Such an input string12may be generated by a speech recognition system that automatically turns the speech input into some sort of a string12. If no input network18is available, a respective input network18has to be generated from the input string12. This can be done by means of a semantic network generator17, as described in co-pending European patent application entitled “Fractal Semantic Network Generator”. This co-pending patent application is filed on the same day and is assigned to the assignee of the instant application. Alternatively, it can be done in a very simple fashion by creating a semantic unit for each word in the input string, and connecting these semantic units with connections labeled “next”.

The term network is herein used to describe a collection or aggregation of entries/elements. These entries/elements are—at least to some extent—connected/linked by pointers or connection objects. Pointers or connection objects are semantic units themselves. A simple example of a network (input network18) is given inFIG. 4Abelow the dashed line45. In this example, the network18comprises five objects50.1-50.5and four pointers51.1-51.4(i.e., nine semantic units).

We continue with the basic definitions of semantic and hierarchical networks.

A semantic network is a directed or non-directed graph with the additional property that its nodes and pointers carry semantic information. Nodes and pointers of a semantic network are called semantic units. The semantic information provides a particular meaning for a semantic unit. Frequently, semantic information is encoded in natural language, i.e. specific names or modules are used to label semantic units.

A hierarchical network is a directed or non-directed graph with the additional property that some of its pointers carry scaling information. This means that one of the nodes connected to a scaling pointer is at a higher level of hierarchy than the other node.

It should be noted that this definition does not yield an absolute value for the level of hierarchy, i.e. it does not assign to every node an integer that corresponds to its level of hierarchy. Instead it gives a relative definition for the level of hierarchy.

As discussed above, the knowledge database11is of hierarchical and semantical nature and all elements are alike, so that the knowledge database11has a fractal structure, i.e., it is self-similar across hierarchies. Algorithms can operate on elements at any hierarchical level in the same way, making them ‘fractal’ algorithms, as briefly and in very general terms addressed in the PCT Patent application WO 99/63455.

This knowledge database11is a crucial component of the present invention. It has a unique structure which is described in the PCT Patent application WO 99/63455. All elements and aspects of the knowledge database11that are relevant for the understanding of the present invention are addressed below.

Knowledge database: A knowledge database is a kind of library describing the knowledge of the world, or a particular area of interest thereof, by using a fractal semantic network structure with local pervasive intelligence.

When referring to a knowledge database, either a library describing knowledge of the world, or a library with domain specific information is meant, or a mixture of both. An example of a domain specific knowledge database is a database which comprises knowledge relevant for the processing of insurance claims.

The knowledge database reflects the knowledge of the world or the knowledge of a certain domain or field. The content of this knowledge database always forms a subset of the content of the real world, corresponding to a limited life experience of the computer and the human being who programmed the computer. A knowledge database can be expanded either by automated learning from analyzed input, or by adding separately obtained sub-worlds (e.g. in the form of application-specific modules). It is conceivable to provide updates for the knowledge database through an intranet or internet.

The structured representation of aspects of the world with the knowledge database is achieved by a multi-scale approach related to the work of B. Mandelbrot and K. Wilson. Self-similar representations are used on different scales to describe the behavior of elements in a dynamical hierarchical network, as will be addressed in connection with an example (see FIGS.4A-4F).

Furthermore, self-similar local algorithms are used when making use of the knowledge contained in this database.

Semantic units: A semantic unit is an element that contains one or several pieces of information. It may be represented by a word, an object, a relation, an attribute, a module, a combination of words and/or objects and/or relations and/or attributes and/or modules, a (hierarchical) network of words and/or objects and/or relations and/or attributes and/or modules, a part of a sentence or a whole sentence, a part of a paragraph or a whole paragraph, or a part of a story or a whole story.

Exemplary types of semantic units and their possible mutual connections are schematically illustrated inFIGS. 2A and 2B. The knowledge database may comprise the semantic units illustrated in these Figures.

A semantic hierarchical network may have cycles (loops) of hierarchical pointers. This conflict exists only on a global scale and can be resolved if one considers only local neighborhoods of the whole network at any one time. Local neighborhoods are introduced by the notion of a topology.

A topological network is a directed or non-directed graph with the additional property that for every node and every pointer one or several local neighborhoods are defined. The local neighborhoods of a node or a pointer are sets (topology tables) consisting of this node or pointer and other nodes or pointers of the network.

Topological networks can be obtained by assigning a weight (e.g., a value between 0 and 1) to every pointer of the network. The negative logarithm of this weight then yields a metric or distance function on the network. The local neighborhoods may be defined with the help of some threshold mechanism applied to this metric.

In the special case of semantic networks it is often required that a semantic unit be used both as a node and as a pointer. For example, a semantic unit labeled friendship can be viewed both as a node (“friendship is in particular a relation”, here it is a node connected hierarchically to the node relation) and as a pointer (“friendship between two people”, here it is a pointer between the two nodes representing the two people). This gives rise to the following definition.

A higher-order network is a directed or non-directed graph in which pointers can at the same time be nodes. This means that a pointer can connect two nodes, one node and one pointer, or two pointers.

As stated above, one may use a topology for the knowledge database in order to have a local neighborhood structure on the knowledge database. A local neighborhood of a semantic unit in the knowledge database is given by a set of semantic units and pointers which may be grouped into a segment (e.g., segment31in FIG.3A). Preferably, this is done by assigning a topology table32.xto some or all of the semantic units30.xin the knowledge database11and a topology table34.xto some or all of the pointers33.x. A topology table32.xor34.xin the present context is used as a synonym for an aggregation of information describing all local neighborhoods of a semantic unit or pointer. The collection of all topology tables defines for the topology that is superimposed on the knowledge database11.

A simple example of a knowledge database11is illustrated in FIG.3A. The semantic units30.1-30.8are represented by circles and the pointers by lines33.1-33.10. In this example, each semantic unit30.1-30.8and pointer33.1-33.10has a corresponding topology table32.1-32.8and34.1-34.10, respectively. The four hatched semantic units30.2,30.3,30.4, and30.5all belong to a segment31. Each semantic unit30.xand each pointer33.xthat has a topology table32.xor34.xassigned knows through this topology table what its local neighborhoods look like.

A topology table32.xor34.xmay for example comprise information concerning all neighbors within a certain semantical distance, or all neighbors that can be reached without having to pass more than k pointers (with k<4, for example). It may also comprise a completely arbitrary collection of neighbors. A schematic representation of a topology table32.3is shown in FIG.3B. In this example, the local neighborhood m=1 consists of all semantic units and pointers of segment31, the local neighborhood m=2 consist of semantic units30.2,30.6, and pointers33.1and33.3, while the local neighborhood m=3 consists of semantic units30.2,30.6,30.7, and pointers33.1,33.3, and33.8.

It is also possible to keep information derived or inherited from other semantic units in the topology table. Many other approaches for the definition of a topology table's contents are conceivable: all neighbors that can be reached via one particular type of connection object, for example, can be listed in a topology table; all semantic units that have the same string of letters, e.g. the same word stem, could be listed in the topology table; and so forth.

One can logically subdivide the knowledge database into segments. There can be an overlap between various segments. The topology and segments can be independent from each other.

In the next definitions it is captured what is meant by a fractal network. A working definition is given which will suffice for the scope of the present description. In particular, the presently used formulation allows us more easily to define the self-organizing fractal semantic network and to understand the various embodiments and implementation details given.

A fractal network is a hierarchical network with the additional property that all of its nodes and pointers are derived from a small set of basic building blocks. In this sense a fractal network exhibits a self-similar structure because it looks the same everywhere on all levels of hierarchy.

The following definition deals with the modules that perform the self-organization of the network.

A (locally) self-organizing network is a directed or non-directed graph with the additional property that at least some of its nodes and pointers are connected to one or several (local) modules out of a set of modules. A module is an algorithm that performs a transformation of the network, while a local module is an algorithm that performs a transformation of the network only in the local neighborhood of the node or pointer it is connected to. The (local) modules are triggered by the state of the node or pointer they are connected to, which in turn is a function of the entire network.

For practical purposes the state of a node or pointer is often only a function of its local neighborhood. For example, when dealing with semantic networks a semantic unit is often connected to attributes, and the values of these attributes determine the state of the semantic unit.

After making all of the above definitions we are now in the position to define a self-organizing fractal semantic network, the fundamental model that we use in the present context.

In the following sections a set of basic building blocks and basic modules are defined, which are used to construct self-organizing fractal semantic networks.

As specified above, nodes and pointers of a network are called semantic units (cf. FIGS.2A and2B). All semantic units100are subdivided into concepts and instances. We further subdivide nodes into information units101, attribute units102, and module units or Janus Objects103and connection units or objects104. Information units are general elements that can represent concepts or instances, and they are identified by specific names. Attribute units102are identified by specific names and values, which can be set, retrieved, or computed.

All pointers of the network (connection objects104) are either scaling (hierarchical connections105) or non-scaling (non-hierarchical connections106). Standard inheritance principles are defined across all scaling pointers, making use of the network's topology or neighborhood concept. Pointers are further subdivided into comparison units107,109, interaction units108,110, description units111, role units112, and controller units113. Non-scaling comparison units109allow us to describe the degree of similarity or dissimilarity of two semantic units, while scaling comparison units107allow us to describe how close one semantic unit comes to being an instance of another semantic unit, or how close one semantic unit comes to being a special case of another semantic unit. Non-scaling interaction units110allow us to describe the type of interaction of two semantic units, while scaling interaction units108allow us to describe the role one semantic unit plays as part of another semantic unit. Description units connect semantic units to their attribute units, which describe the semantic units in more detail. Role units describe the role one semantic unit plays with respect to another semantic unit. Finally, controller units connect semantic units to their Janus Objects103, which in turn control and act upon the semantic units' local neighborhoods.

FIG. 6shows how the basic building blocks are used to construct a network. Note that each building block61labeled “Semantic Unit” can be replaced with any basic building block. Information units do not appear in thisFIG. 6, as there is no restriction on their use. In practice most of the building blocks61labeled “Semantic Unit” are information units.

A pointer42.1from a semantic unit50.1(herein referred to as object in order to be able to make a clear distinction between semantic units of the input network18and semantic units of the knowledge database11) of the input network18to a semantic unit40.3in the knowledge database11may carry a confidence value Cx. These pointers42.x(cf.FIGS. 4A-4FandFIG. 5) are herein referred to as “classification connections”. If such a classification connection42.xcarries a confidence value Cx it corresponds to the classification probability, i.e. the probability that the object50.1from the input network18has been correctly matched with a semantic unit40.3in the knowledge database11.

As described above, the knowledge database11used in the present context is a fractal semantic network of semantic units with local pervasive intelligence.

In accordance with the definition above, a network is called a fractal semantic network, if the following four conditions are satisfied:All nodes are similar (derived from one template) across all hierarchies.All pointers are similar (derived from one template) across all hierarchies.Pointers may also be nodes across all hierarchies.Hierarchical pointers are possible, and at least one node must have a hierarchical pointer.

The construction of a fractal semantic network can be achieved as follows. The network is given by a list of semantic units100, some of which are pointers (connection objects104), as illustrated inFIGS. 2A and 2B. There might be different types of semantic units (as defined above) and pointers (similarity pointers107,109, functional pointers108,110, attribute pointers111, and role pointers112, also defined above). These pointers can be oriented upwards, downwards, or horizontally. The various semantic units100are interconnected in various ways. Some of the pointers (105) are hierarchical representing the multi-scale approach. Knowledge is presented in the knowledge database11as an associative network.

A semantic unit may be linked by associative pointers to its associative semantic unit(s). These associative pointers reflect how one understands each semantic unit. It is important to note that these pointers can exist between any two semantic units. The pointers themselves are regarded as semantic units that can have pointers to other semantic units, reflecting the fact that something could act on the association between two semantic units rather than on the individual semantic units. Due to the fractal organization of the knowledge database, as outlined above, the otherwise very complex and rich structure of the world is significantly simplified.

This also greatly simplifies the task of trying to understand the information conveyed in some input string12or input network18, as will be addressed now.

Using knowledge from the knowledge database11in order to enrich the information originally contained in an input network18can be done in a very efficient manner due to the fact that the network is fractal and thus self-similar across hierarchies. Using a local and iterative approach—as described hereinafter—one can use the knowledge contained in the knowledge database11to perform the understanding task of what is conveyed in the input string12. The key is that this is done locally, making use of the fractal structure of the knowledge database11, triggered by elements of the input network18.

The herein proposed schemes and systems are based on the above-described special model of textual information and natural language. According to this model, natural language as well as textual information consists of semantic units which are grouped at different levels of hierarchy and are all of a similar type.

According to the present invention, it is advantageous to generate an input network18out of an input string12that also has a fractal semantic network structure like the knowledge database11. Preferably, the knowledge database11and the input network18are all represented in what is called a higher-order fractal semantic network. The input network18of a speech input12or a question may be created by locating its semantic units, possible relations, possible attributes, and possible roles by using a parser that performs a deep syntactic and a shallow semantic analysis. The meaning understanding scheme presented herein yields a resulting semantic network (with a multitude of connections to the knowledge database) which can be used to generate a meaningful output15, e.g., an answer or reaction.

The presently described meaning understanding process bridges or merges two networks, the input network18and the knowledge database11. The whole meaning understanding process is a process that is divided into an initialization phase and a subsequent iteration phase. The initialization may comprise two steps. According to the hereinafter described embodiments, the iteration also comprises two steps.

Step one of the iteration is called Classification and is carried out by Classification Jani, while step two of the iteration is called Segmentation and is carried out by Segmentation Jani.

There are different ways to initialize the process. One advantageous way of initialization is described in the following sections. Another approach is described towards the end of this description.

During step1of the initialization, all objects of the input network18are regarded as unknown. They are thus attached via some initial classification connection to initial semantic units in the knowledge database11that are meant to be question marks, unspecified semantic units, or similar units that are within a category that is regarded as unknown. In other words, all objects may be connected to dummy semantic units. These kind of semantic units are herein referred to as Root Objects (root semantic units). A Root Object may have a Root Janus.

In step2of the initialization some or all objects of the input network18inherit the Root Janus from the Root Object that they are attached to by their initial classification connection from step1. Then for some or all of the objects the Root Jani get activated and refine the unspecified (initial) classification connections. An activated Root Janus tries to create one or several ‘real’ classification connections to semantic units in the knowledge database that are deemed to be related to the object of the input network18, e.g., by analyzing word characteristics such as letter sequences or frequency spectra. This may include the matching of possibly misspelled words or typographical errors. Based on whether this 2ndstep is successful, the confidence values Cx (see one of the later sections) of the classification connections may be adjusted accordingly to preliminary values (this is a heuristic process).

For the purpose of the present description, it is assumed that there is an input network18that has several self-similar semantic units (objects) connected by pointers (see for example the input network18in FIG.4A). Preferably, the input network18exhibits a hierarchical structure. The generation of such an input network18out of an input string12, e.g. an unstructured sequence of words, is addressed in the co-pending patent application mentioned above, filed on the same day as the instant patent application.

It is one goal of the present scheme to turn the input network18into a fractal semantic network structure that is comparable with the knowledge database's structure. In doing so, context is taken into account across a multitude of scales. The result is thus more reliable with respect to a correct understanding of the input's meaning than any process that uses just one level of hierarchy.

During the initialization process described above, initial classification connections are established between objects of the input network18and semantic units of the knowledge database11. An example of an input network18and a knowledge database11after completion of an initialization process is illustrated in FIG.4A. The input network18(below the dashed line45) comprises five objects50.1-50.5. These objects are connected by pointers51.1-51.4.

During the initialization process described above, one compares the objects50.1-50.5and pointers51.1-51.4of the input network18with semantic units40.1-40.5and pointers47.1-47.5of the knowledge database11in order to find counterpart elements in this knowledge database11. There are different ways of finding counterpart elements. One can, for example, do a simple string match where the string associated with an object50.xor pointer51.xin the input network18is compared to the strings associated with the semantic units40.xor pointers47.xin the knowledge database11. Here is a simple example; assuming that the object50.1carries the string “car”, a string matching algorithm is employed that searches the knowledge database11for strings that comprise the word “car”. If the semantic unit40.3carries the name “car”, then this particular semantic unit40.3is deemed to be a counterpart element. After such a counterpart element was found, a classification connection42.1is established between the object50.1and the semantic unit40.3, as shown in FIG.4C. Note that the simple string matching procedure can be generalized to a fuzzy string matching procedure, allowing to even compare word fragments or identify misspelled words. In the present example, just one counterpart element, namely40.3, was found for50.1. The object50.2has two counterpart elements40.1and40.5(cf. classification connections42.2and42.3), the object50.3has no counterpart element, the object50.4has no counterpart element, and the object50.5has just one counterpart element40.4(cf. classification connection42.4). Note that also one of the pointers of the input network18, namely pointer51.2has a counterpart element47.4in the knowledge database11. A corresponding classification connection42.5is thus established between pointer51.2and pointer47.4.

Instead of the string matching approach one can use a partial string matching approach, a fuzzy string matching approach, or the like. One can also employ an algorithm that analyzes word characteristics such as letter sequences or frequency spectra.

Optionally, one can employ one or more dummy elements which are similar or the same as the Root Object in the knowledge database11. One may establish classification connections from those objects in the input network18that do not have any counterpart elements in the knowledge database11to these dummy elements. This is not illustrated in any of the Figures.

Referring now toFIGS. 4C-4F, the underlying principle of the iteration process is outlined.

The first step of the iteration process is called the classification step. As mentioned further above, the process of Classification stands for the task of comparing one semantic unit to others. This is done in order to find comparable semantic units in the sense that they are alike, can perform similar tasks, have similar goals, are more general or more specific, are constituents or segments, or are in similar states, among other things. According to the present invention, the process of Classification is performed through an extensive local neighborhood analysis. This means that the degree of similarity of two semantic units is determined by the degree of similarity of their local neighborhoods with respect to the above comparison factors. As with determining the status of a semantic unit, when comparing semantic units it may not be enough to take into account the values of the attribute units of these semantic units. Instead, the topology of the network, i.e. the entire local neighborhood structures of the semantic units, may be considered. Therefore, an advantageous implementation of the process of Classification deals with the more general task of finding similar structures in the input network18and the knowledge database18and not just similar values of attribute units. Because of the self-similar structure of the networks11and18, this Classification process can be implemented in a generic way, thus allowing the Classification Janus to be used throughout the entire network.

During this classification step objects50.xand pointers51.xof the input network18inherit across all their classification connections42.xthe Classification Jani43.xthat are attached to the counterpart elements40.x. That is, during this classification step one copies the Classification Jani43.xthat are associated with the counterpart elements40.x,47.xfrom these elements to the corresponding objects50.x,51.xin the input network18. The Classification Jani43.xare illustrated by little triangles. This classification step is illustrated in FIG.4C. Note that the pointers47.xmay carry Classification Jani43.x, too. In the present example, however, only the semantic units40.xcarry Classification Jani43.x.

In our example, the counterpart element40.3carries a Classification Janus43.3. Since the counterpart element40.3is connected via the classification connection42.1to the object50.1, the Classification Janus43.3is copied to this object50.1. As shown inFIG. 4C, the object50.1now carries a copy of the Classification Janus43.3. The counterpart element40.6is connected via the classification connection42.4to the object50.5and the Classification Janus43.4is copied to this object50.5. The object50.2is an exception since this particular object is connected by two classification connections42.2and42.3to two counterpart elements40.1and40.5. In such a case, the object50.2inherits the Classification Jani of all counterpart elements40.1and40.5. That is, the two Classification Jani43.1and43.5are both copied to the object50.2. After the Classification step is completed, an object50.x,51.xin the input network18may carry k Classification Jani43.x, with k=0, 1, 2, . . . .

Some or all of the Classification Jani43.xperform—after having been triggered—local neighborhood analyses on the hierarchical level of their original locations in the knowledge database11, i.e., they examine the local neighborhood structure in the knowledge database11, such as roles or mandatory neighbors, and try to find similar structures in the neighborhood of the input network18. Here they use the topology defined in the knowledge database11(by means of topology tables32.x;42.1) to determine the neighborhoods within which they conduct their analyses.

FIG. 4Bshows the topology table42.1of semantic unit40.1. In addition, some or all of the Classification Jani43.xmay perform so-called upward segment neighborhood analyses in order to find neighbors which belong together because they are parts of entities on a higher scale. These upward neighbors may also represent more general descriptions of the semantic units in question. This helps to identify objects50.x(or pointers51.x) in the input network18that appear in multiple places. Overall successful upward segment neighborhood analysis gives an indication that the right meaning for the input constituents (objects50.xand/or pointers51.x) has been found in the knowledge database11.

Note that usually the objects50.xof the input network18do not carry any Classification Jani, before the classification step is initiated. The objects50.xmay carry Root Jani though.

Inheritance may also be interwoven with the classification step. For this purpose, objects50.xand/or pointers51.xmay inherit attributes and/or relations from semantic units40.xand/or pointers47.xabove it in hierarchy. The Classification Jani43.xcould for example examine the result(s) of an upward segment neighborhood analysis performed to find semantic units40.xin the knowledge database11which belong to a segment on a higher level of hierarchy. For example, if an attribute is connected to a semantic unit40.x, a descendant semantic unit, i.e., one that is below in hierarchy, is implicitly allowed to have the same attribute(s). This carries over through classification connections42.xto objects50.xand/or pointers51.xin the input network18. Let us assume that there is a semantic unit “car” and that this unit belongs to a semantic unit “vehicle” above in hierarchy. The semantic unit “vehicle” has the attribute “mobile”. The semantic unit “car” now inherits this attribute since the car is mobile, too. This attribute “mobile” now carries over through a classification connection42.xto respective object50.xin the input network18. In doing so, the input network18is enriched with knowledge from the knowledge database11.

Similarly, values of attributes may get inherited across hierarchies, where values are usually taken from the semantic unit closest to the one in question, as they can be regarded as more similar than units further away in hierarchy. For certain scaling or hierarchical connections105(is-in-particular connections or hierarchical similarity connections107) roles or other closely linked neighbors can also be inherited.

During this inheritance step, some or all of the objects50.xand/or pointers51.xin the input network18may inherit across some or all of their classification connections42.xthe Classification Jani43.xthat are attached to the counterpart elements40.xand/or47.xin the knowledge database11.

Note that the optional inheritance step and the classification step may at least to some extent be carried out concurrently.

Continuing with our example, the Classification Janus43.1copied to the semantic unit50.2performs the neighborhood analysis as follows. First it examines the counterpart unit's topology table42.1. The topology table42.1is illustrated in FIG.4B. It finds that the semantic units40.2and40.4and the pointers47.3and47.4, together with the semantic unit46, form one local neighborhood, which happens to be the segment of the semantic unit46. It now verifies whether these elements are counterparts of any of the elements of the input network18. It finds that pointer51.2has counterpart pointer47.4through the classification connection42.5. However, none of the other semantic units listed in the topology table are counterparts of elements of the input network18. The search described in this paragraph is later referred to as the “bottom-up approach”.

Next, the semantic unit46is the segment that the semantic unit40.1belongs to, and the semantic unit46has a Classification Janus43.6attached. Therefore, this Classification Janus43.6is copied to the element50.2(cf. FIG.4D). The Classification Janus43.6is triggered and performs a search later referred to as the “top-down approach”. This is done as follows. First it finds that the element50.1is classified as semantic unit40.3(through the classification connection42.1), which in turn is a special kind of semantic unit40.2(through the connection47.1). Therefore, the semantic unit40.2is also (by inheritance) a counterpart of element50.1. Then, it finds that the pointer51.1connects the objects50.1and50.2. Thus, it creates a classification connection42.7between pointer51.1and pointer47.3, the connection between the counterpart elements of50.1and50.2. Finally, it finds that the object50.3is connected through the pointer51.2to the element50.2, and the pointer51.2has counterpart pointer47.4through the classification connection42.5. Therefore, it creates a classification connection42.6from the element50.3to the counterpart element40.4.

The Classification Janus43.4also performs a bottom-up search, which leads to the classification connection42.9between pointer51.4and pointer47.2. Classification Jani43.3and43.5execute without any result.

The result of this 1stiteration of the classification process is shown in FIG.4D. Now that all Classification Jani43.xhave finished their task, the Segmentation Janus46.4gets triggered. Note that the Classification Jani43.xcould have performed most or all of their tasks in parallel.

The Segmentation Janus46.4verifies that all semantic units of the segment46, that is, the semantic units40.1,40.2,40.4,47.3, and47.4, are counterparts of the elements in the input network18. In addition, the connection structure among these input elements is the same as the connection structure among the semantic units of the segment46. Therefore, the Segmentation Janus46.4creates a new segment55in the input network18. Furthermore, it creates a classification connection42.8of the segment55to the segment46. The result of this 1stiteration of the segmentation process is shown in FIG.4E.

Next follows the second iteration. The Classification Jani43.2and43.6and the Segmentation Janus46.4get copied through the newly created classification connections to the elements50.3and55, respectively. This is illustrated in FIG.4F. Some or all Classification Jani43.xget triggered again. This time, the confidence values Cx for the classification connections42.1,42.2,42.5,42.6,42.7, and42.8get increased because of the correctly classified segment structure. At the same time, the confidence value Cx for the classification connection42.3gets decreased because its neighborhood structure could not be classified correctly. It is now more likely that the semantic unit40.1is the correct counterpart of the element50.2, while the semantic unit40.5is not.

Note that if the semantic unit40.4has a topology table which includes the semantic unit40.6and the pointer47.2, then the confidence values Cx that the elements50.3,50.5, and51.4are classified correctly are again increased, because the connection structure among these elements is the same as the connection structure among their counterpart semantic units in the knowledge database11.

The objects50.xof the input network18can also be segmented if it is determined (e.g., by anaphora resolution) that they correspond to the same instance in the input string12.

The segment units (e.g., unit55inFIG. 4F) may have Classification Jani43.xand Segmentation Jani46.xattached to themselves. As mentioned above, the meaning understanding process, according to the present invention, then continues by iterating through the above-described classification step (1ststep of the iteration) and segmentation step (2ndstep of the iteration). That is, the segment's classification connections receive confidence values Cx which depend on the confidence values Cx of the classification connections of their constituents and vice versa. The constituents (e.g., semantic units40.1,40.2,40.4,47.3, and47.4) of a segment (e.g.,46) may get re-classified depending on the segment that they belong to. Finally, segments may be grouped into segments on yet higher scales. The semantic units “car” and “airplane” belong to the segment “vehicle” and the segment “vehicle” may belong to a segment “man-made machine” on a higher scale, and so forth.

A classification connection42.xmay receive a confidence value Cx which quantifies to what extent the object50.xor51.xof the input network18and the counterpart element40.xor47.xof the knowledge database11are deemed to be related, as schematically illustrated in FIG.5. This value Cx may change throughout the whole classification step and/or the segmentation step and can be the same parameter as the weight factor on pointers, as described by the PCT Patent application WO 99/63455, International Application No.: PCT/IB99/00231, entitled “Processing of Textual Information and Automated Apprehension of Information”. In the present embodiment, this confidence value Cx is incremented as the likelihood that the respective connection is a valid one increases. That is, the larger the confidence value Cx, the better the neighborhood match of the object50.x,51.xand counterpart element40.x,47.xis. The value Cx reaches a maximum if a perfect match is established. In an alternative implementation, the confidence value Cx may be decremented instead, so that it reaches a minimum if a perfect connection is found.

The Classification Jani43.xand/or the Segmentation Jani46.xmay be scheduled by a scheduler module. This scheduler module may follow certain rules. One such rule can for example define that those object of the input network18that represent verbs are processed with the highest priority, just to give one example. Another rule may define the order in which the various objects50.xare processed. Yet another rule may define that filler-words, for instance, are not considered when looking for counterpart elements. Alternatively, the Jani receive importance values which are translated into relative execution time.

A Classification Janus43.xknows where it originally comes from. The Classification Janus43.3that is attached to the object50.1in the input network (cf.FIG. 4C, for example), remembers that its original is attached to the semantic unit40.3. Furthermore, a Classification Janus43.xis able to compare the new neighborhood in the input network18with the neighborhood in the knowledge database11. This is done in order to verify whether the neighborhood is the same as the one in the knowledge database11. If the neighborhood turns out to be the same, then it can be assumed that with a high likelihood the result of the classification was successful. That is, it is safe to assume that the respective classification connections between the objects50.xin the input network18and the semantic units40.xin the knowledge database11are valid, i.e., the Classification Janus43.xwas able to verify the arrangement. The respective classification connection42.xgets a high confidence value Cx. Again, confidence values are assigned according to certain heuristics.

As outlined, a Classification Janus43.xis able to validate whether and to what extent a neighborhood in the input network18resembles a neighborhood in the knowledge database11. If a classification connection42.xis determined to be a good one, then the classification probability (confidence value Cx ) of the respective classification connection42.xis updated.

A generic description of the tasks of a Classification Janus43.xcan include the recognition of mandatory and optional roles during the classification step by exploring the local neighborhood of the object50.xand pointer51.xor semantic unit40.xand pointer47.xto which it is attached. Thus a Classification Janus43.xneeds some knowledge about the neighborhood of its semantic unit, which it obtains by examining the neighborhood. Other tasks of the Classification Jani43.xmay be comparing the input network neighborhoods with their knowledge database neighborhoods. The results of these tasks may be used to determine the confidence value Cx of the respective classification connection(s)42.x.

The Segmentation Janus46.xmay be designed to allow segmentation of semantic units and/or pointers, de-segmentation, fusion of two or more semantic units into one semantic unit, fission of a semantic unit into two or more parts, foundation of segments, boundary optimization with respect to segments, and so forth. In other words, a Segmentation Janus46.xmay be programmed to perform steps that facilitate the segmentation of semantic units according to similarities found during the Classification process. A Segmentation Janus46.xmay further be employed to create semantic units and/or pointers and to change values of attributes.

According to one embodiment, the classification connections42.xnever get removed. Instead, their confidence value Cx is set to a low value if the value is defined to increase if a classification gets better. Otherwise, i.e., if decrementing confidence values Cx are employed, the confidence value Cx of a bad connection is set to a high value.

Likewise, one may suppress bad classification connections42.x(e.g., those connections whose value Cx is above or below a threshold), or one can remove bad connections.

Another embodiment—referred to as top-down segmentation—is addressed in this section. According to this embodiment, the Segmentation Jani46.xmay get activated when the semantic units of this segment are recognized as being ascendants of classified semantic units in the knowledge database11at a higher level of hierarchy. That is, the segmentation may take place at several levels. In this case, a new segment unit is created in the input network18and connected to the semantic units of the segment in the knowledge database11with a classification connection. In addition, all objects in the input network18that are classified as semantic units of the knowledge database11which are also ascendants of the same segment get grouped into the newly created segment in the input network18. The confidence values Cx of the classification connection of the newly created segment may depend on the confidence values Cx of the classification connections of its constituents. This method can be optionally followed to higher scales through the hierarchy of the knowledge database11until the whole input network18is segmented into one or more segments at the highest level. The classification connections of segments at a higher level of hierarchy correspond to a more general meaning or context, while the classification connections of the individual objects in the input network18contain more specific information.

Another embodiment—referred to as bottom-up segmentation—is addressed in the present section. If two or more objects of the input network18from different parts of the input string12have been classified and recognized as members of a segment in the knowledge database18, then that segment's Segmentation Janus46.xmay be triggered in order to find other possible members that may have been classified within an acceptable semantical distance. To do this, one may check the topology tables that comprise information about a semantic unit's neighborhood. Again, a new segment unit is created in the input network18to represent all of these objects, and it is connected to the semantic units of the segment of the knowledge database11with a classification connection. This newly created segment in the input network18may for example represent the same instance in the input network18, which is mentioned with different names in different places of the input string12. If the input string12refers in one sentence to a “car” and in another sentence to a “sedan”, then it is possible that both refer to the same instance. A newly created segment in the input network18may for example be called “vehicle”.

The bottom-up approach may co-exist with the top-down approach in the segmentation process since they may be favorable in different situations. Especially, for objects in the input network18that are ‘far apart’ but are still part of a larger segment, the bottom-up approach is probably more efficient. The above-mentioned scheduler module may have means to control whether and to what extent the bottom-up approach and the top-down approach co-exist.

One may use an elimination method in order to search for a particular word (object) that is not mentioned directly but rather as an anaphor (i.e., by a co-reference) or as a metaphor (i.e., with transferred meaning). As an example consider “I”, “intersection” and “sign” mentioned in the first part of an input string12(e.g. a story told). If an expression like “another car” appears in the input string12, this means that in the previous part of the string12a car must be present, even though it has not been mentioned explicitly. The elimination method may now search through every previously mentioned noun in order to see which one of them can be used as a metaphor for car. This is again a neighborhood analysis. In the example the result is “I” as a metaphor for car.

It is to be noted that some or all of the above processes lead to a logical segmentation. The result of the classification and segmentation processes may not necessarily be reflected in that any physical changes take place inside the input network and/or the knowledge database. The classification connections and like elements may be pointers in some table or memory space, for example.

According to the present invention a plurality of local algorithms (Jani) are employed to perform the meaning understanding task. A Janus can be viewed as some sort of a software module or object that is programmed to perform the above-described tasks. The Jani are implemented as generically as possible, making use of the self-similar structure of the knowledge database across all levels of hierarchy. Jani are executed when triggered by the semantic units they are attached to, or when invoked by other Jani.

The Jani described here are the Classification, Segmentation, and Root Janus, but it is conceivable to have many more Jani that perform a range of tasks, some more generic and some more specific. The important fact is that the network self-organizes with the help of the Jani on a local scale and not with the help of a global algorithm.

All known “holistic” approaches employ a global algorithm rather than a plurality of local algorithms to perform a meaning understanding task. This global algorithm has to be designed very carefully to include all possible cases and exceptions. Because this is almost impossible, most of the “holistic” approaches have failed, and only some of them have achieved minor successes.

A system in accordance with the present invention may comprise a processing unit13, as illustrated in FIG.1. This unit13may have one CPU or multiple CPUs. The Jani are executed in parallel on the CPU(s). Alternatively, each Janus may be its own processor which requires a completely different hardware architecture.

The advantage of the methods described and claimed herein over others is that the meaning understanding task consists of a relatively small number (small compared to the size of the knowledge database) of different Jani. These Jani perform their actions on a local scale, as opposed to a global algorithm acting on the entire network. Most of these Janus actions can even be performed in parallel. In addition, not all of the Jani have to complete their actions successfully to achieve an overall successful understanding of the meaning of the input string. Thus, the present invention is computationally feasible and terminates successfully under almost all circumstances and conditions.

As described above, the meaning understanding task according to the present invention is done by several Janus actions. According to this model, meaning understanding is performed in two steps which are repeated iteratively until the system10converges towards an output15. This output15can be the meaning of the input string12or even some action or reaction. The two iteration steps incorporate the above-described Jani, the Classification Jani and the Segmentation Jani. In addition, a scheduling mechanism (e.g., implemented as a software module) may be employed to control the scheduling of the Jani.

In the embodiments described so far, a Root Janus acts as the basic or starting Janus of the system and is connected to the Root Object of the knowledge database11. The Root Janus' main objectives may be to create string matches between objects50.xand/or pointers51.xof the input network18and semantic units40.xand/or pointers47.xof the knowledge database11, collect knowledge database information, clone (copy) the Classification Jani into the input network18, and finally trigger the cloned (copied) Classification Jani in the input network18.

In this particular way, the Root Janus performs the first steps of cross-linking the knowledge database11with the input network18, i.e., the initialization process of the two-step iteration process. By this first cross-linking the objects50.xand/or pointers51.xof the input network18inherit more specific Classification Jani43.xfrom the semantic units40.xand/or pointers47.xin the knowledge database11that are in a more specific neighborhood or context. From there on these Classification Jani43.xtake over and classify and restructure the input network18and possibly trigger Segmentation Jani46.xthat create new units (e.g., unit53inFIG. 4D) in the input network18by grouping/segmenting existing ones, as described further above in connection with the segmentation process.

Instead of using a Root Object and Root Jani, one can use any other approach which allows to establish at least one initial connection between one object50.xor51.xof the input network18and one of the semantic units40.xor pointers47.xof the knowledge database11. Such a connection can for example be randomly established. If an initial connection is established to one particular semantic unit40.xor pointer47.xof the knowledge database1the Classification Janus43.xattached to this semantic unit40.xor pointer47.xis cloned (copied) to the respective object or pointer. Then, the classification process is started, as described above.

The present invention can also be used for data mining purposes. The inventive approach allows to extract meaning from the textual information conveyed in an input network18and can process huge amounts of information. It can determine relationships and trends that were previously invisible or unclear. The inventive approach allows to automatically apprehend meaning of an input network18with a previously unmatched quality.

It has been described, how the concept of a self-organizing fractal semantic network can be applied to the problems of Natural Language Understanding. In the present context, input strings12(e.g., texts) are transformed into initial input networks18. Structuring and connecting these input networks18to knowledge databases11with the help of the Classification and Segmentation methods described above then accomplishes the task of understanding these input strings12.

If not otherwise stated herein, it is to be assumed that all patents, patent applications, patent publications and other publications (including web-based publications) mentioned and cited herein are hereby fully incorporated by reference herein as if set forth in their entirety herein.