What is 'Protege'?
Protege is a frame-based ontology editor developed by the Medical Informatics group at Stanford University. It has a very flexible knowledge model, and an architecture that is extensible through the inclusion of plug-ins. Protege is a no-cost open source project.
I have been using Protege actively for about a year now and still find it an amazingly useful tool. I admit that it is not bug-free, but there is a lively mailing list which can help resolve issues and to which you can also submit bug reports or improvement suggestions. I have submitted several such reports, many of which have been implemented (and most of those within days).
There are similar commercial tools around, but I suggest you take a look at Protege to see if it fits your needs.
For further information, see the Protege website