WordNetはあなたが望むものです。それは大きく、10万以上のエントリが含まれており、自由に利用できます。
ただし、XMLとしては保存されません。データにアクセスするには、選択した言語に既存のWordNetAPIの1つを使用する必要があります。
APIの使用は一般的に非常に簡単なので、「(a)複雑なAPIの学習」についてあまり心配する必要はないと思います。たとえば、WordNetから借りたPythonベースのNatural Language Toolkit(NLTK)の方法:
>>> from nltk.corpus import wordnet
>>>
>>> # Get All Synsets for 'dog'
>>> # This is essentially all senses of the word in the db
>>> wordnet.synsets('dog')
[Synset('dog.n.01'), Synset('frump.n.01'), Synset('dog.n.03'),
Synset('cad.n.01'), Synset('frank.n.02'),Synset('pawl.n.01'),
Synset('andiron.n.01'), Synset('chase.v.01')]
>>> # Get the definition and usage for the first synset
>>> wn.synset('dog.n.01').definition
'a member of the genus Canis (probably descended from the common
wolf) that has been domesticated by man since prehistoric times;
occurs in many breeds'
>>> wn.synset('dog.n.01').examples
['the dog barked all night']
>>> # Get antonyms for 'good'
>>> wordnet.synset('good.a.01').lemmas[0].antonyms()
[Lemma('bad.a.01.bad')]
>>> # Get synonyms for the first noun sense of 'dog'
>>> wordnet.synset('dog.n.01').lemmas
[Lemma('dog.n.01.dog'), Lemma('dog.n.01.domestic_dog'),
Lemma('dog.n.01.Canis_familiaris')]
>>> # Get synonyms for all senses of 'dog'
>>> for synset in wordnet.synsets('dog'): print synset.lemmas
[Lemma('dog.n.01.dog'), Lemma('dog.n.01.domestic_dog'),
Lemma('dog.n.01.Canis_familiaris')]
...
[Lemma('frank.n.02.frank'), Lemma('frank.n.02.frankfurter'),
...
WordNetにはアメリカ英語の偏見がありますが、イギリス英語のスペルと使用法をサポートしています。たとえば、「color」を検索でき、「lift」のシンセットの1つは「elevator.n.01」です。
XMLに関する注記
データをXMLとして表現することが不可欠な場合は、APIの1つを使用してWordNetデータベースにアクセスし、それをXMLに変換できます。たとえば、「XMLを考える:WordNetをXMLとしてクエリする」を参照してください。