November 10th, 2010

2021 год
  • ailev

.15926LMNO

По итогам целой серии практических работ с попытками "реализовать ISO 15926" я пришел к следующим выводам по поводу структурирования .15926

1. Нельзя развивать отдельно "движок" и отдельно "онтологию". Ибо в итоге все время получается не онтологический движок, а логический или еще какой-то формальный. Конечно, внутри там есть формальный логический движок, а под ним еще формальный языка программирования, а под ним еще движок микропроцессора, но нельзя эти нижележащие уровни объявлять уровнями "онтологического программирования", даже если у нас разрешены "ассемблерные вставки" (другими словами, даже если у нас можно будет где-нибудь посреди создаваемого онтолета открыть скобочку и наваять от души длинное высказывание на FOL).

Исторически у нас этот водораздел обзывается .15926L (language) -- ранее эта тема также проходила как "онтологический язык программирования", "язык запросов к базе знаний", "API сервера".

Итого: .15926L является языком онтологического программирования, он же тем самым может быть рассмотрен как языком виртуальной онтологической машины, а сервер -- это реализация виртуальной онтологической машины.

Можно обсуждать далее, внутри ли этого движка понятия Части второй, или это "рантайм библиотека", реализованная уже средствами этого движка (то есть заливаем ли мы Часть вторую в сервер при начале работы, или она там лежит изначально -- как я понимаю, именно этот вопрос обсуждается в Стандарте, когда в RDL вдруг обнаруживаются продублированные с префиксом Части 4 понятия части два).

Одно ясно: .15926L -- основная функциональная спецификация нашего сервера (при отвлечении от нотации, объема начальной онтологии и прочих несущественных для целей структурирования проекта деталях). Тем самым, грубо, .15926L -- это и есть сервер. "Язык Питон дан нам в ощущениях, как интерпретатор (виртуальная машина) этого языка. Язык онтологического программирования дан нам в ощущениях, как интерпретатор (виртуальная машина, сервер) этого языка".

2. "Ран тайм библиотекой" к нашему языку онтологического программирования, конечно, служит Часть вторая и значительный кусок части четвертой (если не рассматривать конкретные предметные области). Без "рантайм библиотеки" всё одно капут, нужно ей заниматься в рамках нашего проекта, а не в рамках отдельного онтологического проекта. Опыт показал, что рассмотрение проекта как "чисто даталогического" (то есть без понимания, что означают в жизни, как они используются, зачем они вообще нужны) разработчиками .15926L приводит к выхолащиванию самой сути проекта. Поэтому онтологические рассмотрения нужно оставить в рамках проекта.

Беда в том, что ISO 15926 разрабатывался поначалу с одной целью: представить главным образом P&ID диаграммы для проектирования непрерывных производств. Поэтому там всё в порядке для представления трубопроводов и давлений, а также базовых философских понятий типа "время" или "класс". В то же время, начальная "базовая" библиотека (часть 2 и нынешний насосно-ориентированный огрызок части 4) не содержат многих предметно-независимых базовых понятий, как минимум:
-- понятия системы (и системного подхода -- ISO 42010),
-- понятия метода (и ситуационной инженерии методов -- 24744, SEMAT)
-- понятий программирования (интерпретация-трансформация, паттернирование-синтаксис и т.д.)

Я никак не могу относить это всё к "предметным расширениям на уровне учебников". Это должно быть самым ядром, ибо в современной философии именно деятельностный подход в его варианте системного подхода, и именно программирование с его замахом на моделирование мира являются главными в философской разборке. В этой связи Часть 2 служит каким-то приветом из философского наследия прошлых веков, без малейшего учета современного опыта.

Наш "предметнонезависимый рантайм" должен быть первоклассным, и входить в поставку "из коробки". Поэтому нам нужно сделать .15926O (ontology) -- наш собственный компактный аналог Части 2, как если бы ее делали не только инженеры-трубопроводчики (а для соответствия стандарту этот наш "рантайм" придется пропихивать в виде предложений по изменению/дополнению Части 2 и части 4, а при инсталляции считать "начальным содержимым местной песочницы").

Это тоже софт (написанный на онтологическом языке программирования .15926L), входит в комплект поставки.

Особо отмечу, что PraxOS не теряет своего предмета, онтологии для организационных методов являются предметноспецифичными. Но PraxOS будет использовать понятие "система" из нашего общего для трубопроводчиков и организаторов "рантайма" -- из .15926O.

3. Как .15926L, так и используемые им понятия .15926O нужно как-то представлять на экране. Это нотация. Нотацию обеспечивает специализированный экранный редактор, без него работать нельзя. Нотаций будет несколько, у нас появятся DSL, которые по сути будут просто нотациями к каким-то онтолетам. Обеспечиваться это будет опять же экранным редактором, только в форме language workbench. Экранный редактор переводит все наши онтологические нотации в .15926L, это и есть его функция.

Это означает, что у нас есть .15926N (notation) -- тоже софтовая компонента, реализованная либо в форме кода экранного редактора ("зашитая в код нотация" -- в первой версии), либо в форме языковых описаний нотации разных DSL для language workbench (в более культурной второй версии).

4. Без какого-то весьма интерактивного "хелпа-учебника", суть которого должна быть не в пояснениях назначения кнопочек на экране, а в пояснениях, как вообще работать, пользоваться онтологическим редактором будет невозможно -- ни в варианте "непосредственного онтологизирования", ни в варианте language workbench и создания DSL. Это означает, что без методики онтологического моделирования можно сразу заканчивать проект: число пользователей нашего софта будет исчисляться единицами человек в мире, а не десятками и не сотнями (на тысячи я и с хелпом не рассчитываю).

Компонента .15926M входит в комплект поставки, это тоже софт, и можно обсуждать, в какой форме он пишется: как текстовый документ, как хелповый файл, или с использованием .15926LON с последующим рендерингом во что-то читабельное. Также можно обсуждать, в какой форме и где хранить такой софт, как полагающиеся к методике примеры онтологического программирования/моделирования (хороший тон учебников программирования в том, что описываемые в нем фрагменты программ исполнимы).

Тем самым объем проекта .15926 после данного постинга вырос как минимум на "междисциплинарную онтологию" и "методику" (если считать, что раньше мы тут обсуждали только сервер/виртуальную машину и экранный редактор). Это всё единый комплект поставки "из коробки", без которого трудно ожидать успеха.