13 февраля 2023

Семантический Web: что такое событийная семантика и как она пришла из философии в IT

Что такое семантический Web, чем он отличается от того, что мы называем Web3, и как идея семантической сети может снова стать актуальна в синтезе с блокчейном? Обсуждаем в новом выпуске подкаста 1+1=3. Спикер: Александр Болдачев, философ, системный архитектор. 

История и основы

Как вы пришли к семантическому Web, что это и как он связан с Web3?

В последнее время я работаю системным архитектором. Сейчас над своим проектом, ранее — в Apla Blockchain. С Web3 (тогда он еще назывался Web 3.0) я познакомился в 2010 году. Многие из тех, кто используют этот термин сейчас, не знают его историю. 

Впервые о Web 3.0 в 2007 году заговорил руководитель Netscape Джейсон Калаканис. Его прежде всего волновало низкое качество контента, создаваемого пользователями Web 2.0, и он предположил, что будущее интернета за «одаренными людьми», которые начнут «создавать высококачественный контент». Автор термина Web 2.0 Тим О’Рейли предположил, что Web 3.0 должен стать интернетом вещей. А один из основателей всемирной паутины Тим Бернерс-Ли увидел в будущей версии интернета реализацию своей давнишней (1998 год) мечты о семантическом Web. И его трактовка термина победила — большинство произносящих «Web 3.0» в те годы имели в виду именно семантический веб. Идея его была проста: давайте научим компьютеры различать значение (смысл) контента, размещенного на веб-страницах, и объединим этот контент в единую семантическую паутину. 

Чем отличается семантическое приложения от традиционных? В обычных есть довольно четкое разделение на данные и метаданные: данные — это обычные строки, числа, которыми заполняются таблицы БД, а метаданные —  названия колонок и алгоритмы, реализующие бизнес-логику. Идея семантического подхода заключалась в объединении метаданных и данных в одном кортеже («флаконе»), чтобы компьютер, получив порцию данных, мог понимать их содержание. Был предложен специальный формат для записи семантических данных (RDF), язык для описания предметных областей (OWL) и язык запросов поиска связанных данных (SPARQL), а также общие для всех словари для описания сущностей и свойств. Например, если в словаре colour обозначает цвет, то на всех ресурсах именно через это знак следует фиксировать цвета. 

Предполагалось, что если с помощью семантического языка сделать разметку веб–страницы,  то любой поисковый бот или программа смогли бы понять ее содержание. Но этот проект провалился. Одной из причин было то, что в качестве идентификаторов данных использовались адреса страниц, которые постоянно менялись, а то и вообще пропадали. Кроме того, владельцы сайта не следовали указаниям по единой семантической разметке. От семантического веба остались только те решения, которые не требовали распределенности хранения — локальные хранилища. На их основе сейчас получились графы знаний Google, Facebook и др.

Когда блокчейн вступил в конец эпохи ICO, произошла реинкарнация термина Web 3.0 в значении «новый интернет» и в другом написании Web3. Постепенно смысл, связывающий Web3 с семантической паутиной, забылся. Сейчас под Web3 чаще всего понимают интернет третьего поколения — работающий на блокчейне и экономике токенов.

О проекте Trusted Semantic Network

Есть ли название у вашего проекта, в чем его суть и кому он будет полезен?

Сейчас я работаю на реализацией проекта крипто-защищенной семантической сети Trusted Semantic Network. По сути, это инструмент управления деятельностью, который объединяет в себе преимущества семантических технологий и блокчейна. Если давать полное определение, Trusted Semantic Network — это распределенное темпоральное хранилище семантически размеченных данных с криптографической защитой от фальсификации, поддерживающий механизм моделирования и исполнения бизнес-процессов.

Зачем же элементы блокчейн-технологии понадобились для семантической сети? Прежде всего, они решают именно те проблемы, из-за которых семантический век не наступил раньше. Это и уникальная идентификация пользователей и контента (подпись ключом), и консенсусная валидация данных. Криптография же позволяет защитить данные семантического графа от фальсификации.  

