Я читаю источник R FAQ в texinfo и думаю, что было бы проще управлять и расширять его, если бы он анализировался как структура R. Есть несколько существующих примеров, связанных с этим:
-
пакет состояний
-
записи bibtex
-
Rd файлы
с некоторыми желательными функциями.
По-моему, часто задаваемые вопросы не используются в сообществе R, потому что им не хватает i) легкий доступ из командной строки R (то есть через R-пакет); ii) мощные функции поиска; iii) перекрестные ссылки; iv) расширения для внесенных пакетов. Рисуя идеи из пакетов bibtex
и fortunes
, мы могли бы представить новую систему, в которой:
-
Часто задаваемые вопросы можно найти с R. Типичные вызовы будут напоминать интерфейс
fortune()
:faq("lattice print")
илиfaq() #surprise me!
,faq(51)
,faq(package="ggplot2")
. -
Пакеты могут предоставлять свои собственные
FAQ.rda
, формат которых еще не ясен (см. ниже) -
Sweave
/knitr
предоставляются драйверы для вывода красиво отформатированных Markdown/LaTeX и т.д.
Вопрос
Я не уверен, что лучший формат ввода. Либо для преобразования существующих часто задаваемых вопросов, либо для добавления новых записей.
Весьма громоздко использовать синтаксис R с деревом вложенных списков (или ad hoc S3/S4/ref class
или structure
,
\list(title = "Something to be \\escaped", entry = "long text with quotes, links and broken characters", category = c("windows", "mac", "test"))
Rd
, даже если это не R-структура как таковая (это скорее подмножество LaTeX со своим собственным парсером), возможно, может быть более привлекательным примером формата ввода. Он также имеет набор инструментов для анализа структуры в R. Однако его текущая цель довольно конкретна и различна, ориентирована на общую документацию по функциям R, а не на часто задаваемые вопросы записей. Его синтаксис также не идеален, я думаю, что более современная разметка, что-то вроде уценки, будет более читаемой.
Есть ли что-то еще, возможно, примеры разбора файлов разметки в R-структурах? Пример отклонения файлов Rd от их предназначения?
Подводя итоги
Я хотел бы придумать:
1 - хороший дизайн для структуры R (класс, возможно), который расширяет пакет fortune
до более общих записей, таких как элементы часто задаваемых вопросов
2- более удобный формат для ввода новых часто задаваемых вопросов (вместо текущего формата texinfo)
3 - синтаксический анализатор, написанный на R или на каком-либо другом языке (bison?) для преобразования существующих часто задаваемых вопросов в новую структуру (1) и/или новый формат ввода (2) в структуру R.
Обновление 2: за последние два дня периода щедрот я получил два ответа, оба интересные, но совершенно разные. Поскольку вопрос довольно обширен (возможно, некорректен), ни один из ответов не дает полного решения, поэтому я не буду (пока так или иначе) принять ответ. Что касается щедрости, я объясню ее ответом, который был проголосован до того, как истечет срок действия, желая, чтобы был способ разделить его более равномерно.