Natural Language Interface Gems

Michael Minock

C-PHRASE

2008 - 2014, Michael Minock (Umeå University) [source code]

An explanation of the name

"Thus analysis components must be robust, seeking out near misses when input is less than ideal and the system must be adaptable, making it easy for authors to patch running systems to catch unanticipated phrasings. The name C-Phrase is derived from ‘catch phrase’, which we interpret literally as ‘catching phrases’."

This is a gem, because

Based on tuple calculus.

Characteristics

Programming language
Lisp
Natural language
English
Type of analysis
Semantics_based (semantic grammar)
Language constructs
Noun Phrases, Verb Phrases, Preposition Phrases

Data flow

Natural Language input
Tokenize
  • Lexicon lookup
  • Open-ended token recognition
  • Proper names lookup in knowledge base
  • Quoted string recognition
Tokens
Parse
Parser type
A fuzzy chart parser
Grammar type
Synchronous context-free grammars
  • Semantic grammar (contains domain-specific information)
Syntactic form
Interpret
  • Semantic attachment
  • Semantic composition
    (lambda calculus)
Knowledge source form
(SQL)
  • Handle aggregations
Execute
Knowledge Base
An RDBMS (notably PostgreSQL)
    Knowledge base answers
    Answer
    • Spelling correction
    • Paraphrase knowledge base query
    Natural Language output

    Articles