The gist of the answers is that automatic punctuation is nigh impossible.
Why?
Basically because there are a lot of sequences of words that could be punctuated in different ways to mean different things. For example.
the cow jumped over the hill I saw another cow
can be punctuated as
The cow jumped. Over the hill I saw another cow.
or
The cow jumped over the hill. I saw another cow.
which clearly mean different things. (Can you tell me which is the right one? Why? And are you still correct if there are moles in the field?)
Basically, deciding which of the possible alternatives is the "correct" one requires deep understanding of what the punctuated utterances mean ... in the context that they appear. This is most likely beyond the state of the art of natural language processing, and certainly not something that a run-of-the-mill application should attempt.