Gurbuz Dogan Eksioglu - рисунок

 

- Нет, Алиса, это не твой любимый фильм. "Дезире", это новый класс устройств семейства "Мажордом", не требующий настройки и сертифицированный для доступа к определенной приватной информации. Его необходимо только подключить к сети Интернет, сообщить ID группы, которую он должен обслуживать, а также, свои проблемы и желания. Ты знаешь - я далеко не лучший повар, старики скучают и часто болеют, сын плохо успевает в школе. Зато теперь!!! Дед крестит спиртное и пьет только газировку. Бабушка Сара имеет терпеливого слушателя своего бесконечного рецепта приготовления рыбы-фиш. Муж "совершает подвиг" не раз в две недели, а через день. И вообще...

Он очнулся от сильной боли. На лбу кровоточила ссадина, за окном глубокая ночь, а на экране компьютера светилась строка:

"Шаг 17. Для настройки минут, удерживайте кнопку CTRL ииииииииииииииииииииииииииииииииииииии"

Александр Прокофьев "Технориум" (заметки на стикерах)

Примечание: первоначально эта статья публиковалась в контексте проекта "DIY Vawoom", который следовало интерпретировать как "Сделай сам что-нибудь восхитительное". Но такое название не отражает его назначения в полной мере. Отныне, следуя "Философии общего дела" Н.Ф. Федорова, проект называется "Общее Дело" (в дальнейшем CB от 'Common Business').

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

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

Воспоминания о том, как это начиналось

Схема устройства моего диплома была основана на электронных компонентах Логики-Т, где RS-триггер весил ~100 гр и имел размеры пачки сигарет. После защиты диплома в 1979 году был оставлен молодым специалистом на кафедре Сварочного Оборудования в Киевском Политехническом Институте с зарплатой ~$100. Однажды на пляже, Создатель подарил мне электронную схему реализации идеи "электромагнитной ложки" профессора В.П. Черныша, которая вылилась в Aвторское Cвидетельство СССР №923764 - "Устройство для электромагнитного перемешивания расплава сварочной ванны" (приоритет изобретения 22 июля 1980 г). Внедрял в одиночку в суровые декабрьские морозы на заводе, расположенном на берегу реки Амур, где изготавливались важные для страны Изделия. Был награжден премией ~$50 и запретом зарубежного туризма на 5 лет. В те времена мы дружно с надеждой строили страну и не предполагали подобных 'банкетов' в будущем...

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

Scheme of the Digital Counter, based on Mux, Switch and DC
Спустя 40 лет подобные достижения в схемотехнике вызывают улыбку, современная электроника все более формализуется и ее разработку лет через 7 будут с успехом производить роботы. Поэтому прогрессивные страны уже всерьез обсуждают Универсальный Базовый Доход. Думаю процесс завершится когда будет составлена онтология нашего окружения (надеюсь все же не мира). Возможно проекты, подобные предлагаемому CB, помогут нам сохранить самое главное:

'Мы стоим перед неизбежностью оправдать себя творчеством, а не оправдать свое творчество. В творческом акте должно быть внутреннее самооправдание, и всякое внешнее его оправдание бессильно и унизительно. Человек оправдывает себя перед Творцом не только искуплением, но и творчеством.'

Н.А. Бердяев 'Смысл творчества (опыт оправдания человека)'

Средства поддержки разработки

Музыкальное произведение можно описать с помощью 7-ми нот. Геном человека - с помощью 4-х символов ATGC, хотя есть предложение расширить список символами ZPSB. Постараемся и мы использовать минимальный набор средств для решения задачи, памятуя требование, объявленное в предыдущей статье - форматы описателей продуктов любой сложности для всех стадий жизни продукта (Поиск, Разработка, Производство, Предложение и Утилизация) должны гармонировать друг с другом.

'Золотые' строчки

В подавляющем большинстве случаев современное программирование представляет собой бесконечное повторение давно известных паттернов, но с помощью разных фреймворков и на разных языках, количество которых растет как на дрожжах. Слияние компаний и групп независимых разработчиков позволяет стандартизировать методики и в итоге делать проекты более простыми и защищенными от ошибок. Посмотрите, например, как ESPHome предлагает пользователям создавать собственные прошивки для Wi-Fi контроллеров, настраивая готовые профили. Я применяю подобный подход, но используя простые описатели Машины Состояния, о чем расскажу в одной из следующих публикаций этого цикла статей. 

Ошибки в программах, особенно в связи с ожидаемым широким внедрением, казалось-бы простого IoT, становятся очень дорогими и процесс их выявления настолько усложняется, что в ближайшее время может оказаться не под силу программистам. Поэтому, например, Platform Security Architecture и ELISA Project более основательно подходят к созданию стандартных сертифицированных элементов, процессов и инструментов.

Следуя указанным тенденциям, я постараюсь избежать трудоемких подходов и откажусь от программирования бэкенда в общепринятом смысле. В древней Махабхарате сказано о сотворении мира, что вначале были Брамины, потом - Правда, и т.д. Евангелие от Иоанна начинается словами 'В начале было Cлово'. Опираясь на эту древнюю мудрость я начну с онтологии.

Поиск стандартной базовой онтологии

"Бог, - думал я, - должен был сказать всего одно слово, вмещающее в себя всю полноту бытия. Ни один из произнесенных им звуком не
может быть менее значительным, чем вся вселенная или по крайней мере чем вся совокупность времен. Жалкие и хвастливые человеческие слова – такие, как 'все', 'мир', 'вселенная', - это всего лишь тени и подобия единственного звука, равного целому наречию и всему, что оно в себе содержит".

Хорхе Борхес "Письмена Бога"

