SED (or other) upper to lowercase, with first letter of first word in each sentence uppercase

The title pretty much defines the problem. I have text files that are all in caps. I would like to convert them to lowercase, but have the first letter of the first word in each sentence in uppercase.

I already have SED on the server for fixing / tweaking text files, but I'm open to other solutions.

Please post what Operating System and version you are running and most importantly in this case what Shell you use.

Please define a "sentence" in terms that a computer program would understand.

Please post sample before and after data, complete with an explanation of the process.

I'm using Centos 6.2 on a web server.
Shell/bin/bash
SED (or an alternative) would be run on a schedule using cron.

I understand "sentence" isn't a programming term - I simply mean the normal grammar usage (a number of words that ends with a period). Here is an example from a text file:

The desired output would look like this:

IMHO this process is not within the capabilities of Shell programming.
The sample end-product is far from perfect because nouns and certain abbreviations are not capitalised. The spelling mistakes in the input data (e.g. "ATLC" - presumably "Atlantic") do not help.
Perhaps re-type the data rather than try to fix it with an impossible program?

This data is updated several times a day, every day, so it must be automated. I can program SED to replace often used words and phrases with the right capitalization. Words like ATLC and Atlantic and Gulf, for example, are taken care of by this.

The problem is the first character of the first word in a sentence. Could a script change the first character after a single period to uppercase? The single period is an important point - often "..." is used with descriptions in this text to bridge copy.

$ cat | sed 's/\./\.\n/g' | tr '[:upper:]' '[:lower:]' | sed 's/^ *//g' | perl -wp -pe '$_ = ucfirst' | tr '\n' ' '
cat | tr '[:upper:]' '[:lower:]' | sed -e 's/\./\.\n/g'  | sed -e 's/^ *//g' | sed -e 's/\(^[a-z]\)\([a-zA-Z0-9]*\)/\u\1\2/g' | tr '\n' ' '

AN UPPER RIDGE EXTENDS OVER THE W CARIBBEAN WITH THE AXIS FROM OVER CENTRAL AMERICA THROUGH THE GULF OF HONDURAS ACROSS W CUBA INTO THE W ATLC. A SECOND UPPER RIDGE EXTENDS FROM THE W TROPICAL ATLC OVER THE LESSER ANTILLES INDUCING AN INVERTED UPPER TROUGH OVER THE CARIBBEAN EXTENDING FROM THE MONA PASSAGE TO OVER COLOMBIA.
An upper ridge extends over the w caribbean with the axis from over central america through the gulf of honduras across w cuba into the w atlc. A second upper ridge extends from the w tropical atlc over the lesser antilles inducing an inverted upper trough over the caribbean extending from the mona passage to over colombia.

cat | tr '[:upper:]' '[:lower:]' | awk 'BEGIN {RS="."; ORS=". "} { {sub(".", substr(toupper($1),1,1) , $1)} print }'

AN UPPER RIDGE EXTENDS OVER THE W CARIBBEAN WITH THE AXIS FROM OVER CENTRAL AMERICA THROUGH THE GULF OF HONDURAS ACROSS W CUBA INTO THE W ATLC. A SECOND UPPER RIDGE EXTENDS FROM THE W TROPICAL ATLC OVER THE LESSER ANTILLES INDUCING AN INVERTED UPPER TROUGH OVER THE CARIBBEAN EXTENDING FROM THE MONA PASSAGE TO OVER COLOMBIA.

An upper ridge extends over the w caribbean with the axis from over central america through the gulf of honduras across w cuba into the w atlc. A second upper ridge extends from the w tropical atlc over the lesser antilles inducing an inverted upper trough over the caribbean extending from the mona passage to over colombia. .