Natural Language Interface Gems

Erik T. Mueller

ThoughtTreasure

1994 - 1996, Erik T. Mueller [source code]

An explanation of the name

"ThoughtTreasure was originally called ThoughtTr├ęsor, where tr├ęsor is the French word for treasury (treasure as well). The idea was that the system would be a treasury of thoughts. The combination of English and French in the name reflected the fact that the system supported both English and French. This original name was difficult for English speakers to pronounce, so I changed the name to ThoughtTreasure. ThoughtTreasury contained an extra syllable and didn't sound right to me." -- Erik T. Mueller

This is a gem, because

This system integrates a natural language component in a full-blown AI architecture that includes scripts, spatial orientation, planning, understanding, and even emotions. It also has a wide support for various natural language constructs. It makes commonsense reasoning explicit in the form of understanding agents.

Characteristics

Programming language
C
Natural language
English, French
Type of analysis
Semantics-based
Language constructs
Noun Phrases, Verb Phrases, Preposition Phrases, Determiner Phrases, ADVerb Phrases, ADJective Phrases, Relative Clauses, Negations, Conjunctions, Anaphora, Auxiliaries

Data flow

Natural Language input
Tokenize
"The text agency"
  • Lexicon lookup
  • Morphological analysis
  • Open-ended token recognition
  • Proper names lookup in knowledge base
  • Proper names by matching
  • Quoted string recognition
  • Uses a part-of-speech tagger
Tokens
Parse
"The syntactic component"
Parser type
A simple bottom-up parser
Grammar type
Phrase Structure
    Syntactic form
    Interpret
    "The semantic component"
    • Semantic composition
      (custom)
    • Use lexicon
    • Anaphora resolution
    Semantic form
    • Custom ontology
    Convert
    • Syntactic rewrites
    Knowledge source form
      Execute
        Knowledge base answers
        Answer
        • Cooperative responses
        • Canned responses
        • Simple responses with variables
        • Generate full response
        Natural Language output

        Books