The use of predicate logic for modeling information systems is widespread and growing. Knowledge representation, for example, has long been important in artificial intelligence applications and is now emerging as a critical component of semantic web applications. Similarly, predicate logic is the basis for ontologies and inferential knowledge bases that support systems managing “big data” using graph databases and triple stores. This course teaches the fundamentals of propositional and predicate logic, with an emphasis on semantics. We start with a fast-paced introduction or a refresher on propositional and predicate logic, to serve as a stepping stone to more advanced topics in logics with application to computer science. Modal logic is introduced as a tool to manage non-truth functional systems, and dynamic logic is introduced to manage potentially inconsistent systems, such as may arise in merging disparate databases or in combining diagnostic models of related systems (e.g., “Agent A knows that Agent B knows fact X”), and has been key to the development of IBM’s Watson and RDF/OWL. Finally, dynamic logic is introduced to manage potentially inconsistent systems, such as may arise in merging disparate databases or in combining diagnostic models of related systems.
This course may be counted toward a three-course track in Database Systems and Knowledge Management.