Урезанный Prolog для запросов к данным: те же факты и правила вывода, но без возможностей, из-за которых программа может работать вечно. Поэтому любой запрос на Datalog к конечным данным гарантированно заканчивается и даёт точный ответ. Это пример узкого языка: им нельзя написать любую программу, зато про его программы можно отвечать точно. Datalog-подобные языки используют в анализе кода и в правилах доступа.