F-логика () — язык представления знаний и онтологий. F-логика сочетает возможности концептуального моделирования с объектно-ориентированными языками и предлагает декларативный, компактный и простой синтаксис вместе с чёткой семантикой логического языка на основе фреймов.
Характеристики F-логики включают, среди прочих, идентификацию объектов, составные объекты, наследование, полиморфизм, запросные методы, инкапсуляцию. F-логика находится в том же отношении к объектно-ориентированному программированию, в каком классическое исчисление предикатов относится к реляционному программированию баз данных.
Была первоначально разработана для дедуктивных баз данных, но чаще используется для семантических технологий, особенно для Semantic Web. Среда разработки F-логики используется также в приложениях для информационной интеграции, вопросно-ответных системах и семантическом поиске.
F-логику рассматривают как один из формализмов для онтологий, хотя дескриптивная логика более популярна и принята как основная для языка онтологий Web Ontology Language.
Начиная с версии 4 редактора онтологий Protege, F-логика поддерживается как один из двух видов онтологии. Синтаксис формата обмена правилами (Rule Interchange Format) семантической паутины основан на F-логике.
Синтаксис F-логики Классы и индивиды могут быть определены в F-логике следующим образом: man::person. woman::person. brad: man. angelina: woman.
Это означает, что «мужчина есть человек», «женщина есть человек», «Брэд — мужчина», «Анжелина — женщина».
Утверждения о классах и индивидах могут быть записаны следующим образом: person[hasSon=>man]. brad[hasSon->>{maddox, pax}]. married(brad, angelina).
Это означает, что «сын человека есть мужчина», «Мэддок и Пакс — сыновья Брэда» и «Брэд и Анжелина — супруги», где ->> используется для присвоения значений.
Аксиомы F-логики можно представлять в следующем виде: man(X) <- person(X) AND NOT woman(X). FORALL X, Y <- X:person[hasFather->Y] <- Y:man[hasSon -> X].
Они означают «X есть мужчина, если X — человек и не женщина», «для всех Х, У : человек X имеет отца У, если мужчина У имеет сына X».
Система Флора 2 (расширение F-логики) ввела несколько изменений в синтаксис F-логики, делая его более удобным для представления знаний и системы рассуждений, отличая от нотации чисто теоретической логики. В частности, переменные стали помечать префиксом «?», различение функциональных и многозначных свойств было заменено константами мощности, добавлены другие важные изменения.
В отличие от формализма дескриптивной онтологии, семантика F-логики совместима с гипотезой замкнутого мира. Вместе с тем, F-логика в общем случае неразрешима, тогда как дескриптивная логика, на которой базируется OWL — разрешима. Однако в F-логике можно представить более выразительные утверждения, чем это возможно с дескриптивными логиками.
Ссылки
М. Kifer и Г. Lausen (1989). F-логика: язык высокого порядка для рассуждений об объектах, наследовании и схеме, ACM SIGMOD Конференция, 1989. PDF
Категория:Представление знаний Категория:Семантическая паутина Категория:Языки логического программирования Категория:Декларативные языки программирования