Отношения объектов
Сами по себе объекты уже содержат большой объём информации о предметной области. Но объекты в мире не существуют сами по себе, они как-то соотносятся друг с другом, как-то взаимодействуют. Важные, полезные или интересные утверждения о происходящем в мире строятся как фразы о нескольких объектах, об их связях. Для отражения такой информации в онтологические модели включают отношения между объектами.
Собственно, первый пример отношения мы уже рассмотрели. Категоризация объектов – это отношение, связывающее индивид с категорией или более узкую категорию с более широкой категорией. Мы договорились обозначать само отношение категоризации местоимением «это», так что любое отношение категоризации выглядит как триплет (тройка):
S это O**, г**де S – индивид или категория, а O – всегда категория.
Такой триплет читается как «Объект S относится к категории O».
Но с помощью триплета (https://en.wikipedia.org/wiki/Semantic_triple) может быть выражено вообще любое отношение между двумя объектами:
SРO
В выраженном триплетом отношении:
- S (первый элемент) называется «субъектом» отношения («subject»)
- P (второй элемент) называется «предикатом» («predicate», собственно отношение)
- O (третий элемент) называется «объектом» отношения («object»)
Тут мы сталкиваемся с синонимией – ведь мы называем в нашем руководстве «объектами» вообще всё то, что наше мышление выделяет в мире. Чтобы избежать путаницы, мы, говоря об «объекте» как о том, что стоит на третьем месте в триплете – будем называть «вообще все объекты» (индивиды и категории) – «сущностями».
В лингвистике subject, predicate и object – это знакомые вам со школы подлежащее, сказуемое и дополнение в предложении на естественном языке (например, русском). Именно из лингвистики эти термины и пришли в онтологическое моделирование, ведь триплет похож на фразу на естественном языке
Примеры отношений как фраз на русском языке, с сохранением структуры триплетов:
Мама моет раму.
Повар держит нож.
Морковь варится в кастрюле.
Предикаты, используемые в отношениях – универсальны. Мы можем поменять сущности, описывая всё то же отношение, но между другими сущностями:
Аня моет внука.
Иван Иванович держит молоток.
Мясо варится в супе.
Поменять субъект и объект местами с сохранением смысла отношения тоже можно, но только изменив при этом предикат:
Рама моется мамой.
Кастрюля используется для варки моркови.
Если мы хотим строить более качественные и более формальные модели – нам надо использовать в отношениях сущности (объекты), которые мы уже научились выделять и называть, а также договориться и о правилах именования предикатов.
Для индивидов и категорий на месте субъектов и объектов в триплетах мы будем использовать наши прежние соглашения, а для предикатов –договоримся в нашем руководстве использовать словосочетания с маленькой буквы, обязательно содержащие глагол, без кавычек, но с заменой пробелов на подчёркивания (отношение «это» для категоризации останется пока что исключением). Например, так:
«Анна Петровна Имярекова*» моет «Петр Сергеевич Борисов»*
«купленный мною 25.02.2023 килограмм мяса» варится_в «м**оя пятилитровая голубая кастрюля»
Выше приведены примеры отношений между двумя индивидами, и эти отношения существуют, как и сами индивиды, в определённое время в определённом месте в пространстве.
Обратите внимание, что отношения между двумя категориями создаются для того, чтобы отразить совсем другие взаимодействия и соотношения, не совпадающие буквально с отношениями между входящими в эти категории индивидами, хотя и в чём-то похожие. Отношения между категориями – это утверждения о связях всех объектов одной категории с объектами другой, реальных или потенциальных:
«Бабушка» помогает_ухаживать_за «Внук»
«Кастрюля» используется_для_варки «Мясо»
Сравните эти отношения с отношениями выше.
Отношения между индивидами и категориями пока что ограничиваются в нашей модели отношением категоризации «это». Мы уточним чуть дальше понимание отношения категоризации, а вот другие отношения между индивидами и категориями – встречаются редко, в относительно экзотических моделях. Впрочем, пример такой экзотики вы увидите ниже.
Напомним, что в онтологии нашего руководства, насколько мы пока её построили, любой индивид X является субъектом отношения категоризации
X – это*«Индивидуальный физический объект»*
И любая категория Y является субъектом отношения категоризации
Y – это*«Категория»*
Записывать эти отношения в модели явно не так уж бессмысленно. Мы постарались ввести и соблюдать соглашение о названиях, но в реальных проектах это не всегда возможно, да и вывод о категоризации на основании названия требует времени, так что иногда удобнее прописать категорию явно. Такое отношение, по сути просто заявляющее, что объект выделен в мире – называется «декларация объекта».
Ещё одно замечание – конечно же, отношения тоже выделяются исходя из роли (или ролей), для которой делается модель. Даже если сами сущности прочно связаны с методами какой-то роли – некоторые отношения между ними могут быть из этой роли незаметны или неинтересны.