Integrating Wordnet with Natural Language Processing (NLP)
I've been working to get a release of my NLP Engine out the door but wanted to boost the built in dictionary / thesaurus before release. So this weekend I integrated Wordnet into the engine. Wordnet is available in RDF as a series of triples. As well as all the word definitions grouped into synonym sets (synsets) it also includes relationships like class relationships 'hyponym' or 'isa' and part relationships 'meronym' or 'holonym'.
By building a simple in-memory graph of all these relationships my engine can now use them to infer interface types on objects. To define an interface corresponding to a Wordnet synset like a mammal (wn30:synset-mammal-noun-1) you simply define an interface in the namespace 'Noun' having a name of 'mammal1'. Through the type inheritance specified in the Wordnet file all mammals now inherit that interface automatically and you can write natural language rules that ask for a mammal and they will get any type of mammal defined in Wordnet.