Ingineria cunoaşterii a fost definită de Edward Feigenbaum, şi Pamela McCorduck astfel:
Ingineria cunoaşterii este disciplina inginerească ce implică integrarea cunoaşterii într-un sistem informatic pentru a rezolva probleme complexe care necesită în mod normal un înalt nivel de expertiză umană.[1]
În prezent, ingineria cunoaşterii se referă la construirea, menţinerea şi dezvoltarea unor sisteme bazate pe cunoaştere.[2] Are de a face mult cu ingineria software, şi este folosită în multe domenii din ştiinţa calculatoarelor precum inteligenţa artificială [3],[4], inclusiv baze de date, căutarea datelor, sisteme expert, sisteme de suport pentru decizii şi sisteme informatice geografice. Ingineria cunoaşterii este de asemenea legată de logica matematică, şi puternic implicată în ştiinţele cognitive şi ingineria socio-cognitivă unde cunoaşterea este produsă de agregate socio-cognitive (în special umane) şi este structurată confom cu înţelegerea noastră despre cum lucrează raţionalitatea şi logica umană
Diferitele activităţi ale ingineriei cunoaşterii specifice pentru dezvoltarea unui sistem bazat pe cunoaştere:
Fiind mai mult artă decât inginerie, ingineria cunoaşterii nu este aşa de clară în practică precum lista de mai sus. Fazele se suprapun, procesul este posibil să fie iterativ, şi pot apare multe provocări. Recent, a apărut ingineria meta-cunoaşterii[5] ca o nouă abordare sistemică formală a dezvoltării teoriei inteligenţei şi cunoşterii unificate.