Prolog execution process may be seen as a search that model scientific search for a proof of a proposition. At the same time, real world scientific search greatly differs from Prolog search in the following way:
As we know, Prolog is based on closed world assumption (CWA) -- that is, if a proposition is not in the fact database and not derivable from the fact database, then it is not true. So Prolog search may yield 2 results:
- proposition is proved; here is the proof: ...
- proposition is false or it can not be proved using fact database
At the same time, scientific search is not limited by CWA and may be seen in at least 4 states:
- proposition is proved; here is the proof: ...
- proposition is disproved by counter-example; here is the counter-example: ...
- proposition is neither proved, nor disproved to the specified (current) time
- proposition is proved to be independent from the axiom set; here is the proof: ...
I suspect that, because of popularity of Prolog in the end of the XX century, there were successful attempts to improve it by removing CWA in order to better model scientific search in resulting language. CWA removing seems to open possibility to use 3 or even all the 4 above-mentioned states in programming language execution process.
So, I suspect, there are papers that describe such attempts and explore theoretic foundations of such a prolog-like languages. If so, please point out a survey or a bunch of most significant of such a papers.