HiLog - Википедия - HiLog

HiLog это программирование логика с синтаксисом более высокого порядка, который позволяет произвольным терминам появляться в позициях предикатов и функций.[1] Тем не менее теория моделей HiLog является первоклассным. Хотя синтаксически HiLog строго расширяет логика первого порядка, HiLog может быть встроен в эту логику.

HiLog был впервые описан в 1989 году.[2] Позже он был расширен в сторону разносторонняя логика.[3]

В XSB система анализирует синтаксис HiLog, но интеграция HiLog в XSB является лишь частичной. В частности, HiLog не интегрирован с системой модулей XSB. Полная реализация HiLog доступна в Флора-2 система.

Было показано, что HiLog может быть встроен в логика первого порядка через довольно простую трансформацию.[1] Например, p (X) (Y, Z (V) (Ш)) внедряется как следующий термин первого порядка: применить (p (X), Y, применить (применить (Z, V), W)).[1]

В Платформа для логических диалектов (РИФ-ФЛД) Формат обмена правил (RIF) во многом основан на идеях, лежащих в основе HiLog и F-логика.[4]

Примеры

Во всех приведенных ниже примерах символы с заглавной буквы обозначают переменные, а запятая - логическое соединение, как и в большинстве логическое программирование языков. Первый и второй примеры показывают, что переменные могут появляться в позициях предикатов. Предикаты могут быть даже сложными терминами, например закрытие (P) или же список карт (F) ниже. Третий пример показывает, что переменные также могут появляться вместо атомарных формул, а четвертый пример иллюстрирует использование переменных вместо функциональных символов. В первом примере определяется общий переходное закрытие оператор, который может быть применен к произвольному бинарному предикату. Второй пример похож. Он определяет LISP -подобный оператор отображения, который применяется к произвольному бинарному предикату. Третий пример показывает, что Пролог мета-предикат звонок / 1 могут быть выражены в HiLog естественным образом и без использования дополнительных логических функций. В последнем примере определяется предикат, который проходит по произвольным двоичным деревьям, представленным как условия первого порядка.

закрытие(п)(Икс,Y) <- п(Икс,Y).закрытие(п)(Икс,Y) <- п(Икс,Z), закрытие(п)(Z,Y).список карт(F)([],[]).список карт(F)([Икс|р],[Y|Z]) <- F(Икс,Y), список карт(F)(р,Z).вызов(Икс) <- Икс.траверс(Икс(L,р)) <- траверс(L), траверс(р).

Рекомендации

  1. ^ а б c Чен, Вэйдун; Кифер, Майкл; Уоррен, Дэвид С. (февраль 1993 г.). «HiLog: основа для логического программирования высшего порядка». Журнал логического программирования. 15 (3): 187–230. Дои:10.1016 / 0743-1066 (93) 90039-J. CiteSeerИкс10.1.1.52.7860
  2. ^ Чен, Вэйдун; Кифер, Майкл; Уоррен, Дэвид С. (1989). «HiLog: семантика первого порядка для логических программных конструкций высшего порядка». Proc. Североамериканская конференция по логическому программированию.
  3. ^ Чен, Вэйдун; Кифер, Майкл (1995). «Сортированный HiLog: сортировка на языках логических данных высшего порядка». В Готтлобе, Георг; Варди, Моше Ю. (ред.). Теория баз данных - ICDT '95: 5-я Международная конференция, Прага, Чешская Республика, 11–13 января 1995 г .: материалы. Конспект лекций по информатике. 893. Берлин; Нью-Йорк: Springer-Verlag. С. 252–265. Дои:10.1007/3-540-58907-4_20. ISBN  9780387589077. OCLC  31740400. CiteSeerИкс10.1.1.56.4332
  4. ^ Кифер, Майкл (2008). «Формат обмена правил: каркас». В Кальванезе, Диего; Лаузен, Георг (ред.). Веб-рассуждения и системы правил: вторая международная конференция, RR 2008, Карлсруэ, Германия, 31 октября - 1 ноября 2008 г .: материалы. Конспект лекций по информатике. 5341. Берлин; Нью-Йорк: Springer-Verlag. С. 1–11. Дои:10.1007/978-3-540-88737-9_1. ISBN  9783540887362. OCLC  262884460.CS1 maint: ref = harv (связь) CiteSeerИкс10.1.1.150.6922

дальнейшее чтение