I have an application which describes animals. A user can attach keywords to the animals. Each keyword has to belong to one of five categories, four specific ones and a "Research topic" category which is actually a catchall one. For example, if a user attaches the keyword "kidney" to a lab mouse used for researching kidney tumors, the system has to know that "kidney" belongs to the category "organ". The list of keywords is open (users have to be able to create new keywords) and very long (thousands of keywords). I find that categorized keywords are a problem by themselves, but there is nothing I can do about it, so the parts described in this paragraph can't be changed.
The requirement is that a user should be able to attach either an existing or a new keyword in a seamless way. Had these been simple keywords, a combobox would have been enough. But the problem with the category is that, if the user enters a new keyword, he/she also has to provide a category. (We assume that the first user always chooses the correct category, but an admin can correct the category if improperly set).
This led to a very clunky design. First, the user sees the list of existing keywords and a combobox. When he/she enters something in the combobox, he/she has to click a button labelled "select". If the entry is found in the database, it gets attached to the current animal.
If it is not found, the user sees a text saying "Your keyword was not found in the database. Please tell us which category it has". The user has to choose the category with a radio button and then confirm the selection with a new button. The old button stays visible, but it is the "Gewaehltes Keyword hinzufuegen" (add chosen keyword) button which will create the new keyword in the database and attach it.
The users don't want to leave the current page for the creation of a new keyword. I also don't want to offer two different interfaces for keywords at the same time (one for existing ones and one for new ones), because the user doesn't know all thousands of keywords in the system and the combobox doubles as search and input possibility.
What solution will make it easy to create new keywords (including category) and enter existing ones in one seamless work step?