Можно создавать описатели продуктов и услуг по своим правилам. Но стандартизируя семантику веба в виде онтологий мы получаем дополнительную возможность привлекать посетителей, которые ничего не знают о нашем ресурсе. К тому же, современные тенденции все настойчивее требуют, чтобы информация была понятна машинам, в частности, поисковым. Проблема заключается в том, что уже сейчас существуе громадное количество онтологий. На следующем скриншоте с вебсайта The Linked Open Data Cloud (https://lod-cloud.net) представлен граф, содержащий более 1200 наборов данных:

The Linked Open Data Cloud from https://lod-cloud.net
Онтологии обычно разделяют на 3 уровня:

  • верхний
  • средний
  • доменный (уровень приложения)

Данная разработка относится к уровню приложения и я провел много дней в раздумьях какую онтологию взять за основу. Поначалу казалось все просто - пользуйся набором из существующих. С другой стороны, участники проекта 'Coordinated Holistic Alignment of Manufacturing Processes' (CHAMP) вполне обоснованно утверждают о недостатке универсальных терминологий описания продуктов и процессов. Рассмотрим некоторые широко известные онтологии:

Schema: 784 класса, 11494 аксиомы (версия 3.4)
GoodRelations: 38 классов, 1141 аксиома
Базовая Формальная Онтология (БФО): 36 классов, 1684 аксиомы

В какой-то момент изучения БФО у меня возникла ассоциация с языком племени Пираха, который содержит всего 7 согласных и 3 гласных, но очень сложен при внешней простоте. Так и БФО - надо крепко перестроить систему своего мышления, чтобы правильно применять ее. В любом случае БФО верхнего уровня очень привлекательна своей краткостью. Посмотрим онтологию среднего уровня, созданную на ее основе:

CommonCoreOntologies: 1430 классов, 13112 аксиом (версия 1.1)

И наконец, еще одна онтология среднего уровня, которую я нашел уже после описания стадий жизни продукта в своей предыдущей статье. Она разработана на основе БФО и CommonCoreOntologies специально для поддержки продукта на всех стадиях его жизни:

AllCHAMPAontology: 2136 классов, 17300 аксиом

Объем информации впечатляет! Хотя эти онтологии имеют модульную структуру и можно использовать только нужные части. Однако надо потратить немало времени на их изучение, чтобы выбрать только необходимое. А ведь это еще средний уровень и онтологии уровня приложения, в свою очередь, могут добавить не меньший объем информации. В общем, как пел Дэвид Боуи - "добро пожаловать в мой ночной кошмар"...

Признаюсь, мне было трудно отказаться от идеи применения онтологии CHAMP, хоть она довольно объемна и проект еще не закончен. Но, как мы уже знаем, в ее основании лежит БФО, параграф 2.1 спецификации которой начинается словами:

"An entity is anything that exists."

Я специально выделил жирным шрифтом ключевое слово. Таким образом, пользователь, помимо высокого уровня порога вхождения в материал столкнется еще и с явно объявленным ограничением в поддержке разработки еще не существующих продуктов.

К тому же, на мой взгляд, заложенное в BFO явное разделение сущностей на материальные и нематериальные ('material entity' и 'immaterial entity') также сильно усложняет онтологию и понимание правил ее применения. Если у робота есть видеокамера, но сломался датчик температуры и он не знает об этом, то он может принять спящего материального кота за его нематериальное изображение на подушке. Т.е. уровень нашего знания, и выводы, базирующиеся на нем, ограничен нашими текущими возможностями. Проснувшийся кот снова станет для такого робота материальным, если он обладает интеллектом для визуального определения перемещения объекта.

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

Итак, после нескольких кругов поиска легкой для понимания, компактной и универсальной стандартной базовой онтологии я вновь оказался в исходной точке...

IoT - Internet of Tasks или Интернет Желаний

'Если мне будет хорошо, я тебя так довезу, что тебе тоже будет хорошо...'
Из кинофильма 'Мимино'

Что ищет обезьяна, пытаясь достать пищу из коробки? Разве целью ее поиска являлась палка, которой она пробует зацепить банан через отверстие в коробке? Разве подружка Алисы, которую я упомянул в эпиграфе искала медикаменты для родителей? Разве, для того чтобы сделать иглу для инъекций из ниппеля, Джеки Чан искал напильник в кинофильме "Кто я?" Нет, все они искали средство решения задачи. Для обезьяны им оказалась подходящая по размерам палка, для подружки Алисы - добрый всезнайка "Дезире", а Джеки просто снял колесо, завел мотор и заточил иглу на вращающемся тормозном диске. Т.е. в общем случае мы ищем не конкретные предметы, которых в данной конкретной ситуации может не быть в наличии, или даже не существовать в природе. Более того, предметы сами по себе не представляют никакой ценности. Поместите богача со всем его золотом и даже прислугой на необитаемый остров и уже через месяц он загрустит из-за отсутствия зрителей того, как он наслаждается своим богатством.

В общем случае мы ищем средства удовлетворения наших желаний или насущных потребностей. Но чтобы не диссонировать с устоявшимся термином IoT, я применил слово Task (задача). Используя такой подход к созданию онтологии базового уровня, нам уже не надо будет ломать голову над практическим применением дуализма Онтологического Материализма и Онтологического Идеализма. Важным становится не выйти в желаниях за рамки приличия и своего первичного доброго предназначения.

'Этот народ уж давно ... все заботы забыл, и Рим, что когда-то
Все раздавал: легионы, и власть, и ликторов связки,
Сдержан теперь и о двух лишь вещах беспокойно мечтает:
Хлеба и зрелищ!..'

Децим Юний Ювенал "10-я сатира"

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

В связи со сложностью разработки предлагаемой концепции онтологии Интернета Желаний я беру тайм-аут.