Programming with logical queries, bulk updates, and hypothetical reasoning | IEEE Journals & Magazine | IEEE Xplore