Отношения объектов
Сами по себе объекты уже содержат большой объём информации о предметной области. Но объекты в мире не существуют сами по себе, они как-то соотносятся друг с другом, как-то взаимодействуют. Важные, полезные или интересные утверждения о происходящем в мире строятся как фразы о нескольких объектах, об их связях. Для отражения такой информации в онтологические модели включают отношения между объектами.
Собственно, первый пример отношения мы уже рассмотрели. Категоризация объектов -- это отношение, связывающее индивид с категорией или более узкую категорию с более широкой категорией. Мы договорились обозначать само отношение категоризации местоимением «это», так что любое отношение категоризации выглядит как триплет (тройка):
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 -- это «Категория»
Записывать эти отношения в модели явно не так уж бессмысленно. Мы постарались ввести и соблюдать соглашение о названиях, но в реальных проектах это не всегда возможно, да и вывод о категоризации на основании названия требует времени, так что иногда удобнее прописать категорию явно. Такое отношение, по сути просто заявляющее, что объект выделен в мире -- называется «декларация объекта».
Ещё одно замечание -- конечно же, отношения тоже выделяются исходя из роли (или ролей), для которой делается модель. Даже если сами сущности точно связаны с практиками какой-то роли -- некоторые отношения между ними могут быть из этой роли незаметны или неинтересны.