Natural Language in Longhorn
Longhorn introduced a new namespace called System.NaturalLanguageServices in WinFX, though I believe the name will be shortened to System.NaturalLanguage. More information about this can be found in the Longhorn SDK. There are also a number of samples demonstrating usage of this new API like SpellIt and DidYouMean (which I wrote).
It offers the first direct support of Natural Language in Windows. Among its many features it provides are the following:
to break documents into sentences and sentences into words (or collocations--which are multiple words that act as one word
to provide spelling correction and scored suggestions to mispelled words in a document.
to perform inflectional analysis of each word and assign a part of speech to each word
to assign a part of speech to each word
to automatically perform language detection
to work with different languages... I believe support is included for English, French, German, Spanish and Japanese.
The spelling capability is richer and more accurate than what Word's spellchecker offers, such as the ability to handle multiple words and possibly confused words. The DocumentUnderstanding subnamespace provides summarization capabilities, which I imagine would be useful for Longhorn to automatically reduced the contents of a file to a summary to display in the explorer.
On the downside, there are some features that may not be available in this first release.
no ability to generate grammatical parse trees
no ability to perform any kind of semantical analysis of the document
Here is any example of code to perform spellchecking...
TextChunk chunk = new TextChunk();
chunk.Context.Locale = CultureInfo.CurrentCulture;
chunk.Text = "The quick brown fox jumped over the lazy dog.";
foreach (Sentence sentence in chunk)
foreach(Token token in sentence)
if (token.Role == RangeRole.Incorrect)
Console.WriteLine("{0} spelled wrong. Should be {1}", token.Value, token.Suggestion[0]);
This represents my best knowledge of this API. Of course, all this may be inaccurate or subject to change.

.Net Undocumented