Предположение об уникальности имён

Предположение об уникальности имён (англ. Unique Name Assumption, сокращённо UNA) — это упрощающее предположение, используемое при разработке некоторых языков для онтологий и дескриптивных логик. В логических системах, в которых принято это предположение, различные имена всегда обозначают различные сущности в рассматриваемом мире.

Формальное определение и связь с другими допущениями

В логике первого порядка предположение об уникальности имён формализуется через предикат равенства (неравенства). Для любых различных констант и вводится аксиома (что эквивалентно ). Для более сложных термов аксиоматика включает:[1]

  • для различных функциональных символов и [1];
  • [1];
  • для функции и константы [1].

Введение UNA строго ограничивает множество допустимых интерпретаций: из рассмотрения исключаются любые интерпретации, в которых функция интерпретации отображает разные константы или основные термы в один и тот же элемент домена[1].

Предположение об уникальности имён тесно связано с другими логическими допущениями, применяемыми в системах представления знаний:

  • Предположение об открытом мире (OWA): то, что неизвестно как истинное, считается неизвестным. Системы, основанные на OWA, по умолчанию не включают UNA, однако это допущение может быть добавлено в них вручную[2].
  • Предположение о закрытом мире (CWA): то, что неизвестно как истинное, считается ложным. Системы, использующие CWA, по умолчанию включают UNA[2].

Применение

Предположение об уникальности имён по-разному применяется в различных системах и областях.

Семантическая паутина и онтологии

В области формальных логических систем представления знаний, предположение об уникальности имён является следствием предположения о замкнутом мире, тогда как оно, как правило, не выполняется в рамках предположения об открытом мире. Например, в сценариях семантической паутины, одна и та же концепция может присутствовать в различных онтологиях под разными именами; поэтому UNA обычно не предполагается[3].

В более специфических случаях, даже при принятии предположения об открытом мире, UNA может быть необходима для обеспечения важных вычислительных свойств. Так, например, это характерно для многих языков семейства DL-Lite[4][5]. Профиль OWL 2 QL, чтобы поддерживать отсутствие UNA (в соответствии со стандартной семантикой OWL) и одновременно обеспечивать хорошие вычислительные свойства, вынужден отказаться от функциональности ролей и атрибутов[4][6].

Реляционные базы данных

В реляционных базах данных (SQL) принцип допущения об уникальности имён (UNA) означает, что два различных идентификатора ссылаются на два разных объекта реального мира. SQL-системы строго соблюдают это допущение, идентифицируя каждую запись с помощью уникальных значений в определённом наборе столбцов. Механизмы реализации UNA опираются на первичные ключи, которые гарантируют уникальность записи и не допускают дубликатов, а также на уникальные индексы и ограничения, обеспечивающие уникальность данных в дополнительных столбцах[7].

Любые попытки нарушить ограничения целостности (например, вставить дублирующийся идентификатор) немедленно отклоняются базой данных с выдачей ошибки. Если же механизмы UNA игнорируются (например, при намеренном отключении уникального индекса), в таблицу могут быть добавлены дубликаты. В отличие от систем без UNA, SQL-базы не умеют логически объединять такие записи, что приводит к нарушению целостности данных, появлению скрытых дубликатов и ошибкам при последующих попытках включить или перестроить уникальный индекс.

Логическое программирование

В языках логического программирования (таких как Prolog и Datalog) допущение об уникальности имён не является встроенным правилом базовой семантики. Оно симулируется через механизм отрицания как сбоя (Negation as Failure) при неудаче унификации[1].[8].

Графы знаний и нейросимволический ИИ

В современных графах знаний часто отказываются от допущения об уникальности имён (UNA) в пользу отсутствия такого допущения (No Unique Name Assumption, NUNA). Однако в нейросимволическом ИИ UNA активно применяется как полезное ограничение для обучения векторных представлений графов знаний[9].

Примеры и последствия

Считать предположение об уникальности имён выполняющимся означает, например, следующее:

  • если для некой сущности с именем «свинья» определено свойство «свинья розового цвета», это не даёт никакой информации о цвете поросяти, хотя в реальности эти слова — синонимы. Следовательно, на вопрос «поросёнок розовый?» ответ будет ложь: во-первых, не определено наличие сущности с именем «поросёнок» и информации о её цвете; во-вторых, было бы некорректно использовать разные имена для одного и того же объекта. Существование синонимов не предполагается — их необходимо явно определять, например как свойства (имя: «Свинья», синоним_1: «Поросёнок», синоним_2: «Sus scrofa domesticus» и т. д.), при этом уникальный идентификатор выбирается один;
  • если в списке пассажиров авиарейса имя предъявившегося на регистрацию пассажира не обнаружено, даже если он использует другое, хотя и эквивалентное имя (например, на другом языке), и при условии корректности и полноты списка, то такой человек не считается одним из пассажиров;
  • в списке авиапассажиров два пассажира не могут иметь одинаковый идентификатор (поэтому неправильно использовать лишь имя и фамилию как уникальные идентификаторы для бронирования авиабилета из-за частых случаев однофамильцев): не допускается определение двух или более сущностей с разными именами, если они тождественны.
  • В системах логического вывода принятие UNA блокирует вывод о тождестве объектов: два разных имени не могут быть признаны одной и той же сущностью, и любые утверждения об их равенстве расцениваются как логическое противоречие[1].
  • При проверке числовых ограничений (например, максимальной кардинальности) или функциональных свойств UNA предотвращает нежелательное слияние индивидов. Например, если задано ограничение, что человек может состоять в браке не более чем с одним человеком, а в базе знаний указано, что Питер женат на Энн и на Мэри, система с UNA зафиксирует нарушение ограничений. В системах без UNA (например, в OWL) это не вызовет ошибки: логический выводчик автоматически отождествит Энн и Мэри, сделав вывод, что это один и тот же человек.

