Семантика и IT онтологии
В общем случае (вне и до информационных технологий), произнося слово «семантика», предлагают обсудить смысловой уровень языка – значения знаков и структур знаков (текстов). При этом семантика противопоставляется синтаксису, то есть формальным правилам соединения знаков в текст. Когда же речь о семантике заводится в сфере IT, то имеют в виду особые технологии, архитектуры приложений и языки описания данных, ориентированные на знаковое представление объектов и их свойств в компьютерных моделях предметных областей. В качестве основной цели семантического подхода видится «научение» компьютера распознавать смысл данных, описывающих деятельность и ее элементы, то есть реализовать переход от оперирования безликими данными к работе со значениями и знаниями. Предполагается, что широкое использование семантического подхода к моделированию предметных областей позволит унифицировать обмен информацией между независимыми поставщиками данных и приложениями, а также обеспечит возможность модифицировать структуру данных и бизнес-логику приложений не путем переписывания кода, а только через преобразование семантически определенных данных. К основным методам семантического подхода следует отнести: унификацию формата записи, уникальную идентификацию записей, включение метаданных в данные, стандартизацию словарей.
Традиционно семантическое описание предметной области называют онтологией этой области. При этом выражения «онтологическое описание», «онтологическая модель», «онтология предметной области» используют как синонимы. Онтология или онтологическая модель предметной области – это, по сути, структура из сущностей (концептов, понятий, типов объектов), их свойств и правил установления отношений между ними. Обычно онтологию представляют в виде графа, вершинами которого являются объекты, а ребрами – свойства. Часто такую структуру из объектов и значений их свойств, построенную для определенной предметной области, называют графом знаний (Knowledge Graph).
На данный момент для семантического моделирования преимущественно используется объектная (вещная) онтология, описывающая текущее (здесь и сейчас) состояние некоторой предметной области как множества объектов, связанных друг с другом отношениями. При этом базовыми в онтологии считаются отношения классификации (род/вид, класс/подкласс, специализация), которые ориентированы на построение иерархических таксономий, а также на логический вывод свойств объектов, в зависимости от отнесения их к тем или иным классам.
Проблемы объектной онтологии
У объектного описания, наряду с очевидными преимуществами – простота для понимания, прагматичность – имеются и очевидные недостатки, непосредственно следующие из самого подхода. К таким недостаткам следует отнести: (1) статичность (нетемпоральность), то есть исходная ориентированность на фиксацию актуального состояния предметной области, (2) отсутствие плюральности, то есть представление только одной точки зрения, одного подхода к описанию предметной области, (3) сложность описания деятельности, что, по сути, связано с исходной статичностью, а также с представлением онтологии преимущественно как таксономии (иерархии классов).
Также следует отметить, что свойственное для вещной онтологии матрешечное описание (что из чего состоит) действует только до уровня механизмов: молекулы это структуры из атомов, детали состоят из молекул, из деталей собираются компоненты, которые соединяются в механизмы. А дальше… стоп. К примеру, цех как сложная система уже не может быть представлен как структура из механизмов (станков и пр.). А такие системы, как предприятие, крупный инженерный проект, вообще невозможно вписать в вещно-пространственную иерархию, представить как механизм, состоящий из конечного числа «блоков». Матрешечная иерархия вещного подхода необходимо подразумевает редукционистское мышление, предлагающее сводить понимание целого (вещи) к описанию его частей. И если для физики и химии это вполне работает, то на уровне живых организмов и предприятий мы опять же наблюдаем тупик: не получается свести описание сложных систем к взаимодействию пространственных структур. Вещная онтология, представляющая мир как совокупность взаимодействующих вещей, неизбежно вынуждена втискивать его описание в рамки принципа каузальной замкнутости физического. Такой линейный детерминизм предлагает нам искать причины изменений сложных систем только в цепочке предшествующих событий. В вещном подходе непредставимы вертикальные причинные связи, которые явно наблюдаются между уровнями сложных иерархически организованных систем, в которых трудно выделить единый линейно детерминированный поток событий.
От вещной онтологии к событийной
Кроме объектной (вещной) онтологии, возможно построение и событийной онтологии, рассматривающей событие в качестве базового элемента описания предметной области. При этом событие понимается как фиксация или генерация актором (человеком, программным агентом, датчиком) некоторого изменения, значимого для описания предметной области. По сути, появление объектов, приписывание им атрибутов, установление отношений с другими объектами предлагается описывать как упорядоченную последовательность событий. Кроме того, событийная семантика не только дает исчерпывающее описание любого объекта как множества фиксируемых на нем событий, но и автоматически создает описание каждого актора в виде множества совершаемых им актов. Принципиальнейшим же отличием событийной онтологии от объектной является то, что она отражает последовательные (причинно-следственные) отношения между событиями. Событийное описание предметной области представляется в виде направленного ациклического графа, узлами которого являются события фиксации или порождения объектов и значений их свойств, а ребра устанавливают причинно-следственную или логическую связанность событий, то есть определяют условия реализации очередного события. Таким образом, событийный граф не только хранит всю историю изменений предметной области, но и фиксирует причины появления каждого нового события.
Необходимо отметить, что событийный подход не следует рассматривать как лишь еще одну точку зрения, еще один возможный способ описания предметных областей и вообще мира в целом наравне с бытующей вещной онтологией. Развитие событийной онтологии – это вынужденный шаг, вызванный отсутствием удовлетворительных результатов при попытках описать функционирование сложных динамических систем (к примеру, таких, как биологический организм) в рамках объектного подхода. Традиционный для вещной онтологии метод описания системы через состояния – набор предикатов, приписываемых системе и ее элементам в фиксированные моменты времени – предлагает нам для анализа не живой организм, а лишь пространственную структуру мертвого тела. При рассмотрении организма как вещи его «живое» содержание ускользает. Аналогично и сложные социальные, инженерные, когнитивные системы, при попытке описать их как совокупность пространственных структур, не собираются в целое – современные объектно-ориентированные методы моделирования предлагают нам на выходе лишь множество неоднозначно связанных друг с другом проекций динамической предметной области.
Особо следует отметить, что событие – это не просто нечто происходящее и фиксируемое актором, а прежде всего актуальное изменение, то, что может повлиять на исполнение последующих событий. То есть отбор событий для описания конкретной предметной области вполне формален: если ни одно из последующих событий не ссылается на некоторое событие как обуславливающее, то это событие может быть смело исключено из онтологии.
Отличия событийной онтологии от объектной
Главный вопрос, на который стремится дать ответ объектно-ориентированная онтология, это «что есть нечто?». То есть целью объектного подхода является описание типов объектов и их отношений как вообще в мире (в онтологии верхнего уровня), так и в границах некоторой предметной области или конкретной задачи (в доменных и прикладных онтологиях). В результате получается, по сути, каталог, в котором объекты и их свойства классифицированы по типам и подтипам. Основная же цель событийной онтологии – это фиксация произошедшего, того, что случилось и как случившееся связано с тем, что случилось раньше. В итоге описание как объекта, так и действия представляется в виде потока обуславливающих друг друга событий.
Объектная онтология, естественно, предлагает начинать семантический анализ предметной области с выделения объектов и их связей друг с другом. То есть объектный подход ориентирован на представление актуального состояния системы, через отслеживание изменения которого потом можно будет описать деятельность, реализованную на предметной области. Событийный подход начинает сразу с декомпозиции деятельности на отдельные действия и акты, то есть на элементарные операции, выполняемые акторами (включая события различения свойств объектов). В результате не только формируется процессное описание деятельности, но и фиксируются все значимые (для деятельности) свойства объектов, которые здесь, в отличие от вещного подхода, представлены не как элементы дерева классификации, а как узлы направленного ациклического графа, то есть как акты деятельности.
Итак, если целью создания объектных онтологий является формирование цифровой модели знаний предметной области, то событийная онтология ориентирована на описание деятельности, реализованной в этой предметной области. При этом объектные знания (знания о статичных объектах и их отношениях) в событийной онтологии исходно фиксируются как элементы деятельности, то есть вписаны в модели действий.
Деятельность и классификация
Предельно важно понимать, с какой целью, для чего создается онтология, то есть концептуальное описание предметной области. Возможны два варианта: (1) реализовать удобный и быстрый поиск объектов, обладающих указанным набором свойств или (2) создать систему управления деятельностью с целью оптимизации и автоматизации действий акторов с объектами. В первом варианте требуется практичная таксономия – множество классов и подклассов сущностей и их свойств (мебель бывает офисная, кухонная, дачная, а столы деревянными, металлическими, пластмассовыми). Для управления деятельностью нужны модели действий, задающие условия совершения актов, права доступа акторов и ограничения на значения свойств объектов. При этом можно заметить, что изменения, совершаемые актором с объектом, условно зависят только от предшествующих актов, фиксируемых на этом или других объектах, и не могут хоть как-то предопределяться классификацией элементов предметной области. Понятно, что ни один акт столяра, делающего стол, не обусловлен событием отнесения этого стола к классам «мебель» или «столы деревянные» (деревянность стола задается не классификацией, то есть отнесением его к классу «деревянные», а событием выбора материала). А значит, при проектировании онтологии деятельности следует строго разделять две разных задачи: создание таксономии объектов деятельности (классы, подклассы, специализации) и моделирование самой деятельности (акторы, условия, действия), то есть отдельно решать задачу представления полного знания о предметной области и задачу управления актами в локальных действиях. При таком разделении уровней описания автоматически решается известная проблема ограниченности любой классификации. Ведь понятно, что в одной предметной области, в рамках одной деятельности может быть создано неконечное число таксономий: под различные задачи поиска и анализа данных, вплоть до создания специальных классификаций для отдельных ролей (одна таксономия для инженера, другая для бухгалтера и т.п.). С другой стороны, исключение из онтологии деятельности иерархических отношений значительно сокращает и упрощает ее.
Итак, событийная онтология с необходимостью подводит нас к пониманию, что представление в той или иной степени полного знания о предметной области и описание деятельности в этой области – это две принципиально разных задачи, и решать их надо отдельно, хотя и с пониманием их взаимосвязанности. В основе такого разделения лежит простая мысль: невозможно совершить акт с классом или категорией, в моделях действий могут фигурировать только объекты и их свойства. Или можно сказать так: онтология – это концептуальное описание предметной области, деятельности, а таксономия/классификация – инструмент для навигации по этому описанию. Ну и очевидно, что для одной онтологии может быть создано неконечное число таксономий.
Бизнес-логика и обусловленность событий
При моделировании бизнес-процессов в современных нотациях, ориентированных на объектное описание, решается задача: что делать дальше, какие варианты поведения системы возможны из текущего ее состояния? В событийной же онтологии при моделировании бизнес-процесса ищется ответ на вопрос: когда, при каких условиях возможно исполнение данного события, какие из уже осуществленных событий являются обуславливающими для этого исполнения?
В традиционных нотациях моделирования бизнес-процессов условия указываются в виде специальных элементов – «шлюзов», запускающих или останавливающих процесс, направляющих его по той или иной ветке. Такое решение следует рассматривать как непосредственное следствие объектного подхода – в схему вводится еще один объект, и на него навешиваются дополнительные (логические) функции. Но если мы обратимся к реальному предприятию, к реальным бизнес-процессам, то не сможем выделить там эти «шлюзы» – любое событие происходит при наличии всех необходимых для этого условий, и само выполнение условий не есть некое самостоятельное событие, фиксируемое в системе отдельно от исполняемого события. То есть, при событийном подходе условия выполнения некоторого события должны быть неотъемлемой частью описания самого события. Это существенно упрощает отладку и модификацию моделей действия: изменения производятся не посредством пересмотра структуры (ее как таковой в событийном потоке и нет), а путем модификации условий выполнения события. Понятно, что проще отвечать на вопрос «а какие события должны произойти или не произойти для выполнения указанного события?», чем на вопрос «а к каким следствиям приведет данное условие, конкретное логическое соотношение событий?».
Команды и правила
Как уже отмечалось, событийная онтология предметной области организована в виде направленного ациклического графа, в узлах которого расположены события, фиксируемые или совершаемые акторами. При этом нет никакого формального различия событий на данные и команды. Событие становится командой только тогда, когда другое событие ожидает его как условие своего совершения, то есть когда событие является обуславливающим. К примеру, некий датчик посылает в сеть события со значениями измеряемого свойства. По своей сути, это не команды, а просто данные. Но одно из событий, скажем, со значением, превышающим заданный порог, может стать сигналом/командой для запуска некоторого действия. То есть ответ на вопрос «следует ли рассматривать некоторое событие как команду или как данные?» зависит не от самого события (форматом это никак не фиксируется), а от его интерпретации другим событием, от контекста его использования в той или иной модели действия. Хотя, конечно, возможно различать исходно нейтральные события (как в примере с датчиком) и управляющие, создаваемые специально для инициации других событий (сигналы, оповещения, события смены статуса). Но это различение проводится на уровне бизнес-логики, а не синтаксиса.
Сказанное о командах относится и к правилам – не существует специального формата событий, задающих правила бизнес-логики. Любое стандартное по формату модельное событие, содержит логическое выражение, определяющее условия его выполнения. И это логическое выражение интерпретируется как правило. Но только правило, задающее выполнение самого этого события, то есть генерацию соответствующего предметного события, а не переключающее исполнение бизнес-процесса с одной ветви на другую (хотя по сути это и происходит).
Итак, события по своему синтаксису и семантике нейтральны, но по использованию в моделях и в разных контекстах могут интерпретироваться как данные, команды или правила.
Процессы, действия и деятельность
В событийной онтологии, базовым элементом которой является событие, естественно ввести представление о распределенных во времени системах – системах, элементами которых являются события. Здесь при обсуждении системы нам достаточно принять вполне тривиальное ее определение: система есть сложный объект, некоторая целостность, составленная из других объектов, называемых элементами. При объектном подходе традиционным является понимание системы как пространственной структуры: к примеру, система «предприятие» представляется как структура подразделений, механизмов, коллективов акторов. В событийной онтологии естественно рассматривать системы, элементами которых выступают события.
Простейшей такой системой является процесс – последовательность событий, объединенных в единое целое каким-либо принципом, системообразующим фактором. В простейшем случае процесс это последовательность событий-актов, выполняемых актором над некоторым объектом: обработка детали, составление документа, редактирование текста и т.п.
Тут следует сразу обратить внимание, что приведенное определение процесса не совпадает с традиционной трактовкой бизнес-процесса как некоторого крупного фрагмента деятельности, связанного чаще всего с обработкой потока ресурсов. В событийной онтологии термин «процесс» используется для обозначения минимальной системы событий – их последовательности, объединенной в рамках действия одного актора над одним объектом. Причем в чистом виде процесс является таковым вне рассмотрения его начала и завершения – мы имеем дело только и исключительно с некой связанной последовательностью событий.
Аналогично тому, как в объектном подходе любая выделенная система обязательно является элементом другой, большей системы (узел входит в машину, участок – в цех), так и в событийной онтологии имеется своя иерархия систем. Систему, которая в качестве элементов включает в себя множество процессов, можно назвать системой-действие. Объединяющим, точнее сказать, системообразующим фактором для таких систем является уже не единство актора и объекта, как в процессе, а наличие особого, выделенного события «результат». Итак, действие есть система процессов, завершающихся единым для них событием «результат действия». В действие могут быть объединены процессы, выполняемые как одним, так и множеством акторов, с одним или множеством объектов – главное, что все задействованные процессы направлены на достижение единого результата. Сам результат следует понимать как новое событие, образованное «пересечением» множества процессов. Событие-результат не является элементом ни одного из включенных в действие процессов. Примеры действий очевидны: сборка узла механизма, сдача полиграфического макета в печать, заключение договора и пр. (В нейрофизиологии академик П.К. Анохин системы, ориентированные на достижение в будущем конкретного результата, предложил называть функциональными и использовал их для описания поведения биологических организмов).
Любое действие является осмысленным только при включении его в некоторое целое, представляющее собой систему множества действий. То есть действия необходимо выступают элементами объединяющей их системы, которую следует назвать «деятельность». Деятельность – это система действий, выполняемых для достижения некоторой цели. Формально деятельность можно трактовать как последовательность событий-результатов действий, то есть как деятельный процесс. Предприятие, некоторый бизнес как целые следует ассоциировать именно с системами-деятельность, объединяющими множество результативных действий, направленных на достижение фиксированной цели. При этом понятно, что ни один результат ни одного действия не может являться целью деятельности.
Конечно, описанный подход к пониманию предприятия как иерархии систем событий (процессы – действия – деятельность) ничуть не исключает необходимость анализа пространственных структур, составленных из фиксируемых в моменты времени объектов: ресурсов, объединений акторов. Однако ясно, что видение предприятия только как пространственной системы вещей принципиально не годится для обсуждения его деятельности в понятиях «процесс», «результат», «цель». Предприятие – это организм, а не механизм (хотя разница между этими двумя сущностями при всей ее интуитивной понятности многими оспаривается).
Продемонстрируем использование иерархии распределенных во времени систем для описания издательской деятельности. Верстка буклета – это процесс, последовательность событий, генерируемых одним актором при его взаимодействии с одним объектом – документом в издательской программе. Ретуширование картинки в графическом редакторе и корректура также процессы, выполняемые конкретными акторами. А вот система из множества параллельных и последовательных процессов, завершающихся событием «сдача макета в печать» – это уже действие. И признак, по которому мы различаем систему-действие от ее элементов – процессов – вполне формален: наличие уникального события «результат», не принадлежащего ни одному из включенных в действие процессов. Событие «сдача макета» не генерируется ни верстальщиком, ни ретушером, ни корректором, то есть не включено ни в один из процессов, составляющих действие «изготовление макета». Аналогично и система-деятельность имеет вполне понятные формальные отличия от систем-действий, являющихся ее элементами. По сути, деятельность есть процесс из событий-результатов многих действий: результат действия «прием заказа», результат «утверждение дизайна», далее «прием макета», «сдача пленок», «отгрузка готовой продукции», «распространение». Но в отличие от процессов нижнего базового уровня, у деятельного процесса нет актора. Точнее, следует сказать, что актором, как и объектом этого процесса, является сама система-деятельность, то есть все предприятие.
***
Итак, в общих чертах событийную онтологию можно описать так: любая деятельность формально может быть представлена как множество событий, генерируемых и регистрируемых акторами. Утверждается, что любое содержание деятельности может быть выражено в терминах систем событий: отношения между акторами и ресурсами можно представить как множество событий, поток событий. Существенно, что этот поток не однороден и при задании вполне формальных правил дифференцируется на распределенные во времени системы событий: процессы, действия, деятельности. Центральным понятием событийной семантики можно считать «событие-результат», которое, с одной стороны, указывает на связанность процессов в действиях, а с другой – объединяет действия в деятельность (деятельный процесс).
Читать еще по теме
Болдачев А. В. Субъектно-событийный подход к моделированию сложных систем // Философия и цифровые технологии. Сборник статей. — М.: Ridero, 2022
Болдачев А. В. Мифы семантической технологии // Философия и цифровые технологии. Сборник статей. — М.: Ridero, 2022
Болдачев А. В. Деятельность, документы и семантика // Философия и цифровые технологии. Сборник статей. — М.: Ridero, 2022
Болдачев А. В. Архитектура на основе событийной семантики Открытые системы. СУБД, №03, 2021
Болдачев А. В. Введение в темпоральную онтологию // Кто сегодня делает философию в России. Том III — М.: ООО «Сам Полиграфист», 2015
Болдачёв А. В. Темпоральность и философия абсолютного релятивизма. — М.: УРСС, 2011.
Комментарии (11)
panvartan
21.12.2022 17:49-1у объектного описания есть киллер-фича - это описание заливается в мозг в любых количествах и без издержек там храниться, чего нельзя сказать о прочих описаниях - когда даже описание описания никуда не влазит.
boldachev Автор
21.12.2022 18:13Да, это именно так. Но если говорить о конечных пользователях, то они и слов-то таких как "семантика" и "онтология" знать не должны. На каком движке под капотом работает машина им плевать, если она едет))). И даже больше, можно сделать так, что и аналитики, моделирующие бизнес-процессы, будут не догадываться на какой семантике работает движок.
panvartan
21.12.2022 22:22Такая система существует и широко используется - 1С называется - под капотом у нее процессы, у пользователя - объекты. И там для отражения банальных объектов пользователя используется разухабистая функционально-событийная модель. Если у вас получится удачней - займете ее место.
boldachev Автор
21.12.2022 22:33А какое отношение 1С имеет к семантике?
panvartan
22.12.2022 09:20-21С использует генеральную семантическую модель экономики, которая используется уже тысячу лет и называется двойная запись. "...базовым элементом которой является событие формирующее распределенную во времени систему", называемую хозяйственной деятельностью.
LuggerFormas
А можно как восьмилетнему ребенку на полстранички, без наваливания терминов вроде:
В событийной онтологии, базовым элементом которой является событие, естественно ввести представление о распределенных во времени системах – системах, элементами которых являются события.
Вот без этой водянки еще можно бы осилить
boldachev Автор
Не все, что вы не понимаете следует отнести к разряду "водянка". Приведенное предложение имеет вполне себе инженерное содержание. Если нужен уровень попроще, то перейдите по первой ссылке в конце текста. Четвертая ссылка ведет на статью про реализацию событийной семантики.
funca
Мне кажется материал должен быть понятен даже джунам, ведь у них уже есть представление о таких вещах как Event Sourcing, Reactive Programming, Flux architecture и т.п. Ну и
проблемыограничения подобных моделей тоже известны.Однако, при чтении вашей статьи меня не оставляло желание отойти от экрана метров на 10, чтобы с расстояния видеть суть, вместо словесных фракталов - повторений одних и тех же слов из абзаца в абзац в разных комбинациях.
Изложению явно не достаёт структуры, отделяющей одни смыслы от других, - той самой объектности, которую вы критикуете и хотите везде заменить нескончаемыми цепочками ивентов).
boldachev Автор
Да, есть такая проблема - событийная семантика заходит сложно. Проверено много раз. Как не объясняй. Архитектуре посвящена отдельна статья. Ну и честно говоря, я не ставил перед собой задачу популяризации. Просто зафиксировал проблемы. Уж извините. Скоро будет продолжение.
Han7
Полагаю, что первичная задача автора статьи была публикация, для последующего упоминания труда в квалификационной работе (например, диссертации) или ради отчетности. Поэтому задачи донесения информации до тех же джунов, автор перед собой не ставил изначально.
boldachev Автор
Спасибо. Именно так. Правда не совсем для диссертации и отчетности. Но уж точно не для джунов. Есть специалисты. Не все всё должны понимать. А хабр не подразумевает попсовость.