OpenCalais provides web services for Natural Language Processing", converting unstructured text into semantic web based structured data (RDF) that can be incorporated into blogs, websites and other applications.

It recognizes entities (company, person, country) and events / facts (acquisition, analyst recommendation, bankruptcy) and plans to support patents, entertainment and sports news, scientific documents and financial filings.

It works well with the following style of content : “SAP was downgraded to neutral from overweight by J.P. Morgan, which also cut its price target to 37 euros from 52 euros.” but not work with content that is already in tabular form.

The results of applying OpenCalais to museum content are described in the article Australian Museum Uses Open Calais to Tag Collection

To see Calais in action paste some text into the Calais Viewer and click the "submit" button.

Developer References

The RESTful web service, accessible via the URL provides an easy to call OpenCalais.

Extracting Meaning from Text with OpenCalais R3 provides some background on how OpenCalais works and how the text is parsed into the formal structure of a "phrase tree."

The OpenCalais "web services allow any text to be uploaded via an HTTP POST and respond with an RDF/XML file that describes the document. The response contains the original document (called DocInfo) with a category (called DocCat), instance information of referenced named entities with relevance score, and events and facts that are found in the document."

The article provides java code for posting text to the OpenCalais and storing the results in the Sesame RDF store.

Getting Started with OpenCalais and SearchMonkey

Quick OpenCalais Hack uses Ruby and OpenCalais to parse an input document and the load the generated RDF into the Talis platform.

Having fun with Reuters Calais uses Giorgio Vasari's "Lives of the Painters" as example text and the Python module python-calais.

The Klezio News Site uses python-calais as part of its django based website.

Extending the Python Wrapper for Calais to Support RDF describes extending the python-calais support for Calais’ JSON response type to include support for Calais’ RDF output.

Other Natural Language Processing Tools