А что же добавляет семантика блокчейну? Прежде всего это унификация транзакций. Сейчас формат транзакций определяет программист смарт-контракта, и только он может в нем разобраться. Унифицированный семантический формат транзакций и использование единых для сети словарей позволит обмениваться транзакциями между независимыми приложениями. Еще одна интересная особенность, которую мы получаем в блокчейне, переходя на семантический формат, — это естественная кластеризация сети с учетом различения содержания транзакций. Таким образом мы можем разделить блокчейн-сеть на тематические кластеры и обмениваться транзакциями внутри них, не сваливая все операции от всех узлов и контрактов в один блок. Также мы можем обеспечить параллельную обработку транзакций от независимых семантических моделей. Кроме того, смысловая определенность транзакций в сети дает возможность использовать настраиваемый консенсус: от финализированного BFT консенсуса для финансовых транзакций до его отсутствия — для служебных.

Однако современные объектно-ориентированные семантические решения не обеспечивают моделирование деятельности, для создания смарт-контрактов нужна особая событийная семантика. (Именно созданием такой семантики я занимался в философии и перенес ее в IT). Событийная семантика отличается от объектной тем, что в ней все — атрибуты, отношения, объекты и совершаемые с ними акты —  записывается как события в унифицированном формате. В итоге деятельность фиксируется как направленный ациклический граф, узлами которого выступают события. При этом событие — это не то, что просто произошло, а то, что зафиксировано актором как значимое изменение, влияющее на последующие события. 

На данный момент разработана спецификация событийной семантики и Event Flow —движок, который позволяет создавать модели действий и по ним строить событийный граф. На движке можно моделировать любую бизнес-деятельность. Пока я не нашел той области, операции в которой невозможно было бы записать и выполнить при помощи событийной семантики. Самое интересное, что движок работает не на привычной фон-неймановской компьютерной архитектуре, а на dataflow-принципе, когда следующий элемент алгоритма не предписывается программой, а выполняется автоматически при поступлении необходимых для этого данных. То есть узел dataflow будет ждать, пока появятся все переменные, и только тогда выполнит операцию. По такому же принципу работает Event Flow-движок — каждое новое событие генерируется при наличии в графе всех обуславливающих его событий. 

Как будет в эпоху искусственного интеллекта развиваться ваш проект и вообще все, что связано с семантическим Web?

Я пытался научить семантической логике ChatGPT. Искусственный интеллект смог запомнить синтаксис и правила построения событийных моделей и, хотя и не без скрипа, научился по текстовому описанию строить и выполнять их. В итоге проведенных экспериментов, могу сказать, ChatGPT, а вернее, будущая более продвинутая его версия может  потеснить программистов. Но не потому, что он будет за них генерировать код по текстовому описанию алгоритма, а потому, что этот код никому не будет нужен — бот сам будет в состоянии исполнить запрос. Только напиши, что сделать, укажи, где данные, и получи результат.  Но для реализации этого, на мой взгляд,  необходимо соединение двух технологий — машинного обучения и семантики. Пока ChatGPT работает без семантики и безбожно врет. 

Кого вам не хватает в команде?

В 2016 году я написал самый простенький прототип событийного движка, поскольку имел опыт в программировании. При работе над блокчейном Apla пробовал внедрить событийную семантику в ряде проектов. Позже с одним из программистов Apla мы создали версию событийного движка на F#, на которой успешно выполнили несколько PoC по моделированию бизнес-логики в разных органисферах. Сейчас разработка технологии продолжается в лаборатории институционального проектного инжиниринга (ИПИ-лаб), которая обеспечивает финансовую и маркетинговую поддержку. 

На данном этапе для развития проекта необходимо расширение команды. Действующая версия движка работает в серверном и браузерном вариантах, поддерживает многопользовательский режим работы по ролям и способна моделировать любую бизнес-логику. Но для выхода в продакшн движок требует доработки. Вторая задача — посадить движок на сеть, то есть обеспечить блокчейн-часть. Можно взять готовую блокчейн-сеть и подключить к ней дополнительный движок или, выбросив виртуальную машину из блокчейна, заменить ее семантическим движком. Хотя наиболее перспективный вариант — это создать сеть с нуля на базе библиотеки libp2p, которая лежит в основе большинства блокчейнов.

Для реализации этих планов я не ищу отдельных программистов, мы хотим заключить контракт с компанией.

Считается, что в Web3 без сообщества не обойтись. Кто может стать ядром вашего комьюнити?

