Возможно ли в Datalog написать запрос для фактов, где имеется одно значение для одной из переменных, для каждого возможного значения других переменных?Запрос на уникальность в Datalog?
например. найти все X
такие, что есть только один X
для каждого Y
в expr(X, Y)
Вы уверены, что первый из них является стандартным Datalog? Является ли отрицание стандартной функцией? –
Официального стандарта нет, но отрицание поддерживается каждым вариантом Datalog, о котором я знаю, поэтому я бы сказал, что вы можете считать его стандартной функцией. Этот пример здесь - очень основное использование отрицания. Семантика отрицания становится сложной, когда отрицание используется в рекурсии (в большинстве систем реализовано что-то называемое стратифицированным отрицанием) или когда переменная, используемая в отрицании, не связана положительно в правиле (известном как небезопасное отрицание). –