Вопрос

Как многие программисты я изучал пролог в университете, но только очень мало. Я понимаю, что пролог и DataLog тесно связаны, но DataLog проще? Кроме того, я считаю, что я прочитал, что Datalog не зависит от упорядочения логических пунктов, но я не уверен, почему это преимущества. Клипы предположительно совсем разные, но для меня слишком тонкий, чтобы понять. Может кто-нибудь, пожалуйста, предоставить общие основные моменты языков над другими языками?

Это было полезно?

Решение

DataLog - это подмножество пролога. Подмножество, которое содержит DataLog, имеет в виду две вещи:

  1. Принять API, который будет поддерживать правила и запросы
  2. Убедитесь, что все запросы заканчиваются

Пролог зарабатывает завершено. DataLog нет.

Получение DataLog с дороги, давайте посмотрим, как пролог сравнивается с зажимами.

Экспертиза пролога - «Решение проблем», а клипы - «экспертная система». Если я правильно понимаю, «решение проблем» включает опыт с использованием кода и данных. «Экспертные системы» в основном используют структуры данных для выражения экспертизы. видеть http://en.wikipedia.org/wiki/expert_system#comprison_to_problem-solving_systems.

Еще один способ посмотреть на это:

Экспертные системы работают на предпосылке, что большинство (если не все) результаты известны. Все эти результаты скомпилированы в данные, а затем подаются в экспертную систему. Дайте экспертную систему сценарий, экспертная система вычисляет результаты от составленных данных, ака базы знаний. Это всегда «четный номер плюс даже номер - это всегда даже« вид мышления ».

Системы решения проблем имеют неполное представление о проблеме. Таким образом, вы начинаете с модельными данными и поведением, что будет содержать базу знаний (это дает справедливость к терминалу «угловой корпус») и заканчивается «если мы добавим два до шести, мы заканчиваем восемь. это восемь делится два? Тогда это даже "

Другие советы

Разница между клипами и прологом / DataLog заключается в том, что клипы представляют собой «систему производства», которая работает с помощью Передвижное цепочка: Учитывая набор фактов и правил, он попытается сделать все возможное выделение новых фактов и хранить их в памяти. Затем запрос отвечает, проверяя ли он что-то в магазине фактов. Итак, в клипах, если у вас есть (псевдо-синтаксис):

parent(X,Y) => child(Y,X)
parent(john,mary)

Это немедленно выведет child(mary,john) и помните этот факт. Это может быть очень быстро, но ставит ограничения на возможную наложку и занимает память.

Пролог и DataLog работают Обратная цепочка, что означает, что запрос (вызов предиката) отвечает, пытаясь доказать запрос, то есть запуск программы Prology / DataLog. Prolog - это Turing полный язык программирования, поэтому любой алгоритм может быть реализован в нем.

DataLog - это нерезное полное подмножество пролога, которое не позволяет, например, отрицание. Его основным преимуществом является то, что каждая программа DataLog заканчивается (без бесконечных петель). Это делает его полезным для так называемых «дедуктивных баз данных», то есть баз данных с правилами в дополнение к фактам.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top