I was wondering what does it take to build a reverse language dictionary.
The user enters something along the lines of: "red edible fruit" and the application would return: "tomatoes, strawberries, ..."
I assume these results should be based on some form of keywords such as synonyms, or some form of string search.
This is an online implementation of this concept.
What's going on there and what is involved?
EDIT 1: The question is more about the "how" rather than the "which tool"; However, feel free to provide the tools you think to do the job.