Преимущества Prolog перед Datalog

Я пытался понять, есть ли существенное преимущество в использовании Prolog перед Datalog в определенном контексте. Пролог завершен по Тьюрингу, а Даталог — нет. Но есть ли другие существенные преимущества использования Пролога?

конкретный контекст может быть, например, реляционными базами данных... Лучше использовать Prolog или Datalog?


person cdiogo7    schedule 25.10.2015    source источник
comment
В чем вопрос? О каком конкретном контексте вы говорите?   -  person repeat    schedule 25.10.2015
comment
Интерпретатор журнала данных можно реализовать в Прологе, но не наоборот.   -  person repeat    schedule 25.10.2015
comment
Даталог — это движущаяся цель. Непонятно, что это вообще значит. Недавние сторонники будут делать заявления, которые выходят далеко за рамки первоначальной цели. OTOH, Пролог - это стандартизированный язык.   -  person false    schedule 25.10.2015
comment
конкретный контекст может быть, например, реляционными базами данных... Лучше использовать Prolog или Datalog?   -  person cdiogo7    schedule 26.10.2015
comment
Я использую Prolog для создания дедуктивной электронной таблицы ... но я видел, что большинство дедуктивных / логических электронных таблиц, созданных до сих пор, в основном основаны на Datalog ... Интересно, не лучше ли использовать Prolog ... вместо этого   -  person cdiogo7    schedule 26.10.2015
comment
Какие дедуктивные/логические электронные таблицы [...] на основе Datalog вы имеете в виду? Пожалуйста, назовите несколько.   -  person repeat    schedule 27.10.2015


Ответы (1)


Помимо полноты по Тьюрингу для Пролога и неполноты по Тьюрингу для ванильного Datalog (существуют расширения Datalog, которые расширяют его класс сложности), между Datalog и Prolog есть пара существенных различий:

  1. В журнале данных порядок правил или атомов внутри правил не влияет на их оценку или результаты оценки. С другой стороны, в Прологе порядок атомов может означать разницу между завершением и незавершением или время выполнения завершающей оценки. Пролог также предлагает императивные операторы, такие как cut (!); типичные реализации Datalog не имеют таких операторов. Таким образом, Datalog в этом смысле является более декларативным.

  2. Реализации Datalog обычно поддерживают оценку снизу вверх, тогда как реализации Prolog обычно поддерживают оценку сверху вниз. У каждого из них есть свои преимущества и недостатки, в зависимости от того, как предполагается использовать программу, и от размера данных, с которыми программа должна работать.

Не уверен, что последствия для вашего конкретного варианта использования. Это во многом зависит от того, что именно вы пытаетесь построить - нужна ли вам полнота по Тьюрингу и т. д.

person Shan Shan Huang    schedule 27.10.2015