Once a parse tree has been built using syntaic analysis, the semantics, or meaning, of the sentence needs to be found. This is a very difficult task as it requires world knowledge.
The need for semantic information is illustrated by trying to follow a recipe. Knowing that the recipe is correctly written does not help understand how to it carry out. Knowledge of the relationships between food and it's preparation is needed; the semantics contained with the recipe.
Another way of putting the difference between syntax and semantics into context is with the following two sentences:
"Colourless green ideas sleep furiously"
"Green sleep colourless furiously green"
The first sentence is syntactically correct in modern English, but after semantic analysis can be seen to be meaningless, whereas the second sentence, although made from the same words, can be dismissed as nonsense by simply regarding it's syntax.
There are no steadfast ways of representing world knowledge or extracting the semantics from a sentence except for very simple domains, although First Order Predicate Calculus seems to be dominating as a representation method
The easiest way to view the task of pragmatics is as determining an action given the semantics of a request or sentence.
As you might guess, since finding the semantics of a sentence is extremely difficult, determining the pragmatics is even harder.
There is as much amibiguity in this area of NLP as any other, if not more. For example, consider the following question posed to a computer:
"Do you have the time?"
A syntactically correct answer to this question could be "Yes" although this is clearly not pragmatically correct as the answer required is the actual time.