I wanted to write a program for asking questions about weather. What are the algorithms and techniques I should start looking at.
ex: Will it be sunny this weekend in Chicago. I wanted to know the intent = weather query, date = this weekend, location = chicago.
User can express the same query in many forms.
I would like to solve some constrained form and looking for ideas on how to get started. The solution needs to be just good enough.
Since your input is in the natural language form, best way to start looking into it, first by parsing the sentence structure. and running the sentence through NER (Named Entity Recognizer).
Parsing the sentence lets you come up with rules such as, certain types of dependencies always give you the intent. Running the NER will let you identify places and dates. If it's not simple to come up with rules to classify the intent, you can as well use a classifier to do the same using feature vector formulated from the input sentence. In fact some of the parser out put can go into formulating the feature vector.
For both there exists software's from Stanford NLP Group
May be you can look into:
Once you parse the sentence, you have intent and other information require to answer the question.
Ex: I took your sentence "Will it be sunny this weekend in Chicago." and ran it through Online Stanford NER Tagger. Which gave me the following:
Will it be sunny this <DATE>weekend</DATE> in <LOCATION>Chicago</LOCATION>
Now you have identified date and location.
I hope this helps. I know the answer is quite generic, and may be helpful in just getting started.