WO2001093076A2 - Simulating human intelligence in computers using natural language dialog - Google Patents

Simulating human intelligence in computers using natural language dialog Download PDF

Info

Publication number
WO2001093076A2
WO2001093076A2 PCT/US2001/014829 US0114829W WO0193076A2 WO 2001093076 A2 WO2001093076 A2 WO 2001093076A2 US 0114829 W US0114829 W US 0114829W WO 0193076 A2 WO0193076 A2 WO 0193076A2
Authority
WO
WIPO (PCT)
Prior art keywords
pattern
data
response
input
patterns
Prior art date
Application number
PCT/US2001/014829
Other languages
French (fr)
Other versions
WO2001093076A8 (en
Inventor
Henry M. Harris
Original Assignee
Symbionautics Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/634,896 external-priority patent/US6604094B1/en
Application filed by Symbionautics Corporation filed Critical Symbionautics Corporation
Priority to AU2001274818A priority Critical patent/AU2001274818A1/en
Publication of WO2001093076A2 publication Critical patent/WO2001093076A2/en
Publication of WO2001093076A8 publication Critical patent/WO2001093076A8/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/216Parsing using statistical methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/42Data-driven translation
    • G06F40/45Example-based machine translation; Alignment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/55Rule-based translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/55Rule-based translation
    • G06F40/56Natural language generation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems

Definitions

  • the present invention relates to the field of Artificial Intelligence (Al) and the use of Interactive Computer Systems, Computational Linguistics and Natural Language Processing. More particularly, this invention comprises methods and apparatus for modeling human-like interactions on a computer for commercial applications.
  • the presenttheory of intelligence abandons many, if not most, of the assumptions of conventional technology made in the last fifty years by the Al community.
  • the present invention includes methods and apparatus for simulating human intelligence using natural language processing.
  • the invention comprises:
  • a novel theory of human intelligence is developed that is concrete and practical enough to be incorporated into machines that employ intelligent, directed use of language.
  • the methods and apparatus disclosed provide enabling information to implement the theory in a conventional computer.
  • the cognitive model is a theoretical basis of the entire invention. It describes the way humans learn and interact in general terms.
  • the mathematical model of information abstraction and synthetic dialog interaction and method of language-independent computer learning through training, interaction and document reading provide a mathematical basis for natural language learning and interaction between humans and a computer. It also provides the basis for machine translation from one language to another, the detection of patterns of speech for the purpose of identification, and provides the basis for personality simulations.
  • ADAM Automated Dialog Adaptive Machine
  • the cognitive model of human intelligence is referred to herein as the Associative Abstraction Sensory Model (AASM).
  • AASM Associative Abstraction Sensory Model
  • the description of the invention is organized onto three parts: (1) a description of the theory of intelligence that the computer algorithms are based on; (2) a mathematical model and (3) a computer implementation.
  • AASM Associative Abstraction Sensory Model
  • cognition involves the encoding into the brain an unknown deep representation of knowledge sometimes called "mentalese.”
  • Language production is seen as decoding mentalese into strings of symbols and language understanding as coding mentalese from symbols. Therefore cognition must reside in a hidden, unknown mechanism of the human brain. No such assumption is made in the AASM. The model does not require that hidden mechanisms are necessary to explain human comprehension.
  • the model posits that human-like intelligent behavior comes from the language itself. That is, it is the ability of humans to use language, i.e. strings of symbols, as representations of meaning in combination with other characteristics of the brain that define human intelligent behavior. How language is combined with other sensory information is the key to describing a working model of intelligence as well as reproducing it on a computer. The description of this process lies at the heart of the AASM.
  • FIG. 1 is a schematic diagram of the Cognitive Model—a model of the process of "knowing" used as a basis for the present invention.
  • Figure 2 depicts a block diagram at a high level, of the Associative Abstract Sensory Model
  • Figure 3 reveals a flow diagram depicting how a computer such as ADAM "reads" an input text stream.
  • Figure 3 is an expansion of block 42 in Figure 2.
  • Figure 3 A is an expansion of the "Find Response" block 48 of the flow diagram shown in Figure 2, illustrating how eigen words and patterns in an input sentence are identified, patterns and concepts are drawn from data bases and an output sentence is generated.
  • FIG. 4 depicts the three broad areas of capability of the Automated Dialog Adaptive Machine (ADAM) of this invention.
  • ADAM Automated Dialog Adaptive Machine
  • Figure 4A is a flow diagram showing how the data base is applied in ADAM to inputs of data in natural language in training mode.
  • Figure 4B is a flow diagram showing how the data base is applied in ADAM to inputs of questions about information in the database in operational mode.
  • Figure 5 is a flow diagram illustrating at a top level the Training process of ADAM.
  • Figure 5 A is a flow diagram depicting the construction of Meta Maps in ADAM.
  • Figure 6 is a further detailed flow diagram of the training process describing the process of storing user input in working memory.
  • Figure 7 is a flow diagram showing further detail of the conversion of user input to working memory elements.
  • Figure 8 is a flow diagram revealing details of the pattern seeker process. Figures 8- 12 detail the steps necessary to produce patterns and the process of creation of a Functor
  • Figure 13 depicts details of the Structure Pattern Match 254 process.
  • Figures 14 & 15 show details of the Structure Best Match process.
  • Figure 16 shows a diagram which describes the flow of interactive voice input to a speaker-independent, continuous speech recognizer, external to ADAM.
  • Figure 17 shows how the Recognition Event is handled by ADAM, generating a response to the user speech.
  • Figure 18 describes the process flow for creating a sentence Functor set.
  • Figures 18-21 show the process flow which creates a Functor from the user's speech input.
  • Figure 22 delineates the Generate Response process in a flow diagram.
  • Figure 23 shows the flow within the Add Stimulus to Memory process.
  • Figure 24 further describes the Response Method.
  • Figure 25 displays how the Found Concept and Response are passed to a Do External Action process.
  • Figure 26 is a flow diagram revealing the Context Switcher shown in Figure 22.
  • Figure 26a is a flow diagram showing the flow for adding a concept to conceptual memory.
  • Figure 26B describes the flow withing the context switcher shown in Figure 25.
  • Figures 27-30 depicts the process for Reading Text Documents, building Concepts therefrom and storing Concepts as Functors.
  • Figures 30 through 36 are flow diagrams which show the process whereby a Functor is created and a Pattern Match is found.
  • Figures 37 and 38 depict the ADAM Database data retrieval process.
  • Figure 39 shows the top-level pattern association mechanism.
  • Figure 40 shows how the pattern buffer connects abstractions in the primary language to abstractions in the target language.
  • Figure 41 relates the processes of training, goal processes, and reading text.
  • Figure 42 is a flow chart which illustrates methods of the invention.
  • Figure 43 relates working memory data and a pattern list.
  • Figure 44 relates working memory data and a pattern buffer.
  • Figure 45 relates working memory data and a functor list.
  • Figure 46 concerns a pattern, an original element set, an action and a locality.
  • Figure 47 is related to virtual map learning.
  • Figure 48 relates a user input string and a memory.
  • Figure 49 relates an input word list, a memory match and a working memory element.
  • Figure 50 pertains to meta maps.
  • Figure 51 concerns a voice input and a goal process.
  • Figure 52 concerns a language model and a language model tree.
  • Figure 53 relates a pattern element set and a concept.
  • Figure 54 relates an element set and a functor.
  • Figures 55 and 56 relate an element set and a raw argument list.
  • Figure 57 relates an element set and a pattern.
  • Figure 58 relates argument lists in raw set forms and in canonical form.
  • Figure 59 depicts a set of steps concerning an element set and a functor.
  • Figure 60 depicts a process that involves a concept and a stimulus.
  • Figure 61 illustrates a series of steps concerning a concept and the creation of a map.
  • Figure 62 relates contexts and concepts.
  • Figure 63 pertains to a concept and a stimulus.
  • Figure 64 is a flow chart which concerns a candidate abstract response and arguments from an input.
  • Figure 65 relates a meta map and a response concept.
  • Figure 66 concerns a partially instantiated candidate response and a concept.
  • Figure 67 relates a concept and a map.
  • Figure 68 relates a stimulus concept and a response concept.
  • Figures 69 and 70 pertain to a scenario map and a response concept.
  • Figures 7 land 72 pertain to the analysis of a concept.
  • Figures 73, 74, 75 and 76 reveal processes related to the generation of a response to a concept.
  • BEST MODE FOR CARRYING OUT THE INVENTION Overview of the Invention provides methods and apparatus for constructing and operating a machine that is able to develop and store a set of language patterns for expressing knowledge, acquire specific knowledge, substitute that specific knowledge into recognized language patterns and extract meaning from these patterns.
  • the invention offers efficient retrieval of information using natural language, the production of directed discourse, that is, the machine can be goal-oriented, and the efficient and accurate control of any number of machine tasks by the use of natural language.
  • the invention provides a method of operating an artificial intelligence system, including the steps of abstracting from input stimulus data one or more patterns which are independent of the data, and generating a response to the input data on the basis of a response pattern linked to the or each stimulus pattern and of the input data.
  • the invention may comprise an artificial intelligence system including input means operable to receive input stimulus data; processing means operable to abstracting from input stimulus data one or more patterns which are independent of the data, and response generating means operable to generate a response to the input data on the basis of a response pattern linked to the or each stimulus pattern and of the input data.
  • the invention may comprise language translation apparatus in which a generated response includes a response pattern associated with an input pattern and data in a different language but equivalent to input data.
  • the invention may comprise text or speech analysis apparatus, in which a processing means is operable to determine repetitions of patterns in input text or speech; to determine therefrom the originator of the text or speech from previously stored repetition data or statistics and to generate a response based upon the determination of the originator.
  • the invention may be used to furnish a vehicle safety system in which a response indicates safety related information or procedures associated with an input pattern and data related to vehicle operating conditions.
  • the invention may comprise a method of training an artificial intelligence system operable to generate a response to a stimulus input including the step of inputting into the system data streams formed of patterns and data, which patterns are independent of data and are similar from one input stream to the next; extracting from the data streams the patterns; and storing the extracted patterns in memory.
  • Sentence any string of words that might be used to either stimulate a thought, respond to another sentence that is used as a stimulus, or to declare information.
  • the four example sentences above are in these categories,, in order: stimulus, response, declarative and stimulus. Some declarative sentences can also be responses. Whether a sentence is declarative or a response depends upon when the sentence occurs in a dialog. For example, if it occurs after a question is asked, it is aresponse. If before, it is a declaration. A stimulus sentence can never be a response or a declarative type. The following notation is used: Ss -a stimulus sentence; Sr - a response sentence; Sd - a declarative sentence.
  • St an acknowledgment of success
  • Sf an acknowledgment of failure
  • Dialog a sequence of sentences created alternatively by a human and a machine.
  • the beginning sentence type in a sequence is always stimulus or declarative, by definition.
  • a response sentence used as the beginning sentence in a sequence would be classified as a declarative.
  • the reason for this careful separation of definitions is to never confuse the declaration of information with a request for information.
  • a dialog is defined as consisting of a legitimate sequence of a pair of sentence types defined as: Ss : St ; Sd : Sf; Ss : Sr; Sd : St; Sd : Sf; or Sd : Sd.
  • (Ss : Sr) is called a stimulus-response pair and (Sd : Sd) is called a logical inference or deduction.
  • Eigen words and eigen vectors An eigen word is a word that can be replaced by another word in the same sentence without changing the conceptual basis of the sentence. For example in the sentence "Red is a color,” Red could be replaced by blue giving: “Blue is a color.”
  • Both the word red and blue are eigen words. Both sentences can be represented by the following notation: ⁇ Red Blue ⁇ is a color.
  • ⁇ Red Blue ⁇ is called an eigen vector.
  • the set of all names for colors is called the eigen vector space for color.
  • ⁇ Red Blue Green .... ⁇ is a color is an eigen vector space representation of all of the possible sentences that can be generated about the concept of names of a color.
  • a related notation to the eigen vector space representation above is the following: ( ).en is a color. This notation is a way of expressing the pattern inherent in the eigen vector space for color. Pattern: A pattern is an expression of the type: ( ). en is a color. In this expression, n is an integer, e.g., ( ).e23.
  • Instantiated setVariable An example of an "instantiated" setVariable is : (Red).en. Abstraction: The process of pattern creation. Consider the sentence: John went to school. An abstraction of this sentence is ( ).e23 went to ( ).e89. The integers 23 and 89 have been selected only as examples.
  • Patterns also can create a vector space.
  • ( )e23 is the setVariable of all male first names and ( ).e89 is the setVariable ⁇ school lunch dinner ⁇ .
  • This sentence is an example of a vector space chosen to be called a "pattern space.”
  • ( ).e45 which is the setVariable of all female first names is also present. Then, the expression
  • Real Space Ordinary words can also form vector spaces in what has been named "real space.”
  • the ⁇ Red Blue ⁇ eigen vector example above is a vector space that exists in real space. By definition a vector cannot exist in both pattern space and real space.
  • Complete pattern All the patterns used in this section so far are examples of "complete" patterns.
  • a complete pattern is one that does not rely on external information to complete its meaning.
  • Incomplete patterns are ambiguous and in themselves do not contain a concept. Examples of “incomplete” patterns are: It was ( ).e56; That was a good ( ).e49; etc. Making an incomplete pattern into a complete one is a type of "disambiguity.”
  • a Functor is as a construct with two components: a pattern and an argument list, as in the following example:
  • the argument list is any list of set variables and functions.
  • a Concept is a list, tree structure that can contain any amount of complexity.
  • the argument list serves as potential instantiations of a pattern.
  • red is a color can be written:
  • the AASM theory recognizes two distinct components of intelligence: language capability; and the ability to use language for directed tasks. In human beings, these are primary but it is recognized there are other components of intelligence. Thus intelligence in this model is not one thing, but rather a series of interlocking capabilities. Language Capability
  • language capability has been defined as the ability to decode a list of words into a deep-knowledge representation and back into language. Unfortunately, this definition assumes the model, which is a logical error. We need a better way of defining language capability.
  • Language is composed of many combinations of simple patterns.
  • Language capability in AASM is defined as the ability to "transform"sentences (symbol strings) and the ability to create and instantiate abstractions, that is, the process of creating patterns represented by concrete examples. These processes are defined in the following sections.
  • a transformation relationship simply describes how one sentence can produce another sentence. As an example, consider the transformations between a stimulus and a response:
  • the stimulus and response can be written as pairs:
  • Equation 7 i and j are integers and represent all possible transformations between ith stimulus to the jth response. This means for the ith stimulus there are n possible responses where n can be any number. There are similar expressions for all legitimate (legal) sentence transformation pairs. Only legitimate (legal) sentence transformations are allowed but there may be any number of transformations possible.
  • a sentence can be abstracted by replacing eigen words with corresponding uninstantiated set variables.
  • Red is a color
  • ( ).e23 is a color.
  • an Abstract Association is produced.
  • the ability to store abstract associations is a key part of the intelligence model.
  • the abstractions are deductive, the subset of Abstract Association is termed a Deductive Association.
  • the Associative Abstraction Sensory Model describes how humans learn language and are able to produce intelligent dialogs. The latter is more than just memory and association. Human beings respond differently in different situations, solve problems and even have their own agendas.
  • the following discussion begins by introducing the model for cognition. That is followed by an explanation of how language is learned, and finally how this model is extended to produce directed dialogs.
  • Figure 1 schematically describes the Cognitive Model 10 of learning used in the present invention.
  • Human beings learn language at an early age, at first by simply mimicking the adults or older children around them. Parrots can do the same thing. Parrots can learn that when they hear a certain pattern of sounds, another pattern of sounds is expected. What differentiates humans at a very early age is the ability to detect patterns in the sequence of sounds and to associate those patterns with real-world objects and situations (although many mammals and birds apparently have some pattern-using capability).
  • Sensory information 12 e.g., sight, sound, touch, etc.
  • Sensory information is associated with things in the real world and stored in a person's associative memory 14. For example, if a parent points at a chair and says "this is a chair” the child associates that sentence with sensory information, in this case a mental picture of the chair, how it feels to the touch etc.
  • a human being needs only this information to associate the word "red” as a word that can be used in a pattern. With only this much information one knows how to describe reality in the context of language. Deep knowledge, such as the fact that red is associated with a particular frequency in the optical spectrum, is not required for every day conversation, but can be added as a series of deductive associations. Thus human knowledge is a combination of inductive knowledge about language and deductive associations that connect language elements.
  • the AAS model organizes information in bundles called the "context" that allows information on specific subjects to be efficiently processed by grouping together related associations and patterns. It might be that this is an unnecessary step and a disadvantage of the model, but experiential knowledge suggests that this is the process the brain uses to organize information.
  • the processes of the present invention are not merely methods for processing information efficiently but, with extension, also serve as a way of directing comprehension and discourse.
  • Every algorithm in the AAS model is also an information compression and retrieval method. If intelligence is the outcome (perhaps inevitable) of evolution finding ways of storing and retrieving large amounts of information necessary for survival in the brain, the AAS model simulates that. It may be that life develops intelligence only when situations arise that give a survival advantage to processing and storing large amounts of information.
  • Figure 2 shows inputs as speech 40 to a speech recognizer 41.
  • a keyboard or other reader may be used as an input device.
  • Figure 2 is helpful in understanding the process by which a learned stimulus is able to produce an intelligent response from the invention.
  • the speech recognizer 4 land the (text to speech) speech synthesizer 26 are generally known and not part of this invention. Therefore, they are not described in detail in this Specification. However the effectiveness of these modules are increased by ADAM technology.
  • a speech recognizer can understand more words if it has an expectation of what is to be said, based on the current context.
  • a Speech Synthesizer can be made more understandable by subtle modifications of the words, such as emphasis, that is possible through understanding of the meaning contained in the language provided by ADAM technology.
  • a Stack 24 is simply a list of Concepts, which are normally accessed from the top-down. This process is driven by (1) the text string 50 produced by the Speech Recognizer and (2) a module called the Dialog Supervisor 36.
  • a text string 50 is received from the Speech Recognizer 41 it is converted 42 to an instantiation of an abstract concept (or Concept) and handed to the Dialog supervisor 36.
  • a primary function of the Dialog Supervisor 36 is to recognize the current context of the dialog. It does this by searching the Contextual Database 32.
  • the Contextual Database 32 (which can be edited by an external program called the Context Editor) contains information that the Dialog Supervisor 36 can use to actively direct the flow of the dialog. The default action is simply to respond to' a stimulus 16, for example in answering a question.
  • the Dialog Supervisor 36 can use its knowledge of context to load the Speech Recognizer 41 with words and grammars that are expected in the current context.
  • the stimulus 16 is abstracted from the input text string 50 and the Pattern Buffer 34 is searched for an identical abstract stimulus 16. When one is found, a copy of the associated response pattern is created and instantiated with any words found in the original stimulus 16. (The Pattern Buffer 34 contains information about which words are identical in both the abstract stimulus and the abstract response patterns.) At this point, a response 18 has been created with usually only a partial instantiation.
  • the Pattern Buffer 34 also contains inferences as abstractions, although there are stricter rules about what can be abstracted as an inference in the Pattern Buffer 34. If the response pattern is not completely instantiated, the inference patterns are instantiated and "fired.” Firing an inference means that the Conceptual Database 30 is searched to see if the instantiated inference is contained there. This mechanism is very useful because it can resolve ambiguities and simulate deductive reasoning.
  • mapping 44 is the association of patterns of instantiation with stimulus-response pairs. For example the question “what is 2 plus 3?" is a mapping problem since it maps 2 and 3 into 5 by associating it with a certain pattern. The program stores a large selection of mapping algorithms and “learns” how to map by finding the best algorithm during training. Another mechanism is called an “Action.” This is a facility for associating an abstraction with an action that can be performed by a computer such as reading a file.
  • the Goal Processor 22 Supervising the total process is a Goal Processor 22.
  • the Goal Processor normally takes concepts off of the Stack 24, translates them into a text string 50 (with any instructions on emphasis and timing) and hands them to the Speech Synthesizer 41.
  • the Goal Processor 22 handles timing issues involved in producing a natural dialog. It also can interrupt human-machine dialogs when external issues arise such as low battery power or meta-goals such as a need for certain kinds of information. Many applications require that ADAM have a self identity, and that has implications for goals that are handled by the Goal Processor 22.
  • Figure 3 reveals a flow diagram depicting a process 51 by which a computer system, for example ADAM, "reads" an input text stream 50. In the current invention, a computer system learns by reading written language or hearing spoken language.
  • a response 18 to a response link that is, a deductive association link
  • the AAS model 20 uses deductive association to make knowledge unambiguous and to make it declarative and explicit. This process eliminates the sometimes "shorthand" characteristic of language (e.g., the use of pronouns) and makes the conceptual knowledge contained in language explicitly available in memory as Concepts (recall the definition of a Concept from above).
  • Language learning in the AAS model is accomplished by structured, interactive induction.
  • Early training of a computer to implement the model consists of inputting sentence pairs which are analyzed to produce abstract information about language. No specific world knowledge is stored in the computer at this stage since it is later abstracted from input patterns. It is at the early training stage that eigen vector sets are produced by noticing similarities between sentences. Once eigen vector sets are created, the next step is to create and store simple patterns using eigen vectors as markers. As with humans, it is important that only simple grammatical patterns are used at this stage. The simple patterns are used as the basis of creating more complex patterns later. This structured way of learning grammar is what makes Golds "proof,” that inductive learning of grammar is impossible, invalid.
  • the AASM automatically uses the simple patterns to build more complex patterns.
  • the patterns are stored in memory as tree structures with a pattern representing the central abstract concept of the sentence, being the root of the tree.
  • Complex patterns are created from simple patterns by using two simple rules: (1) No pattern can exist twice in memory and, after the first version is created, only a unique symbol for that pattern can be used; and (2) no pattern can contain a sub-pattern without explicitly containing the unique symbol for that pattern.
  • the last learning stage is creation of a data base of world knowledge. Since grammar is now learned, inputting world knowledge is done either by human interaction or reading in text. The result is a list of Concepts called the Conceptual Database 30. The stages of learning are summarized in Table One. Note that this method does not require any pre-existing knowledge of language or grammar.
  • a word can be any series of characters or a symbol.
  • the theory does not depend on the particular words that are chosen , but how those words are used to convey meaning.
  • the meaning is captured by abstraction and association. If the set of all possible words in any particular language is S then a particular sentence is an ordered set, or vector, in the space given by S.
  • M 1 ij is a matrix rotation and Wlj is a word vector.
  • Ml ij Wlj is a sum over j; that is, repeated indices are summed.
  • the elements of M can only have the value 1 or 0.
  • M selects a word from its vector space.
  • the Wkj word can be a "null word” — that is, no word—but there are restrictions of how many null words are allowed. See below.
  • a sentence is defined as a set of k orthogonal rotations in k vector spaces. Some vectors spaces only contain one word. In that case the associated matrix is equal to 1. It is important to note that the vector spaces are dynamically modified by extending the number of dimensions. This reflects the fact that this is a learning model.
  • the first objective of this mathematical theory is to find a way to represent similar sentences.
  • N sentences can be described as a series of rotations given by Equation 9.
  • working memory In the computer, there is a “working memory” that stores raw input as lists of similar sentences. It is from this raw material that abstract knowledge is created.
  • a particular value w of the setVariable is represented by (w). en
  • a pattern is created by replacing the eigen value by its corresponding setVariable. Recall that this process is called Abstraction.
  • a Functor (f) is a way of expressing a sentence by explicitly separating eigen values and patterns.
  • a "complete" sentence expressed as one or more functions is called a Concept (C).
  • f ⁇ (argument list) p>* *The less than and greater than signs are used as delimiters, not as logic symbols.
  • Element p is a pointer to a pattern.
  • the argument list can be either eigen values or functions.
  • the expression is called the canonical form for representing concepts.
  • the Conceptual Database 30 contains Concepts created by reading in text or processing speech input 40. Concepts are created by de-constructing sentences into patterns and eigen words.
  • the Conceptual Database 30 is a repository of knowledge.
  • the Pattern Buffer 34 though not a repository of knowledge, is as important.
  • the Pattern Buffer 34 does not have specific knowledge about the real world. That information is relegated to the Conceptual Database 30.
  • the Pattern Buffer 34 contains information about how to extract information from the
  • Reading consists of the following process: dividing the text string 50 into sentences 52; converting the sentences into concepts.
  • the above sentence is converted into a concept having a set of two functions, Cl: (fl f2) which is abstracted as follows (the digits identifying the eigen vector spaces and pointers being arbitrary):
  • the pattern referred to by the first pointer p2.1 in the first Functor is:
  • a stimulus 16 is entered into the computer, for example, by a person:
  • ADAM "knows" that the pail contains water because it recognized the pattern gl . l which embodies the concept of an object containing something and, in addition, can generate a way of verbalizing that concept as a response to the question. If this seems confusing, remember that gl. l can also be part of a S-R pair. It is the information contained in the S-R pairs that allows the program to know how to answer questions even when information is embedded inside sub-units of the language. Compare this method with traditional parsing methods which depend on static identification of parts of speech. In real language, the part of speech of any particular work can change by simply embedding the sentence it is contained within inside a larger unit.
  • the pointer p2.1 represents the abstraction of someone doing something up the something.
  • the program has abstracted the specific details of identification, motion and place. This may seem an odd way of abstracting the idea, but the particular form of the abstraction in the computer does not matter. It only matters that it has found a way to store how to use language separate from the specific details. The abstraction process is completely automated. Once the program has found a way to abstract a particular idea, it will use that method consistently.
  • One of the functions of the Pattern Buffer 34 is to obviate the differences.
  • the Pattern Buffer 34 stores lists of patterns, not just a single pattern. From the Pattern Buffer 34, the program knows that either sentence is the answer to the stimulus Who hit Mary? In other words, one of the functions of the Pattern Buffer 34 is to record the duality of language.
  • the Goal Processor 22 is the highest level process. It takes sentences on the Stack 24 and hands them to the Speech Synthesizer 26. It is the responsibility of the Goal Processor 22 to mange realtime response to stimulus 16. The Goal Processor 22 can override verbal response if necessary.
  • the Conceptual Database 30 contains real-world knowledge
  • the Contextual Database 32 can direct discourse in certain circumstances
  • the Pattern Buffer 34 which contains information about how to extract knowledge from the Conceptual Database 30.
  • Figure 3 A further expands the "Find Response Pattern" process 48 of Figures 2 and 3.
  • An input sentence 1 10 obtained from the convert-to-sentences process 52 is handed to a routine 120, 122 which identifies all the eigen words ⁇ en...em ⁇ and patterns ⁇ ( )p ⁇ from the Conceptual and Contextual Databases 30, 32.
  • the result is a Functor 122 or set of functions.
  • the concept is abstracted by removing the eigen words and a search 124 is performed in the Pattern Buffer 34 for a matching abstraction. When a match is made, an abstract response is generated by following the links in the Pattern Buffer 34. Once found, a search 128 is made of the Conceptual Database 30.
  • the eigen argument list 130 is created for the search.
  • Some of the eigens ⁇ er..es ⁇ can come from the stimulus 16 and the rest are filled in by the found Concept 132.
  • a sentence is created 134 from the eigen argument list and pattern 132.
  • a test 126 is made to see if the sentence 110 is complete, i.e., all set variables have been instantiated. If true, an output sentence 112 is generated.
  • the output sentence 112 is placed on the stack 24, passed through the goal processor 22 to the speech synthesizer and delivered to the user by audio.
  • the output sentence 112 may also be printed or reproduced by most known means.
  • Figure 4 shows the modules describing three broad areas of capability and operability of the
  • ADAM Automated Dialog Adaptive Machine 200, a preferred embodiment of this invention.
  • the first module, Training 201 reveals how ADAM "learns" information input by a user.
  • a second module, Interactive Dialog 202 describes ADAM's capability to do interactive, goal-driven dialog. Read Text
  • Documents 203 module describes machine 200 reading and comprehension.
  • ADAM 200 is intended to simulate the human capability to converse and understand in a practical, efficient and useful way.
  • the inventor views human intelligence as the result of several interlocking simulation processes that can be on programmed on a computer.
  • the inventor does not claim that the described processes can simulate all capabilities of human intelligence, only that enough of this capability can be simulated to perform useful tasks.
  • ADAM 200 as does human intelligence, rests on six major pillars of information processing and together are the major innovations of this invention. These are: (1) Abstraction of information into patterns; (2) Association of stimulus and response patterns; (3) Abstraction of logical Inference; (4) Mapping of objects and abstract concepts into concrete reality; (5) Reasoning by analogy; and (6) Learning language and knowledge through training, reading and human interaction.
  • Figure 4A shows how natural language information 50, input in training mode 201 , interfaces with the data base 30, 32, 34 and is retrieved for use in ADAM 200.
  • Figure 4B depicts how questions about information in the data base, input in natural language 50 in interactive dialog mode 202 interface with the data base 30, 32, 34 to produce an output of answers and data forms 206 from ADAM 200.
  • Figure 5 shows that user inputs may be a stimulus 211, a response 212, an "if statement” 213 or an "else statement".
  • the inputs may be conditioned in time 217.
  • the user selects 218 the time 217 in which the condition should be applied relative to the time of the response. Note that this is not the tense of the condition, which can be different. This selection allows a comprehension engine to make an inference that takes into account the passage of time.
  • Link 220 allows creation of a data structure that defines how each of the user inputs 211, 212, 213, 214 link together.
  • the user selects 216 any external action215 associated with a response 18. This ultimately creates an association between an abstraction and an action 215. For example, if an associated response 18 is "a wrench has been selected,” the action 215 selected should be able to deal with the abstract notion of selecting something. The action 215 should deduce from a particular stimulus 16, the statement “select a wrench.” This statement is the one which would elicit the response 18 "a wrench has been selected.”
  • the user selects 223 between non-local and several choices of locality 225.
  • "Locality" 225 relates to identifying a concept as finite in space and time.
  • a person is "local” because the concept of a specific human being is local to where that person is in space and time.
  • the concept of a human being is non-local. That is, the attributes of a human being are independent of space and time. If the response was "Jane has blue eyes,” this is a local statement since it is only true for a particular point in space and time, that is, where Jane is. However, if the response was "humans have two legs,” that is a non-local statement since it is true for all humans everywhere.
  • Statements that should be labeled "local” are only statements that define a particular type of locality. The most important of these is the concept of a person. Example stimulus-response pairs that define the differences between people should be input in the training process. The main purpose of this is to allow ADAM 200 to disambiguate references. It also serves the purpose of being able to separate things in time and space.
  • the program should be established by the user in a practical language to identify reference tags for each locality.
  • the non-local tags are: he, she, it, they.
  • the user can create new information at any time associated with each of these tags but the tag names should be used consistently. This is important since the program keeps maps for different non-local objects for the purpose of disambiguation.
  • This aspect of training substitutes for the human experience of being able to map concrete objects with human senses as a part of reality.
  • a baby learns to associate "mommy" with only one local object, for example, and that learning is eventually integrated into language about local objects.
  • a Map that describes how to create a Map is called a Meta Map.
  • a Map is created when the user indicates he or she is introducing stimulus-response pairs 16, 18 about a local object or an external action 215. Theusr is allowed to identify a locality with a tag such as "he", “she”, or “it” for convenience, although that is not necessary for proper functioning of the program.
  • the information needed by the program is that stimulus- response pairs 16, 18 are about local objects and what kind of external action 215 is associated with the patterns being created.
  • the user can "lock in” a particular locality. All examples then input while the training is “locked” are about one particular local object.
  • the program uses this information to create an array of setVariable indexes called “discriminators.” For example, if the user should input several stimulus- response pairs 16. 18 about someone named John, the program sees the setVariable for a male first name is being repeated while locked on a local object. It stores this information. Later, when the program detects any male first name, it creates a unique Map for this local object. The Map collects indexes into the Pattern Buffer 34 for a local object. This information is used to generate questions about a particular locality. For example, it could generate questions about a persons wife and children.
  • MapProcessor is called during comprehension. See the later discussion about the Read Text Documents
  • the routine can resolve automatically mathematics questions based on learned algorithms.
  • the technique used to create Maps is extended to data base applications.
  • the program has tested algorithms until it could predict the results of examples it was given .
  • the program applied a list of algorithms stored in memory until it succeeded in predicting the result.
  • the program associates the correct algorithm with the pattern associated with the input sentence. Once it has found the way to return a correct answer, the program recalls the method when a similar sentence is entered.
  • the database application technique produces methods to extract data from a data base 30, 32, 34 based on examples given to ADAM 200 during training.
  • Figure 4B indicates that users can take advantage of this feature to find new relationships in their data bases.
  • a Locality Meta Map 226 stores data about how to differentiate between different kinds of mapping situations and how to tell the difference between different kinds of maps 228.
  • Figure 5 A contains a structure diagram for Meta Maps 226.
  • Locality Meta Maps 226 have two kinds of data structures.
  • Type (1) structure has indexes to Pattern Buffer entries that were made in training while in the "local” mode. These are stored to allow ADAM 200 to ask questions about local objects.
  • the Pattern Buffer 34 contains abstracted stimulus-response pairs which have "locality". For example, upon being accessed by a new user, the program can access its Meta Map 227 about people to ask question about the user's marriage, family etc. It can do this because the Meta Map 227 tells ADAM 200 that a person has all these possibilities that are "local” to him or her.
  • a second type (2) is a list of patterns, (empty set variables) and eigen words.
  • the locality maps are checked to see if there is a matching eigen word or setVariable. If there is a match, the Concept is added to a Map 228.
  • the Maps 228 keeps track of particular instances of local objects. For one thing, this provides for efficient pronoun disambiguation.
  • Locality Meta Maps 226 are a specialized subclass of Meta Maps 227. Meta Maps 227 in general are used when there is a need to simulate a capability to predict. As described earlier, there are additional built-in maps 228 for mathematics and counting. For example, if a user asks "what is the square root of three?" the program may not at first know. But using the Meta Map's math algorithms, after shown examples, the program can predict the answer. In effect, ADAM 200 can learn to do math, on its own, in any language.
  • Maps 228 can help solve is a counting problem. Suppose the program has been told there are three peas in a cup and now one has been taken out. How many peas are in the cup? This is a trivial problem for a person.
  • a Map 228 can store the number of peas as a "local" characteristic of a cup and associate the change in this characteristic with the concept of taking something out of the cup. This process combines locality mapping with mathematical mapping.
  • Her name is Jane. Jane is female.
  • Table 3 tells the program that the specific name (e.g., Jane) can change, but words like name, her, female, gender and she are fixed for this locality Meta Map 227.
  • ADAM 200 uses this information to decide if a reference is being made. In the sentence “her pride was hurt,” Adam would associate this sentence with a "she” Map that could contain other information about the local object— in this case a female human. If the question were asked, "whose pride was hurt,” ADAM 200 would look for a statement like
  • Map 227 can spawn a Map for a particular instance.
  • a Meta Map 227 is created which, among other things, establishes a list of eigen types for human names and gender. When these words are part of an input stimulus 16, a Meta Map 227 is created.
  • ADAM 200 knows that two Maps refer to two different things because the specific eigen values are different. In the example above, the eigens that are not constant are used to differentiate between different objects of the same locality. Note in the example that this automatically handles names and points of view.
  • Working Memory 219 causes user text strings to be tokenized and stored as lists of objects.
  • the various types of text strings 50 that is, stimulus 16, response 18, "if" 213, etc., are linked together in working memory.
  • Working memory is temporary and serves to store user examples of stimulus-response links 220 and associated logic and action statements 215. These examples are used to build abstractions in pattern memory 30,32 and the pattern buffer 34.
  • Figure 6 discloses a flow diagram for the processing and storing into working memory of user inputs 211-214.
  • the user input string 230 is matched 231 to existing working memory 237. If there is no match, the user input string 230 is added working memory 237. If the difference 235 between the input string 230 and stored memory 237 is small, the user input string 230 is forced 236 to be equal to the closest match.
  • Figure 7 shows the flow diagram describing the detailed process of working memory storage.
  • User input 230 is compared with existing memory 237 and one data structure is created from both.
  • the resulting structure replaces discrete words with rotation matrices that select individual words from a vector space. This is stated in equation form as follows:
  • w(i) is a discrete word
  • R(i, j) is a rotation matrix
  • E(j) represents an eigen vector space
  • E(j) is the vector space (Jane Alice Paula). If the program encountered the following two sentences: "Alice went to the store” and "Jane went to the store,” the program would represent both sentences as the following three by three matrix:
  • Working memory 242 is a list of raw input data created during training. In working memory 242, sentences and clauses have been converted to arrays of objects containing hashed integers representing individual words. In addition, Working Memory 242 contains a rich set of links that give information on how to associate stimulus 16, response 18 and conditional links . Working Memory 242 is the raw data from which the abstract data in the Pattern Buffer 34 is created. Pattern Seeker
  • the Pattern Seeker 240 finds simple patterns and stores them, leaving the stimulus:response pattern in the Pattern Buffer 34.
  • the Pattern Seeker 240 finds responses 18 that have the following patterns: (1) the pattern contains one or more eigen sets; (2) the pattern has one or two words bounded by an eigen set and an eigen word.
  • Pattern Buffer maintains the association lists between patterns. Patterns are categorized and flagged as stimulus, response, inference and action. The following convention is used:
  • a single element of a pattern buffer can be noted by:
  • (a b) is a list of the subjects a and b.
  • the integer indexes indicate the pattern and pattern level.
  • Any number of responses and inferences can be associated with a stimulus. For example:
  • stimulus 45, second level is associated with two responses. Logically, this means that, in an abstract sense, that if the pattern s45.2 is detected, the "form" of the response (meaning not the actual content) can either be r23.1 or r35.2. However, if the association was actually
  • Pattern Seeker 240 program would create the pattern
  • the postulated pattern ( ).e56 is the vector space ( ⁇ my family ⁇ ⁇ my relatives ⁇ ).
  • the expression in brackets is called a vector set and is represented by the same rotational matrix structure. However, instead of being a rotation in eigen space, this is a rotation in "pattern" space.
  • the word "pattern” is used to mean an empty setVariable and also lists of empty set variables.
  • Figure 9 is a further detailed flow diagram of Creating a Pattern process 244 shown in Figure 8 flow diagram.
  • a pattern is abstracted (made) from Working Memory 242 data.
  • the abstracted pattern is searched for a "clause".
  • a clause is defined as a sub-pattern within a sentence. Clauses are detected in two ways: (1) by comparing with known simpler patterns; (2) by recognizing that many clauses start with certain words like to, from and about. If the pattern "X is a Y" is known and the sentence
  • a Functor List 246 is an abstract form of a segment of Working Memory 242. It is similar to a
  • a pattern is an empty setVariable and lists of empty set variables.
  • ( ).e4 is full ⁇ (( ).e7) p2.3>" where ( ).e4 is an empty setVariable and ⁇ (( ).e7) p2.3> is a Functor containing an empty setVariable.
  • Figure 10 is a further detailed flow diagram of the process of making a pattern 248 from a
  • FIG 11 is a further detailed flow diagram of the process 250 of making a Functor 256 as shown in Figure 9.
  • the element set 252 of the memory segment is processed by the Structure Pattern Match 254 to find an existing pattern that best matches the element set 252 or install a new pattern if no match is found.
  • the objective of the Structure Pattern Match 254 is to create the raw form 256 of the Functor argument list
  • Creating a Functor 258 comprises the process depicted in Figure 1 1 A.
  • the argument list 255 in raw set form is converted to Functors 257 and put into a canonical form of Argument List 259.
  • Figure 12 presents additional detail of the process of creation of a Functor 256 from the element set 252 of the memory segment.
  • Figure 13 depicts details of the Structure Pattern Match 254 process.
  • the best match 260 to the element set 252 is checked for a pattern 262 already existing. If one exists, the pattern and the element set 252 is kept as part of a raw argument list 266. If no pattern exists, a pattern is created and installed 264 with the element set
  • Figure 4 reveals the Interactive Dialog module 202 of ADAM 200.
  • Figure 16 shows a diagram which describes the flow of interactive voice input 300 to a speaker-independent, continuous speech recognizer 302, external to ADAM 200.
  • the person skilled in the art will recognize that other types of textual input devices may be used in place of verbal devices, for example, keyboard entry, scanned text, etc.
  • the speech recognizer 302 returns a "Recognition Event 304.”
  • the Recognition Event 304 is handled by ADAM 200 in a process that is described in Figure 17.
  • the Process Recognition Event 304 generates a response 312 to the user speech input 300, 302.
  • the response 312 is in the form of a Concept data structure which is then placed on the stack 24.
  • FIG 18 the process flow for creating a sentence Functor set 310 is depicted.
  • the elements 313 of the user's input 300, 302 are obtained by comparison to the language model 306. From these elements 313 a Concept is created 314.
  • a Functor is made 316 which describes the Concept. The Functor is appended to the Concept.
  • the raw Argument List 322 is converted 326 to Functors and a canonical form of the Argument List 328 results.
  • the Generate Response process 312 is further delineated in the flow diagram of Figure 22.
  • the Stimulus Concept 338 is added to memory 342.
  • Figure 23 shows the continuation of flow within the Add Stimulus to Memory process 340.
  • a Concept 360 created from user input 300 is added to the Conceptual Memory 362 data base.
  • a decision is made 364 about the "locality" of the Concept 360 and a Map is created 366.
  • an interrogative statement requires a response.
  • a declarative statement is information to be learned and stored. Therefore, the Stimulus Concept 338 is examined 342 to determine which case it is. If it is not declarative statement, a Response Method is determined 344. If the Response Method 344 returns a Concept from the data bases 30, 32, the Response is found and can be processed 348.
  • the Response Method is further described in Figure 24.
  • a search is undertaken over all of the primary patterns in memory for a Response Set 370 , a pattern like that of the Concept Stimulus 338. From the found Response Set 370, the Conceptual data base 30 is searched for a matching Concept. The Concept and Response are retained 376 for further processing 348.
  • the Found Concept and Response 376 are passed to a Do External Action process 382 as displayed in Figure 25.
  • Some Responses 376 held in memory may have had an external action attached to them.
  • a robotic application has as a possible Response "the wrench is selected.”
  • That Response has an action code associated with it that implements the external action.
  • the input Concept 376 is returned and eventually placed 384 on a primary stack 386 and output as speech, text or both.
  • this code returns an appropriate Concept as a Response 376.
  • the Response 376 may not contain a Concept but only an inference.
  • the Conceptual Database 30 is then searched to see if the instantiated inference is contained there 388. This step is called “Firing an Inference” 388. If an inference did create a Concept 376, the Concept 376 is passed through the Do
  • the Context Switcher 396 flow is depicted in Figure 26.
  • the program searches the Contextual Data base 32 for a Concept whose context would suggest the Concept 376 in question. If such a Concept is found there, the Conceptual Database 30 is searched 402 to see if the Concept, that is, the instantiated, generated inference has been stored there. If so, that Concept is placed on the primary stack 386, preparatory to processing for output.
  • Reading Text Documents 203 The third module comprising ADAM 200 is Reading Text Documents 203. As seen in Figure 27, he text file is handled 420 in a conventional way in respect of opening 421, reading 422 and closing 426.
  • Figure 28 expands the textual input 422 Comprehend process 424.
  • the input text string 426 is added to memory 428 and concepts are constructed 430 from the statements input.
  • Figure 29 the Building of Concepts process flow is shown.
  • a set of Functors is created 430 from the element set 432 contained in the processed text string 426.
  • the prior discussion of Figures 18, 19, 20, 21, 14 and 15 support the flow diagrams depicted in Figures 30 through 36, respectively.
  • the flow diagrams show the process whereby a Functor is created 438, 450, 452 and a Pattern Match is found 440, 460 and
  • ADAM The ability to perform database extraction is an important application of ADAM. Normally database information retrieval is a costly and time-consuming process requiring a lengthy requirements process, database programming, debug and testing procedures. ADAM can be substituted for most or all of this process.
  • ADAM Database data retrieval process is shown in Figures 37 and 38.
  • Figure37 examples are given to ADAM including a database query (in natural language) and an example of how the program should answer.
  • ADAM treats the database as a map and uses its prediction algorithms to guess how data from the database was used to formulate an answer. It does not matter if there are ambiguous ways to give any one particular answer.
  • ADAM can use multiple examples to find an algorithmic solution that solves all examples simultaneously. This method is only limited by the number of algorithms that are stored internally. Once the learned algorithms are stored as associations with natural language, the algorithms can be used to extract data as shown in Figure 38.
  • FIG 39 shows the top-level pattern association mechanism.
  • the input sentence is abstracted and a pattern buffer is used to find an abstraction that represents how to express a response.
  • the conceptual database is then searched for a concrete expression that matches information found in the input sentence.
  • the pattern buffer connects abstractions in the primary language to abstractions in the target language.
  • the target language abstraction is then matched with concepts in the target language to perform the translation. In this way, the meaning of sentences is used to perform the translation.
  • the same mechanism as in Figure 40 is used except that the training necessary to create the pattern buffer comes from training in translation.
  • ADAM can also be used for identification purposes. Every person has characteristic patterns they use in writing and in speech. During text and speech comprehension, ADAM matches abstract patterns to speech patterns as a uniform comprehension mechanism. By simply counting the number of each pattern used by different individuals, a characteristic signature can be developed for recognition purposes.
  • Prob(i) n(l)*p(l,i) + n(2)*p(2, i) + n(3)*p(3,i) + ....
  • n(j) are measured numbers of usage of each pattern p and p(i, j) are individual probabilities of each pattern based on calculated statistics of individuals.
  • ADAM The capability of ADAM to comprehend text and perform interactive real-time dialog can be used to provide a personal assistant and companion that has up to date information on topics of interest to the user. This information will be comprehended in real-time over the Internet by the ADAM-driven companion and made available as natural conversation. From the viewpoint of the user, this has the advantage of quickly accessing information of interest in the most natural of ways. It would simulate an attentive, knowledgeable person who would be available for helpful information or just companionship 24 hours a day. People living alone or in remote areas might find this a helpful psychological aid.
  • ADAM can provide interactive assistance through a voice wireless link.
  • the worker can describe a situation and ADAM can provide procedural help, situation analysis, and descriptions of other information that is developing from a remote area. Since ADAM has the ability to learn scenarios, ADAM can anticipate next steps, warn of possible dangers and provide reminders of plans and procedures in complex situations. This could apply to many different tasks and situations such as a mechanic repairing an automobile, an astronaut servicing a spacecraft, or even a soldier on the battlefield.
  • ADAM On-board vehicle safety issues can be addressed with ADAM technology by providing emergency information that goes beyond pre-canned warnings.
  • Complex technology on today's airplanes, cars and military vehicles can be improved by ADAM's ability to conceptualize failures and verbalize emergency procedures in real-time.
  • ADAM's ability to create descriptive maps of objects can be used to translate descriptions of objects and scenes into drawings of those objects. This capability can be used by architects, movie makers, interior decorators, or anyone who want to achieve an immediate visualization of anything from a verbal or written description.
  • ADAM can be used to create prototypes of articles and scientific papers by interacting with the author.
  • ADAM can learn the habits and styles of a particular author and produce preliminary prototype articles and papers by interacting verbally with the author. For example, by just stating a topic and type of document, ADAM can lay out the basis for the final document by organizing learned material into the proper form.
  • ADAM can combine its ability to retrieve data ("mine”) from databases with its ability to reason by analogy and inference to find new relationships in data and suggest these new relationships using natural language. Those that work in creative fields, such as scientists, can use this capability to accelerate the creative process, especially when dealing with large amounts of data.
  • ADAM can benefit customer relations in a number of ways. Using its database capability discussed above, ADAM can provide solutions to customer needs by extracting an optimal solution under complex situations. For example, transportation industries can use ADAM to do ticketing and other transactions that depend on optimization of many parameters.
  • Financial services companies including, but not limited to brokerage firms, banks, insurance companies
  • Transportation companies and agencies including but not limited to brokerage firms, banks, insurance companies.
  • Robots can benefit from ADAM's real-time voice interaction.
  • Robots need conceptual information to perform complex tasks. For example, a robot helicopter might be used to identify and track criminals on foot or in vehicles. Voice interaction could be used to alert the helicopter to rapidly changing situations.
  • ADAM can conceptualize input information and turn it into real-time actions. It can also advice operators of failures and suggest actions.
  • ADAM can be used as an integral part of computer operating systems, concluding but limited to Windows, Windows NT, Apple Operating Systems, Linux and Unix.
  • any system using ADAM consists of ( 1 ) a software executable residing on volatile or non-volatile memory and (2) some kind of memory device that stores language and world knowledge that is basic to its functionality and (3) a memory device that stores new learned language and world knowledge capability.
  • This functionality can be embedded in any device in which interactive language capability is needed. This could include, but not be limited to, handheld computers, smart hotel locks, cash registers, fax machines, home entertainment systems, smart watches, smart phones, GPS gear, and mapping systems in cars.
  • the memory type and size described in the above paragraph would be adjusted for each of these applications.
  • ADAM can be used in any type of computer, including but not limited to portable computers, desktop computers, workstations, servers, mainframes and super computers.
  • ADAM can be used in any communications network, including but not limited to wireless networks, copper networks, fiber optic networks, satellite networks, video networks, and free air optical networks. Also, ADAM can be used in any Customer Premise Equipment (CPE), including but not limited to wireless phones, PCS phones GMS phones, CDMA phones, wireless phones based on any type of protocol, computer based CPEs, and satellite receivers/CPEs.
  • CPE Customer Premise Equipment
  • ADAM can be used as a personality simulant for the entertainment industry, and any type of machine, robot, game or toy that can benefit from a language interface. This would include interactive personality simulants at entertainment parks, casinos and other resort and vacation centers.
  • ADAM can be used to monitor or control any type of machine, including but not limited to engines, motors, motorcycles, automobiles, trucks, aircraft, spacecraft, MEMS (Microminiature Electronic Machine Systems), oscillators, and voltage monitoring devices.
  • MEMS Microminiature Electronic Machine Systems
  • ADAM is completely language independent, learning from stimulus-response patterns that it can associate with actions and various types of data structures. This means that communication is not limited to human languages. The only requirement is that the communication be broken down into distinct, recognizable units with the proper interface. This means that ADAM can be used to communicate with dolphins, whales, primates, birds and any other organism that communicates by producing sounds, motions, chemicals, or any other form of communication that can be detected by a sensing device.
  • ADAM's capabilities Additional products which would use ADAM's capabilities include:
  • B2B and B2C adaptive, personalized online shopping tools.
  • ADAM The ability to perform database extraction is an important application of ADAM. Normally database information retrieval is a costly and time-consuming process requiring a lengthy requirements process, database programming debug and testing procedures. ADAM can be substituted for most or all of this process.
  • ADAM Database data retrieval process is shown in Figures 37 and 38.
  • examples are given to ADAM including a database query (in natural language), and an example of how the program should answer.
  • ADAM treats the database as a map and uses its prediction algorithms to guess how data from the database was used to formulate an answer. It does not matter if there are ambiguous ways to give any one particular answer.
  • ADAM can use multiple examples to find an algorithmic solution that solves all examples simultaneously. This method is only limited by the number of algorithms that are stored internally. Once the learned algorithms are stored as associations with natural language, the algorithms can be used to extract data as shown in Figure 38.
  • FIG 39 shows the top-level pattern association mechanism.
  • the input sentence is abstracted, and a pattern buffer is used to find an abstraction that represents how to express a response.
  • the conceptual database is then searched for a concrete expression that matches information found in the input sentence.
  • the pattern buffer connects abstractions in the primary language to abstractions in the target language.
  • the target Language abstraction is then matched with concepts in the target language to perform the translation. In this way, the meaning of sentences is used to perform the translation.
  • the same mechanism as in Figure 39 is used except that the training necessary to create the pattern buffer comes from training in translation.
  • ADAM can also be used for identification purposes. Every person has characteristic patterns they use in writing and in speech. During text and speech comprehension, ADAM matches abstract patterns to speech patterns as a uniform comprehension mechanism. By simply counting the number of each pattern used by different individuals, a characteristic signature can be developed for recognition purposes. This means that an individual "i” would have an individual signature that could be developed by analyzing text and speech of different people. The probability of the speaker being person "i" would be:
  • n(j) are measured numbers of usage of each pattern p and p(i, j) are individual probabilities of each pattern based on calculated statistics of individuals.
  • ADAM cognitive assisted multi-media analysis
  • the capability of ADAM to comprehend text and perform interactive real-time dialog can be used to provide a personal assistant and companion that has up to date information on topics of interest to the user.
  • This information will be comprehended in real-time over the Internet by the ADAM-driven companion and made available as natural conversation. From the viewpoint of the user, this has the advantage of quickly accessing information of interest in the mostnatural of ways. It wouldsimulate an attentive, knowledgeable person who would be available for helpful information or just companionship 24 hours a day. People living alone or in remote areas might find this a helpful psychological aid.
  • ADAM can provide interactive assistance through a voice wireless link.
  • the worker can describe a situation and ADAM can provide procedural help, situation analysis, and descriptions of other information that is developing from a remote area. Since ADAM has the ability to learn scenarios, ADAM can anticipate next steps, warn of possible dangers and provide reminders of plans and procedures in complex situations. This could apply to many different tasks and situations such as a mechanic repairing an automobile, an astronaut servicing a spacecraft, or even a soldier on the battlefield.
  • ADAM Vehicle-related Safety On-board vehicle safety issues can be addressed with ADAM technology by providing emergency information that goes beyond pre-canned warnings.
  • Complex technology on today's airplanes, cars and military vehicles can be improved by ADAM's ability to conceptualize failures and verbalize emergency procedures in real-time.
  • Graphics Visualization ADAM's ability to create descriptive maps of objects can be used to translate descriptions of objects and scenes into drawings of those objects. This capability can be used by architects, movie makers, interior decorators, or anyone who want to achieve an immediate visualization of anything from a verbal or written description.
  • Authoring Tools ADAM can be used to create prototypes of articles and scientific papers by interacting with the author.
  • ADAM can learn the habits and styles of a particular author and produce preliminary prototype articles and papers by interacting verbally with the author. For example, by just stating a topic and type of document, ADAM can lay out the basis for the final document by organizing learned material into the proper form.
  • ADAM can combine its ability to retrieve data ("mine”) from databases with its ability to reason by analogy and inference to find new relationships in data and suggest these new relationships using natural language.
  • ADAM can benefit customer relations in a number of ways. Using its database capability discussed above, ADAM can provide solutions to customer needs by extracting an optimal solution under complex situations.
  • Transportation companies and agencies including but not limited to brokerage firms, banks, insurance companies (6) Press agencies
  • Robots can benefit from ADAM's real-time voice interaction.
  • Robots need conceptual information to perform complex tasks. For example, a robot helicopter might be used to identify and track criminals on foot or in vehicles. Voice interaction could be used to alert the helicopter to rapidly changing situations.
  • ADAM can conceptualize input information and turn it into real-time actions. It can also advice operators of failures and suggest actions. Operating Systems
  • ADAM can be used as an integral part of computer operating systems, concluding but limited to Windows,
  • any system using ADAM consists of (1) a software executable residing on volatile or nonvolatile memory and (2) some kind of memory device that stores language and world knowledge that is basic to its functionality and (3) a memory device that stores new learned language and world knowledge capability.
  • This functionality can be embedded in any device in which interactive language capability is needed. This could include, but not be limited to, handheld computers, smart hotel locks, cash registers, fax machines, home entertainment systems, smart watches, smart phones, GPS gear, and mapping systems in cars.
  • the memory type and size described in the above paragraph would be adjusted for each of these applications.
  • ADAM can be used in any type of computer, including but not limited to portable computers, desktop computers, workstations, servers, mainframes and super computers.
  • ADAM can be used in any communications network, including but not limited to wireless networks copper networks, fiber optic networks, satellite networks, video networks, and free air optical networks. Also, ADAM can be used in any Customer Premise Equipment CPE including but not limited to wireless phones, PCS phones GMS phones, CDMA phones, wireless phones based on any type of protocol, computer based
  • ADAM can be used as a personality simulant for the entertainment industry, and any type of machine, robot, game or toy that can benefit from a language interface. This would include interactive personality simulants at entertainment parks, casinos and other resort and vacation centers.
  • ADAM can be used to monitor or control any type of machine, including but not limited to engines, motors, motorcycles, automobiles, trucks, aircraft, spacecraft, MEMS (Microminiature Electronic Machine Systems), oscillators, and voltage monitoring devices.
  • MEMS Microminiature Electronic Machine Systems
  • ADAM is completely language independent, learning from stimulus-response patterns that it can associate with actions and various types of data structures. This means that communication is not limited to human languages. The only requirement is that the communication be broken down into distinct, recognizable units with the proper interface. This means that ADAM can be used to communicate with dolphins, whales, primates, birds and any other organism that communicates by producing sounds, motions, chemicals, or any other form of communication that can be detected by a sensing device.
  • ADAM's capabilities include: (1) Corporate portals that learn via use, understand what -users need, and are conversational
  • ADAM is about simulating the human capability to converse and understand in a practical, efficient and useful way.
  • the inventor views human intelligence as the result of several interlocking processes that can be simulated on a computer.
  • the inventor does not claim that the described processes can simulate all capabilities of human intelligence, only that enough of this capability can be simulated to perform useful tasks.
  • ADAM like human intelligence, rests on six major pillars of information processing and together are the major innovations of this invention. These are:
  • Block 1 is concerned with training.
  • Block 2 describes ADAM's capability to do interactive, goal-driven dialog and Block 3.
  • ADAM operates in two modes: (I ) training and (2) dialog.
  • I training
  • dialog In the training mode, ADAM incrementally learns language, learning how to make inferences and ask questions and learning how to perform actions such as opening a file or telling time.
  • the user is presented with several blocks of text to fill in, and options about the kinds of concepts that are being generated.
  • the If and Else statements are optional.
  • the list of actions only contains things that are external to the program such as opening a file. All other actions are handled by the comprehension algorithms.
  • the user must end complete sentences with punctuation, otherwise the program will assume the input is a clause.
  • the response may be left blank if the stimulus requires an inference as a response. For example, a stimulus that begins with the word "why" does not usually have a response. This is handled by simply restating the stimulus as an inference and letting the inference engine find the answer.
  • an event loop periodically checks to see if there is an event that needs processing. If someone is talking, that event is processed and a response is generated immediately, otherwise events that are on the goal processor stacks are processed.
  • Working memory is a list of raw input data created during training. In working memory, sentences and clauses have been converted to arrays of objects containing hashed integers representing individual words. In addition, Working Memory contains a rich set of links that give information on how to associate stimulus, response and conditional links. Working Memory is the raw data that the abstract data in the
  • Pattern Buffer is created from.
  • Pattern Buffer maintains the association lists between patterns. Patterns are categorized and flagged as stimulus, response, inference and action. The following convention is used:
  • a single element of a pattern buffer can be noted by:
  • Parenthesis indicate a list, for example, (a b) is a list of the objects a and b.
  • the integer indexes indicate the pattern and pattern level. Any number of responses and inferences can be associated with a stimulus. For example
  • stimulus 45, second level is associated with two responses. Logically this means that, in an abstract sense, that if the pattern s45.2 is detected, the "form" of the response (meaning not the actual content) can either be r23.1 or r35.2. However, if the association was actually
  • the Pattern Seeker finds simple patterns and stores them, leaving the stimulus:response pattern in the pattern buffer.
  • Training Process and Store into Working Memory
  • User text strings are tokenized and stored as lists of objects.
  • the various types of text strings i.e. stimulus, response, if etc., are linked together in working memory.
  • Working memory is temporary and serves to store user examples of stimulus-response links and associated logic and action statements. These examples are used to build abstractions in pattern memory and the pattern buffer.
  • CONDITIONAL OCCURS The user selects the time in which the conditional should be applied relative to the time of the response.
  • a Meta Map stores data on how differentiate between different kinds of mapping situations, and how to tell the difference between different kinds of maps.
  • a Map is a data structure of storing an instance of an object that is described by a Meta Maps.
  • Meta Maps are a specialized subclass of Meta Maps. Meta Maps in general are used when there is a need to simulate a predictive capability. For example, if some asks what is the square root of three, the program may not at first know. But using the Meta Maps math algorithms, it can, after shown examples, predict what the answer is. In effect, ADAM can learn to do math, on its own, in any language. Another type of mapping problem that Meta Maps and Maps are good for is counting problems.
  • This association will ultimately create an association between an abstraction and an action. For example, if the associated response is "a wrench has been selected,” the action selected should be able to deal with the abstract notion of selecting something, and deduce from the particular stimulus (i.e. "Select a wrench") what is required in the specific response.
  • a PC application might be concerned with file management for example.
  • a robotic application might contain actions having to do with manipulating objects.
  • an external database may be connected to the program. If one is selected, the program automatically uses the database to try to predict responses that are given in the training. This is the same concept as the map concept, except in the case the program connects to a pre-existing database. If during training the program can predict the response successfully (using the example given) the algorithm found is stored together with relevant database record location information that will allow the program to generalize the response, i.e., predict a correct response in all cases. This option should only be used if the application is designed to use the database in question. Training: Non-local
  • “Locality” has to do with identifying if the concept is finite in space and time.
  • a person is local because the concept of a specific human being is local to where that person is in space and time.
  • the concept of a human being is noncritical. That is, the attributes of a human being are independent of space and time. If the response was "Jane has blue eyes,” this is a local statement, since it is only frue for a particular point in space and time, that is, where Jane is. However, if the response was "Humans have two legs,” that is a non-local statement, since it is true for all humans everywhere.
  • the program should be set up by the user in the target language to identify reference tags for each locality.
  • the tags are Non-local, he, she, it, they.
  • the user can create new information at any time associated with each of these tags but the tag names should be used consistently. This is important since the program keeps maps for different non-local objects for the purpose of disambiguation.
  • This aspect of training substitutes for the human experience of being able to map concrete objects with human senses as a part of reality.
  • a baby learns to associate "mommy" with only one local object, for example, and that learning is eventually integrated into language about local objects.
  • ADAM automatically abstracts the training examples, so only representative S-R pairs need be given.
  • ADAM uses this information to decide if a reference is being made. For example, in the sentence "Her pride was hurt,” Adam would associate this sentence with a "she” Map that could contain other information about the local object-in this case a female human. If the question was asked, "Whose pride was hurt,” ADAM would look for a statement like X's pride was hurt,” and it would look in the most recent "she” Map for an instantiation of X.
  • Working memory is a list of raw input data created during training. In working memory, sentences and clauses have been converted to arrays of objects containing hashed integers representing individual words. In addition, Working Memory contains a rich set of links that give information on how to associate stimulus, response and conditional links. Working Memory is the raw data that the abstract data in the Pattern Buffer is created from.
  • a map can be associated with this pattern under two conditions: (1 ) The user has associated an action with this pattern.
  • the program can associated a "virtual" map with this pattern.
  • a virtual map is one in which eigen information can be used of predict other eigens such as in a mathematical operation.
  • Pattern Seeker Working Memory
  • Working memory is a list of raw input data created during training. In working memory, sentences and clauses have been converted to arrays of objects containing hashed integers representing individual words. In addition, Working Memory contains a rich set of links that give information on how to associate stimulus, response and conditional links.
  • Working Memory is the raw data that the abstract data in the Pattern Buffer is created from.
  • a clause is defined as a sub pattern inside of a sentence. Clauses are detected in two ways: (I ) by comparing with known, more simple patterns. Thus if the pattern "X is a Y" is known and the sentence “To the left is a house,” is detected, it can be assumed that "to the left” is a clause. (2) by recognizing that many clauses start with certain words like to, from and about. The program keeps a list of these words as a special type of eigen.
  • ⁇ (Q.e7) p2.3> is a functor containing an empty setvariable.
  • Pattern Seeker Create Pattern: Contains Clause
  • a clause is defined as a sub pattern inside of a sentence. Clauses are detected in two ways:
  • Pattern Seeker Set Map Define Map
  • a locked training session means that the trainer is producing examples about a specific item in a specified locality. For example, the training could be about a specific woman while the 'she' locality is locked.
  • the program uses this information to build a list of eigen numbers for which the eigen number was fixed over the locality. The program stores these as discriminators. In the case of a 'she' map, the program would build a female first name as a discriminator of this map. The allows the program to build a map for a woman named Alice and know that "she" refers to Alice.
  • Pattern Seeker Set Map: Search for a Meta Map associated with this locality: Virtual Map Learning
  • a virtual map is simply an index to an algorithm that predicts the response.
  • the program checks to see if the response can be predicted using the information immediately available. An example of this would be the sentence "the square root of nine is three.”
  • This module will detect the presence of numbers and realize that three can be generated from nine by several algorithms. It will pick one (the most statistically likely). If the program guesses wrong this will be corrected with other examples. All possible algorithms are pre- stored and there is a unique index for each one. Contrast this with the way instance maps are created in database applications. (See “Create new instance map.")
  • Pattern Seeker Set Map: Search for a Meta Map associated with this locality: Create new instance map For most localities, such as involving a person, thing or event, this module simply creates a space in memory in which concepts will be stored relating to the locality.
  • a special type of locality is the external database (shown in the diagram as optional). This is used in applications in which the user wants to access data using natural language. In this case, the module searches for an algorithm that will predict the response using the data found by accessing the external database through a special interface.
  • the instance map will contain information on how to extract information for the database records and how to instantiate the concept so that it predicts the response.
  • This is similar to virtual maps except there is no pre-defined algorithm index.
  • the program calculates a method and stores the details in the instance map. Like the virtual map, the program can recover from error when given further examples.
  • the program will attempt to find an algorithm that will satisfy all examples simultaneously for the particular stimulus-response pattern. Training: Process and Store into Working Memory: Force Output to be Equal to Closest Match
  • training input is compared with existing memory, and one data structure is created from both.
  • the resulting structure replaces discrete words with rotation matrices that select individual words from a vector space. This can be notated by:
  • E(j) represents an eigen vector space.
  • E j was the vector space
  • the program would represent both sentences as:
  • ( ).e34 is called a set variable.
  • the "e34” says that this variable is a member of a particular eigen set- in this case (Jane Alice Paula). This pattern is stored, not in working memory, but in "pattern space.”
  • My family is not a member of the eigen set e34. In this case, the program would create
  • brackets The expression on brackets is called a vector set, and is represented by the same rotational structure.
  • E(j) represents an eigen vector space
  • ( ).e34 is called a set variable.
  • the "e34” says that that this variable is a member of a particular eigen set— in this case (Jane Alice Paula). This pattern is stored, not in working memory, but in "pattern space.”
  • Pattern Seeker Create Pattern: Make Functor: Create Functor Block 1. 12.4.3.1 (Structure Pattern Match has organized the argument list data into groups (sets) that need to be converted into functors.
  • Pattern Seeker Create Pattern: Make Functor: Structure Pattern Match
  • the objective of Structure Pattern Match is to
  • a response can be predicted. Prediction is based on scenarios that are learned in training. For example, if someone drops something it falls to the floor. That is a type of seen ario that predicts the next event. The program can use this information to predict responses. In some cases, the scenarios can be goal- driven. In this case, the predictor tries to optimizes the response. Training: Locality Meta Maps
  • a Meta Map stores data on how differentiate between different kinds of mapping situations and how to tell the difference between different kinds of maps.
  • a Map is a data structure of storing an instance of an object that is described by a Meta Maps
  • the locality maps are checked to see if there is a matching eigen word or set Variable. If there is a match, the Concept is added to a Map.
  • the Maps keeps track of particular instances of local objects. This provides for efficient pronoun disambiguation, for example.
  • Meta Maps are a specialized subclass of Meta Maps. Meta Maps in general are used when there is a need to simulate a predictive capability. For example, if some asks what is the square root of three, the program may not at first know. But using the Meta Maps math algorithms, it can, after shown examples, predict what the answer is. In effect, ADAM can learn to do math, on its own, in any language.
  • mapping information stored is the index. No other memory is needed.
  • the most common example of a concept that can be processed using the virtual map processor is a sentence that contains a mathematical algorithm. For example, if the user asked "What is the square root of nine?" this can be handled by a virtual map, since the information needed to predict the response is contained in the sentence itself. All that needs to be stored is an index to the square root algorithm, and information about where information needs to be stored in the abstract pattern.
  • This part of the program simply looks up the algorithm and instantiates the eigen variables appropriately.
  • a “scenario” in ADAM is any physical or mental sequence that has a natural order. For example, there is a natural order of events that occurs when using a restaurant. Another example would be a chess game which has a defined beginning, middle and end. In the case of chess, there is a goal state. If the program detects that it has entered a goal-driven scenario, it automatically uses data it has accumulated from previous instance maps of this type to predict the next response.
  • the transition is applied to the pattern which generates a predicted response. For example, in the case of chess, the response would be the next move, which has the effect of optimizing a sub-goal of the goal state.
  • This general principle is known as the "Uniform Learning Theory.”
  • the implementation cation of that theory is unique to the present invention. This technique allows the program to learn to optimize goals by learning from examples.
  • This module provides an interface to an external database and applies learned algorithms to initiate patterns. These patterns are turned into concepts which are returned. The specific details of how this is done depend on the application, but the technique is similar to other types of map processing: data is retrieved using stored location information, an algorithm is applied and the resulting information is used to instantiate a concept.
  • the eigen state is the current pattern plus the value of all setvariables.
  • Pending is an ordered list of stimulus concepts to be tried again. This stack is used when the program can't answer a question, but has asked for more information. After more information is gathered, the Goal Processor pops the stack and tries to generate a response (but with some of the feedback comments suppressed).
  • Some responses may have had an external action attached to them. For example, if this is a robotic application, then a possible response would be the "The wrench is selected.”
  • Each action has code associated with it that implements the external action.
  • the input concept is returned which eventually be placed on the primary stack and output as speech, text or both.
  • it the responsibility of this code to return an appropriate concept as a response.
  • the present invention has been formulated in terms of the translation strings of symbols to another string of symbols based on learned patterns derived from examples.
  • This technique has broader applications than just language.
  • the basic technique of science is to observe patterns in nature, and to try to find mathematical models that can be used to predict events.
  • Isaac Newton discovered that certain principles of geometry could be used to predict the motion of the planets. His theories not only enabled the position of celestial bodies to be calculated, but it provided a way of understanding the concept of gravity. It is important to realize that Newton's mathematical theory of gravity was also "wrong," since it did not predict accurately the motion of Mercury, the inner most planet in the Solar System.
  • Every scientific theory that has ever been formulated is “wrong” (approximate).
  • the ultimate goal of science is to have completely consistent set of models that work in all domains, the so- called Theory of Everything, but that goal remains elusive.
  • the scientific method is therefore about predicting events based on approximate mathematical models that work within a certain domain.
  • Every scientific theory can be formulated as a translation between input and output. For example, observations of the motion of planets can be translated to predictions of observations in the future.
  • ADAM's basic technique of using examples of symbolic stimulus to response can be generalized to examples of input and output. Eigen states can be created that characterize these translations and can be used to predict new outputs from learned examples.
  • Such hazards range from potential tectonic deformation related to earthquakes, to severe storm monitoring, to the tracking and monitoring of the movement of volcanic ash in the troposphere and stratosphere after a major explosive eruption.
  • plumes of fine particulate volcanic ash and sulfur dioxide can drift thousands of miles from the eruption source, presenting a severe ash-ingestion hazard to turbine engined jet aircraft.
  • plumes are easily camouflaged by the presence of water vapor clouds, however, they do exhibit some spectral contrasts in characteristic bands at visible and infrared wavelengths.
  • the detection and tracking of such plumes is of paramount importance to aviation worldwide, given that there are about 1000 potentially active volcanoes scattered across the land surface of the earth. Nevertheless, unambiguous discrimination between volcanic plumes and meteorological clouds remains a difficult and not fully solved scientific and operational problem.
  • ADAM The capabilities of the ADAM program to learn when given identified instances of a particular phenomenon, coupled to a library of instances, would be a general approach to change detection.
  • the challenge is to identify the translucent plumes at the earliest possible post- eruption stage, despite the confusion from intermingled water-vapor meteorological clouds, and a variable background albedo, which at times could include snowfields and oceans.
  • ADAM's ability to assimilate numerous cases and then access and organize the most likely past cases when confronted with a new similar (but not exactly similar) case would be a powerful way to identify volcanic ash plumes. Such plumes would be discriminated from meteorological clouds under a wide variety of atmospheric, seasonal, and ground albedo conditions.
  • An as yet untapped area will similarly be the downloading of full-length movies over the Internet.
  • trailers are downloaded, in the range of 10-20Mbytes of data volume, with times that can range up to a half-hour (or more) over the most common modem connections.
  • DVD technology employs loss-less or near-loss-less compression schemes of -20:1 advantage, thus reducing a 200 Gbyte (potential data volume for a 2hr. long movie at 1000x1000 8 bit pixels per frame, at 30 frames/sec).
  • the typical 7- 8Gbyte DVD data volume would be a quick download (70-80 seconds® 1 OOMbits/sec) over the state-of- the-art "T- 1 " data lines employed by large corporations and the government, but would be hopeless (34 hours) using the 57,600bits/sec modem now typical of most homes, DSL notwithstanding.
  • a 100: 1 to 1000: 1 lossless or near- lossless compression scheme that can compress full length movies into a compressed data volume of -lOMbits will allow films to be downloaded and displayed easily on typical home systems. Whoever can do this will reap a fortune, and will trigger a revolution in the film and video industry comparable to that of the MPE music revolution.
  • ADAM is a potential component in the achievement of that goal.
  • ADAM's ability to create scenarios from instances empirically could allow the storing of abstractions [suites of most probably characteristics and frame-to-frame relationships] of scenes and of individual actors as eigenvectors at great economy of data volume [>I 00: 1 ], needing only periodic reference frames to validate frame-to-frame interpolations.
  • Such instances could be assimilated from both scan-throughs of existing (2D) movies, and/or with the incorporation of (3D) "motion-capture” (i.e., actors instrumented with transducers to input generic range-of-motion instances).
  • this conceptualized technology may also allow substantial reductions in post- production editing costs. Fewer scene takes will be needed if there exists a capability to "adjust" scenes via ADAM-generated instances and scenarios in post-production editing. That is, an original scene need only be approximate with respect to lighting and actor positioning and dialogue-only enough necessary to give ADAM a seed or kernel for all required instances and for reference frames-and adjustments, in principle indistinguishable from the original could be made in editing. Ultimately, realistic movies could be constructed whole-cloth from ADAM-generated instances and scenarios, however, the aesthetic, professional, and artistic issues incumbent in such an activity would be knotty. Nevertheless, an ADAM- type assimilative and inductive algorithmic framework could be employed as sketched here to revolutionize film making.
  • a system that "listens" to sound patterns emanating from devices (motors, gas turbines, shaft bearings, etc.) and detects new sounds (non-normal) coming from the system (loss of lubrication, imminent bearing failure, etc);
  • a system that listens to sounds (motors, shaft bearings, etc.) and detects when the sound coming from the system moves out of its normal pattern or domain;
  • a system capable of being connected to a single sensory input (artificial sight, smell, touch, etc.) and recognizing inputs as they occur;
  • a system capable of being connected to a single sensory input (artificial sight, smell, touch, micrometeor impact, etc.), recognizing inputs as they occur, and comprehending what may occur as multiple different or overlapping inputs aggregate in the sensory and/or time domains; 5.
  • a system capable of being connected to multiple simultaneous sensory inputs (artificial sight, smell, touch, micrometeor impact, etc.) and recognizing inputs as they occur;
  • a system capable of being connected to multiple simultaneous inputs (artificial sight, smell, touch, micrometeor impact, etc.), recognizing inputs as they occur, and comprehending what may occur as multiple different or overlapping inputs aggregate in the sensory and/or time domains; 7.
  • a "tool” for analysts capable of being used in manual, semi-automatic, or automatic modes to quickly identify various "patterns” as they may occur in single or multisensory spatial and time domains;
  • a system capable of operating, recognizing, and comprehending "data” as gathered or stored in data collection or data based systems;
  • a universal language translator or translation system between languages used by various human beings A language translation system as might be used between human beings and animals (dolphins, orcas cats, lions, etc.);
  • a system that " listens” to sound patterns emanating from devices (motors, gas turbines, shaft bearings, etc.) and detects new sounds (non-normal) coming from the system (loss of lubrication, imminent bearing failure, etc);
  • a system capable of being connected to a single sensory input (artificial sight, smell, touch, etc.) and recognizing inputs as they occur;
  • a system capable of being connected to a single sensory input (artificial sight, smell, touch, micrometeor impact, etc.), recognizing inputs as they occur, and comprehending what may occur as multiple different or overlapping inputs aggregate in the sensory and/or time domains;
  • a system capable of operating, recognizing, and comprehending "data” as gathered or stored in data collection or data based systems
  • a system capable of operating, recognizing, and comprehending "data” or “metadata” patterns or other recognizable attributes as gathered or stored in data or meta-data collection and data based storage systems;
  • a trainable system based upon "stimulus-response", capable of discerning, recognizing and possibly comprehending data, data patterns or other information type patterns in large, historical data and information storage bases;
  • a system which enables “ultra dense data storage, in which "eigenvectors” and “eigenvalues” are stored in a novel and unique manner. Data, information, and patterns related thereto are stored in a novel and ultra dense or compact fashion. All data, information, and perhaps some knowledge bases may have applications whereby relevant portions may be recognized, comprehended, and/or stored using novel storage techniques. This would permit slower processors, using less memory, resulting in systems drawing lower power consumption and operating longer to function effectively in existing or new application spaces and other domains.
  • the present invention is designed to provide a system for simulating human intelligence.
  • the present invention will be applicable to a vast array of communications and computing uses. LIST OF REFERENCE CHARACTERS
  • ADAM Automated Dialog Adaptive Machine

Abstract

A method and apparatus for simulating human intelligence and natural language diaglog capability is disclosed. The present invention contains a cognitive model of human intelligence (20), a mathematical model of information abstraction, synthetic dialog interaction (202), a method of language-independent computer learning through training (201), interaction and document reading (203) and a method of efficient computer implementation (200) of all preceding parts. The cognitive model (20) is the theoretical basis of the entire invention, describes the way humans learn and interact in general terms, provides a mathematical basis for natural language (40) learning and interaction and establishes a basis for detailed computer implementation of the theory.

Description

Simulating Human Intelligence in Computers Using Natural Language Dialog
TECHNICAL FIELD
The present invention relates to the field of Artificial Intelligence (Al) and the use of Interactive Computer Systems, Computational Linguistics and Natural Language Processing. More particularly, this invention comprises methods and apparatus for modeling human-like interactions on a computer for commercial applications.
BACKGROUND ART Introduction
The French philosopher-mathematician Rene Descartes in 1637 predicted that it would never be possible to make a machine that thinks as humans do. British mathematician and computer pioneer Alan Turing in 1950 declared that one day there would be a machine that could duplicate human intelligence in every way.
By the early 1990's, Artificial Intelligence (Al) itself had not been achieved, but logic programs called expert systems were devised to allow computers to "make decisions" by interpreting data and selecting from among alternatives. Technicians can now run programs used, for example, in complex medical diagnosis, language translation, mineral exploration and computer design. Computers can outperform mental functions in limited areas, notably in the speed of mathematical calculations. Most computers operate by logic steps or algorithms. They do serial processing; operations of recognition and processing are performed one at a time. The brain appears to do parallel processing, that is, performing operations simultaneously. Critics of the computational approach insist that a person who solves a problem indicates understanding, something that solving a computation does not indicate. Some proponents, therefore suggest that for computers to duplicate human reasoning which involves not only logic but perception, awareness, emotional preferences, values, ability to generalize, etc., they must be patterned after the brain, which essentially comprises a network of nerve cells.
However, there is no universally accepted theory of human intelligence. Some researchers have even suggested that our current knowledge of fundamental physics, that is, the language that we use to describe and understand the universe, is not adequate to describe the complexity of the human brain. If this were true, it would seem that any hope of developing artificial intelligence is doomed to failure. While this postulate may be at least partially correct, and it is even possible that some human capabilities arise from the non-local aspects of the quantum field, the inventor believes that most aspects of human intelligence can be modeled and that these aspects can be simulated by implementation on conventional computers to do useful tasks. The present invention comprises such modeling and implementation. Background Technology
The presenttheory of intelligence abandons many, if not most, of the assumptions of conventional technology made in the last fifty years by the Al community.
Most of the conventional technology starts with the recognition that an important feature of human intelligence is its ability to construct andmake sense of strings of symbols, that is language. Many have assumed there is a syntactic "parser engine" in the human brain that mysteriously decodes strings of symbols into meanings and that this capability is somehow built into the brain. This is called the Universal Grammar (UG) theory. As evidence of this, many researchers point to papers that "prove" that the learning of language is impossible since it is too complex and confusing to be learned inductively. Some researchers have claimed that even scientists cannot understand grammar without first reading papers on the subject.
The problem of providing a practical, veracious method and apparatus for simulating human intelligence has presented a major challenge to the artificial intelligence community. The development of such a method and system that offers significant commercial benefits would constitute a major technological advance and would satisfy a long felt need in the information, communications, entertainment and many other businesses.
DISCLOSURE OF THE INVENTION The present invention includes methods and apparatus for simulating human intelligence using natural language processing. The invention comprises:
(1) a cognitive model of human intelligence;
(2) a mathematical model of information abstraction and synthetic dialog interaction;
(3) a method of language-independent computer learning through training, interaction and document reading; and
(4) a method of efficient computer implementation of all preceding parts.
A novel theory of human intelligence. is developed that is concrete and practical enough to be incorporated into machines that employ intelligent, directed use of language. The methods and apparatus disclosed provide enabling information to implement the theory in a conventional computer.
The cognitive model is a theoretical basis of the entire invention. It describes the way humans learn and interact in general terms. The mathematical model of information abstraction and synthetic dialog interaction and method of language-independent computer learning through training, interaction and document reading provide a mathematical basis for natural language learning and interaction between humans and a computer. It also provides the basis for machine translation from one language to another, the detection of patterns of speech for the purpose of identification, and provides the basis for personality simulations. A working prototype of an "Automated Dialog Adaptive Machine" (ADAM) has been created.
The cognitive model of human intelligence is referred to herein as the Associative Abstraction Sensory Model (AASM). The description of the invention is organized onto three parts: (1) a description of the theory of intelligence that the computer algorithms are based on; (2) a mathematical model and (3) a computer implementation. Using the AASM in the present invention, it is shown that pattern recognition, associative capabilities and sensory memory of the human brain alone can be used to describe the ability of humans to use ideas and language effectively.
Many working in the cognitive science and Al fields have assumed that cognition involves the encoding into the brain an unknown deep representation of knowledge sometimes called "mentalese." Language production is seen as decoding mentalese into strings of symbols and language understanding as coding mentalese from symbols. Therefore cognition must reside in a hidden, unknown mechanism of the human brain. No such assumption is made in the AASM. The model does not require that hidden mechanisms are necessary to explain human comprehension.
The model posits that human-like intelligent behavior comes from the language itself. That is, it is the ability of humans to use language, i.e. strings of symbols, as representations of meaning in combination with other characteristics of the brain that define human intelligent behavior. How language is combined with other sensory information is the key to describing a working model of intelligence as well as reproducing it on a computer. The description of this process lies at the heart of the AASM.
Much previous work by others has concentrated on the encoding and decoding of symbol strings in a particular target language. For example, Noam Chomsky's book, Syntactic Structures, is the classic work of transformational grammars and also the work of Terry Winograd (1971, 1972) who created the precursors of today's commercial language interfaces. We are taught in school that only certain symbol sequences are correct and rules that describe "legal" sequences are called a grammar. A large portion of every human being's education is learning the correct rules of their native language. Yet it is well known that children can produce legal sequences without formal training. A discussion of this may be found in
Chapter 4 of Symbolic Species by Terrence W. Deacon who also has a very complete description of the origins of the Universal Grammar Theory. Simply being exposed to others that speak a particular grammar is enough for the average child to generate grammatical sentences. Yet almost the entire body of work in computational linguistics and artificial intelligence requires recognizing parts of speech as defined in formal grammars. The AASM does not require knowing parts of speech, and, in particular, specialized knowledge of any kind. The capabilities of the AASM follow from the modeling of cognition and language learning, not any specialized knowledge of a target language, or any other knowledge for that matter.
An appreciation of other aims and objectives of the present invention and a more complete and comprehensive understanding of this invention may be achieved by studying the following description of a preferred and alternate embodiments and by referring to the accompanying drawings. A BRIEF DESCRIPTION OF THE DRAWINGS Figure 1 is a schematic diagram of the Cognitive Model—a model of the process of "knowing" used as a basis for the present invention. Figure 2 depicts a block diagram at a high level, of the Associative Abstract Sensory Model
(AASM) implemented in a conventional computer.
Figure 3 reveals a flow diagram depicting how a computer such as ADAM "reads" an input text stream. Figure 3 is an expansion of block 42 in Figure 2.
Figure 3 A is an expansion of the "Find Response" block 48 of the flow diagram shown in Figure 2, illustrating how eigen words and patterns in an input sentence are identified, patterns and concepts are drawn from data bases and an output sentence is generated.
Figure 4 depicts the three broad areas of capability of the Automated Dialog Adaptive Machine (ADAM) of this invention.
Figure 4A is a flow diagram showing how the data base is applied in ADAM to inputs of data in natural language in training mode.
Figure 4B is a flow diagram showing how the data base is applied in ADAM to inputs of questions about information in the database in operational mode.
Figure 5 is a flow diagram illustrating at a top level the Training process of ADAM. Figure 5 A is a flow diagram depicting the construction of Meta Maps in ADAM. Figure 6 is a further detailed flow diagram of the training process describing the process of storing user input in working memory.
Figure 7 is a flow diagram showing further detail of the conversion of user input to working memory elements.
Figure 8 is a flow diagram revealing details of the pattern seeker process. Figures 8- 12 detail the steps necessary to produce patterns and the process of creation of a Functor
256 from the element set 252 of the memory segment.
Figure 13 depicts details of the Structure Pattern Match 254 process. Figures 14 & 15 show details of the Structure Best Match process.
Figure 16 shows a diagram which describes the flow of interactive voice input to a speaker-independent, continuous speech recognizer, external to ADAM. Figure 17 shows how the Recognition Event is handled by ADAM, generating a response to the user speech.
Figure 18 describes the process flow for creating a sentence Functor set. Figures 18-21 show the process flow which creates a Functor from the user's speech input. Figure 22 delineates the Generate Response process in a flow diagram.
Figure 23 shows the flow within the Add Stimulus to Memory process. Figure 24 further describes the Response Method.
Figure 25 displays how the Found Concept and Response are passed to a Do External Action process. Figure 26 is a flow diagram revealing the Context Switcher shown in Figure 22.
Figure 26a is a flow diagram showing the flow for adding a concept to conceptual memory.
Figure 26B describes the flow withing the context switcher shown in Figure 25.
Figures 27-30 depicts the process for Reading Text Documents, building Concepts therefrom and storing Concepts as Functors. Figures 30 through 36 are flow diagrams which show the process whereby a Functor is created and a Pattern Match is found.
Figures 37 and 38 depict the ADAM Database data retrieval process.
Figure 39 shows the top-level pattern association mechanism.
Figure 40 shows how the pattern buffer connects abstractions in the primary language to abstractions in the target language.
Figure 41 relates the processes of training, goal processes, and reading text.
Figure 42 is a flow chart which illustrates methods of the invention.
Figure 43 relates working memory data and a pattern list.
Figure 44 relates working memory data and a pattern buffer. Figure 45 relates working memory data and a functor list.
Figure 46 concerns a pattern, an original element set, an action and a locality.
Figure 47 is related to virtual map learning.
Figure 48 relates a user input string and a memory.
Figure 49 relates an input word list, a memory match and a working memory element. Figure 50 pertains to meta maps.
Figure 51 concerns a voice input and a goal process.
Figure 52 concerns a language model and a language model tree.
Figure 53 relates a pattern element set and a concept.
Figure 54 relates an element set and a functor. Figures 55 and 56 relate an element set and a raw argument list. Figure 57 relates an element set and a pattern.
Figure 58 relates argument lists in raw set forms and in canonical form. Figure 59 depicts a set of steps concerning an element set and a functor. Figure 60 depicts a process that involves a concept and a stimulus.
Figure 61 illustrates a series of steps concerning a concept and the creation of a map. Figure 62 relates contexts and concepts. Figure 63 pertains to a concept and a stimulus.
Figure 64 is a flow chart which concerns a candidate abstract response and arguments from an input.
Figure 65 relates a meta map and a response concept. Figure 66 concerns a partially instantiated candidate response and a concept. Figure 67 relates a concept and a map. Figure 68 relates a stimulus concept and a response concept. Figures 69 and 70 pertain to a scenario map and a response concept.
Figures 7 land 72 pertain to the analysis of a concept.
Figures 73, 74, 75 and 76 reveal processes related to the generation of a response to a concept. BEST MODE FOR CARRYING OUT THE INVENTION Overview of the Invention The present invention provides methods and apparatus for constructing and operating a machine that is able to develop and store a set of language patterns for expressing knowledge, acquire specific knowledge, substitute that specific knowledge into recognized language patterns and extract meaning from these patterns. The invention offers efficient retrieval of information using natural language, the production of directed discourse, that is, the machine can be goal-oriented, and the efficient and accurate control of any number of machine tasks by the use of natural language.
While the invention includes several embodiments, a few of the implementations of the invention are described briefly below:
The invention provides a method of operating an artificial intelligence system, including the steps of abstracting from input stimulus data one or more patterns which are independent of the data, and generating a response to the input data on the basis of a response pattern linked to the or each stimulus pattern and of the input data. The invention may comprise an artificial intelligence system including input means operable to receive input stimulus data; processing means operable to abstracting from input stimulus data one or more patterns which are independent of the data, and response generating means operable to generate a response to the input data on the basis of a response pattern linked to the or each stimulus pattern and of the input data.
The invention may comprise language translation apparatus in which a generated response includes a response pattern associated with an input pattern and data in a different language but equivalent to input data.
The invention may comprise text or speech analysis apparatus, in which a processing means is operable to determine repetitions of patterns in input text or speech; to determine therefrom the originator of the text or speech from previously stored repetition data or statistics and to generate a response based upon the determination of the originator.
The invention may be used to furnish a vehicle safety system in which a response indicates safety related information or procedures associated with an input pattern and data related to vehicle operating conditions.
The invention may comprise a method of training an artificial intelligence system operable to generate a response to a stimulus input including the step of inputting into the system data streams formed of patterns and data, which patterns are independent of data and are similar from one input stream to the next; extracting from the data streams the patterns; and storing the extracted patterns in memory.
Definition of Terms and Notation
The special terms and their notation as used in this Specification are defined below. An understanding of this terminology is particularly useful in understanding the cognitive model of human learning upon which the methods and apparatus of the present invention are based.
Sentence: any string of words that might be used to either stimulate a thought, respond to another sentence that is used as a stimulus, or to declare information.
For the purposes of the invention, there are three categories or types of sentences: (a) stimulus,
(b) response and (c) declarative. Four examples of a sentence are: "What's up?;" "My Goodness;"
"Socrates is a man;" and "What is the purpose of an education?" The four example sentences above are in these categories,, in order: stimulus, response, declarative and stimulus. Some declarative sentences can also be responses. Whether a sentence is declarative or a response depends upon when the sentence occurs in a dialog. For example, if it occurs after a question is asked, it is aresponse. If before, it is a declaration. A stimulus sentence can never be a response or a declarative type. The following notation is used: Ss -a stimulus sentence; Sr - a response sentence; Sd - a declarative sentence.
There are other possible types of sentences: St - an acknowledgment of success; Sf - an acknowledgment of failure. While in a sense St and Sf could be definitions of a type of response, these definitions are somewhat arbitrary and are defined this way because it facilitates the description of the model and also aids in creating a computer implementation.
Together, this set of sentence types is complete. That is, no other types of sentences are needed to completely describe any conceivable dialog. Dialog: a sequence of sentences created alternatively by a human and a machine.
The beginning sentence type in a sequence is always stimulus or declarative, by definition. As noted above, a response sentence used as the beginning sentence in a sequence would be classified as a declarative. The reason for this careful separation of definitions is to never confuse the declaration of information with a request for information. Using the definitions above, a dialog is defined as consisting of a legitimate sequence of a pair of sentence types defined as: Ss : St ; Sd : Sf; Ss : Sr; Sd : St; Sd : Sf; or Sd : Sd. In particular, (Ss : Sr) is called a stimulus-response pair and (Sd : Sd) is called a logical inference or deduction.
Eigen words and eigen vectors: An eigen word is a word that can be replaced by another word in the same sentence without changing the conceptual basis of the sentence. For example in the sentence "Red is a color," Red could be replaced by blue giving: "Blue is a color."
Both the word red and blue are eigen words. Both sentences can be represented by the following notation: {Red Blue} is a color.
By differentiating similar sentences, vectors of words can be created. The quantity {Red Blue} is called an eigen vector. The set of all names for colors is called the eigen vector space for color. {Red Blue Green ....} is a color is an eigen vector space representation of all of the possible sentences that can be generated about the concept of names of a color.
Abstraction, Patterns, Set Variables and Abstract Spaces:
A related notation to the eigen vector space representation above is the following: ( ).en is a color. This notation is a way of expressing the pattern inherent in the eigen vector space for color. Pattern: A pattern is an expression of the type: ( ). en is a color. In this expression, n is an integer, e.g., ( ).e23.
SetVariable: The expression ( ).en is a setVariable. This notation is a way of expressing the idea of a pattern.
Instantiated pattern: ( Red).en is a color is an "instantiated" pattern and is equivalent to a sentence.
Instantiated setVariable: An example of an "instantiated" setVariable is : (Red).en. Abstraction: The process of pattern creation. Consider the sentence: John went to school. An abstraction of this sentence is ( ).e23 went to ( ).e89. The integers 23 and 89 have been selected only as examples.
Pattern Space: Patterns also can create a vector space. In the sentence above, ( )e23 is the setVariable of all male first names and ( ).e89 is the setVariable {school lunch dinner}. This sentence is an example of a vector space chosen to be called a "pattern space." Assume another expression, for example: ( ).e45 which is the setVariable of all female first names is also present. Then, the expression
{( ).e23 ( ).e45} went to ( )e.89} denotes another pattern space.
Real Space: Ordinary words can also form vector spaces in what has been named "real space." The {Red Blue} eigen vector example above is a vector space that exists in real space. By definition a vector cannot exist in both pattern space and real space.
Complete pattern: All the patterns used in this section so far are examples of "complete" patterns. A complete pattern is one that does not rely on external information to complete its meaning.
Incomplete patterns: Incomplete patterns are ambiguous and in themselves do not contain a concept. Examples of "incomplete" patterns are: It was ( ).e56; That was a good ( ).e49; etc. Making an incomplete pattern into a complete one is a type of "disambiguity."
Concepts and Functors:
Concept (C): In the AAS model, a Concept is defined as a set of "Functors" (f). As an example: C = (fl f2 ....) Equation 1
Functor: A Functor is as a construct with two components: a pattern and an argument list, as in the following example:
f= < ( argument list ) p > Equation 2 or f= < (sv )> Equation 3
where sv is a setVariable. Equation 3 is used when a concept contains a simple pattern with no arguments and is equivalent to < ( ) p > where p = sv.
The argument list is any list of set variables and functions. Thus a Concept is a list, tree structure that can contain any amount of complexity. The argument list serves as potential instantiations of a pattern. Thus the Concept that red is a color can be written:
C = ( f ) Equation 4 where f = < ( (red).e23 ) pl> Equation 5 and pi = ( ).e23 is a color. Equation 6
The Associative Abstraction Sensory Model Theory of Intelligence
The AASM theory recognizes two distinct components of intelligence: language capability; and the ability to use language for directed tasks. In human beings, these are primary but it is recognized there are other components of intelligence. Thus intelligence in this model is not one thing, but rather a series of interlocking capabilities. Language Capability
Traditionally, language capability has been defined as the ability to decode a list of words into a deep-knowledge representation and back into language. Unfortunately, this definition assumes the model, which is a logical error. We need a better way of defining language capability.
Language is composed of many combinations of simple patterns. Language capability in AASM is defined as the ability to "transform"sentences (symbol strings) and the ability to create and instantiate abstractions, that is, the process of creating patterns represented by concrete examples. These processes are defined in the following sections.
Transformations: Sentence Transformations
A transformation relationship simply describes how one sentence can produce another sentence. As an example, consider the transformations between a stimulus and a response:
Ss(i) => Sr(i, j) ; j = 1 , 2, n Equation 7
In another form, the stimulus and response can be written as pairs:
(Ss(i) : Sr(i, j))
In Equation 7, i and j are integers and represent all possible transformations between ith stimulus to the jth response. This means for the ith stimulus there are n possible responses where n can be any number. There are similar expressions for all legitimate (legal) sentence transformation pairs. Only legitimate (legal) sentence transformations are allowed but there may be any number of transformations possible.
It is not practical to generate responses by storing sentence pairs in a memory since the maximum value of i and j could be near-infinity in a real-world situation. Not only that, but simply generating responses from any stimulus is not very useful in itself. For this to be useful we need to introduce the ideas of abstraction and context which will be covered later. While the transformation relationship describes how one sentence can produce another, there is an important type of transformation called inferences that needs to be noted separately. Inferences are. the subset of all legal transformations between declarative sentences given by
Sd(i) => SdG) Equation 8 where j = 1, 2, n.
These types of transformations can be read to mean that if the sentence Sd(j) exists, it implies that
Sd(i) exists. (The case of i equal to j is the trivial case.) For example if Sdl = Socrates is mortal and Sd2 = Socrates is a man, we can say (Sd2 : Sdl). That is, because Socrates is a man it is inferred that Socrates is a mortal. Thus, in the present invention model, the capability of logical deduction becomes a natural subset of the capability to make associations between strings of symbols. This is not to say that any declarative sentence represents absolute truth. The mere existence of a particular string of words does not imply that a human interpretation of that symbol sequence represents a universal fact. All knowledge in the AASM model is relative and contradictory abstract information is allowed. The judgement of whether a particular sentence should be represented as accurate or truthful is the function of another, higher-level process called the Dialog Supervisor which is covered below in another section. Still, only a "judgement "or selection of alternatives can be produced with this higher-level process. There is no mechanism within the AASM for producing absolute truth. This restates the old cliche of" in, garbage out."
Transformations: Abstract Transformations
As stated earlier, a sentence can be abstracted by replacing eigen words with corresponding uninstantiated set variables. Thus in the earlier example, Red is a color is replaced by ( ).e23 is a color.
We say that the sentence has been abstracted. Recall that the number 23 is just an example; the actual number is arbitrary. The notation provides a way to distinguish individual set variables in memory.
This notation, is an extension of the conventions used in algebra. The algebraic expression X = 2 means that out of the set of all integers, we have assigned to X a specific value of 2. Similarly, (red).e23 means that out of the set of all words that indicate recognizable points in the visible spectrum, we have assigned the value of red. Thus, the sentence "red is a color" can be thought of as a single point in an abstract vector space and the abstraction represents the extent of the total space that is defined. Since any number of set variables, say n, can be in a single sentence, the space defined can be said to be a n-dimensional vector space. In abstract terms we could write an example stimulus-response pair as (Ssl : Sr2 ), where Ssl =
What is ( ).e23? and Sr2 = ( ).e23 is a color.
By combining the idea of sentence transformation and abstraction, an Abstract Association is produced. The ability to store abstract associations is a key part of the intelligence model. When the abstractions are deductive, the subset of Abstract Association is termed a Deductive Association.
The AAS Model Applied to Human Intelligence
The Associative Abstraction Sensory Model describes how humans learn language and are able to produce intelligent dialogs. The latter is more than just memory and association. Human beings respond differently in different situations, solve problems and even have their own agendas. The following discussion begins by introducing the model for cognition. That is followed by an explanation of how language is learned, and finally how this model is extended to produce directed dialogs.
Cognitive Model
Figure 1 schematically describes the Cognitive Model 10 of learning used in the present invention. Human beings learn language at an early age, at first by simply mimicking the adults or older children around them. Parrots can do the same thing. Parrots can learn that when they hear a certain pattern of sounds, another pattern of sounds is expected. What differentiates humans at a very early age is the ability to detect patterns in the sequence of sounds and to associate those patterns with real-world objects and situations (although many mammals and birds apparently have some pattern-using capability). This ability is illustrated in Figure I. Sensory information 12, e.g., sight, sound, touch, etc., is associated with things in the real world and stored in a person's associative memory 14. For example, if a parent points at a chair and says "this is a chair" the child associates that sentence with sensory information, in this case a mental picture of the chair, how it feels to the touch etc.
Soon the child notices something else. When the parent does the same thing with a table instead of chair and says "this is a table," the child (unconsciously) notices that it is almost the same sentence with the word chair replaced by the word table. The brain, ever on the lookout for ways to store information compactly, stores the pattern "this is a X." He or she notes that X can be either a chair or a table.
If a question is asked (stimulus 16) such as: "What is this?" and the parent points to the table, the child will respond 18 with "this is a table." The capability to store patterns, i.e., to abstract and to associate those abstractions with sensory memory is a primary basis for human intelligence. This implies that the greatest invention of humankind, language, is also the basis of intelligent thought. One cannot have human intelligence without a way of storing complex ideas and it is the combination of language, abstraction and its association with sensor memory that is the basis of that capability. In a mathematical model, X is an uninstantiated setVariable over the vector space {chair table} . The possible values of X are eigen words.
This model explains why a smell can evoke a specific memory. Of course seeing a picture or touching a surface can evoke memories too, but we are especially surprised when a smell can do this since we normally don't think of sensory memory as a part of intelligence.
An advocate of "deep knowledge" theories of intelligence might object that this model is too superficial to explain the capability of humans to comprehend complex subjects. There are two observations to be made here. First, this model is realistic precisely because it allows for superficial abstract associations. Second, it is realistic because it allows any level of complexity of knowledge to be built up through abstract association and, in particular, abstract deduction. For example, consider an abstract stimulus-response pair (SsL Srl), where Ssl = What is ().e23? and Sri = ( ).e23 is a color. In this case, ( ).e23 is the set of all colors. The visual memory 14 of colors completes the associative triad 12, 14, 18 shown in Figure 1. A human being needs only this information to associate the word "red" as a word that can be used in a pattern. With only this much information one knows how to describe reality in the context of language. Deep knowledge, such as the fact that red is associated with a particular frequency in the optical spectrum, is not required for every day conversation, but can be added as a series of deductive associations. Thus human knowledge is a combination of inductive knowledge about language and deductive associations that connect language elements.
In general, there are many declarative patterns that can be used in association with any piece of knowledge. In recognition of this fact, the AAS model organizes information in bundles called the "context" that allows information on specific subjects to be efficiently processed by grouping together related associations and patterns. It might be that this is an unnecessary step and a disadvantage of the model, but experiential knowledge suggests that this is the process the brain uses to organize information. Everyone has had the experience of being deep in a conversation and had the context abruptly switch away to a new subject. There is a definite feeling of energy being expended to bring this new context to the fore so that cognition can take place effectively. The processes of the present invention are not merely methods for processing information efficiently but, with extension, also serve as a way of directing comprehension and discourse.
Every algorithm in the AAS model is also an information compression and retrieval method. If intelligence is the outcome (perhaps inevitable) of evolution finding ways of storing and retrieving large amounts of information necessary for survival in the brain, the AAS model simulates that. It may be that life develops intelligence only when situations arise that give a survival advantage to processing and storing large amounts of information.
Learning Language
After linguist Noam Chomsky suggested that language might be unlearnable, linguist-philospher E. Gold produced a logical proof which concluded that natural language grammar could not be inductively discovered, even in theory. This has led to a widespread belief that human natural language ability is innate, implying the human brain has detailed knowledge of grammar at birth - the so-called Universal Grammar.
What Gold failed to realize was that his proof is only true if learning is unstructured. Clearly, sending a six year old child into a graduate class in quantum physics would not result in the child learning anything about physics. Likewise, a child cannot learn grammar if he or she is simply handed one of the classics in literature. Learning requires structure and the hallmarks of that structure or two-fold. First, there must be a period initially in which there is interaction with a teacher. Second, simple structures and ideas must precede complex structures and ideas. Gold's proof fails when the actual mechanisms of human learning are introduced. The fact that learning in children always starts with interaction with other human beings is not merely an accident of convenience. From the viewpoint of the theory of this invention, it is of profound significance. It is at this stage that stimulus-response pairs are being learned. The association between stimulus and response that is the basis for comprehension.
Implementation of the AAS Model Figure 2 is schematic diagram depicting the overall processes which implement the AAS model
20. Discussion and figures presented later describe a preferred embodiment of ADAM program flow in a computer.
Figure 2 shows inputs as speech 40 to a speech recognizer 41. A person skilled in the art will appreciate that a keyboard or other reader may be used as an input device. Figure 2 is helpful in understanding the process by which a learned stimulus is able to produce an intelligent response from the invention. The speech recognizer 4 land the (text to speech) speech synthesizer 26 are generally known and not part of this invention. Therefore, they are not described in detail in this Specification. However the effectiveness of these modules are increased by ADAM technology. A speech recognizer can understand more words if it has an expectation of what is to be said, based on the current context. Likewise, a Speech Synthesizer can be made more understandable by subtle modifications of the words, such as emphasis, that is possible through understanding of the meaning contained in the language provided by ADAM technology.
The upper part of the diagram in Figure 2 is concerned with producing a Concept and placing it on the Stack 24. A Stack 24 is simply a list of Concepts, which are normally accessed from the top-down. This process is driven by (1) the text string 50 produced by the Speech Recognizer and (2) a module called the Dialog Supervisor 36.
When a text string 50 is received from the Speech Recognizer 41 it is converted 42 to an instantiation of an abstract concept (or Concept) and handed to the Dialog supervisor 36. A primary function of the Dialog Supervisor 36 is to recognize the current context of the dialog. It does this by searching the Contextual Database 32. The Contextual Database 32 (which can be edited by an external program called the Context Editor) contains information that the Dialog Supervisor 36 can use to actively direct the flow of the dialog. The default action is simply to respond to' a stimulus 16, for example in answering a question. The Dialog Supervisor 36 can use its knowledge of context to load the Speech Recognizer 41 with words and grammars that are expected in the current context. To respond to a stimulus 16, the stimulus 16 is abstracted from the input text string 50 and the Pattern Buffer 34 is searched for an identical abstract stimulus 16. When one is found, a copy of the associated response pattern is created and instantiated with any words found in the original stimulus 16. (The Pattern Buffer 34 contains information about which words are identical in both the abstract stimulus and the abstract response patterns.) At this point, a response 18 has been created with usually only a partial instantiation.
The Pattern Buffer 34 also contains inferences as abstractions, although there are stricter rules about what can be abstracted as an inference in the Pattern Buffer 34. If the response pattern is not completely instantiated, the inference patterns are instantiated and "fired." Firing an inference means that the Conceptual Database 30 is searched to see if the instantiated inference is contained there. This mechanism is very useful because it can resolve ambiguities and simulate deductive reasoning.
Another mechanism used is called "mapping." Mapping 44 is the association of patterns of instantiation with stimulus-response pairs. For example the question "what is 2 plus 3?" is a mapping problem since it maps 2 and 3 into 5 by associating it with a certain pattern. The program stores a large selection of mapping algorithms and "learns" how to map by finding the best algorithm during training. Another mechanism is called an "Action." This is a facility for associating an abstraction with an action that can be performed by a computer such as reading a file.
Once the Concept is generated, disambiguated and any actions implemented, it is placed on the Stack 24.
Supervising the total process is a Goal Processor 22. The Goal Processor normally takes concepts off of the Stack 24, translates them into a text string 50 (with any instructions on emphasis and timing) and hands them to the Speech Synthesizer 41. The Goal Processor 22 handles timing issues involved in producing a natural dialog. It also can interrupt human-machine dialogs when external issues arise such as low battery power or meta-goals such as a need for certain kinds of information. Many applications require that ADAM have a self identity, and that has implications for goals that are handled by the Goal Processor 22. Figure 3 reveals a flow diagram depicting a process 51 by which a computer system, for example ADAM, "reads" an input text stream 50. In the current invention, a computer system learns by reading written language or hearing spoken language. This action simulates the interactive learning phase of humans. In the instant AAS model, comprehending language is a process that drives the stimulus- response pairings 16, 18 in reverse. In Figure 3, the input text stream 50 from a speech recognizer 41, or other input device, is converted to sentences 52. As each sentence is read by the system, a search is made of a conceptual data base 30, comprising an eigen directory 54 and a pattern directory 56, to find a learned stimulus 16 that would produce that sentence. That is, the reading process 51 interprets each sentence as an answer to a question, simulating an early interactive learning experience and bringing forth sensory associations made at that time. Once that link is completed' the computer can "understand" the input speech 40 or written material in terms of links already learned. One can see from this why reading material on a totally unfamiliar subject is difficult. In that case, there are few links, even on an abstract level, that lead back to a stimulus 16. The process of following these links backwards enables one to answer the question "what was the topic of this material?" Without some links to follow back to a stimulus 16, the question is almost impossible to answer. This observation serves to refute the common Al theory that reading is just a translation process from strings of symbols into "mentalese." It also serves to explain why reading can be such an enjoyable and vivid experience. As shown in Figure 2, following association pairs backwards can trigger sensory memories.
Besides obtaining a response 18 to a link back to a stimulus 16, a response 18 to a response link, that is, a deductive association link, can also be stimulated from reading. This experience may not be nearly as emotionally rewarding since there is no sensory memory attached. The AAS model 20 uses deductive association to make knowledge unambiguous and to make it declarative and explicit. This process eliminates the sometimes "shorthand" characteristic of language (e.g., the use of pronouns) and makes the conceptual knowledge contained in language explicitly available in memory as Concepts (recall the definition of a Concept from above).
Learning Language
Language learning in the AAS model is accomplished by structured, interactive induction. Early training of a computer to implement the model consists of inputting sentence pairs which are analyzed to produce abstract information about language. No specific world knowledge is stored in the computer at this stage since it is later abstracted from input patterns. It is at the early training stage that eigen vector sets are produced by noticing similarities between sentences. Once eigen vector sets are created, the next step is to create and store simple patterns using eigen vectors as markers. As with humans, it is important that only simple grammatical patterns are used at this stage. The simple patterns are used as the basis of creating more complex patterns later. This structured way of learning grammar is what makes Golds "proof," that inductive learning of grammar is impossible, invalid.
Following the early learning stage, more complex grammars are introduced. The AASM automatically uses the simple patterns to build more complex patterns. The patterns are stored in memory as tree structures with a pattern representing the central abstract concept of the sentence, being the root of the tree. Complex patterns are created from simple patterns by using two simple rules: (1) No pattern can exist twice in memory and, after the first version is created, only a unique symbol for that pattern can be used; and (2) no pattern can contain a sub-pattern without explicitly containing the unique symbol for that pattern.
The last learning stage is creation of a data base of world knowledge. Since grammar is now learned, inputting world knowledge is done either by human interaction or reading in text. The result is a list of Concepts called the Conceptual Database 30. The stages of learning are summarized in Table One. Note that this method does not require any pre-existing knowledge of language or grammar.
Table 1 — Stages of Computer Learning
Figure imgf000018_0001
Abstract Association
The mechanism for association is explained below. The idea of transforming one sentence into another was described above. It is not practical to store links between sentences themselves because that would result in a near-infinite number of links. However, if the association were made between abstractions, the number of links necessary would be dramatically reduced. Consider the following example in which the notation for a stimulus sentence has been simplified from Ss to S and notation for a response sentence has been simplified from Sr to R:
SI = What is a rose? RI = A rose is a flower.
If the link (S 1 : S2) is stored, then every time the question "What is a Rose?" is asked, it could be answered. That's not very useful if one wants a general understanding, not to speak of the memory required. But if the following were stored:
Sl = What is a ( ).e34? Rl = A ( )e.34 is a ( )e.56;
now the association (SI : RI) applies in a large number of cases, especially if each setVariable is allowed to be instantiated with anything included sub-patterns. (SI : RI) could apply to the following: Sl = What is the name of a large prehistoric lizard? RI = A large prehistoric lizard is a dinosaur; and to any number of sentence pairs that ask "what is." Mathematical Theory
In language, the smallest atom of meaning is a single word. Since the present invention is based on a language-independent theory, a word can be any series of characters or a symbol. The theory does not depend on the particular words that are chosen , but how those words are used to convey meaning. As discussed before, the meaning is captured by abstraction and association. If the set of all possible words in any particular language is S then a particular sentence is an ordered set, or vector, in the space given by S.
A key concept is the idea of sentence "differencing." From a mathematical point of view, this simple concept allows one to transform grammar from a process into a well-defined series of "rotations" in a vector space. Let us represent an ordered list of words of length k by the following equation:
Sn = ( Mlij Wlj, M2ijW2j .... MkijWkj) Equation 9
Where M 1 ij is a matrix rotation and Wlj is a word vector. We use the convention that Ml ij Wlj is a sum over j; that is, repeated indices are summed. The elements of M can only have the value 1 or 0. Thus for each value of n, M selects a word from its vector space. The Wkj word can be a "null word" — that is, no word—but there are restrictions of how many null words are allowed. See below.
Using the above expressions, a sentence is defined as a set of k orthogonal rotations in k vector spaces. Some vectors spaces only contain one word. In that case the associated matrix is equal to 1. It is important to note that the vector spaces are dynamically modified by extending the number of dimensions. This reflects the fact that this is a learning model. The first objective of this mathematical theory is to find a way to represent similar sentences. The definition of a similar sentence is: N sentences can be described as a series of rotations given by Equation 9.
It is important to represent a similar sentence because through this mechanism, we can represent changes in close meanings as simple mathematical operations. For example, buying a yellow car is similar to buying a red car (yellow red). The fact that a human has two eyes is similar to the fact that a monkey has two eyes (human monkey). Thus we can rotate through humans into monkeys while keeping the number of eyes constant. Of course, there are many possible rotations that relate humans to monkeys. It is the sum total of all rotations that provide a basis for machine understanding. A key part of understanding is the ability to do abstraction and analogy. If (humans monkeys) can have two eyes and are bipeds, the machine can reason that perhaps birds have two eyes by noticing that birds occupy the same vector space as human and monkeys while the number of legs is kept constant.
If only one word vector has a null member, all sentences are stored as similar sentences. The space in which the rotations take place is called "real space" as differentiated from "pattern space."
In the computer, there is a "working memory" that stores raw input as lists of similar sentences. It is from this raw material that abstract knowledge is created.
Creating Eigen Vectors
If, in the pair of stimulus-response sentences (Sn:Rm) there is one and only one unique rotation matrix, then the vector space associated with that rotation matrix is called an eigen vector space. Eigen vector spaces form a preferential orientation in the word space. It is the existence of a way to create these vectors that allow us to separate language from content. A way of thinking about this is that creating eigen vectors creates a set of preferential vectors in an otherwise unstructured data space. The following terms are repeated here again for convenience of the reader:
A setVariable is a variable that varies over a particular eigen vector space and has the notation: 0-en where n = nth eigen vector space.
A particular value w of the setVariable is represented by (w). en
A pattern is created by replacing the eigen value by its corresponding setVariable. Recall that this process is called Abstraction.
A Functor (f) is a way of expressing a sentence by explicitly separating eigen values and patterns. A "complete" sentence expressed as one or more functions is called a Concept (C). f = < (argument list) p>* *The less than and greater than signs are used as delimiters, not as logic symbols. Element p is a pointer to a pattern. The argument list can be either eigen values or functions. The expression is called the canonical form for representing concepts. The Conceptual Database 30 contains Concepts created by reading in text or processing speech input 40. Concepts are created by de-constructing sentences into patterns and eigen words. The Conceptual Database 30 is a repository of knowledge.
The Pattern Buffer 34 though not a repository of knowledge, is as important. The Pattern Buffer 34 does not have specific knowledge about the real world. That information is relegated to the Conceptual Database 30. The Pattern Buffer 34 contains information about how to extract information from the
Conceptual Database 30. It contains information on the following topics:
1. How to express a response to an abstract input.
2. How to look up logical inferences to remove ambiguity or substantiate a statement.
3. How to perform an action if one is required. The separation of language in the pattern buffer 34 and knowledge in the conceptual database 30 has the following benefits: 1) it allows knowledge about language to be applied to multiple domains; 2) it drastically lowers memory requirements since knowledge is independent from methods of relating that knowledge to language.
Referring to Figure 3, an example of construction of a concept follows. The following text is read into the computer (ADAM): Jack and Jill went up the hill to fetch a pail of water.
Reading consists of the following process: dividing the text string 50 into sentences 52; converting the sentences into concepts. In this example the above sentence is converted into a concept having a set of two functions, Cl: (fl f2) which is abstracted as follows (the digits identifying the eigen vector spaces and pointers being arbitrary):
Cl: (< ( (Jack Jill ).e6 (went ).el4 (hill ).el3) p2.1 > < ( (pail ).el6 (water ).e8 ) g 1.1 >)
*+In the above expression, the pointer gl.l in the second Functor refers to the following pattern:
gl.l: ( < ( ( ).el6 )c2.1 > < ( ( ).e8 )c3.1 > )
which also contains the following pattern for c3.1 : c3.1 : ( (of ).c ( ).e8 ).
The pattern referred to by the first pointer p2.1 in the first Functor is:
p2.1: ( ( ).e6 ( ).el4 up the ( ).el3 )
Each of these patterns are stored only once in a pattern dictionary. Concepts can be stored in memory very efficiently in the Conceptual Data Base by only noting their pattern and eigen values.
To retrieve the information now stored in the Pattern Buffer 34 and the Conceptual Database 30, a stimulus 16 is entered into the computer, for example, by a person:
Stimulus: What is in the pail? Computer (ADAM): The pail contains water.
ADAM "knows" that the pail contains water because it recognized the pattern gl . l which embodies the concept of an object containing something and, in addition, can generate a way of verbalizing that concept as a response to the question. If this seems confusing, remember that gl. l can also be part of a S-R pair. It is the information contained in the S-R pairs that allows the program to know how to answer questions even when information is embedded inside sub-units of the language. Compare this method with traditional parsing methods which depend on static identification of parts of speech. In real language, the part of speech of any particular work can change by simply embedding the sentence it is contained within inside a larger unit. For example, in the sentence "IBM plans to buy a plant in Kansas," the word "plans" is a verb. In the sentence "IBM plans to buy in plant in Kansas were cancelled," the word "plans" is a noun. And yet the fact that IBM had plans to build a plant is true in both sentences. Thus, the identification of the part of speech of "plans" was no help at all.
In this example the sentence What is in the pail? was converted to a Concept, the necessary information to answer the question given the example concept was in the Pattern Buffer 34. Of course, the specific information in the pattern buffer could also be applied to many different sentences and situations.
Note that in the pattern example
' p2.1 : ( ( ).e6 ( ).el4 up the ( ).el3 )
The pointer p2.1 represents the abstraction of someone doing something up the something. The program has abstracted the specific details of identification, motion and place. This may seem an odd way of abstracting the idea, but the particular form of the abstraction in the computer does not matter. It only matters that it has found a way to store how to use language separate from the specific details. The abstraction process is completely automated. Once the program has found a way to abstract a particular idea, it will use that method consistently.
Those that have studied other methods of determining meaning may expect there to be a representation of knowledge somewhere. In this theory there is no representation. Meaning and knowledge comes from the process of responding to stimulus—not as a static computer representation. Anyone who has ever taken a test should understand this. The correct answers are generated as a process— not by simply opening a tap and letting them flow out.
An objection might be made that the same idea can be expressed in may ways. For example, Fran hit Mary and Mary was hit by Fran contain exactly the same idea and yet the patterns are different. One of the functions of the Pattern Buffer 34 is to obviate the differences. The Pattern Buffer 34 stores lists of patterns, not just a single pattern. From the Pattern Buffer 34, the program knows that either sentence is the answer to the stimulus Who hit Mary? In other words, one of the functions of the Pattern Buffer 34 is to record the duality of language.
Example of Implementation of the AAS Model
Referring again to Figure 2 which shows an overview of the entire implementation of the AAS model works, the Goal Processor 22 is the highest level process. It takes sentences on the Stack 24 and hands them to the Speech Synthesizer 26. It is the responsibility of the Goal Processor 22 to mange realtime response to stimulus 16. The Goal Processor 22 can override verbal response if necessary. There are three main databases that are maintained by the system. The Conceptual Database 30 contains real-world knowledge, the Contextual Database 32 can direct discourse in certain circumstances and the Pattern Buffer 34 which contains information about how to extract knowledge from the Conceptual Database 30.
Figure 3 A further expands the "Find Response Pattern" process 48 of Figures 2 and 3. An input sentence 1 10 obtained from the convert-to-sentences process 52 is handed to a routine 120, 122 which identifies all the eigen words {en...em} and patterns {( )p} from the Conceptual and Contextual Databases 30, 32. The result is a Functor 122 or set of functions. The concept is abstracted by removing the eigen words and a search 124 is performed in the Pattern Buffer 34 for a matching abstraction. When a match is made, an abstract response is generated by following the links in the Pattern Buffer 34. Once found, a search 128 is made of the Conceptual Database 30. The eigen argument list 130 is created for the search. Some of the eigens {er..es} can come from the stimulus 16 and the rest are filled in by the found Concept 132. A sentence is created 134 from the eigen argument list and pattern 132. A test 126 is made to see if the sentence 110 is complete, i.e., all set variables have been instantiated. If true, an output sentence 112 is generated.
The output sentence 112 is placed on the stack 24, passed through the goal processor 22 to the speech synthesizer and delivered to the user by audio. Of course, the output sentence 112 may also be printed or reproduced by most known means.
Programming ADAM
Figure 4 shows the modules describing three broad areas of capability and operability of the
Automated Dialog Adaptive Machine (ADAM) 200, a preferred embodiment of this invention. The first module, Training 201, reveals how ADAM "learns" information input by a user. A second module, Interactive Dialog 202, describes ADAM's capability to do interactive, goal-driven dialog. Read Text
Documents 203 module describes machine 200 reading and comprehension.
ADAM 200 is intended to simulate the human capability to converse and understand in a practical, efficient and useful way. The inventor views human intelligence as the result of several interlocking simulation processes that can be on programmed on a computer. The inventor does not claim that the described processes can simulate all capabilities of human intelligence, only that enough of this capability can be simulated to perform useful tasks.
ADAM 200, as does human intelligence, rests on six major pillars of information processing and together are the major innovations of this invention. These are: (1) Abstraction of information into patterns; (2) Association of stimulus and response patterns; (3) Abstraction of logical Inference; (4) Mapping of objects and abstract concepts into concrete reality; (5) Reasoning by analogy; and (6) Learning language and knowledge through training, reading and human interaction.
Training: Process Inputs
Figure 4A shows how natural language information 50, input in training mode 201 , interfaces with the data base 30, 32, 34 and is retrieved for use in ADAM 200. Figure 4B depicts how questions about information in the data base, input in natural language 50 in interactive dialog mode 202 interface with the data base 30, 32, 34 to produce an output of answers and data forms 206 from ADAM 200.
Figure 5 shows that user inputs may be a stimulus 211, a response 212, an "if statement" 213 or an "else statement". The inputs may be conditioned in time 217. The user selects 218 the time 217 in which the condition should be applied relative to the time of the response. Note that this is not the tense of the condition, which can be different. This selection allows a comprehension engine to make an inference that takes into account the passage of time.
Link 220 allows creation of a data structure that defines how each of the user inputs 211, 212, 213, 214 link together.
The user selects 216 any external action215 associated with a response 18. This ultimately creates an association between an abstraction and an action 215. For example, if an associated response 18 is "a wrench has been selected," the action 215 selected should be able to deal with the abstract notion of selecting something. The action 215 should deduce from a particular stimulus 16, the statement "select a wrench." This statement is the one which would elicit the response 18 "a wrench has been selected."
The user selects 223 between non-local and several choices of locality 225. "Locality" 225 relates to identifying a concept as finite in space and time. A person is "local" because the concept of a specific human being is local to where that person is in space and time. On the other hand the concept of a human being is non-local. That is, the attributes of a human being are independent of space and time. If the response was "Jane has blue eyes," this is a local statement since it is only true for a particular point in space and time, that is, where Jane is. However, if the response was "humans have two legs," that is a non-local statement since it is true for all humans everywhere.
Statements that should be labeled "local" are only statements that define a particular type of locality. The most important of these is the concept of a person. Example stimulus-response pairs that define the differences between people should be input in the training process. The main purpose of this is to allow ADAM 200 to disambiguate references. It also serves the purpose of being able to separate things in time and space.
The program should be established by the user in a practical language to identify reference tags for each locality. In English the non-local tags are: he, she, it, they. The user can create new information at any time associated with each of these tags but the tag names should be used consistently. This is important since the program keeps maps for different non-local objects for the purpose of disambiguation.
This aspect of training substitutes for the human experience of being able to map concrete objects with human senses as a part of reality. A baby learns to associate "mommy" with only one local object, for example, and that learning is eventually integrated into language about local objects. Maps
During training, information about how to create a type of data object called a Map is created. A Map that describes how to create a Map is called a Meta Map. A Map is created when the user indicates he or she is introducing stimulus-response pairs 16, 18 about a local object or an external action 215. Theusr is allowed to identify a locality with a tag such as "he", "she", or "it" for convenience, although that is not necessary for proper functioning of the program. The information needed by the program is that stimulus- response pairs 16, 18 are about local objects and what kind of external action 215 is associated with the patterns being created.
During training, the user can "lock in" a particular locality. All examples then input while the training is "locked" are about one particular local object. The program uses this information to create an array of setVariable indexes called "discriminators." For example, if the user should input several stimulus- response pairs 16. 18 about someone named John, the program sees the setVariable for a male first name is being repeated while locked on a local object. It stores this information. Later, when the program detects any male first name, it creates a unique Map for this local object. The Map collects indexes into the Pattern Buffer 34 for a local object. This information is used to generate questions about a particular locality. For example, it could generate questions about a persons wife and children.
Another kind of Map is also created. When the program recognizes that it can predict a number in a pattern from another number stored in the same pattern, it associates the pattern with an algorithm for calculating the number, together with the position in the pattern the result should be stored. A routine called MapProcessor is called during comprehension. See the later discussion about the Read Text Documents
203 module. The routine can resolve automatically mathematics questions based on learned algorithms.
Database Applications
The technique used to create Maps is extended to data base applications. The program has tested algorithms until it could predict the results of examples it was given . A sentence input was "2 plus 3 is 5 " . The program applied a list of algorithms stored in memory until it succeeded in predicting the result. The program associates the correct algorithm with the pattern associated with the input sentence. Once it has found the way to return a correct answer, the program recalls the method when a similar sentence is entered.
This technique is extended to any type of data.
Referring again to Figure 4A, the database application technique produces methods to extract data from a data base 30, 32, 34 based on examples given to ADAM 200 during training. Figure 4B indicates that users can take advantage of this feature to find new relationships in their data bases.
Meta Maps
As shown in Figures 5 and 5A, when the user has identified a "local" object, it is stored in a Locality Meta Map 226. As previously discussed, examples of local objects are people, places and things. While a Map 228 is a data structure for storing an instance of an object, a Meta Map 226 stores data about how to differentiate between different kinds of mapping situations and how to tell the difference between different kinds of maps 228.
Figure 5 A contains a structure diagram for Meta Maps 226. Locality Meta Maps 226 have two kinds of data structures. Type (1) structure has indexes to Pattern Buffer entries that were made in training while in the "local" mode. These are stored to allow ADAM 200 to ask questions about local objects. The Pattern Buffer 34 contains abstracted stimulus-response pairs which have "locality". For example, upon being accessed by a new user, the program can access its Meta Map 227 about people to ask question about the user's marriage, family etc. It can do this because the Meta Map 227 tells ADAM 200 that a person has all these possibilities that are "local" to him or her. A second type (2) is a list of patterns, (empty set variables) and eigen words. Every time a Concept is added to memory (see Add Concept below) the locality maps are checked to see if there is a matching eigen word or setVariable. If there is a match, the Concept is added to a Map 228. The Maps 228 keeps track of particular instances of local objects. For one thing, this provides for efficient pronoun disambiguation. Locality Meta Maps 226 are a specialized subclass of Meta Maps 227. Meta Maps 227 in general are used when there is a need to simulate a capability to predict. As described earlier, there are additional built-in maps 228 for mathematics and counting. For example, if a user asks "what is the square root of three?" the program may not at first know. But using the Meta Map's math algorithms, after shown examples, the program can predict the answer. In effect, ADAM 200 can learn to do math, on its own, in any language.
Another type of problem that Maps 228 can help solve is a counting problem. Suppose the program has been told there are three peas in a cup and now one has been taken out. How many peas are in the cup? This is a trivial problem for a person. A Map 228 can store the number of peas as a "local" characteristic of a cup and associate the change in this characteristic with the concept of taking something out of the cup. This process combines locality mapping with mathematical mapping.
The following examples concentrate on names and gender as a main way to disambiguate certain references. The example uses the notation S, R, %I where: S = stimulus 16; R = response 18; and %I = inference. ADAM 200 automatically abstracts the training examples input, so only representative S-Rpairs 16, 18 need be entered. An example in Table 2 below of a stimulus-response pair is labeled "She":
Table 2 Stimulus-S Response-R Inference-%1
What is your name? My name is Jane. Her name is Jane.
What is her name? Her name is Jane. Jane is female.
What is your gender? I am female. She is female. What gender is Jane Jane is female.
What gender is she? She is female.
If the tag "She" is changed, the program will present the user with a list of eigens and asked which ones are constants for this type of non-locality. For this case the result would be as shown in Table 3 below.
Table 3
Figure imgf000027_0001
Table 3 tells the program that the specific name (e.g., Jane) can change, but words like name, her, female, gender and she are fixed for this locality Meta Map 227. ADAM 200 uses this information to decide if a reference is being made. In the sentence "her pride was hurt," Adam would associate this sentence with a "she" Map that could contain other information about the local object— in this case a female human. If the question were asked, "whose pride was hurt," ADAM 200 would look for a statement like
"X's pride was hurt," and it would look in the most recent "she" Map for an instantiation of X. Training in this way results in a Meta Map 227 being created for each type of locality. Each Meta
Map 227 can spawn a Map for a particular instance. In the example of "X" above, a Meta Map 227 is created which, among other things, establishes a list of eigen types for human names and gender. When these words are part of an input stimulus 16, a Meta Map 227 is created. ADAM 200 knows that two Maps refer to two different things because the specific eigen values are different. In the example above, the eigens that are not constant are used to differentiate between different objects of the same locality. Note in the example that this automatically handles names and points of view.
Process and Store Into Working Memory
Process and Store in Working Memory 219, causes user text strings to be tokenized and stored as lists of objects. The various types of text strings 50, that is, stimulus 16, response 18, "if..." 213, etc., are linked together in working memory. Working memory is temporary and serves to store user examples of stimulus-response links 220 and associated logic and action statements 215. These examples are used to build abstractions in pattern memory 30,32 and the pattern buffer 34.
Figure 6 discloses a flow diagram for the processing and storing into working memory of user inputs 211-214. The user input string 230 is matched 231 to existing working memory 237. If there is no match, the user input string 230 is added working memory 237. If the difference 235 between the input string 230 and stored memory 237 is small, the user input string 230 is forced 236 to be equal to the closest match.
Figure 7 shows the flow diagram describing the detailed process of working memory storage. User input 230 is compared with existing memory 237 and one data structure is created from both. The resulting structure replaces discrete words with rotation matrices that select individual words from a vector space. This is stated in equation form as follows:
w(i) = R(i, j)*E(j) Equation 10
where w(i) is a discrete word, R(i, j) is a rotation matrix and E(j) represents an eigen vector space.
As an example, assume E(j) is the vector space (Jane Alice Paula). If the program encountered the following two sentences: "Alice went to the store" and "Jane went to the store," the program would represent both sentences as the following three by three matrix:
0 1 0
1 0 0 0 0 0
One can represent the idea of "someone" going to the store as a concept and with a simple, economic mathematical representation we can "rotate." The first row represents "Alice went to the store." The second row represents "Jane went to the store." The third row represents someone going to the store, but since no statement has been made about any of the three persons named, the row contains all zeros. The advantage of this representation is that it allows for abstraction and reasoning by analogy to an specific example. The matrix is stored in Working Memory 242.
Working memory 242 is a list of raw input data created during training. In working memory 242, sentences and clauses have been converted to arrays of objects containing hashed integers representing individual words. In addition, Working Memory 242 contains a rich set of links that give information on how to associate stimulus 16, response 18 and conditional links . Working Memory 242 is the raw data from which the abstract data in the Pattern Buffer 34 is created. Pattern Seeker
Referring again to Figure 5, the Pattern Seeker 240 finds simple patterns and stores them, leaving the stimulus:response pattern in the Pattern Buffer 34. For a given stimulus 16, the Pattern Seeker 240 finds responses 18 that have the following patterns: (1) the pattern contains one or more eigen sets; (2) the pattern has one or two words bounded by an eigen set and an eigen word.
The Pattern Buffer maintains the association lists between patterns. Patterns are categorized and flagged as stimulus, response, inference and action. The following convention is used:
s - stimulus r - response i - inference a - action
A single element of a pattern buffer can be noted by:
((s(ij)) (rl(m,n) i(p,q) A(s,t)...))
which mirrors closely the way it is stored in memory. Parentheses indicate a list, i.e., (a b) is a list of the subjects a and b. The integer indexes indicate the pattern and pattern level.
Any number of responses and inferences can be associated with a stimulus. For example:
((s45.2) (r23.1 r 35.3))
means that stimulus 45, second level is associated with two responses. Logically, this means that, in an abstract sense, that if the pattern s45.2 is detected, the "form" of the response (meaning not the actual content) can either be r23.1 or r35.2. However, if the association was actually
((s45.2) ((r23.1 r 35.3) ))
this means that the form of the response is r23.1 AND r35.2. In other words, both response are indicated for this response at the same time. Likewise, if an extra pair of parentheses surround a pair of inferences, this indicates that both must be true for the response to be true. Figure 8 depicts in a flow diagram how Working Memory 242 is abstracted by the Pattern Seeker
240 into another form. The two sentences used as rotational matrix examples above are replaced by a pattern such as "( ).e34 went to the store." The ".e34" means that the variable ( ) is a member of a particular eigen set, in this case (Jane Alice Paula). This pattern is stored, not in Working Memory 242, but in the Pattern Buffer 34 or "pattern space."
Assume the user input 211-214 was the sentence "my family went to the store." "My family" is not a member of the eigen set .e34. In this case the Pattern Seeker 240 program would create the pattern
{ ( ).e34 ( ).e56 } went to the store. Here, the postulated pattern ( ).e56 is the vector space ( {my family} { my relatives} ...). The expression in brackets is called a vector set and is represented by the same rotational matrix structure. However, instead of being a rotation in eigen space, this is a rotation in "pattern" space. The word "pattern" is used to mean an empty setVariable and also lists of empty set variables.
There is a higher level of abstraction in which patterns having empty set variables can be represented as rotations in pattern space. Rotations in this higher space are called "analogies" because they may not always be true. These kinds of rotations can result in the program "speculating" about new relationships which can lead to interesting machine-human dialog. An early question put by ADAM 200
(in an early prototype) was "are Humans intelligent?"
Figure 9 is a further detailed flow diagram of Creating a Pattern process 244 shown in Figure 8 flow diagram. As described above, a pattern is abstracted (made) from Working Memory 242 data. The abstracted pattern is searched for a "clause". A clause is defined as a sub-pattern within a sentence. Clauses are detected in two ways: (1) by comparing with known simpler patterns; (2) by recognizing that many clauses start with certain words like to, from and about. If the pattern "X is a Y" is known and the sentence
"to the left is a house," is detected, it can be assumed that "to the left" is a clause. The program keeps a list of these words as a special type of eigen. A Functor List 246 is an abstract form of a segment of Working Memory 242. It is similar to a
Concept in that it can contain sub-patterns in the form of a Functor but is in an abstract form. Unlike a
Concept, it does not contain eigen words, only the patterns for eigen words. A pattern is an empty setVariable and lists of empty set variables.
Following is an example of the creation of a Functor List 246 from a Working Memory segment 242. Working Memory segment: "The pail is full of water." This is abstracted to the Functor List: "The
( ).e4 is full <(( ).e7) p2.3>" where ( ).e4 is an empty setVariable and <(( ).e7) p2.3> is a Functor containing an empty setVariable.
Figure 10 is a further detailed flow diagram of the process of making a pattern 248 from a
Working Memory 242 segment shown in Figure 9. Figure 11 is a further detailed flow diagram of the process 250 of making a Functor 256 as shown in Figure 9. The element set 252 of the memory segment is processed by the Structure Pattern Match 254 to find an existing pattern that best matches the element set 252 or install a new pattern if no match is found.
The objective of the Structure Pattern Match 254 is to create the raw form 256 of the Functor argument list
246 using the pattern found. Creating a Functor 258 comprises the process depicted in Figure 1 1 A. The argument list 255 in raw set form is converted to Functors 257 and put into a canonical form of Argument List 259. Figure 12 presents additional detail of the process of creation of a Functor 256 from the element set 252 of the memory segment. Figure 13 depicts details of the Structure Pattern Match 254 process. The best match 260 to the element set 252 is checked for a pattern 262 already existing. If one exists, the pattern and the element set 252 is kept as part of a raw argument list 266. If no pattern exists, a pattern is created and installed 264 with the element set
252 and then stored as a raw argument list 266.
Further details of the Structure Best Match 260 process are found in the flow diagram of Figure 14. The best match patterns from the element set 252 are found 267. These best match patterns 267 are partitioned 268 into matching non-eigen words and sets of everything else. This "raw" argument list 266 is then converted into a Functor argument list 258 by substituting Functors 256 for the sets created by the partitioning 268. Continuing with the detailing of finding the best match pattern 267, Figure 15 describes the flow leading to selection of the pattern 269. Interactive Dialog
Figure 4 reveals the Interactive Dialog module 202 of ADAM 200. Figure 16 shows a diagram which describes the flow of interactive voice input 300 to a speaker-independent, continuous speech recognizer 302, external to ADAM 200. The person skilled in the art will recognize that other types of textual input devices may be used in place of verbal devices, for example, keyboard entry, scanned text, etc.
The speech recognizer 302 returns a "Recognition Event 304."
The Recognition Event 304 is handled by ADAM 200 in a process that is described in Figure 17. The Process Recognition Event 304 generates a response 312 to the user speech input 300, 302. The response 312 is in the form of a Concept data structure which is then placed on the stack 24.
In Figure 18, the process flow for creating a sentence Functor set 310 is depicted. The elements 313 of the user's input 300, 302 are obtained by comparison to the language model 306. From these elements 313 a Concept is created 314. A Functor is made 316 which describes the Concept. The Functor is appended to the Concept.
The process of making a Functor 316 from user input 313 is further detailed in Figure 19. The process at this level is the same as for the Training module Make Function process 250 shown in Figure 9.
The further detail of Functor Creation 324 diagramed in Figure 20, is the same process shown in Figure
11 and 11 A. The raw Argument List 322 is converted 326 to Functors and a canonical form of the Argument List 328 results.
In Figure 21 , more detail of the Set to Functor block 330 is shown. This process is identical to the process used in the Training module 201.
The Generate Response process 312 is further delineated in the flow diagram of Figure 22. When a Stimulus 16 statement is entered by the user, the Stimulus Concept 338 is added to memory 342. Figure 23 shows the continuation of flow within the Add Stimulus to Memory process 340. A Concept 360 created from user input 300 is added to the Conceptual Memory 362 data base. A decision is made 364 about the "locality" of the Concept 360 and a Map is created 366.
Referring again to Figure 22, an interrogative statement requires a response. A declarative statement is information to be learned and stored. Therefore, the Stimulus Concept 338 is examined 342 to determine which case it is. If it is not declarative statement, a Response Method is determined 344. If the Response Method 344 returns a Concept from the data bases 30, 32, the Response is found and can be processed 348.
The Response Method is further described in Figure 24. A search is undertaken over all of the primary patterns in memory for a Response Set 370 , a pattern like that of the Concept Stimulus 338. From the found Response Set 370, the Conceptual data base 30 is searched for a matching Concept. The Concept and Response are retained 376 for further processing 348.
The Found Concept and Response 376 are passed to a Do External Action process 382 as displayed in Figure 25. Some Responses 376 held in memory may have had an external action attached to them. For example, a robotic application has as a possible Response "the wrench is selected." That Response has an action code associated with it that implements the external action. On successful completion of the action 382, the input Concept 376 is returned and eventually placed 384 on a primary stack 386 and output as speech, text or both. In the case of an unsuccessful action 382, this code returns an appropriate Concept as a Response 376.
The Response 376 may not contain a Concept but only an inference. The Conceptual Database 30 is then searched to see if the instantiated inference is contained there 388. This step is called "Firing an Inference" 388. If an inference did create a Concept 376, the Concept 376 is passed through the Do
External Action process 382, described above. If an inference did not create a Concept, one is generated 392 and passed to a "Context Switcher" 394. The original stimulus 300, 302 is also put on the Pending stack 394 to wait for more information.
The Context Switcher 396 flow is depicted in Figure 26. The program searches the Contextual Data base 32 for a Concept whose context would suggest the Concept 376 in question. If such a Concept is found there, the Conceptual Database 30 is searched 402 to see if the Concept, that is, the instantiated, generated inference has been stored there. If so, that Concept is placed on the primary stack 386, preparatory to processing for output.
Reading Text Documents The third module comprising ADAM 200 is Reading Text Documents 203. As seen in Figure 27, he text file is handled 420 in a conventional way in respect of opening 421, reading 422 and closing 426.
In respect of comprehension 424 of the textual input 422, the program proceeds in much the same way as the Training 201 and Interactive Dialog 202 modules.
Figure 28 expands the textual input 422 Comprehend process 424. The input text string 426 is added to memory 428 and concepts are constructed 430 from the statements input. In Figure 29, the Building of Concepts process flow is shown.
A set of Functors is created 430 from the element set 432 contained in the processed text string 426. The prior discussion of Figures 18, 19, 20, 21, 14 and 15 support the flow diagrams depicted in Figures 30 through 36, respectively. The flow diagrams show the process whereby a Functor is created 438, 450, 452 and a Pattern Match is found 440, 460 and
462.
Specific Implementations of the Invention- Glossary of Terms Database Applications
The ability to perform database extraction is an important application of ADAM. Normally database information retrieval is a costly and time-consuming process requiring a lengthy requirements process, database programming, debug and testing procedures. ADAM can be substituted for most or all of this process.
The ADAM Database data retrieval process is shown in Figures 37 and 38. In Figure37 examples are given to ADAM including a database query (in natural language) and an example of how the program should answer. ADAM treats the database as a map and uses its prediction algorithms to guess how data from the database was used to formulate an answer. It does not matter if there are ambiguous ways to give any one particular answer. ADAM can use multiple examples to find an algorithmic solution that solves all examples simultaneously. This method is only limited by the number of algorithms that are stored internally. Once the learned algorithms are stored as associations with natural language, the algorithms can be used to extract data as shown in Figure 38.
Language Translation
Attempts to do automated language translation have only met with limited success, primarily because accurate language translation needs knowledge of the meaning of the sentences rather than literal translation of individual words. ADAM technology can be used for language translation using the built-in ability to use pattern association and abstraction. Figure 39 shows the top-level pattern association mechanism. The input sentence is abstracted and a pattern buffer is used to find an abstraction that represents how to express a response. The conceptual database is then searched for a concrete expression that matches information found in the input sentence.
In Figure 40, the pattern buffer connects abstractions in the primary language to abstractions in the target language. The target language abstraction is then matched with concepts in the target language to perform the translation. In this way, the meaning of sentences is used to perform the translation. The same mechanism as in Figure 40 is used except that the training necessary to create the pattern buffer comes from training in translation. Identification by Pattern Analysis
ADAM can also be used for identification purposes. Every person has characteristic patterns they use in writing and in speech. During text and speech comprehension, ADAM matches abstract patterns to speech patterns as a uniform comprehension mechanism. By simply counting the number of each pattern used by different individuals, a characteristic signature can be developed for recognition purposes.
This means that an individual "i" would have an individual signature that could be developed by analyzing text and speech of different people. The probability of the speaker being person "i" would be:
Prob(i) = n(l)*p(l,i) + n(2)*p(2, i) + n(3)*p(3,i) + ....
Wliere the n(j) are measured numbers of usage of each pattern p and p(i, j) are individual probabilities of each pattern based on calculated statistics of individuals.
Home Companion
The capability of ADAM to comprehend text and perform interactive real-time dialog can be used to provide a personal assistant and companion that has up to date information on topics of interest to the user. This information will be comprehended in real-time over the Internet by the ADAM-driven companion and made available as natural conversation. From the viewpoint of the user, this has the advantage of quickly accessing information of interest in the most natural of ways. It would simulate an attentive, knowledgeable person who would be available for helpful information or just companionship 24 hours a day. People living alone or in remote areas might find this a helpful psychological aid.
Hands-free assistant Workers frequently have need for advice and assistance in the field in situations where they need to user their hands for the task at hand. In many case this precludes the use of keyboards or manuals.
ADAM can provide interactive assistance through a voice wireless link. The worker can describe a situation and ADAM can provide procedural help, situation analysis, and descriptions of other information that is developing from a remote area. Since ADAM has the ability to learn scenarios, ADAM can anticipate next steps, warn of possible dangers and provide reminders of plans and procedures in complex situations. This could apply to many different tasks and situations such as a mechanic repairing an automobile, an astronaut servicing a spacecraft, or even a soldier on the battlefield.
Vehicle-related Safety
On-board vehicle safety issues can be addressed with ADAM technology by providing emergency information that goes beyond pre-canned warnings. Complex technology on today's airplanes, cars and military vehicles can be improved by ADAM's ability to conceptualize failures and verbalize emergency procedures in real-time.
Graphics Visualization
ADAM's ability to create descriptive maps of objects can be used to translate descriptions of objects and scenes into drawings of those objects. This capability can be used by architects, movie makers, interior decorators, or anyone who want to achieve an immediate visualization of anything from a verbal or written description.
Authoring Tools
ADAM can be used to create prototypes of articles and scientific papers by interacting with the author. ADAM can learn the habits and styles of a particular author and produce preliminary prototype articles and papers by interacting verbally with the author. For example, by just stating a topic and type of document, ADAM can lay out the basis for the final document by organizing learned material into the proper form.
Creative Database Tools
ADAM can combine its ability to retrieve data ("mine") from databases with its ability to reason by analogy and inference to find new relationships in data and suggest these new relationships using natural language. Those that work in creative fields, such as scientists, can use this capability to accelerate the creative process, especially when dealing with large amounts of data.
Customer Relationship Management
ADAM can benefit customer relations in a number of ways. Using its database capability discussed above, ADAM can provide solutions to customer needs by extracting an optimal solution under complex situations. For example, transportation industries can use ADAM to do ticketing and other transactions that depend on optimization of many parameters.
Other electronic Customer Relationship Management (eCRM) roles which these principles apply include: Credit card service providers
Financial services companies, including, but not limited to brokerage firms, banks, insurance companies
Telecommunications companies
Energy companies
Transportation companies and agencies, including but not limited to brokerage firms, banks, insurance companies.
Press agencies Business to business applications Business to consumer applications Business to Business to consumer applications Museums Movie and other entertainment facilities
Robotics
Robots can benefit from ADAM's real-time voice interaction. Robots need conceptual information to perform complex tasks. For example, a robot helicopter might be used to identify and track criminals on foot or in vehicles. Voice interaction could be used to alert the helicopter to rapidly changing situations. ADAM can conceptualize input information and turn it into real-time actions. It can also advice operators of failures and suggest actions.
Operating Systems
ADAM can be used as an integral part of computer operating systems, concluding but limited to Windows, Windows NT, Apple Operating Systems, Linux and Unix.
Embedded Systems
Fundamentally, any system using ADAM consists of ( 1 ) a software executable residing on volatile or non-volatile memory and (2) some kind of memory device that stores language and world knowledge that is basic to its functionality and (3) a memory device that stores new learned language and world knowledge capability. This functionality can be embedded in any device in which interactive language capability is needed. This could include, but not be limited to, handheld computers, smart hotel locks, cash registers, fax machines, home entertainment systems, smart watches, smart phones, GPS gear, and mapping systems in cars. The memory type and size described in the above paragraph would be adjusted for each of these applications.
Computers
ADAM can be used in any type of computer, including but not limited to portable computers, desktop computers, workstations, servers, mainframes and super computers.
Wireless Devices and Systems
ADAM can be used in any communications network, including but not limited to wireless networks, copper networks, fiber optic networks, satellite networks, video networks, and free air optical networks. Also, ADAM can be used in any Customer Premise Equipment (CPE), including but not limited to wireless phones, PCS phones GMS phones, CDMA phones, wireless phones based on any type of protocol, computer based CPEs, and satellite receivers/CPEs. Entertainment and Game Products
ADAM can be used as a personality simulant for the entertainment industry, and any type of machine, robot, game or toy that can benefit from a language interface. This would include interactive personality simulants at entertainment parks, casinos and other resort and vacation centers.
Machine Monitoring
ADAM can be used to monitor or control any type of machine, including but not limited to engines, motors, motorcycles, automobiles, trucks, aircraft, spacecraft, MEMS (Microminiature Electronic Machine Systems), oscillators, and voltage monitoring devices.
Non-human Language Communication
ADAM is completely language independent, learning from stimulus-response patterns that it can associate with actions and various types of data structures. This means that communication is not limited to human languages. The only requirement is that the communication be broken down into distinct, recognizable units with the proper interface. This means that ADAM can be used to communicate with dolphins, whales, primates, birds and any other organism that communicates by producing sounds, motions, chemicals, or any other form of communication that can be detected by a sensing device.
Additional products which would use ADAM's capabilities include:
Corporate portals that learn via use, understand what users need, and are conversational. B2B and B2C adaptive, personalized online shopping tools.
Automated email response with user high-level monitoring using natural language.
Internet/intranet/extranet question answering.
Intelligent Internet search.
Self-service knowledge bases on the Internet. Personalized news wire reading and summary tools.
Automated customer care centers.
Interactive, speech-enabled palmtops such as Palm Pilot, Visor and Cassiopeiea
Interactive, speech-enabled wirelesss communicators such as WAP phones from Ericsson, Motorola and
Nokia. Online clickstream analysis.
Database Applications
The ability to perform database extraction is an important application of ADAM. Normally database information retrieval is a costly and time-consuming process requiring a lengthy requirements process, database programming debug and testing procedures. ADAM can be substituted for most or all of this process.
The ADAM Database data retrieval process is shown in Figures 37 and 38. In Figure 37, examples are given to ADAM including a database query (in natural language), and an example of how the program should answer. ADAM treats the database as a map and uses its prediction algorithms to guess how data from the database was used to formulate an answer. It does not matter if there are ambiguous ways to give any one particular answer. ADAM can use multiple examples to find an algorithmic solution that solves all examples simultaneously. This method is only limited by the number of algorithms that are stored internally. Once the learned algorithms are stored as associations with natural language, the algorithms can be used to extract data as shown in Figure 38.
Language Translation
Attempts to do automated language translation have only met with limited success, primarily because accurate language translation needs knowledge of the meaning of the sentences rather than literal translation of individual words. ADAM technology can be used for language translation using the built-in ability to use pattern association and abstraction. Figure 39 shows the top-level pattern association mechanism. The input sentence is abstracted, and a pattern buffer is used to find an abstraction that represents how to express a response. The conceptual database is then searched for a concrete expression that matches information found in the input sentence.
In Figure 40, the pattern buffer connects abstractions in the primary language to abstractions in the target language. The target Language abstraction is then matched with concepts in the target language to perform the translation. In this way, the meaning of sentences is used to perform the translation. The same mechanism as in Figure 39 is used except that the training necessary to create the pattern buffer comes from training in translation.
Identification by Pattern Analysis ADAM can also be used for identification purposes. Every person has characteristic patterns they use in writing and in speech. During text and speech comprehension, ADAM matches abstract patterns to speech patterns as a uniform comprehension mechanism. By simply counting the number of each pattern used by different individuals, a characteristic signature can be developed for recognition purposes. This means that an individual "i" would have an individual signature that could be developed by analyzing text and speech of different people. The probability of the speaker being person "i" would be:
prob(i) = n(l)*p(l,i) + n(2)*p(2, i) + n(3)*p(3,i) + ....
Where the n(j) are measured numbers of usage of each pattern p and p(i, j) are individual probabilities of each pattern based on calculated statistics of individuals.
Home Companion
The capability of ADAM to comprehend text and perform interactive real-time dialog can be used to provide a personal assistant and companion that has up to date information on topics of interest to the user. This information will be comprehended in real-time over the Internet by the ADAM-driven companion and made available as natural conversation. From the viewpoint of the user, this has the advantage of quickly accessing information of interest in the mostnatural of ways. Itwouldsimulate an attentive, knowledgeable person who would be available for helpful information or just companionship 24 hours a day. People living alone or in remote areas might find this a helpful psychological aid.
Hands-free assistant
Workers frequently have need for advice and assistance in the field in situations where they need to user their hands for the task at hand. In many case this precludes the use of keyboards or manuals. ADAM can provide interactive assistance through a voice wireless link. The worker can describe a situation and ADAM can provide procedural help, situation analysis, and descriptions of other information that is developing from a remote area. Since ADAM has the ability to learn scenarios, ADAM can anticipate next steps, warn of possible dangers and provide reminders of plans and procedures in complex situations. This could apply to many different tasks and situations such as a mechanic repairing an automobile, an astronaut servicing a spacecraft, or even a soldier on the battlefield.
Vehicle-related Safety On-board vehicle safety issues can be addressed with ADAM technology by providing emergency information that goes beyond pre-canned warnings. Complex technology on today's airplanes, cars and military vehicles can be improved by ADAM's ability to conceptualize failures and verbalize emergency procedures in real-time.
Graphics Visualization ADAM's ability to create descriptive maps of objects can be used to translate descriptions of objects and scenes into drawings of those objects. This capability can be used by architects, movie makers, interior decorators, or anyone who want to achieve an immediate visualization of anything from a verbal or written description.
Authoring Tools ADAM can be used to create prototypes of articles and scientific papers by interacting with the author.
ADAM can learn the habits and styles of a particular author and produce preliminary prototype articles and papers by interacting verbally with the author. For example, by just stating a topic and type of document, ADAM can lay out the basis for the final document by organizing learned material into the proper form.
Creative Database Tools
ADAM can combine its ability to retrieve data ("mine") from databases with its ability to reason by analogy and inference to find new relationships in data and suggest these new relationships using natural language.
Those that work in creative fields, such as scientists, can use this capability to accelerate the creative process, especially when dealing with large amounts of data.
Customer Relationship Management
ADAM can benefit customer relations in a number of ways. Using its database capability discussed above, ADAM can provide solutions to customer needs by extracting an optimal solution under complex situations.
For example, transportation industries can use ADAM to do ticketing and other transactions that depend on optimization of many parameters.
Other electronic Customer Relationship Management (eCRM) roles which these principles apply include:
(1) Credit card service providers (2) Financial services companies, including, but not limited to brokerage firms banks, insurance companies
(3) Telecommunications companies
(4) Energy companies
(5) Transportation companies and agencies, including but not limited to brokerage firms, banks, insurance companies (6) Press agencies
(7) Business to business applications
(8) Business to consumer applications
(9) Business to Business to consumer applications
(10) Museums (11) Movie and other entertainment facilities
Robotics
Robots can benefit from ADAM's real-time voice interaction. Robots need conceptual information to perform complex tasks. For example, a robot helicopter might be used to identify and track criminals on foot or in vehicles. Voice interaction could be used to alert the helicopter to rapidly changing situations. ADAM can conceptualize input information and turn it into real-time actions. It can also advice operators of failures and suggest actions. Operating Systems
ADAM can be used as an integral part of computer operating systems, concluding but limited to Windows,
Windows NT, Apple Operating Systems, Linux and Unix.
Embedded Systems Fundamentally, any system using ADAM consists of (1) a software executable residing on volatile or nonvolatile memory and (2) some kind of memory device that stores language and world knowledge that is basic to its functionality and (3) a memory device that stores new learned language and world knowledge capability. This functionality can be embedded in any device in which interactive language capability is needed. This could include, but not be limited to, handheld computers, smart hotel locks, cash registers, fax machines, home entertainment systems, smart watches, smart phones, GPS gear, and mapping systems in cars. The memory type and size described in the above paragraph would be adjusted for each of these applications.
Computers
ADAM can be used in any type of computer, including but not limited to portable computers, desktop computers, workstations, servers, mainframes and super computers.
Wireless Devices and Systems
ADAM can be used in any communications network, including but not limited to wireless networks copper networks, fiber optic networks, satellite networks, video networks, and free air optical networks. Also, ADAM can be used in any Customer Premise Equipment CPE including but not limited to wireless phones, PCS phones GMS phones, CDMA phones, wireless phones based on any type of protocol, computer based
CPEs, and satellite receivers/CPEs.
Entertainment and Game Products
ADAM can be used as a personality simulant for the entertainment industry, and any type of machine, robot, game or toy that can benefit from a language interface. This would include interactive personality simulants at entertainment parks, casinos and other resort and vacation centers.
Machine Monitoring
ADAM can be used to monitor or control any type of machine, including but not limited to engines, motors, motorcycles, automobiles, trucks, aircraft, spacecraft, MEMS (Microminiature Electronic Machine Systems), oscillators, and voltage monitoring devices. Non-human Language Communication
ADAM is completely language independent, learning from stimulus-response patterns that it can associate with actions and various types of data structures. This means that communication is not limited to human languages. The only requirement is that the communication be broken down into distinct, recognizable units with the proper interface. This means that ADAM can be used to communicate with dolphins, whales, primates, birds and any other organism that communicates by producing sounds, motions, chemicals, or any other form of communication that can be detected by a sensing device.
Additional Products
Additional products which would use ADAM's capabilities include: (1) Corporate portals that learn via use, understand what -users need, and are conversational
(2) B2B and B2C adaptive, personalized online shopping tools
(3) Automated email response with user high-level monitoring using natural language
(4) Internet/intranet/extranet question answering
(5) Intelligent Internet search (6) Self-service knowledge bases on the Internet
(7) Personalized news wire reading and summary tools
(8) Automated customer care centers
(9) Interactive, speech-enabled palmtops such as Palm Pilot, Visor and Cassiopeiea
(10) Interactive, speech-enabled wirelesss communicators such as WAP phones from Ericsson, Motorola and Nokia
(1 1) Online clickstream analysis
ADAM is about simulating the human capability to converse and understand in a practical, efficient and useful way. The inventor views human intelligence as the result of several interlocking processes that can be simulated on a computer. The inventor does not claim that the described processes can simulate all capabilities of human intelligence, only that enough of this capability can be simulated to perform useful tasks. ADAM, like human intelligence, rests on six major pillars of information processing and together are the major innovations of this invention. These are:
(1) Abstraction of information into patterns
(2) Association of stimulus and response patterns (3) Abstract logical Inference
(4) Mapping of objects and abstract concepts into concrete reality
(5) Reasoning by analogy
(6) Learning language and knowledge through training, reading and human interaction. The capability of ADAM is shown in three broad areas. Block 1 is concerned with training. Block 2 describes ADAM's capability to do interactive, goal-driven dialog and Block 3.
Training
ADAM operates in two modes: (I ) training and (2) dialog. In the training mode, ADAM incrementally learns language, learning how to make inferences and ask questions and learning how to perform actions such as opening a file or telling time.
The user is presented with several blocks of text to fill in, and options about the kinds of concepts that are being generated. The If and Else statements are optional. The list of actions only contains things that are external to the program such as opening a file. All other actions are handled by the comprehension algorithms. The user must end complete sentences with punctuation, otherwise the program will assume the input is a clause. The response may be left blank if the stimulus requires an inference as a response. For example, a stimulus that begins with the word "why" does not usually have a response. This is handled by simply restating the stimulus as an inference and letting the inference engine find the answer. For example if the stimulus is "Why is Jane sad," the response should be left blank and the "If statement filled in with "Jane is sad," and the "Else" statement filled in with "Jane is not sad." Information created during training is stored in temporary working memory and is used as templates to create abstractions that tell the program how to operate. In the above example, no information about Jane becomes part of the data base. The Pattern Seeker converts working memory into information stored in the Pattern Buffer and Pattern Memory. This scheme only works if training is structured to start with very simple language constructs and is only allowed to increase in complexity after simple patterns are learned. This is necessary for the same reason it's necessary in children. We build complex language structures from primitive structures.
Interactive Dialog
In this mode an event loop periodically checks to see if there is an event that needs processing. If someone is talking, that event is processed and a response is generated immediately, otherwise events that are on the goal processor stacks are processed.
Training: Scenario?
If yes, this indicates that the user is inputing a sequence of related events that are time-ordered.
Training: Goal State?
If yes, this indicates that the current concept is a goal state inside a scenario.
Training: Lock?
Locking the training session indicates that all input is about one thing in either time or space, or both. Training: Pattern Seeker: Working Memory
Working memory is a list of raw input data created during training. In working memory, sentences and clauses have been converted to arrays of objects containing hashed integers representing individual words. In addition, Working Memory contains a rich set of links that give information on how to associate stimulus, response and conditional links. Working Memory is the raw data that the abstract data in the
Pattern Buffer is created from.
Training: Pattern Buffer
The Pattern Buffer maintains the association lists between patterns. Patterns are categorized and flagged as stimulus, response, inference and action. The following convention is used:
s— stimulus r— response i— inference a— action
A single element of a pattern buffer can be noted by:
( ( s(i,j) ) ( rlm,n) i(p,q) A(s,t) ...))
which mirrors closely the way it is stored in memory. Parenthesis indicate a list, for example, (a b) is a list of the objects a and b. The integer indexes indicate the pattern and pattern level. Any number of responses and inferences can be associated with a stimulus. For example
((s45.2)( r23.1 r 35.3))
means that stimulus 45, second level is associated with two responses. Logically this means that, in an abstract sense, that if the pattern s45.2 is detected, the "form" of the response (meaning not the actual content) can either be r23.1 or r35.2. However, if the association was actually
((s45.2 )(r23.1 r 35.3)))
This means that the form of the response is r23.1 AND r35.2. In other words both response are indicated for this response at the same time. Likewise, if an extra pair of parenthesis surround a pair of inferences, this indicates that both must be true for the response to be true. Training: Pattern Seeker
The Pattern Seeker finds simple patterns and stores them, leaving the stimulus:response pattern in the pattern buffer.
For a given stimulus, it finds responses that have the following patterns: (1 ) contain one or more eigen sets; or (2) has one or two words bounded by an eigen set and an eigen word.
Training: Link
Create a data structure that defines how each of the user inputs link together.
Training: Process and Store into Working Memory User text strings are tokenized and stored as lists of objects. The various types of text strings, i.e. stimulus, response, if etc., are linked together in working memory. Working memory is temporary and serves to store user examples of stimulus-response links and associated logic and action statements. These examples are used to build abstractions in pattern memory and the pattern buffer.
Training: CONDITIONAL OCCURS: The user selects the time in which the conditional should be applied relative to the time of the response.
Note that this is not the tense of the condition which can be different. This selection by the user allows the comprehension engine to do inference that takes into account the passage of time.
Training: Locality Meta Maps
This is where data is stored when the user has identified a "local" object. Examples of local objects are people, places and things. These are called "local" because they exist in a particular location in space and time. This technique simulates the experience babies have with this concept. A Meta Map stores data on how differentiate between different kinds of mapping situations, and how to tell the difference between different kinds of maps. A Map is a data structure of storing an instance of an object that is described by a Meta Maps.
Locality Meta Maps have two kinds of data structures:
(1) Indexes to Pattern Buffer entries that were made in training while in the "local" mode. This is stored because it allows ADAM to ask question about local objects, since the Pattern Buffer contains abstracted stimulus-response pairs. For example, upon meeting someone new, the program can access its Meta Map about people to ask question about marriage, family etc. It can do this because the Meta Map tells ADAM that a person has all these possibilities that are "local" to him or her. (2) A list of patterns (empty setVariables) and eigen words. Every time a concept is added to memory (see Add Concept) the locality maps are checked to see if th ere is a matching eigen word or setVariable. If there is a match, the Concept is added to a Map. The Maps keeps track of particular instances of local objects. This provides for efficient pronoun disambiguation, for example.
Locality Meta Maps are a specialized subclass of Meta Maps. Meta Maps in general are used when there is a need to simulate a predictive capability. For example, if some asks what is the square root of three, the program may not at first know. But using the Meta Maps math algorithms, it can, after shown examples, predict what the answer is. In effect, ADAM can learn to do math, on its own, in any language. Another type of mapping problem that Meta Maps and Maps are good for is counting problems.
Training: User selects any external action associated with response
This association will ultimately create an association between an abstraction and an action. For example, if the associated response is "a wrench has been selected," the action selected should be able to deal with the abstract notion of selecting something, and deduce from the particular stimulus (i.e. "Select a wrench") what is required in the specific response.
Training: ACTIONS:
This is a list of actions that is application and platform specific. A PC application might be concerned with file management for example. A robotic application might contain actions having to do with manipulating objects.
Training: Meta Maps
Additional built-in meta maps for mathematics and counting.
Training: User can select an external database
In some applications, an external database may be connected to the program. If one is selected, the program automatically uses the database to try to predict responses that are given in the training. This is the same concept as the map concept, except in the case the program connects to a pre-existing database. If during training the program can predict the response successfully (using the example given) the algorithm found is stored together with relevant database record location information that will allow the program to generalize the response, i.e., predict a correct response in all cases. This option should only be used if the application is designed to use the database in question. Training: Non-local
"Locality" has to do with identifying if the concept is finite in space and time. A person is local because the concept of a specific human being is local to where that person is in space and time. On the other hand, the concept of a human being is noncritical. That is, the attributes of a human being are independent of space and time. If the response was "Jane has blue eyes," this is a local statement, since it is only frue for a particular point in space and time, that is, where Jane is. However, if the response was "Humans have two legs," that is a non-local statement, since it is true for all humans everywhere.
Statements that should be labeled non-local are only statements that define a particular type of locality. The most important of these is the concept of a person. Example S_R pairs that define the differences between people should be given. The main purpose of this is to allow ADAM to disambiguate references. It also serves the purpose of being able to separate things in time and space.
The program should be set up by the user in the target language to identify reference tags for each locality. In English, the tags are Non-local, he, she, it, they. The user can create new information at any time associated with each of these tags but the tag names should be used consistently. This is important since the program keeps maps for different non-local objects for the purpose of disambiguation.
This aspect of training substitutes for the human experience of being able to map concrete objects with human senses as a part of reality. A baby learns to associate "mommy" with only one local object, for example, and that learning is eventually integrated into language about local objects.
The following examples concentrate on names and gender as the main way we disambiguate references. The example uses the notation S:R%1 where
S = stimulus R = response I = inference
ADAM automatically abstracts the training examples, so only representative S-R pairs need be given.
EXAMPLE OF S-R PAIRS LABELED "she":
What is your name? : My name is Jane. %if Her name is Jane. What is her name? : Her name is Jane. % if Jane is female. What is your gender? : I am female. % if she is female. What gender is Jane : Jane is female. What gender is she? : She is female. If the tag is changed, the program will present the user with a list of eigens and asked which ones are constants for this type of non-locality. For this case the result would be
Eigen Constant?
your no name yes
Jane no her yes female yes gender yes she yes
This tells the program that the specific name (e.g. Jane) can change, but words like name, her, female, gender, she are fixed for this locality MetaMap. ADAM uses this information to decide if a reference is being made. For example, in the sentence "Her pride was hurt," Adam would associate this sentence with a "she" Map that could contain other information about the local object-in this case a female human. If the question was asked, "Whose pride was hurt," ADAM would look for a statement like X's pride was hurt," and it would look in the most recent "she" Map for an instantiation of X.
Training: Pattern Seeker: Working Memory
Working memory is a list of raw input data created during training. In working memory, sentences and clauses have been converted to arrays of objects containing hashed integers representing individual words. In addition, Working Memory contains a rich set of links that give information on how to associate stimulus, response and conditional links. Working Memory is the raw data that the abstract data in the Pattern Buffer is created from.
Training: Pattern Seeker: Set Map
A map can be associated with this pattern under two conditions: (1 ) The user has associated an action with this pattern.
(2) The program can associated a "virtual" map with this pattern.
A virtual map is one in which eigen information can be used of predict other eigens such as in a mathematical operation.
Training: Pattern Seeker: Working Memory Working memory is a list of raw input data created during training. In working memory, sentences and clauses have been converted to arrays of objects containing hashed integers representing individual words. In addition, Working Memory contains a rich set of links that give information on how to associate stimulus, response and conditional links. Working Memory is the raw data that the abstract data in the Pattern Buffer is created from.
Training Pattern Seeker: Create Pattern: Contains Clause:
A clause is defined as a sub pattern inside of a sentence. Clauses are detected in two ways: (I ) by comparing with known, more simple patterns. Thus if the pattern "X is a Y" is known and the sentence "To the left is a house," is detected, it can be assumed that "to the left" is a clause. (2) by recognizing that many clauses start with certain words like to, from and about. The program keeps a list of these words as a special type of eigen.
Training: Pattern Seeker: Create Pattern: Functor List
This data is ad abstract form of a segment of Working Memory. It is similar to a concept in that it can contain subpatterns in the form of a functor but is in an abstract form. Unlike a concept, it does not contain eigen words, only the patterns for those. Note that the word "pattern" is used to mean an empty set variable and also lists of empty setVariables. Example:
Working Memory: The pail is full of water
which is converted to
Functor List: The ().e.4 is full <(().e7) p2.3> where
(). e. 4 is an empty setvariable and
<(Q.e7) p2.3> is a functor containing an empty setvariable.
Training: Pattern Seeker: Create Pattern: Contains Clause
A clause is defined as a sub pattern inside of a sentence. Clauses are detected in two ways:
(1 ) by comparing with known simplier patterns. Thus if the pattern "X is a Y" is known and the sentence "To the left is a house," is detected, it can be assumed that "to the left" is a clause.
(2) by recognizing that many clauses start with certain words like to, from and about. The program keeps a list of these words as a special type of eigen. Training: Pattern Seeker Set Map: Define Map
Here patterns, and the original element sets, are accumulated until the trainer either "unlocks" the locality or quits the training session. A locked training session means that the trainer is producing examples about a specific item in a specified locality. For example, the training could be about a specific woman while the 'she' locality is locked. The program uses this information to build a list of eigen numbers for which the eigen number was fixed over the locality. The program stores these as discriminators. In the case of a 'she' map, the program would build a female first name as a discriminator of this map. The allows the program to build a map for a woman named Alice and know that "she" refers to Alice.
Training: Pattern Seeker: Set Map: Search for a Meta Map associated with this locality: Virtual Map Learning
A virtual map is simply an index to an algorithm that predicts the response. The program checks to see if the response can be predicted using the information immediately available. An example of this would be the sentence "the square root of nine is three." This module will detect the presence of numbers and realize that three can be generated from nine by several algorithms. It will pick one (the most statistically likely). If the program guesses wrong this will be corrected with other examples. All possible algorithms are pre- stored and there is a unique index for each one. Contrast this with the way instance maps are created in database applications. (See "Create new instance map.")
Training: Pattern Seeker: Set Map: Search for a Meta Map associated with this locality: Create new instance map For most localities, such as involving a person, thing or event, this module simply creates a space in memory in which concepts will be stored relating to the locality.
A special type of locality is the external database (shown in the diagram as optional). This is used in applications in which the user wants to access data using natural language. In this case, the module searches for an algorithm that will predict the response using the data found by accessing the external database through a special interface.
In this case, the instance map will contain information on how to extract information for the database records and how to instantiate the concept so that it predicts the response. This is similar to virtual maps except there is no pre-defined algorithm index. The program calculates a method and stores the details in the instance map. Like the virtual map, the program can recover from error when given further examples. The program will attempt to find an algorithm that will satisfy all examples simultaneously for the particular stimulus-response pattern. Training: Process and Store into Working Memory: Force Output to be Equal to Closest Match
In this block, training input is compared with existing memory, and one data structure is created from both. The resulting structure replaces discrete words with rotation matrices that select individual words from a vector space. This can be notated by:
w(i) = R(i, j)*E(j)
where E(j) represents an eigen vector space. As an example, suppose E j) was the vector space
(Jane Alice Paula)
If the program encountered the following two sentences:
Alice went to the store. Jane went to the store.
The program would represent both sentences as:
010
100
000
The advantage of this representation is that it allows for abstraction and reasoning by analogy. Now we can represent the idea of "someone" going to the store as a concept, and with a simple, economic mathematical representation we can "rotate" to an specific example.
The example is how we would do this in Working Memory. Working Memory is abstracted by the Pattern Seeker into another form. The two sentences are replaced by
0-e34 went to the store.
where ( ).e34 is called a set variable. The "e34" says that this variable is a member of a particular eigen set- in this case (Jane Alice Paula). This pattern is stored, not in working memory, but in "pattern space."
But suppose the program encountered the sentence My family went to the store.
"My family" is not a member of the eigen set e34. In this case, the program would create
[().e34 ( ).e56] went to the store.
where ( ).e56 is {my family} {my relatives ...)
The expression on brackets is called a vector set, and is represented by the same rotational structure.
However, instead of being a rotation in eigen space, this is a rotation in "pattern" space. Now we have a higher level of abstraction in which patterns (empty set variables) can be represented as rotations in pattern space. Rotation in this higher space are called "analogies" because they may not always be true. These kinds of rotations can result in the program "speculating" new relationships which can lead to interesting machine-human dialogs. For example, an early question put by ADAM (in an early prototype) was "Are Humans intelligent?"
Training: Process and S rle into Working Memory: Force . 'put to be Equal to Closest Match in this block training input is compared with existing memory and one data structure is created from both. The resulting structure replaces descrete words with rotation matrices that select individual words from a vector space. This can be notated by:
w(i) = R(i, j)*E(j)
where E(j) represents an eigen vector space.
As an example, suppose E(j) was the vector space
(Jane Alice Paula)
If the program encountered the following two sentences:
Alice went to the store. Jane went to the store.
The program would represent both sentences as 01 0 100 000 The advantage of this representation is that it allows for abstraction and reasoning by analogy. Now we can represent the idea of "someone" going to the store as a concept and with a simple, economic mathematical representation we can "rotate" to an specific example.
The example is how we would do this in Working Memory. Working Memory is abstracted by the Pattern Seeker into another form. The two sentences are replaced by
).e34 went to the store.
where ( ).e34 is called a set variable. The "e34" says that that this variable is a member of a particular eigen set— in this case (Jane Alice Paula). This pattern is stored, not in working memory, but in "pattern space."
But suppose the program encountered the sentence
My family went to the store.
:"My family" is not a member of the eigen set e34.
Interactive Dialog: Process Recognition Event: Generate Response
Generates a response in the form a Concept data structure and places it on the stack.
Training: Pattern Seeker: Create Pattern: Make Functor: Create Functor Block 1. 12.4.3.1 (Structure Pattern Match has organized the argument list data into groups (sets) that need to be converted into functors.
Training: Pattern Seeker: Create Pattern: Make Functor: Structure Pattern Match The objective of Structure Pattern Match is to
(1 ) find an existing pattern that best matches the element set (of install a new one if no match found) and (2) using the pattern found, create the raw form to the functor argument list.
Interactive Dialog: Process Recognition Event: Generate Response: Predictor
Sometime a response can be predicted. Prediction is based on scenarios that are learned in training. For example, if someone drops something it falls to the floor. That is a type of seen ario that predicts the next event. The program can use this information to predict responses. In some cases, the scenarios can be goal- driven. In this case, the predictor tries to optimizes the response. Training: Locality Meta Maps
This where data is stored when the user has identified a "local" object. Examples of local objects are people, places and things. They are called "local" because they exist in a particular location in space and time. This technique simulates the experience babies have with this concept.
A Meta Map stores data on how differentiate between different kinds of mapping situations and how to tell the difference between different kinds of maps. A Map is a data structure of storing an instance of an object that is described by a Meta Maps
Locality Meta Maps have two kinds of data structures:
(1 ) Indexes to Pattern Buffer entries that were made in training while in the "local" mode. This is stored because it allows ADAM to ask question about local objects, since the Pattern Buffer contains abstracted stimulus-response pairs. For example, upon meeting someone new, the program can access its Meta Map about people to ask question about marriage, family etc. It can do this because the Meta Map tells ADAM that a person has all these possibilities that are "local" to him or her.
(2) A list of patterns (empty setVariables) and eigen words. Every time a concept is added to memory (see
Add Concept) the locality maps are checked to see if there is a matching eigen word or set Variable. If there is a match, the Concept is added to a Map. The Maps keeps track of particular instances of local objects. This provides for efficient pronoun disambiguation, for example.
Locality Meta Maps are a specialized subclass of Meta Maps. Meta Maps in general are used when there is a need to simulate a predictive capability. For example, if some asks what is the square root of three, the program may not at first know. But using the Meta Maps math algorithms, it can, after shown examples, predict what the answer is. In effect, ADAM can learn to do math, on its own, in any language.
Another type of mapping problem that Meta Maps and Maps are good for is counting problems.
Interactive Dialog: Process Recognition Event: Generate Response: Response Method: Generate Map Response
If the locality type is a past, present or future event, simply return the concept that is pointed to in the map.
Interactive Dialog: Process Recognition Event: Generate Response: Response Method: Resolve Concept: MapProcessor: Virtual Map During training, the examples given were used to determine if it was possible to predict the response from the input. If this was the case, the program found an algorithm that predicts the response, and stored an index to the algorithm in association with the pattern.
This is called a "virtual map," since the only mapping information stored is the index. No other memory is needed.
The most common example of a concept that can be processed using the virtual map processor is a sentence that contains a mathematical algorithm. For example, if the user asked "What is the square root of nine?" this can be handled by a virtual map, since the information needed to predict the response is contained in the sentence itself. All that needs to be stored is an index to the square root algorithm, and information about where information needs to be stored in the abstract pattern.
This part of the program simply looks up the algorithm and instantiates the eigen variables appropriately.
Interactive Dialog: Process Recognition Event: Generate response: Response Method: Resolve Concept: MapProcessor: Goal-driven Scenario Map Processor
During training, the user may have selected "Goal State" while "Scenario" was selected. This means that the user was creating a scenario with a goal. A "scenario" in ADAM is any physical or mental sequence that has a natural order. For example, there is a natural order of events that occurs when using a restaurant. Another example would be a chess game which has a defined beginning, middle and end. In the case of chess, there is a goal state. If the program detects that it has entered a goal-driven scenario, it automatically uses data it has accumulated from previous instance maps of this type to predict the next response.
To accomplish this, it stores a data structure called the "eigen state" which is defined below. Let us define the following:
E(i) = pi, (x).el, (y).e2
where (i = n) is the goal state. That is, Ei is the set of all eigen values for the ith pattern in the scenario. For each instance, it stores the eigens states by noticing which eigens are constant. Therefore it defines:
E(i, j) = pi, (p).el, (q).e2 .... for constant (x).el,(y).e2....
where E(i, j) => E(i + 1 , j) are called transitions. If, for any instance, there are t transitions, each transition is given a preference of 1/t (a real number). So if there were 4 transitions to reach a goal, each transition would be given a preference of 0.25.
To predict a transition, the following rules are used:
(1 ) The closest eigenstate over all the instance maps if found. If there is more than one the highest preference is used.
(2) If the transition is legal, it is used, otherwise the search continues until a transition if found.
The transition is applied to the pattern which generates a predicted response. For example, in the case of chess, the response would be the next move, which has the effect of optimizing a sub-goal of the goal state. This general principle is known as the "Uniform Learning Theory." The implementation cation of that theory is unique to the present invention. This technique allows the program to learn to optimize goals by learning from examples.
Interactive Dialog: Process Recognition Event: Generate Response: Response Method: Resolve Concept: MapProcessor: External Database
This module provides an interface to an external database and applies learned algorithms to initiate patterns. These patterns are turned into concepts which are returned. The specific details of how this is done depend on the application, but the technique is similar to other types of map processing: data is retrieved using stored location information, an algorithm is applied and the resulting information is used to instantiate a concept.
Interactive Dialog: Process Recognition Event: Generate Response: Predictor: Goal-driven Scenario Predictor This is very similar method to the Goal-driven Scenario MapProcessor documented elsewhere. The difference is this method starts with a stimulus to predict a response. The MapProcessor already has a candidate response that it is trying to instantiate. This is a predictor, which takes an abstract response from a scenario and tries to instantiate it using other maps.
Interactive Dialog: Process Recognition Event: Generate Response Predictor: Goal-driven Scenario Predictor: Calculate the eigen state
The eigen state is the current pattern plus the value of all setvariables.
Interactive Dialog: Process: Recognition Event: Generate Response: Predictor: Goal-driven Scenario Predictor: Find closest eigen state in the instance maps which has the highest preference. Preferences were created during training by simply dividing the number of steps to the goal state into 1.
Interactive Dialog: Process Recognition Event: Generate Response: Predictor: Goal-driven Scenario Predictor: Synthesize a reponse using the found transition and any constraints on the transition The transition gives information on how to instantiate the response. Conditional statements learned during training may constrain the transition to legal states.
Interactive Dialog: Process Recognition Event: Generate Response: Process Found Response: Pending The Pending stack is an ordered list of stimulus concepts to be tried again. This stack is used when the program can't answer a question, but has asked for more information. After more information is gathered, the Goal Processor pops the stack and tries to generate a response (but with some of the feedback comments suppressed).
Interactive Dialog: Process Recognition Event: Generate Response: Process Found Response: Do Action
Some responses may have had an external action attached to them. For example, if this is a robotic application, then a possible response would be the "The wrench is selected." Each action has code associated with it that implements the external action. On successful completion of the action, the input concept is returned which eventually be placed on the primary stack and output as speech, text or both. In the case of an unsuccessful action, it the responsibility of this code to return an appropriate concept as a response.
Interactive Dialog: Process Recognition Event: Generate Response: Process Found Response: Original stimulus The original stimulus is put on the Pending stack to wait for more information.
Read Text Documents: Comprehend: Process String
Tokenize the text into a list of objects that contain a unique hash index of each word.
Read Text Documents: Comprehend: Add to memory Add tokenized object list to a list of memory.
Read Text Documents: Comprehend: Add to memory
Add tokenized object list to a list of memory. Extensions of the Core Technology to Non-language Applications
The present invention has been formulated in terms of the translation strings of symbols to another string of symbols based on learned patterns derived from examples. This technique has broader applications than just language. The basic technique of science is to observe patterns in nature, and to try to find mathematical models that can be used to predict events. For example, Isaac Newton discovered that certain principles of geometry could be used to predict the motion of the planets. His theories not only enabled the position of celestial bodies to be calculated, but it provided a way of understanding the concept of gravity. It is important to realize that Newton's mathematical theory of gravity was also "wrong," since it did not predict accurately the motion of Mercury, the inner most planet in the Solar System. Albert Einstein later came up with the theory that predicted accurately the motion of Mercury based on a completely different mathematical model based on a new kind of geometry that included time as well as space. Most scientists have concluded that even this theory is ultimately wrong, since it does not predict events that occur over very small intervals of space and time.
In this sense, every scientific theory that has ever been formulated is "wrong" (approximate). The ultimate goal of science is to have completely consistent set of models that work in all domains, the so- called Theory of Everything, but that goal remains elusive. The scientific method is therefore about predicting events based on approximate mathematical models that work within a certain domain. Every scientific theory can be formulated as a translation between input and output. For example, observations of the motion of planets can be translated to predictions of observations in the future. ADAM's basic technique of using examples of symbolic stimulus to response can be generalized to examples of input and output. Eigen states can be created that characterize these translations and can be used to predict new outputs from learned examples. Some applications of the present invention are described below:
A. Change detection in complex environments by remote sensing.
Until the last 10 years, orbital remote sensing of the earth for civilian applications has been limited to snapshot views of targets of interest, separated by days or weeks. Higher spatial resolution (1 km or better) from geosynchronous (GEO) observation satellites at very frequent sampling intervals, and the proliferation of government-funded and commercial low earth orbiting (LEO) observation satellites, now permits useful temporal monitoring of the earth, both for scientific and operational (e.g., natural hazards related) applications. The detection of changes, both dramatic and obvious and those at the limits of detection, is important for a variety of reasons. One important area is that of natural hazard detection and mitigation. Such hazards range from potential tectonic deformation related to earthquakes, to severe storm monitoring, to the tracking and monitoring of the movement of volcanic ash in the troposphere and stratosphere after a major explosive eruption. In the latter instance, and as a representative example, plumes of fine particulate volcanic ash and sulfur dioxide can drift thousands of miles from the eruption source, presenting a severe ash-ingestion hazard to turbine engined jet aircraft. Such plumes are easily camouflaged by the presence of water vapor clouds, however, they do exhibit some spectral contrasts in characteristic bands at visible and infrared wavelengths. The detection and tracking of such plumes is of paramount importance to aviation worldwide, given that there are about 1000 potentially active volcanoes scattered across the land surface of the earth. Nevertheless, unambiguous discrimination between volcanic plumes and meteorological clouds remains a difficult and not fully solved scientific and operational problem.
The capabilities of the ADAM program to learn when given identified instances of a particular phenomenon, coupled to a library of instances, would be a general approach to change detection. In the case of volcanic ash plumes, the challenge is to identify the translucent plumes at the earliest possible post- eruption stage, despite the confusion from intermingled water-vapor meteorological clouds, and a variable background albedo, which at times could include snowfields and oceans. ADAM's ability to assimilate numerous cases and then access and organize the most likely past cases when confronted with a new similar (but not exactly similar) case would be a powerful way to identify volcanic ash plumes. Such plumes would be discriminated from meteorological clouds under a wide variety of atmospheric, seasonal, and ground albedo conditions.
B. Compression of full-length movies to a size manageable by modem downloads.
The current popularity of MPE music downloads on the Internet is facilitated by the ease and compact nature of the format In years past, copies of music could be exchanged by the sharing of "dubbed" tapes, but overall this was cumbersome. Likewise, the copying of video tapes was a way of sharing movies, but also requires some effort, in terms of obtaining additional media (tapes) and the physical act of copying, which could involved the physical linking of VCRs. Again this was cumbersome and took time, and thus in neither case was the market substantially impacted. MPE downloads, because of their convenient nature and the lack of additional media (they can be loaded directly into computer hard disks) have caused enormous concern with respect to copyright violations, because of their popularity and because the downloads have been, for the most part, free of charge. Now, musicians and publishers are attempting to harness this convenient medium and to take advantage of the wide dissemination capabilities, and yet still maintain a profit and intellectual property rights. Such a solution is probably on the horizon.
An as yet untapped area will similarly be the downloading of full-length movies over the Internet. Currently only trailers are downloaded, in the range of 10-20Mbytes of data volume, with times that can range up to a half-hour (or more) over the most common modem connections. DVD technology employs loss-less or near-loss-less compression schemes of -20:1 advantage, thus reducing a 200 Gbyte (potential data volume for a 2hr. long movie at 1000x1000 8 bit pixels per frame, at 30 frames/sec). The typical 7- 8Gbyte DVD data volume would be a quick download (70-80 seconds® 1 OOMbits/sec) over the state-of- the-art "T- 1 " data lines employed by large corporations and the government, but would be hopeless (34 hours) using the 57,600bits/sec modem now typical of most homes, DSL notwithstanding. A 100: 1 to 1000: 1 lossless or near- lossless compression scheme that can compress full length movies into a compressed data volume of -lOMbits will allow films to be downloaded and displayed easily on typical home systems. Whoever can do this will reap a fortune, and will trigger a revolution in the film and video industry comparable to that of the MPE music revolution. ADAM is a potential component in the achievement of that goal.
In thumbnail, ADAM's ability to create scenarios from instances empirically could allow the storing of abstractions [suites of most probably characteristics and frame-to-frame relationships] of scenes and of individual actors as eigenvectors at great economy of data volume [>I 00: 1 ], needing only periodic reference frames to validate frame-to-frame interpolations. Such instances could be assimilated from both scan-throughs of existing (2D) movies, and/or with the incorporation of (3D) "motion-capture" (i.e., actors instrumented with transducers to input generic range-of-motion instances). Thus full length movies could be reconstructed from a set of ADAM- derived "Instructions" at a fraction of the original data volume, and would be easily downloadable, even with today's technology. Newer anticipated technologies of mass storage and computer clockspeeds will make such downloads trivial. Video rentals would be a thing of the past, and the continuing challenge of protecting the intellectual property rights of artists for videos will be more acute.
C. Movie Synthesis
As a final note, this conceptualized technology may also allow substantial reductions in post- production editing costs. Fewer scene takes will be needed if there exists a capability to "adjust" scenes via ADAM-generated instances and scenarios in post-production editing. That is, an original scene need only be approximate with respect to lighting and actor positioning and dialogue-only enough necessary to give ADAM a seed or kernel for all required instances and for reference frames-and adjustments, in principle indistinguishable from the original could be made in editing. Ultimately, realistic movies could be constructed whole-cloth from ADAM-generated instances and scenarios, however, the aesthetic, professional, and artistic issues incumbent in such an activity would be knotty. Nevertheless, an ADAM- type assimilative and inductive algorithmic framework could be employed as sketched here to revolutionize film making.
D. Other Examples of Non-Language Applications
1. A system that "listens" to sound patterns emanating from devices (motors, gas turbines, shaft bearings, etc.) and detects new sounds (non-normal) coming from the system (loss of lubrication, imminent bearing failure, etc);
2. A system that listens to sounds (motors, shaft bearings, etc.) and detects when the sound coming from the system moves out of its normal pattern or domain;
3. A system capable of being connected to a single sensory input (artificial sight, smell, touch, etc.) and recognizing inputs as they occur;
4. A system capable of being connected to a single sensory input (artificial sight, smell, touch, micrometeor impact, etc.), recognizing inputs as they occur, and comprehending what may occur as multiple different or overlapping inputs aggregate in the sensory and/or time domains; 5. A system capable of being connected to multiple simultaneous sensory inputs (artificial sight, smell, touch, micrometeor impact, etc.) and recognizing inputs as they occur;
6. A system capable of being connected to multiple simultaneous inputs (artificial sight, smell, touch, micrometeor impact, etc.), recognizing inputs as they occur, and comprehending what may occur as multiple different or overlapping inputs aggregate in the sensory and/or time domains; 7. A "tool" for analysts capable of being used in manual, semi-automatic, or automatic modes to quickly identify various "patterns" as they may occur in single or multisensory spatial and time domains; 8. A system capable of operating, recognizing, and comprehending "data" as gathered or stored in data collection or data based systems;
Additional Embodiments & Implementations of the Invention A natural language or speech type system that could "fingerprint" various styles of speech (used to determine locale of dialect, classic "voice print" uses, etc.);
A natural language or speech type system that could be used as a validation and verification tool in
"learning" type situations;
A universal language translator or translation system between languages used by various human beings; A language translation system as might be used between human beings and animals (dolphins, orcas cats, lions, etc.);
A general "stimulus-response" system, capable of "learning", that could interface between human and non- human based systems;
A system that " listens" to sound patterns emanating from devices (motors, gas turbines, shaft bearings, etc.) and detects new sounds (non-normal) coming from the system (loss of lubrication, imminent bearing failure, etc);
A system that listens to sounds (motors, shaft bearings, etc.) and detects when the sound coming from the system moves out of its normal pattern or domain;
A system capable of being connected to a single sensory input (artificial sight, smell, touch, etc.) and recognizing inputs as they occur;
A system capable of being connected to a single sensory input (artificial sight, smell, touch, micrometeor impact, etc.), recognizing inputs as they occur, and comprehending what may occur as multiple different or overlapping inputs aggregate in the sensory and/or time domains;
A system capable of being connected to multiple simultaneous sensory inputs (artificial sight, smell, touch, micrometeor impact, etc.) and recognizing inputs as they occur; A system capable of being connected to multiple simultaneous inputs (artificial sight, smell, touch, micrometeor impact, etc.), recognizing inputs as they occur, and comprehending what may occur as multiple different or overlapping inputs aggregate in the sensory and/or time domains; A "tool" for analysts capable of being used in manual, semi-automatic, or automatic modes to quickly identify various "patterns" as they may occur in single or multi-sensory spatial and time domains;
A system capable of operating, recognizing, and comprehending "data" as gathered or stored in data collection or data based systems;
A system capable of operating, recognizing, and comprehending "data" or "metadata" patterns or other recognizable attributes as gathered or stored in data or meta-data collection and data based storage systems; A trainable system, based upon "stimulus-response", capable of discerning, recognizing and possibly comprehending data, data patterns or other information type patterns in large, historical data and information storage bases;
A system which enables "ultra dense data storage, in which "eigenvectors" and "eigenvalues" are stored in a novel and unique manner. Data, information, and patterns related thereto are stored in a novel and ultra dense or compact fashion. All data, information, and perhaps some knowledge bases may have applications whereby relevant portions may be recognized, comprehended, and/or stored using novel storage techniques. This would permit slower processors, using less memory, resulting in systems drawing lower power consumption and operating longer to function effectively in existing or new application spaces and other domains. CONCLUSION
Although the present invention has been described in detail with reference to particular preferred and alternative embodiments, persons possessing ordinary skill in the art to which this invention pertains wil 1 appreciate that various modifications and enhancements may be made without departing from the spirit and scope of the Claims that follow. The various hardware and software configurations that have been disclosed above are intended to educate the reader about preferred and alternative embodiments, and are not intended to constrain the limits of the invention or the scope of the Claims. The List of Reference Characters which follows is intended to provide the reader with a convenient means of identifying elements of the invention in the Specification and Drawings. This list is not intended to delineate or narrow the scope of the Claims.
INDUSTRIAL APPLICABILITY
The present invention is designed to provide a system for simulating human intelligence. The present invention will be applicable to a vast array of communications and computing uses. LIST OF REFERENCE CHARACTERS
Figure 1
10 Cognitive model of human intelligence
12 Sensory Information input
14 Associative memory
16 Stimulus input
18 Response output
Figure 2
20 AAS model: Overview of major modules of ADAM
22 Goal processor
24 Stack
26 Output speech synthesizer
28 Speech output
30 Conceptual database
32 Contextual database
34 Pattern buffer
36 Dialog Supervisor
38 Current speech context
40 Speech input
41 Speech recognizer (convert to text)
42 Convert speech to Concept (abstract)
44 Inference generation, disambiguity, mapping and special action
46 Generate Concept
48 Find response pattern
50 Text input stream
Figure 3
50 I nput text stream
51 Flow Diagram, conversion of input text stream to Concepts
52 Convert text stream to sentences 54 Search Eigen Directory
56 Search Pattern Directory
58 Parse sub-patterns 60 Create Functors (lists of functions)
62 Store Concepts and associated Functors in a Conceptual Database
Figure 3A
30, 32 Conceptual data base, contextual database
34 Pattern buffer
48 Find response patten process
1 10 Input sentence (from block 52)
1 12 Output sentence
120 Search for eigens and patterns in input
122 Found Functors (Concept)
124 Abstract Concept and search pattern buffer for matching abstraction
126 Test for complete sentence
128 Search Conceptual database for found matches
130 Create eigen argument list
132 Fill in eigens from stimulus and found Concept
134 Create sentence from eigen argument lists and patterns en Eigen vector p 1 Pattern pointer w Sentence
Figure 4
200 Automated Dialog Adaptive Machine (ADAM)
201 Training program module
202 Interactive Dialog program module
203 Read Text Documents program module
Figures 4A & 4B
50 Input text stream
30 Conceptual data base
32 Contextual data base
34 Pattern Buffer
200 ADAM
204 Database interface
206 Answers and data forms outputs Figure 5
201 Flow diagram of Training module
211 User stimulus input
212 User response input
213 User "if statement" input
214 User "else statement" input
215 List of Actions
216 User selects action associated with response
217 Conditional occurs
218 User input selection of "if ' or "else" statements
219 Process & store in working memory
220 Link: Create definition how each of the user inputs link together
222 Action selection process
223 User selection of local/non-local choices
224 Local/non-local selection process
225 List of non-local choices
226 Locality meta maps
227 File of meta maps 230 User input string
240 Pattern Seeker process
Figure 5A
227 Meta Maps
228 Instance Maps
Figures 6 & 7
219 Process and store user input into working memory
230 User input string
231 Match to existing memory
232 Does input match memory, yes/no?
235 Is the difference small, yes/no?
236 Force input to equal closest match
237 Add input to memory Figures 8, 9 & 10
34 Pattern Buffer
240 Pattern Seeker process
242 Working memory
244 Pattern creation process
246 Functor list
248 Pattern construction process
250 Functor construction process
Figures 11 , 11 A & 12
250 Functor construction process
252 Element set from memory
254 Structure Pattern Match process
255 Argument list in raw set form
256 Functor
257 Convert element set to Functor
258 Functor creation
259 Argument list in canonical form
Figure 13
252 Element set from memory
254 Structure Pattern Match process
260 Structure Best Match process 262 Is a pattern found? yes/nό 264 Install Pattern
266 Element set as a raw argument list
Figure 14
252 Element set from memory
254 Structure Pattern Match process
260 Structure Best Match process
267 Find Best pattern match in memory
268 Partition Element set with found pattern 266 Raw Argument list Figure 15
252 Element set from memory
267 Find Best pattern match in memory
269 Found Pattern
Figure 16
300 Voice input
302 Speech recognizer
304 Process Recognition event
Figure 18
304 Process Recognition event
306 Language model tree
308 Get top-level language model
310 Create Sentence Functor set
312 Generate Response
Figure 18
310 Create Sentence Functor set
313 Element set and pattern; type and source
314 Create Concept
316 Make Functor
317 Append Functor to Concept
318 Concept
Figure 19
313 Element set and pattern; type and source
316 Make Functor
319 Structure Pattern Match
320 Pattern
322 Argument list (raw form) 324 Create Functor 326 Functor
Figure 20
322 Argument list (raw form)
324 Create Functor
326 Functor-place in argument list
328 Argument list (canonical form)
330 Set to Functor conversion
Figure 21
322 Element set from memory
330 Set to Functor conversion
Figure 22
312 Generate Response process
338 Stimulus Concept input
340 Add Stimulus Concept to memory
342 Is the input declarative statement a Concept? Yes/no
344 Response Method process
346 Has the Response Method process returned a Concept? Yes/no
348 Process-Found Response 350 Context Switcher process
352 Has the Context Switcher process returned a Concept? Yes/no
354 Create acknowledgment of NO Concept
356 Primary Stack storage
Figure 23
340 Add Stimulus Concept to Memory process
360 Concept
362 Add Concept to Conceptual Memory
362 Is this Concept local?
366 Create a Map
Figure 24
338 Stimulus Concept input
344 Response Method process
370 Find Response set
372 Find Concept
374 Concept found? Yes/no
376 Response Concept
Figure 25
348 Process-Found Response
376 Response Concept
380 Is there a Concept in the Response? Yes/no
382 Do External Action
384 Add Concept
386 Primary Stack storage
388 "Fire" inference
390 Did the inference create a Concept? Yes/no
392 Generate inference Stimulus
394 Pending stack storage
396 Context Switcher
Figure 26
396 Context Switcher
400 Search all Contexts in Context data base 401 Is there a Concept which will trigger the instant Concept? Yes/no
402 Search all auto Concepts in Concept database 404 Has the found auto Concept been "Fired?" Yes/no 406 Auto Concept found
Figure 27
420 Text file input handling
422 Read file
424 Comprehend file
426 Close file
Figure 28
424 Comprehend file
426 Process input text string
428 Add text string to memory
430 Build Concepts from text string
Figure 29
430 Build Concepts from text string 432 Element set from memory 434 Create sentence Functor set 436 Add Concept to Memory
Figure 30
430 Build Concepts from text string
438 Make Functor
Figure 31
432 Element Set from Memory
438 Make Functor
440 Structure Pattern Match
450 Create Functor
Figure 32
450 Create Functor
452 Convert Element Set to Functor Figure 33
432 Element Set from Memory
452 Convert Element Set to Functor
Figure 34
432 Element Set from Memory 440 Structure Pattern Match process 460 Structure Best Match
Figure 35
432 Element Set from Memory
460 Structure Best Match
462 Find Best Match for Element Set pattern
Figure 36
432 Element Set from Memory
462 Find Best Match for Element Set pattern

Claims

1. A method of operating an artificial intelligence system including the steps of abstracting from input stimulus data one or more patterns which are independent of the data, and generating a response to the input data on the basis of a response pattern linked to the or each stimulus pattern and of the input data.
2. A method according to claim 1, including the step of generating an eigen vector space of related input data.
3. A method according to claim 1 or 2, including the step of generating a pattern space of patterns associated with a related input data or eigen vector space.
4. A method according to any preceding claim, wherein the pattern represents a concept related to the data.
5. A method according to any one of claims 1 to 3, wherein for a pattern which has no concept, the method includes the step of linking a concept to the pattern.
6. A method according to any preceding claim, including the step of determining the context of the input data, the response being determined on the basis of the input pattern, the input data and the context.
7. A method according to any preceding claim, wherein for input data of a linguistic nature, the method includes the step of extracting one or more sentences from the input data.
8. A method according to claim 7, including the step of determining whether the or an input sentence is a stimulus or declarative sentence.
9. A method according to claim 8, wherein for a stimulus input sentence the method provides a response which is linked to the determined input pattern.
10. A method according to claim 9, wherein a set of stimulus and response pattern pairs are stored in a memory.
1 1. A method according to claim 9 or 10, wherein the response is determined on the basis of an abstract association by the steps of abstracting the input data into an eigen value of an eigen space relating to the input data and combining the linked stimulus and response patterns with response data associated with the abstracted eigen space.
12. A method according to claim 8, wherein for a declarative input sentence the method includes the step of determining a declarative response by an inference, which inference is a legal transformation of the input declarative sentence.
13. A method according to any one of claims 7 to 12, including the step of grouping together patterns and to determine from one pattern determined from an input a context of that input on the basis of the group to which that pattern belongs.
14. A method according to any preceding claim, including the step of providing speech recognition for inputs and speech synthesis for outputs, or text recognition for inputs and text generation for outputs.
15. A method according to claim 14, wherein for speech synthesis or text generation, the method includes the step of selecting vocabulary and/or grammar suitable for the determined context.
16. A method according to claim 14 or 15, wherein for speech synthesis the method includes the step of providing variable timing between words and variable speed of synthesised words.
17. A method according to claim 16, including the step of learning the timing between words and the speed of receipt of words received at the input.
18. A method according to any one of claims 1 to 6, wherein the response is an action performed by or controlled by the method.
19. A method according to any preceding claim applied to a database, wherein a retrieval of information from the database is performed as a response linked to an input pattern and input data.
20. A method according to any one of claims 1 to 18, applied to a language translation, wherein the response includes a response pattern associated with an input pattern and data in a different language but equivalent to input data.
21. A method according to any one of claims 1 to 18, applied to a text or speech analysis, including the step of determining repetitions of patterns in input text or speech; determining therefrom the originator of the text or speech from previously stored repetition data or statistics and generating a response based upon the determination of the originator.
22. A method according to any one of claims 1 to 18, applied to an information system, wherein the response includes information associated with an input pattern and data requesting details of said information.
23. A method according to any one of claims 1 to 18, applied to a vehicle safety system, wherein the response indicates safety related information or procedures associated with an input pattern and data related to vehicle operating conditions.
24. An artificial intelligence system including input means operable to receive input stimulus data; processing means operable to abstracting from input stimulus data one or more patterns which are independent of the data, and response generating means operable to generate a response to the input data on the basis of a response pattern linked to the or each stimulus pattern and of the input data.
25. A system according to claim 24, wherein the processing means is operable to generate an eigen vector space of related input data.
26. A system according to claim 24 or 25, wherein the processing means is operable to generate a pattern space of patterns associated with a related input data or eigen vector space.
27. A system according to any one of claims 24 to 26, wherein the processing means is operable to determine whether an extracted pattern has a concept and to linking a concept to such a pattern.
28. A system according to any one of claims 24 to 27, wherein the processing means is operable to determine the context of input data and to generate a response on the basis of the input pattern, the input data and the context.
29. A system according to any one of claims 24 to 28, wherein for input data of a linguistic nature, the processing means is operable to extract one or more sentences from an input data stream.
30. A system according to claim 29, wherein the processing means is operable to determine whether an input sentence is a stimulus or declarative sentence.
31. A system according to claim 30, wherein for a stimulus input sentence the processing means is operable to provide a response which is linked to the determined input pattern.
32. A system according to claim 31, including a memory in which are stored sets of stimulus and response pattern pairs.
33. A system according to claim 31 or 32, wherein the processing means is operable to generate a response on the basis of an abstract association by abstracting input data into an eigen value of an eigen space relating to the input data and combining the linked stimulus and response patterns with response data associated with the abstracted eigen space.
34. A system according to claim 30, wherein for a declarative input sentence the processing means is operable to generate a declarative response by an inference, which inference is a legal transformation of the input declarative sentence.
35. A system according to any one of claims 29 to 34, wherein the processing means is operable to group together patterns and to determine from one pattern extracted from an input a context of that input on the basis of the group to which that pattern belongs.
36. A system according to any one of claims 24 to 35, including speech recognition and speech synthesis means or text recognition text generation means.
37. A system according to claim 36, wherein the processing means is operable to selecting vocabulary and/or grammar suitable for the determined context.
38. A system according to claim 36 or 37, wherein the speech synthesis means is operable to provide variable timing between words and variable speed of synthesised words.
39. A system according to claim 38, wherein the speech synthesis means is operable to learn the timing between words and the speed of receipt of words received at the input.
40. A system according to any one of claims 24 to 28, including actuator means operable by responses generated by the processing means.
41. A database including a system according to any preceding claim, wherein aretrieval of information from the database is performed as a response linked to an input pattern and input data.
42. Language translation apparatus including a system according to any preceding claim, wherein the response includes a response pattern associated with an input pattern and data in a different language but equivalent to input data.
43. Text or speech analysis apparatus including a system according to any preceding claim, wherein the processing means is operable to determine repetitions of patterns in input text or speech; to determine therefrom the originator of the text or speech from previously stored repetition data or statistics and to generate a response based upon the determination of the originator.
44. A vehicle safety system including a system according to any preceding claim,, wherein a response indicates safety related information or procedures associated with an input pattern and data related to vehicle operating conditions.
45. A method of training an artificial intelligence system operable to generate a response to a stimulus input including the step of inputting into the system data streams formed of patterns and data, which patterns are independent of data and are similar from one input stream to the next; extracting from the data streams the patterns; and storing the extracted patterns in memory.
46. A method according to claim 45, including the step of inputting into the system data streams with sets of stimulus and response patterns; generating stimulus and response pattern pairs; and storing the pairs in memory.
47. A method according to claim 45 or 46, including the step of attaching a marker to the or each pattern, which marker is representative of the data or data type associated with that pattern.
48. A method according to any one of claims 45 to 47, including the step of determining from similar inputted data streams sets of related data on the basis of related input data and/or data in input streams having the same or related patterns; and storing the data in eigen vector sets.
49. A method according to any one of claims 45 to 48, including the step of assigning to each stored pattern a pattern value.
50. A method according to claim 49, including the step of determining a complex pattern as a combination of a pattern and a pattern value related to a different pattern or as a combination of two or more pattern values.
51. A method according to any one of claims 45 to 50, including the step of creating a conceptual database of inputted data in which stored data is linked to the extracted pattern or patterns.
52. A method according to any one of claims 45 to 51 , including the step of linking related patterns and/or data in a matrix.
53. A method according to any one of claims 45 to 52, including the step of generating a contextual database formed of patterns linked by concept or data type.
54. A method according to any one of claims 45 to 53, including the step of attaching a locality tag to data having location.
55. A method according to claim 54, including the step of entering together data having the same location and attaching thereto the same locality tag.
56. A method according to any one of claims 45 to 55, including the step of categorising each pattern as a stimulus, response, inference or action.
57. A method according to claim 56, including the step of linking two patterns in a category by analogy based on similarities in data type or previously stored pattern sets.
58. A method according to any one of claims 45 to 57, including the step of generating a functor list as expressions of separated patterns and data or eigen values.
59. A method according to any one of claims 45 to 58, including the step of determining one or more clauses, each clause being a sub-pattern and being determined as inputs not being known patterns or data.
60. A method according to claim 59, wherein for textual or speech input data, the method categorises as clauses word sets including the word "to, from or about".
PCT/US2001/014829 2000-05-25 2001-05-23 Simulating human intelligence in computers using natural language dialog WO2001093076A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2001274818A AU2001274818A1 (en) 2000-05-25 2001-05-23 Simulating human intelligence in computers using natural language dialog

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US57932500A 2000-05-25 2000-05-25
US09/579,325 2000-05-25
US09/634,896 2000-08-09
US09/634,896 US6604094B1 (en) 2000-05-25 2000-08-09 Simulating human intelligence in computers using natural language dialog
US67671700A 2000-09-29 2000-09-29
US09/676,717 2000-09-29

Publications (2)

Publication Number Publication Date
WO2001093076A2 true WO2001093076A2 (en) 2001-12-06
WO2001093076A8 WO2001093076A8 (en) 2004-11-25

Family

ID=27416321

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2001/014829 WO2001093076A2 (en) 2000-05-25 2001-05-23 Simulating human intelligence in computers using natural language dialog

Country Status (2)

Country Link
AU (1) AU2001274818A1 (en)
WO (1) WO2001093076A2 (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7546295B2 (en) 2005-12-27 2009-06-09 Baynote, Inc. Method and apparatus for determining expertise based upon observed usage patterns
US7698270B2 (en) 2004-12-29 2010-04-13 Baynote, Inc. Method and apparatus for identifying, extracting, capturing, and leveraging expertise and knowledge
US8095523B2 (en) 2004-12-29 2012-01-10 Baynote, Inc. Method and apparatus for context-based content recommendation
CN106951491A (en) * 2017-03-14 2017-07-14 广东工业大学 A kind of Intelligent dialogue control method and device applied to robot
US9836765B2 (en) 2014-05-19 2017-12-05 Kibo Software, Inc. System and method for context-aware recommendation through user activity change detection
US10362113B2 (en) 2015-07-02 2019-07-23 Prasenjit Bhadra Cognitive intelligence platform for distributed M2M/ IoT systems
CN110648652A (en) * 2019-11-07 2020-01-03 浙江如意实业有限公司 Interactive toy of intelligence
AU2019210603B2 (en) * 2016-01-21 2020-10-22 Accenture Global Solutions Limited Processing data for use in a cognitive insights platform

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
No Search *

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8095523B2 (en) 2004-12-29 2012-01-10 Baynote, Inc. Method and apparatus for context-based content recommendation
US7698270B2 (en) 2004-12-29 2010-04-13 Baynote, Inc. Method and apparatus for identifying, extracting, capturing, and leveraging expertise and knowledge
US7702690B2 (en) 2004-12-29 2010-04-20 Baynote, Inc. Method and apparatus for suggesting/disambiguation query terms based upon usage patterns observed
US8601023B2 (en) 2004-12-29 2013-12-03 Baynote, Inc. Method and apparatus for identifying, extracting, capturing, and leveraging expertise and knowledge
US7693836B2 (en) 2005-12-27 2010-04-06 Baynote, Inc. Method and apparatus for determining peer groups based upon observed usage patterns
US7856446B2 (en) 2005-12-27 2010-12-21 Baynote, Inc. Method and apparatus for determining usefulness of a digital asset
US7580930B2 (en) 2005-12-27 2009-08-25 Baynote, Inc. Method and apparatus for predicting destinations in a navigation context based upon observed usage patterns
US7546295B2 (en) 2005-12-27 2009-06-09 Baynote, Inc. Method and apparatus for determining expertise based upon observed usage patterns
US9836765B2 (en) 2014-05-19 2017-12-05 Kibo Software, Inc. System and method for context-aware recommendation through user activity change detection
US10362113B2 (en) 2015-07-02 2019-07-23 Prasenjit Bhadra Cognitive intelligence platform for distributed M2M/ IoT systems
AU2019210603B2 (en) * 2016-01-21 2020-10-22 Accenture Global Solutions Limited Processing data for use in a cognitive insights platform
US11144839B2 (en) 2016-01-21 2021-10-12 Accenture Global Solutions Limited Processing data for use in a cognitive insights platform
CN106951491A (en) * 2017-03-14 2017-07-14 广东工业大学 A kind of Intelligent dialogue control method and device applied to robot
CN110648652A (en) * 2019-11-07 2020-01-03 浙江如意实业有限公司 Interactive toy of intelligence
CN110648652B (en) * 2019-11-07 2021-10-01 浙江如意实业有限公司 Interactive toy of intelligence

Also Published As

Publication number Publication date
AU2001274818A1 (en) 2001-12-11
WO2001093076A8 (en) 2004-11-25

Similar Documents

Publication Publication Date Title
US6604094B1 (en) Simulating human intelligence in computers using natural language dialog
Alvarez-Melis et al. A causal framework for explaining the predictions of black-box sequence-to-sequence models
US11734375B2 (en) Automatic navigation of interactive web documents
US20030144832A1 (en) Machine translation system
US20050005266A1 (en) Method of and apparatus for realizing synthetic knowledge processes in devices for useful applications
JP7315065B2 (en) QUESTION GENERATION DEVICE, QUESTION GENERATION METHOD AND PROGRAM
CN114676234A (en) Model training method and related equipment
CN109002519A (en) Answer selection method, device and electronic equipment based on convolution loop neural network
CN116541493A (en) Interactive response method, device, equipment and storage medium based on intention recognition
WO2001093076A2 (en) Simulating human intelligence in computers using natural language dialog
Mao et al. Grammar-based grounded lexicon learning
CN112069813B (en) Text processing method, device, equipment and computer readable storage medium
Wang et al. A survey of the evolution of language model-based dialogue systems
CN117193582A (en) Interactive control method and system and electronic equipment
Evans Descriptive pattern-analysis techniques: potentialities and problems
Römer et al. Behavioral control of cognitive agents using database semantics and minimalist grammars
Kramer et al. Tell your robot what to do: Evaluation of natural language models for robot command processing
CN117033649A (en) Training method and device for text processing model, electronic equipment and storage medium
Feng Formal analysis for natural language processing: a handbook
CN114998041A (en) Method and device for training claim settlement prediction model, electronic equipment and storage medium
Feigenbaum et al. The building blocks: Artificial intelligence, software engineering, computer architecture, and very large-scale integration will play major roles: Artificial intelligence
Toy Transparency in AI
Giachos et al. A contemporary survey on intelligent human-robot interfaces focused on natural language processing
Khakhalin et al. Integration of the Image and NL-text Analysis/Synthesis Systems
Litvin et al. Development of natural language dialogue software systems

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
122 Ep: pct application non-entry in european phase
D17 Declaration under article 17(2)a
NENP Non-entry into the national phase in:

Ref country code: JP