Сейчас проект Trusted Semantic Network в большей степени ориентирован на бизнес-приложения. Несколько лет назад была попытка создать команду под публичную реализацию сети, но сейчас пока подобных планов нет. Есть сообщество в фейсбуке, где мы в узком кругу обсуждаем возможные решения, но оно не очень большое. Однако если сеть  будет запущена  даже в приватном варианте, то не будет никаких проблем для реализации ее и в виде публичной сети.

За счет чего будет монетизироваться проект и есть ли у него токен?

Чисто технологически нет никаких проблем ввести нативный токен как атрибут актора (по сути реализовать его кошелек) и создать событийную модель обмена токенами, в которой предусматриваются все условия и ограничения для защиты от фальсификации и атак. И конечно, есть возможность создавать множество моделей специализированных токенов.

Если речь идет приватной сети, то основное ее предназначение — это создание на заказ платформ для автоматизации бизнес-процессов, например, систем контрактования (на чем сейчас и тестируется движок).  Публичная версия по методам монетизации не должна отличаться от традиционных блокчейн-сетей. Хотя семантика предоставляет и возможность зарабатывать на подписках на событийные модели, которые могут использоваться в разных бизнесах независимыми пользователями. 

Вопросы масштабируемости

Есть ли в мире похожие системы? И если нет, то почему?

Насколько я знаю, сейчас блокчейн-сетей с семантикой нет, все работают по старой схеме: смарт-контракты на специальных или традиционных языках программирования, каждый с собственным хранилищем. Среди workflow-движков, насколько мне известно, тоже конкурентов на семантическом поле нет, хотя многие из них и работают как  low-code или no-code приложения. Семантические базы знаний есть, но они используют объектно-ориентированную подходы, что не дает им в своей архитектуре реализовать бизнес-логику. Событийная семантика позволяет моделировать деятельность гораздо меньшими ресурсами. 

Поэтому прямых конкурентов нет. Скорее всего, они и не появятся в ближайшее время, поскольку событийная семантика в том виде, в котором она используется в Event Flow движке, является прямым наследником философской событийной онтологии, которую я разработал до того, как пришел в IT.

Высоконагруженные системы могут взаимодействовать с вашим проектом?

Это скорее всего вопрос про масштабирование. Оно, прежде всего, обеспечивается за счет естественной тематической кластеризация по проектам и предметным областям. То есть, если проект работает по фиксированной группе событийных моделей, то его узлы образуют кластер, практически независимый от других подобных тематических кластеров. Традиционные блокчейн-сети вынуждены делать кластеризацию по независимым от деятельности признакам (например, географическим). 

Второй момент, позволяющий повысить производительность сети это параллельная обработка транзакций от независимых моделей в рамках кластера. Еще одна возможность снизить нагрузку на сеть — настройка консенсуса (множество мусорных транзакций могут проводиться вообще без него). Также семантический подход позволяет реализовать архивирование ветвей графа со служебными данными. Уже разработана технология, при которой целая ветвь графа может быть ужата и заархивирована без нарушения криптографической целостности графа. Это еще один способ разгрузки узлов. И наконец, мы можем запускать множество движков параллельно.

Можно ли отнести это сервис к low-code или no-code?

Да, сейчас наш движок представляет из себя no-code-продукт. В нем ничего программировать не нужно — есть просто редактор моделей, в котором ты выбираешь свойства, акты, задаешь условия и ограничения на генерацию событий. В отличие смарт-контрактов, семантическая модель действия человекочитаема, поскольку для ее создания используются словари с четким описанием. Также важно, что, в отличие от существующих low- и no-code-продуктов, не требуется компиляции алгоритма в код,  движок непосредственно интерпретирует и выполняет семантические события. 

А надо ли вспоминать семантический подход к организации сети, которую когда-то уже забыли и двинулись дальше? 

Семантический подход появился еще в прошлом веке. Почему его не стали широко применять в блокчейн-проектах, я уже отвечал выше — это связано с тем, что  он был приспособлен для работы с большими объемами статичных знаний, что неактуально для блокчейна. Но если мы говорим о событийной семантике, то это будет большой шаг вперед, прежде всего заключающийся в замене программируемых смарт-контрактов на исполняемые семантические модели.

Все другие выпуски подкаста 1+1=3 доступны здесь.

Все подкасты Community Hub:

Transistor.fm I Apple Podcasts  I  Spotify  I  Google Podcasts  I  Вконтакте

Обсудить в Discord!