Socrate a practicat dialectica pentru obținerea cunoașterii, prin metoda dialogului oral, ceea ce el numea arta „nașterii sufletelor”. La Platon, dialectica era un tip de cunoaștere cu rol ontologic și metafizic, la care se ajunge prin confruntarea mai multor poziții pentru a depăși opinia (doxa), o deplasare din lumea aparențelor (sau a „sensibilului”) către cunoașterea intelectuală (sau „inteligibilul”) până la primele principii.
Pentru ca o descriere, declarație sau afirmație să fie cunoaștere, trebuie ca aceasta să fie o credință, să fie adevărată, și să fie justificată. O declarație de credință este o expresie a credinței în cineva sau ceva. Credința trebuie să fie adevărată pentru a fi cunoaștere. Definiția cunoașterii ca o credință adevărată justificată a fost acceptată pe scară largă până în 1960, când filosoful american Edmund Gettier a provocat discuții majore pe scară largă. Cunoașterea științifică se bazează pe colectarea probelor observabile și măsurabile supuse unor principii specifice de raționament și de experimentare.
În ciuda criticilor teoriei falsificabilității propuse de Karl Popper pentru demarcarea între știință și ne-știință, în principal pseudoștiință, acest criteriu este încă foarte util, și perfect valabil după perfecționarea lui de către Popper și adepții lui.
Metodologia programelor de cercetare științifică a lui Imre Lakatos este o revizuire radicală a criteriului de demarcație al lui Popper între știință și neștiință, conducând la o teorie nouă a cunoașterii științifice.
În lucrare prezint propunerea mea de extindere a metodologiei lui Lakatos cu doi noi termeni, programe bifurcate și programe unificatoare, cu caracteristicile lor specifice.