Изменения
→Синтаксис
==Синтаксис==
Программа на Datalog - набор '''отношений''': <code>Отношение(x1,x2...xn) :- Цель.</code>
'''Цель''' - Набор '''атомов''', перечисленных через запятую
Есть два вида:
всевозможные сравнения на равенство/неравенство
==Ограничение отношений==Как и на любую другую программу, на синтаксически корректную программу на языке Datalog нужно наложить дополнительные ограничения, чтобы она имела смысл.----------------------
Рассмотрим отношения
Less(x,y) :- x < y. NotStudent(Id, Name) :- not Students¬Students(Id, Name, _). Здесь есть проблема - мы даже не знаем тип x, y, Id и Name, это значит, что мы не знаем области их значения. Запретим так делать, а именно добавим ограничение: Каждая переменная должна входить в неотрицательный реляционный атом.
Допустим, у нас есть отношение
Parent(Id, ParentId)