Предположение об уникальности имён
Предположение об уникальности имён (англ. Unique Name Assumption, сокращённо UNA) — это упрощающее предположение, используемое при разработке некоторых языков для онтологий и дескриптивных логик. В логических системах, в которых принято это предположение, различные имена всегда обозначают различные сущности в рассматриваемом мире.
Применение
В области формальных логических систем представления знаний, предположение об уникальности имён является следствием предположения о замкнутом мире, тогда как оно, как правило, не выполняется в рамках предположения об открытом мире. Например, в сценариях семантической паутины, одна и та же концепция может присутствовать в различных онтологиях под разными именами; поэтому UNA обычно не предполагается[1].
В более специфических случаях, даже при принятии предположения об открытом мире, UNA может быть необходима для обеспечения важных вычислительных свойств. Так, например, это характерно для многих языков семейства DL-Lite[2][3]. Профиль OWL 2 QL, чтобы поддерживать отсутствие UNA (в соответствии со стандартной семантикой OWL) и одновременно обеспечивать хорошие вычислительные свойства, вынужден отказаться от функциональности ролей и атрибутов[2][4].
Примеры и последствия
Считать предположение об уникальности имён выполняющимся означает, например, следующее:
- если для некой сущности с именем «свинья» определено свойство «свинья розового цвета», это не даёт никакой информации о цвете поросяти, хотя в реальности эти слова — синонимы. Следовательно, на вопрос «поросёнок розовый?» ответ будет ложь: во-первых, не определено наличие сущности с именем «поросёнок» и информации о её цвете; во-вторых, было бы некорректно использовать разные имена для одного и того же объекта. Существование синонимов не предполагается — их необходимо явно определять, например как свойства (имя: «Свинья», синоним_1: «Поросёнок», синоним_2: «Sus scrofa domesticus» и т. д.), при этом уникальный идентификатор выбирается один;
- если в списке пассажиров авиарейса имя предъявившегося на регистрацию пассажира не обнаружено, даже если он использует другое, хотя и эквивалентное имя (например, на другом языке), и при условии корректности и полноты списка, то такой человек не считается одним из пассажиров;
- в списке авиапассажиров два пассажира не могут иметь одинаковый идентификатор (поэтому неправильно использовать лишь имя и фамилию как уникальные идентификаторы для бронирования авиабилета из-за частых случаев однофамильцев): не допускается определение двух или более сущностей с разными именами, если они тождественны.
В OWL
В OWL (Web Ontology Language), семантика которого базируется на дескриптивных логиках[1], предположение об уникальности имён не подразумевается, но имеются специальные конструкции для явного задания тождественности или различия между сущностями.
Два следующих утверждения соответственно выражают тождественность или различие двух имён[5][6]:
owl:sameAsowl:differentFrom
Хотя использование owl:sameAs обычно рекомендуется для обеспечения тесной связанности между различными базами знаний, в литературе существуют критические замечания относительно злоупотребления этим свойством, поскольку оно нередко применяется в иных смыслах — таких как «похож на», «отображает» и др[7].
К другим проблемам использования owl:sameAs относится тот факт, что это не симметричное свойство, поэтому его необходимо указывать в обеих направлениях. Этот процесс может быть трудоёмким при связывании сущностей из разных онтологий, поскольку требуются согласованные действия авторов обеих онтологий. Например, если имеются две сущности a:foo и b:bar, для утверждения их эквивалентности необходимо явно указать:[8]
asserts "a:foo owl:sameAs b:bar"в онтологииa;asserts "b:bar owl:sameAs a:foo"в онтологииb.