Интересная презентация Markus Voelter и Bernhard Merkle про то, как language workbenches стирают границы между программированием и моделированием-на-DSL --
http://www.dsmforum.org/events/DSM10/Papers/Voelter.pdf (есть и слайды, но они очень красочны и в разы менее понятны:
http://www.dsmforum.org/events/DSM10/Slides/2.0930.Voelter.pdf).
Для меня ничего особо нового в этой статье нет (я уже несколько лет сформулировал этот тезис про слияние программирования, моделирования и онтологизирования). Но нужно обратить внимание на предложенное перечисление способов интеграции подъязыков модульной мульти-языковой системы (referencing, cascading, extension, embedding, annotation, cross-cutting by translation), и сами рассуждения про языковую модульность -- где знания предметной области реализуются в соответствующем языковом модуле.
Конечно, все эти идеи носятся в воздухе, только названия меняются. Так, отсутствие токенизаторов и визиторов в парсинге -- это уже общее место. Предложенное понимание cascading очень похоже на chains of meaning из FONC. Технология language workbench стремительно оформляется.
Осталось объявить, что онтологизирование нужно слить с программированием и моделированием. К этому тоже уже подходят. Так, в программе того же семинара по domain specific modeling, на котором выступали Voelter и Merkle, есть и доклад про онтологии в строительстве DSL --
http://www.dsmforum.org/events/DSM10/Papers/Gailly.pdf, где "We defined the notion of domain-specific quality as a component of semantic quality that depends on the satisfaction of the invariant conditions that define the domain of interest. These conditions should hold for all conceptual schemas that represent phenomena belonging to that domain". Конечно, там всё про UML и OCL, но есть и ссылки на OWL-реализацию.
Мы пойдем именно этим путём, и доведем его до логического (pun intended) конца.
P.S. Кого интересует, о чем еще говорилось на неделю назад закончившемся семинаре по DSM, загляните сюда:
http://www.dsmforum.org/events/DSM10/ (все papers и слайды).