ФЛЭНГ-проекты

Генератор образовательных пакетов (conts.fln)

Программа conts.fln, написанная на функционально-логнческом языке Флэнг, является автоматическим генератором образовательных пакетов из html-файлов (как подготовленных вручную, так и сгенерированных с помощью MS Word).

Описание программы

Флэнг программа conts.fln получает на входе произвольный html-файл, анализирует его и создает образовательный пакет в соответствии со спецификацией универсальной модели. IMS-манифест этого пакета включает:

  1. автоматически сгенерированный блок ресурсов: описание ресурсов для пунктов оглавления и картинок;
  2. автоматически сгенерированную организацию универсальной модели "Содержание".

Кроме того, обрабатывается сам html-источник. В частности, в него добавляются якоря, необходимые для организации оглавления. Получающийся образовательный пакет готов к загрузке в систему МЕТА.

Опция option_word_filter

Опция позволяет включать фильтр, очищающий файл-источник от «мусорных» элементов, порождаемых при сохранении Word-текстов в html-формат. Значения:

  • ”yes” – источник является файлом, порожденным MS Word, который нуждается в чистке
  • ”no” – источник порожден редактором Word, но чистить его не надо
  • non-word – источник не является файлом, порожденным редактором Word.

Опция option_include_table

Опция позволяет сформатировать ширину текстового поля результирующего документа. Это делается через включение содержимого файла-источника в таблицу, ширина которой устанавливаются опцией. Значения:

  • 0 - таблица не включается
  • N>0 - таблица включается и имеет ширину N.

Основная функция

Основная функция программы –

main(File, NewFile, WordFilter, StyleRef, TableWidth)

Функция анализирует html-файл File, выделяя структуру оглавления, на основании чего создает IMS-манифест и новую версию файла со вставленными якорями. Аргументы:

  • File - обрабатываемый файл.
  • NewFile - новый html-файл, полученный из File в результате обработки. В NewFile включается дополнительная информация, необходимая для организации оглавления и, кроме того, он может быть очищен от «мусорных» ворд-элементов. Именно NewFile включается в образовательный пакет.
  • WordFilter – значения опции для ворд-фильтра: yes/no/non-word
  • StyleRef - относительный адрес стилевой таблицы css. Если этот аргумент равен пустой строке "" или опция Word-фильтра равна "no", то игнорируется. В противном случае линк на стилевой файл включается в голову (элемент head) файла NewFile.
  • TableWidth – если аргумент равен положительному целому, то содержимое файла обрамляется таблицей, устанавливающей ширину текстового поля. Ширина таблицы в этом случае равна значению аргумента TableWidth. Если аргумент равен нулю, то таблица не вставляется.

Информациция о программе

При разработке программы преследовались две цели:

  1. Программа разработана в рамках апробирования путей развития системы МЕТА.
  2. Исследовалась эффективность и выразительность Флэнга при решении задач данного типа.

Программа написана А.В. Манциводой. Продвинутый вариант реализованного в программе сервиса планируется интегрировать в следующую версию системы МЕТА. Данный сервис способен на порядки снизить объем ручной работы при создании образовательного пакета, позволяя разработчику сосредоточиться на заполнении метаданных, в то время как структурная информация манифеста будет порождаться автоматически. В продвинутой версии данного сервиса планируется также включить работу с предметным указателем, глоссарием и библиографическими ссылками.

На 4.07.2004 программа состоит из 39 правил, определяюших 21 функцию (182 строки чистого Флэнг-кода  - без комментариев и пустых строк). Разработана в течение 2-х дней.

Примеры использования

На двух примерах покажем, как работает программа. Эти примеры можно «прорешать» самостоятельно, установив на своей машине Флэнг-интерпретатор последней версии. Программу можно использовать и для собственных целей.

Маленький пример

В качестве маленького примера возьмем данный текст, подготовленный в редакторе MS Word.  Вот ссылка на этот файл meta-import.doc.

Шаг 1. Сохраняем файл в Ворде, используя опцию «Веб-страница с фильтром». Ворд породил файл meta-import.htm и директорию meta-import.files, в которой сохранил две картинки из текста. Файл meta-import.htm содержит большое количество стилевых ворд-элементов.

Шаг 2. Запускаем Флэнг в директории, где находится программа conts.fln и файл meta-import.htm. Например,

C:\flang\meta-imp>flang

Далее загружаем во Флэнг-интерпретатор программу:

?- reload(conts);

Шаг 3. Запускаем функцию main:

?- main("meta-import.htm", "m-i.htm", "yes", "style/doc.css", 600);

Аргументы: обрабатываемый файл meta-import.htm, выходной HTML-файл – m-i.htm, опция подчистки ворд-элементов включена, стиль основное файла описывается в doc.css, находящемся в поддиректории style, текст в результирующем документе должен уменьшаться в поле шириной 600 точек.

В результате работы в текущей директории появляется файл m-i.htm и imsmanifest.xml.

Шаг 4. Заходим в систему МЕТА, загружаем в нее в виде распакованного пакета сгенерированный файл imsmanifest.xml  с помощью опции «импорт распакованного пакета». В правом окне видно, что в манифест уже включены в качестве ресурсов картинки, файл doc.css, а также организация «Содержание». Теперь можно готовить метаописания, а также сгенерировать с помощью опции «Предварительный просмотр (внешний HTML) соответствующий веб-ресурс.

Большой пример

В качестве большого примера использовался теоретическая часть текста монографии

Открытое образование: стандартизация описания информационных ресурсов/Е.И. Горбунова, С.Л. Лобачев, А.А. Малых, А.В. Манцивода, А.А. Поляков, В.И.Солдаткин; Отв. ред. С.Л.Лобачев и А.В.Манцивода. - М.: РИЦ "Альфа" МГОПУ им. М.А.Шолохова, 2003. - 215 с.

объединенная с документацией системы МЕТА. Суммарно получается 136 стр. формата A4, объем RTF-файла – более 10 мегабайт (заархивированных – ок. 800 килобайт). Текст содержит 99 пунктов оглавления, 54 изображения. Общее количество ресурсов, включение которых необходимо в манифест – 155. Таким образом, по объему – средний учебник.

Скорость обработки источника Флэнг-программой (не включая времени загрузки) составила ок. 2 сек. Это время потребовалось на «прочистку» html-документа, вставку дополнительных якорей и генерирование IMS-манифеста (его можно посмотреть здесь). Манифест содержит только структурную информацию, но построен в полном соответствии с универсальной моделью, поэтому коректно загружается в систему МЕТА, где может быть проведена работа по созданию метаописаний.

Параллельно выполнялась работа по созданию пакета «вручную». Работа заключалась во вставке в html-файл нужных якорей, плюс ручной подготовке в МЕТЕ пунктов оглавления, а также описание всех ресурсов. Временные затраты – 2 человеко-дня. Результат хуже, поскольку человеку свойственно ошибаться.

Оригинальный html-файл, порожденный MS Word, имеет более 955 килобайт кода.  Вариант, «очищенный» Флэнг-программой – ок. 392 килобайт. Таким образом, достигнута экономия в три раза.