F-логика
F-логика (англ. F-logic, полное название — Frame logic) — язык представления знаний и онтологический язык. Он сочетает концептуальное моделирование с объектно-ориентированными, фреймовыми языками, предлагая декларативный, компактный и простой синтаксис, а также строгую семантику языка логического программирования.
К основным возможностям F-логики относятся идентичность объектов, составные объекты, наследование, полиморфизм, методы запросов, инкапсуляция. Отношение F-логики к объектно-ориентированному программированию аналогично отношению классического реляционного исчисления к программированию для реляционных баз данных.
В современных нейро-символических системах искусственного интеллекта F-логика используется в качестве логического компонента для обеспечения символьных рассуждений[1].
Обзор
F-логика была разработана Михаэлем Кифером (Michael Kifer) из Стоуни-Брукского университета и Георгом Лаузеном (Georg Lausen) из университета Мангейма. Изначально F-логика создавалась для дедуктивных баз данных, но в настоящее время чаще всего используется в семантических технологиях, особенно для семантической паутины. F-логика рассматривается как один из формализмов для онтологий, хотя дескрипционная логика (DL) и основанный на ней язык веб-онтологий (OWL) получили бо́льшую популярность и признание.
Среда разработки для F-логики была создана в рамках проекта NeOn и также применяется в ряде программ для интеграции информации, ответов на вопросы и семантического поиска. Поддержка F-логики в редакторе онтологий Protégé была доступна до 4-й версии, однако в современных версиях (5.x и выше) актуальные плагины отсутствуют, и основным инструментом стала специализированная среда ErgoAI Studio[2].
Фреймовый синтаксис стандартизированного формата обмена правилами (RIF BLD, Basic Logic Dialect), разработанного Консорциумом Всемирной паутины, основан на F-логике; при этом RIF BLD не реализует ряд немонотонных выводимых особенностей F-логики[3].
В отличие от формализмов онтологий, основанных на дескрипционной логике, семантика F-логики обычно основана на предположении замкнутого мира, тогда как для DL типичен открытый мир. Кроме того, F-логика, как правило, неразрешима, тогда как дескрипционная логика SHOIN, на которой основан OWL DL, является разрешимой. Тем не менее, с помощью F-логики возможно выразить более сложные высказывания, чем позволяют дескрипционные логики.
Наиболее полное описание F-логики было опубликовано в 1995 году[4]. Предварительная статья[5][6] с описанием F-логики, опубликованная в 1989 году, получила премию Test of Time Award от ACM SIGMOD в 1999 году[7]. Последующая статья[8] 1992 года получила аналогичную награду ACM SIGMOD в 2002 году[7].
Синтаксис 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). X:person[hasFather->Y] <- Y:man[hasSon -> X].
Это значит: «X — мужчина, если X — человек и не женщина» и «если X — сын Y, то X — человек, а Y — отец X».
(Примечание: последнее правило не в полной мере отражает реальную ситуацию, поскольку у сыновей есть и матери. Пол X определяется условием, а пол Y — нет.)
Система Flora-2, впоследствии заменённая платформой ErgoAI[9], внесла ряд изменений в синтаксис F-логики, чтобы сделать его более подходящим для представления знаний и вывода, а не только для теоретической логики. В частности, переменные стали обозначаться с помощью префикса «?», различие между функциональными и мультизначными свойствами было заменено ограничениями по мощности (cardinality constraints) и добавлен ряд других изменений. Например, приведённые выше предложения в Flora-2 записываются так:
man(?X) <- person(?X) \and \naf woman(?X). ?X:person[hasFather->?Y] <- ?Y:man[hasSon -> ?X].
Здесь \naf — это отрицание по умолчанию («naf» означает отрицание как провал, основано на well-founded семантике); Flora-2 также поддерживает так называемое явное отрицание[10], что ближе к классическому логическому отрицанию.
Языки, основанные на F-логике
- Flora-2 — расширение F-логики с интеграцией HiLog, логики транзакций и вывода с преодолением (разработка прекращена в 2023 году, заменена ErgoAI)[9].
- ErgoAI — платформа с открытым исходным кодом (Apache 2.0) на основе F-логики, являющаяся преемником Flora-2[2][9].
- PathLP — полнофункциональный язык логического программирования на основе F-логики.
- FLORID (F-LOgic Reasoning In Databases) — реализация на языке C++.
- Web Services Modeling Language (WSML) Архивировано 2 мая 2007.
- Semantic Web Services Language (SWSL)
- Язык ObjectLogic основан на F-логике; OntoStudio — реализация этого языка компанией semafora systems GmbH (ранее Ontoprise GmbH).
- OO-logic является последовательницей F-логики; SemReasoner и Ontology Management System (OSM) — реализации OO-logic, разработанные компанией adesso SE.
Применение
F-логика применяется в семантической паутине и экспертных системах для интеграции данных, семантического поиска и создания онтологий. В экспертных системах она служит формальной основой для фреймового представления знаний, позволяя использовать встроенный аппарат логического программирования в качестве механизма вывода[11].
Промышленное использование технологии реализуется преимущественно через коммерческие системы управления знаниями. Одним из известных примеров является OntoBroker — промышленный механизм логического вывода, работающий на базе языка-преемника ObjectLogic. Подобные решения применяются для интеграции корпоративных данных, управления бизнес-правилами и формализации знаний предметной области[12].[13]
В современных гибридных (нейро-символических) системах F-логика задействуется для обеспечения объяснимости (XAI). Примером такого подхода является академический фреймворк EduRiskX, предназначенный для раннего прогнозирования академических рисков студентов. В его архитектуре F-логика применяется в модуле символических рассуждений, который генерирует структурированные объяснения, связывая предсказанные нейросетевой моделью риски с конкретными поведенческими паттернами учащихся.