Sunday, August 1, 2010

AGI use cases

(Some entries are just general description rather than concrete example;  It may take some additional time to think of concrete examples for them)

1. Pattern recognition

Programming related:
  • recognize a program / a program missing a curly brace
  • recognize a function declaration [maybe missing something]
  • recognize a mathematical / logical expression
  • recognize the definition of an abstract data type
  • recognize that the execution of a program is slow (this is fuzzy)
  • recognize that some code / data structure is complex (also fuzzy)
  • recognize that a text / image file is big (also fuzzy)
English related:
  • recognize some nouns, verbs, prepositions, etc
  • recognize NPs, VPs, etc
  • recognize sentences (or almost-sentences missing something)
  • recognize misspelled words
2. Natural language understanding / interpretation

Syntactic parsing into logical form:
  • translate nouns, verbs, prepositions, etc, into logical form
  • translate NPs, VPs, into logical form
  • translate sentences into logical form
Understanding semantics:
  • understanding nouns:
        eg:  chair is an object, dog is an animal, love is an abstract thing
  • understanding verbs:
        eg:  to kick is to hit with a leg;  to kiss is to make contact with lips;
              to love is to kiss, have sex, hold hands, talk, etc.
  • understanding prepositions:
        eg:  John eats spaghetti with Peter -> Peter eats spaghetti
              John eats spaghetti with meatballs -> the spaghetti has meatballs &
                                                                          meatballs don't eat spaghetti
  • understanding sentences
3. Learning from examples

Once we have basic English capability, we can use English to give examples:
  • Roman numeral for '1' consists of one I
    Roman numeral for '2' consists of two I's
    Roman numeral for '3' consists of three I's
    -->  Roman numeral for n consists of n I's

4. Query answering
  • Is 13 an integer?
  • Is 13 an odd number?
  • Is 3.14 a float?
  • All variables must be given a type when they are declared?
  • Every C# program must contain one Main method?
  • Is ++(x + 1) a valid C# statement?
5. Finding explanations
  • Why does some code result in error messages?
        eg:  why is ++(x + 1) invalid?
              what's wrong with  printf("This is a test);  ?
  • Why doesn't a program give the desired result?
        eg:  why doesn't  printf("Hello world/n");  produce a new line?
  • Why is one program slower than another similar program?
6. Performing simple tasks
  • Print all odd numbers from 1 to 100.
  • Replace "John" with "Mary" in this text file.
  • Write a function that reverses an English sentence's word order.

No comments:

Post a Comment