A context-free grammar represents simple sentences in natural language fairly well.
A context-free grammar is a set of rules like these:
Statemet ::= Subject NominativeVerb Attribute | Subject TransitiveVerb DirectObject;
Subject ::= NominalGroup
NominalGroup ::= Article NounWithAdjectives | NounWithAdjectives
NounWithAdjectives ::= Noun | Adjective NounWithAdjectives
Attribute ::= Adjective
DirectObject ::= NominalGroup
...
You need to have a dictionary that tells you which roles each word can take (Noun, Adjective, Article, NominativeVerb...). Then there is a straight-forward algorithm to determine whether a sentence conforms with the definition of Statement, or Question (to be defined). The algorithm might be sort of slow, since its running time is O(n^3), where n is the number of words.
Getting the grammar right might be tricky (enroll a linguist in your project :) ). Many sentences will be ambiguous (there will be several ways of describing them using the rules). You can improve your parser by knowing about number and gender of nouns and verbs... And I am sure that you can spend several lifetimes trying to get everything right, especially if you want your program to know what pronouns refer to.
I don't have good links, but Wikipedia seems to have
some info. Good luck.