Ответ на ваш вопрос, очевидно, зависит от целевой таксономии, в которую вы пытаетесь отобразить свои условия. После того, как вы определились с этим, вам нужно выяснить, насколько детализированными должны быть концепции. WordNet, как было предложено в других ответах, даст вам наборы, то есть наборы терминов, которые являются более или менее синонимичными, но которые вам придется сопоставлять с такими понятиями, как «Веб-дизайн» или «Мировые новости», с помощью какого-либо другого механизма, поскольку они не закодированы в WordNet. Если вы нацелены на очень широкую семантическую категоризацию, вы можете использовать концептуальные узлы WordNet более высокого уровня, которые различают, например, (поднимаясь вверх по иерархии) человек от животного, животный от растений, вещества от твердых веществ, бетон от абстрактных вещей и т. д.
Другой вид таксономии, который может быть весьма полезен для вас, - это система категорий Википедии. Это не просто спонтанная идея, которую я только что придумал, но была проделана большая работа по выводу реальных онтологий из категорий Википедии. Взгляните на Java Wikipedia Library - идея состоит в том, чтобы найти статью в Википедии для рассматриваемого термина (например, «css3»), извлечь категории, к которым относится эта статья, и выбрать лучшие из них с уважение к некоторому критерию (например, «программирование», «технология» и «веб-разработка»). В зависимости от того, что вы пытаетесь сделать, этот последний шаг (выбор лучшей из нескольких категорий) может быть или не быть сложным.
См. здесь для списка других онтологий / баз знаний, которые вы можете использовать.