В OWL

В OWL (Web Ontology Language), семантика которого базируется на дескриптивных логиках[3], предположение об уникальности имён не подразумевается, но имеются специальные конструкции для явного задания тождественности или различия между сущностями.

Два следующих утверждения соответственно выражают тождественность или различие двух имён[10][11]:

  • owl:sameAs
  • owl:differentFrom

Для массового задания различия индивидов и имитации допущения об уникальности имён в OWL предусмотрены дополнительные конструкции:

  • owl:AllDifferent (в функциональном синтаксисе OWL 2 — DifferentIndividuals) — класс или аксиома, утверждающая, что все индивиды в заданном списке попарно различны;
  • owl:distinctMembers — свойство, связывающее экземпляр owl:AllDifferent со списком различных индивидов;
  • NegativeObjectPropertyAssertion — аксиома, утверждающая, что заданный индивид не связан с другим индивидом определённым объектным свойством.

Хотя использование owl:sameAs обычно рекомендуется для обеспечения тесной связанности между различными базами знаний, в литературе существуют критические замечания относительно злоупотребления этим свойством, поскольку оно нередко применяется в иных смыслах — таких как «похож на», «отображает» и др. Классическая логическая интерпретация тождества часто оказывается слишком строгой, так как сущности могут совпадать лишь в определённых контекстах[12]. В качестве альтернатив предлагаются контекстуализированная семантика[12] и использование предикатов (например, skos:closeMatch) для обозначения частичного совпадения или схожести[13].

В OWL 2 свойство owl:sameAs по определению является симметричным и транзитивным, представляя собой отношение эквивалентности. Благодаря этому логический вывод работает в обе стороны, и для корректного связывания сущностей явное дублирование утверждения в обоих направлениях не требуется.

Примечания

  1. 1 2 3 4 5 6 7 Unique Name Assumption. Artificial Intelligence: Foundations of Computational Agents. Дата обращения: 27 августа 2026.
  2. 1 2 Introduction to Open World Assumption vs. Closed World Assumption. Dataversity. Дата обращения: 27 августа 2026.
  3. 1 2 Jiao Tao (2010). “Adding Integrity Constraints to the Semantic Web for Instance Data Evaluation”. The Semantic Web (ISWC) [англ.]. Springer Berlin Heidelberg: 330—337. DOI:10.1007/978-3-642-17749-1_24. ISBN 978-3-642-17749-1. Дата обращения 2024-06-24. |access-date= требует |url= (справка)
  4. 1 2 Diego Calvanese. Ontologies and Databases: The DL-Lite Approach : [англ.] / Diego Calvanese, Giuseppe De Giacomo, Domenico Lembo … [et al.]. — Springer Berlin Heidelberg, 2009. — P. 255–356. — ISBN 978-3-642-03754-2. — doi:10.1007/978-3-642-03754-2_7.
  5. Alessandro Artale; Diego Calvanese; Roman Kontchakov; Michael Zakharyaschev (2009). “The DL-Lite Family and Relations”. Journal of Artificial Intelligence Research (JAIR) [англ.]. 36: 1—69. DOI:10.1613/jair.2820. Дата обращения 2024-06-24. |access-date= требует |url= (справка)
  6. OWL 2 Web Ontology Language Profile — OWL 2 QL (англ.). W3C. Дата обращения: 24 июня 2024. Архивировано 29 сентября 2025 года.
  7. Создание уникальных индексов. Microsoft Learn. Дата обращения: 27 августа 2026.
  8. Negation as failure. Дата обращения: 27 августа 2026.
  9. Unique Name Assumption in Neuro-Symbolic AI. ACM Digital Library. Дата обращения: 27 августа 2026.
  10. OWL Web Ontology Language Reference — SameAs definition (англ.). W3C. Дата обращения: 24 июня 2024. Архивировано 1 октября 2002 года.
  11. OWL Web Ontology Language Reference — DifferentFrom definition (англ.). W3C. Дата обращения: 24 июня 2024. Архивировано 6 августа 2002 года.
  12. 1 2 A Contextualised Semantics for owl:sameAs. bibbase.org (2016). Дата обращения: 27 августа 2026.
  13. The CWRC Ontology and the Problem of Identity. euppublishing.com (2022). Дата обращения: 27 августа 2026.

Категории