Logic programming presents an excellent paradigm within which to develop intelligent systems. In addition to the routine sorts of reasoning we would expect such a system to perform, the state of the art in logic programming allows one to reason explicitly about false information, to reason explicitly about unknown or uncertain information (the subject of this chapter), and to reason introspectively in spite of holding multiple competing ways of viewing the world. Each of these abilities are necessary forms of reasoning, and each are lacking from current technology. Needless to say, each of these abilities are also lacking from relational databases. In this chapter, the focus is upon the expressive power of weak negation in logic programming. Weak negation is not well understood and can be easily confused with negation in SQL. In particular, some may falsely equate weak negation with the “not exists” clause of SQL. It is true that both forms of negation do have some similarity. However, the expressive power of weak negation far exceeds that of “not exists” in SQL. To a much lesser extent, we shall also consider strong negation in logic programming.