1. A method comprising: receiving, at one or more processors, a non-lexical code and a non-lexical code descriptor, the non-lexical code and the non-lexical code descriptor from structured data; determining a lexical code and a lexical code descriptor based on the received non-lexical code and non-lexical code descriptor; lexically combining, using the one or more processors, the lexical code with the lexical code descriptor based on a template that indicates how to lexically combine the lexical code and the lexical code descriptor, wherein lexically combining the lexical code with the lexical code descriptor includes constraining the lexical combination by an ontological relationship between the lexical code and the lexical code descriptor as indicated in the template; and associating the lexically combined lexical code and lexical code descriptor with the non-lexical code and the non-lexical code descriptor in a keyword database.