Рендеринг -- это трансформация депарсинга (как правило, включающая значительную денормализацию и уменьшение уровня абстракции), результат которой вызовет восторг у человека-читателя. Традиционные примеры: рендеринг графики, видео, музыкальный рендеринг. Render -- это исполнять-интерпретировать. А исполнитель-интерпретатор -- это renderer.
Меня интересует не столько "исполнитель", сколько "пересказыватель-интерпретатор", ибо этот пост про рендеринг методов. Рендерер методов -- это программа, котрая превращает описание методов, глубоко понятное машине (например, подготовленное полном соответствии с OIM ISO 24744 и хранящееся во внутреннем представлении в виде семантической сети), в описание методов, свободно потребляемое человеком-непрограммистом-нематематиком (а то и не только человеком, о чём далее).
Вот ряд пока еще фантазий (основанных на изучении фронтира в narrative rendering, music rendering и т.д.) по поводу рендеринга, чтобы понять, на что нужно замахиваться сегодня, чтобы в 2020 году быть с каким-то продуктом:
1. Интерактивная энциклопедия. Читателями вывода рендерера являются люди, которым нужно срочно получить справку по тому или иному вопросу. Поэтому результат энциклопедического рендеринга неотличим от того, что мы находим в Википедии. В пределе, результат этого рендеринга публикуется прямо в Википедии самим рендером, или на специализированном справочном вебсайте. Примером такого правильного вебсайта, хотя и неинтерактивного, является
http://opfro.org. EPF Composer пытается выдать что-то подобное, только жутко переструктурированное и поэтому не совсем удобное даже для справочных целей -- к тому же без поиска и прочих интерактивностей.
2. Наставление (guidlines). Читателями являются люди, которым нужно синхронизировать свои действия, для чего принять соглашение о методе. Предмет аккуратно выковыривается рендером из окружающих знаний, результат публикуется в виде .pdf-книжки. Примером такой книжки является текст по Open/METIS и выдачи ОргМастера. Это самое лёгкое, "все генераторы отчетов делают это". Дополнительной фичей является выдача наставлений не только людям, но и программным агентам (приложениям, поддерживающим сервисы, указанные в наставлении). Так что кроме текста для людей, нужно выдать еще и настроечные файлы для приложений, в том числе workflow, help-файлы и т.д. В пределе, умный рендерер просто синтезирует потребное приложение, то есть на выходе у него набор наставлений для группы людей, плюс набор инструментов для следования этому наставлению (например, двухлетней давности ссылки, хотя там задача сложнее: на входе естественноязыковый текст, на выходе -- текст синтезированного сервиса:
http://nordsecmob.tkk.fi/Thesisworks/masteroppgave_Suttik.pdf. У нас же на входе смесь естественного языка и формального языка).
3. Учебник. Читателями являются люди, которым нужно выучить метод, и мотивация их на это обычно не слишком высока. Идеально, если бы это была увлекательная художественная книжка, как учебный роман "Цель" Голдратта -- да еще и с задачником впридачу, оформленным как игра-квест. Художественный рендерер, знающий лучшие теории по созданию текстовых историй (text composition, generative narrative systems и т.д., например
http://www.cc.gatech.edu/~riedl/pubs/riedl-aaai-ss09.pdf), и даже способный их проиллюстрировать (
http://artis.imag.fr/Members/Thierry.Stein/). Рендерер задач сможет не только сочинить их, но и сделать, так чтобы их было интересно и занимательно решать -- то написать сценарий игры на тему метода. А если уж есть сценарий, то и сама игра тоже может быть синтезирована.
Тому, кто считает, что я не просто фантазирую, а слишком сильно фантазирую, советую еще раз поглядеть материалы на страничке проекта Watson в IBM:
http://www.research.ibm.com/deepqa/. Или для развлечения послушать 5000 хоралов (как понимаете, можно было и 50тыс. их выставить, компьютеру нетрудно), написанных компьютерной программой --
http://artsites.ucsc.edu/faculty/cope/5000.html (а также сходить на страничку
http://www.renconmusic.org/, чтобы оценить рендереры, которые эти хоралы смогут сыграть профессионально).
Ну, а кто-то прочтет в этом описание возможных продуктов метода ситуационной инженерии методов и размышления о том, каким мог бы быть идеальный метод-синтезатор (composer -- это не только "наборный автомат", но и синтезатор, "формовщик").