====== Понятие процесса формирования коллекций ====== Конечный пользователь Greenstone может создать коллекции, используя Коллектор (Collector), описанный в документе //Цифровая библиотека Greenstone: Руководство пользователя// (Раздел [[?do=search&id=making_greenstone_collections @ru:manuals:User|making_greenstone_collections]]). Он позволяет очень просто создавать коллекции на базе уже существующих, но с новым наполнением. Однако невозможно пользоваться Коллектором при создании коллекций с абсолютно новой структурой. В этом случае придется вносить изменения в файл конфигураций, который управляет структурой коллекции, ведь для того, чтобы радикальные изменения возымели эффект, Вам необходимо знать гораздо больше о системе Greenstone. Данный раздел содержит все, что Вам необходимо знать для этого. В этом разделе также описывается структура директорий Greenstone и формат внутреннего хранения документов. Мы подразумеваем, что на вашем компьютере установлена система Greenstone, сконфигурированная под оболочку Windows или Unix. Если вы еще не установили систему, то сделайте это, воспользовавшись комплектом документации //Цифровая библиотека Greenstone: Руководство по установке//. Для обращения к основному каталогу Greenstone повсеместно используется имя //GSDLHOME//, которое для системы Windows выглядит как //%GSDLHOME%//, а для Unix - //$GSDLHOME//. Вы создаете этот каталог в процессе установки Greenstone на ваш компьютер. ===== Создание коллекций из командной строки ===== Начав создание коллекций из командной строки, вы пройдете по всей операционной цепочке, что позволит вам лучше понять этот процесс. Разумеется, для наибольшего числа схожих коллекций вы будете пользоваться Коллектором. Для примера мы воспользуемся коллекцией, находящейся на установочном CD-ROM и состоящей из домашних WWW-страниц множества лиц, работавших над проектом создания Новозеландской цифровой библиотеки и системой Greenstone. Отдельные подразделы практически не отличаются друг от друга, однако они были созданы для работы с Greenstone в различных операционных средах, таких как Windows и Unix. Вам остается только выбрать. на базе операционной системы вашего компьютера. При беглом просмотре некоторые операции могут вам показаться непонятными и таинственными, однако выполните их, близко придерживаясь к инструкциям - подробное описание этих операций будет дано несколько позже. В конце подраздела дано краткое резюме о различиях между процессами формирования коллекций на базе Widows и Unix. ==== Формирование коллекций под Windows ==== При формировании коллекций Greenstone в среде Windows через командную строку изначально необходимо запустить "command prompt" - приглашение для ввода ваших команд. Попробуйте посмотреть через основное меню Start -^Programs, найдите MS-DOS Prompt, DOS Prompt, или Command Prompt. Если вы не нашли ничего из описанного выше, запустите Start ~$Run и в диалоговом окне напечатайте command (or cmd). Если запуск команды окончился безуспешно, то обратитесь к своему системному администратору. Внесите изменения в каталог, в который была установлена система Greenstone. По умолчанию Greenstone устанавливается в каталог, в который можно попасть напечатав cd "C:\Program Files\gsdl " (Вы должны использовать кавычки из-за пробела в имени директории Program Files). Далее, в следующем окне напечатайте setup.bat Этот файл (который вы можете просмотреть) указывает системе, где искать программы Greenstone((Для операционных систем Windows 95/98 запуск setup.bat может закончиться неудачно, и система выдаст сообщение об ошибке "Out of environment space". Если это призошло, то вам необходимо отредактировать системный файл config.sys (обычно он находится в C:\config.sys) и добавить в него строку shell=C:\command.com /e:4096 /p (где С: имя вашего системного диска). Для того, чтобы эти изменения вступили в силу, необходимо перезагрузить ваш компьютер и повторить все шаги для запуска Greenstone.)). Если при работе в интерактивном сеансе DOS prompt вы захотите вернуться на верхний уровень каталога Greenstone вы можете сделать это, напечатав cd "%GSDLHOME%" (непременно в кавычках). Если вы закончили работу в окне DOS, а потом запустили новую сессию, то вы должны запустить заново setup.bat. Теперь вы имеете возможность формировать или переформировывать коллекции. Сначала мы рассмотрим программу mkcol.pl, написанную на Perl, имя которой означает "make a collection" (создание коллекции). Первый запуск этой программы можно осуществить, напечатав perl -S mkcol.pl, при этом на экране появится описание использования и список параметров. Если окружение вашей операционной системы Windows настроено на работу с приложениями Perl, файлами с расширением .pi, то эта процедура не займет много времени. Как вы можете видеть в предоставленном примере, единственный обязательный аргумент - это creator (создатель), который исползуется для описания лица, формирующего коллекцию. Теперь мы используем эту команду для создания нашей коллекции, состоящей из домашних WWW-страниц участников проекта создания Цифровой библиотеки Greenstone. Для того, чтобы присвоить коллекции имя, я напечатал perl —S mkcol.pl —creator me@cs.waikato.ac.nz dlpeople (или mkcol.pl —creator me@cs. waikato. ac. nz dlpeople если Perl связан с расширением файла .рГ). Пожалуйста, замените мой email адрес на собственный! Для просмотра вновь созданных файлов перейдем в только-что созданный каталог коллекции. Для этот печатаем: cd "%GSDLHOME%\collect\dlpeople " creator             me@cs.waikato.ac.nz maintainer          me@cs.waikato.ac.nz public              true beta                true indexes             document:text defaultindex        document:text plugin              ZIPPlug plugin              GAPlug plugin              TEXTPlug plugin              HTMLPlug plugin              EMAILPlug plugin              ArcPlug plugin              RecPlug classify            AZList -metadata "Title" collectionmeta collectionname    "dlpeople" collectionmeta iconcollection    "" collectionmeta collectionextra   "" collectionmeta .document:text    "documents " Вы можете просмотреть содержимое директории, напечатав dir. В ней должно находиться 7 поддиректорий: archives, building, etc, images, import, index и perllib. Теперь необходимо заполнить коллекцию документами. Источник материалов для коллекции dlpeople находится на установочном CD-ROM Greenstone в каталоге collect\dlpeople. Сначала вставьте CD-ROM в читающее устройство (например, D:\). Далее скопируйте содержимое каталогаD:\collect\dlpeople в директорию import коллекции dlpeople. Вы можете сделать это в следующем порядке: > выделите содержимое каталога dlpeople и переместите в директорию import коллекции dlpeople. В качестве альтернативы вы можете напечатать следующую команду: xcopy /s d:\collect\dlpeople\* import В каталоге коллекции etc существует файл с именем collect, cfg. Откройте его, используя любой текстовый редактор, либо используйте редактор, настроенный по умолчанию. В результате вы увидите окно, содержимое которого выглядит так, как показано на рисунке , показывая содержимое файла конфигурации коллекции, созданного с использованием команды perl-S mkcol.pl -creator me@cs.waikato.ac.nz dlpeople. Теперь вы готовы импортировать коллекцию. Это процесс переноса документов в систему Greenstone, стандартизации формата документов, пути спецификации метаданных и структуры файла, в котором будут храниться документы. Напечатайте perl -Simport.pl и в результате вы получите список опций для операции импорта. Для упрощения процесса воспользуйтесь базовой командой: perl —S import.pl -removeold dlpeople Не беспокойтесь по поводу быстро бегущего по экрану текста - это отчет о выполнении процедуры импорта. К сведению, процесс импорта этой коллекции занимает около 5 минут на 1 ГТц компьютере и несколько дольше на более медленных машинах. Обратите внимание на то, что вы не должны находиться в директориях collect или dlpeople при запуске этой команды; T.K.GSDLHOME уже определил для работы системы Greenstone местоположение необходимых файлов. Теперь давайте внесем изменения в файл конфигурации коллекции для модификации его вида. Сначала присвоим коллекции имя. Оно будет воспринято веб-броузером, как заголовок для титульного листа WWW-страницы, и использоваться в качестве иконки при отсутствии рисунка. Изменим строку collectionmeta collectionname "dlpeople" на строку вида collectionmeta collectionname "The People of the NZDL project". Добавим описание коллекции между кавычками: //collectionmeta collectionextra ""//. Оно будет использовано в качестве материала для описании раздела "About" (о коллекции) на домашней WWW-странице. Я добавил "This collection is made up of the homepages of some of the people who have worked on the NZDL project." Важно вводить это описание одной строкой - не используйте для отбивки клавишу Enter/Ввод. Если вы хотите использовать в вашей коллекции многоязычный интерфейс, то существует способ вывода данного текста в соответствии с выбранным языком. Это описание будет представлено далее в разделе [[#configuration_file|configuration_file]]. Вы можете использовать изображения, которые будут представлены в качестве иконок на WWW-странице коллекции; изображение, созданное мною, вы можете видеть на рисунке . Укажите путь нахождения изображения в кавычках в строке collectionmeta iconcollection "" файла конфигурации. Для краткости и мобильности _httpprefix_ может быть использован в качестве стартового URL указывающего на изображение, находящееся в файловой области Greenstone. Например, вы можете ввести: _httppreflx_/collect/dlpeople/images/icon.gif если вы поместили подходящее изображение в соответствующую директорию коллекции (в нашем примере это: collect\dlpeople\images ). Сохраните файл конфигурации коллекции и закройте его - он вам больше не понадобится на данном этапе обучения. Следующая фаза - "построение" коллекции, в которой будут созданы все индексы и файлы, отвечающие за работу коллекции. Напечатайте в командной строке perl —S buildcol.pl и получите список опций для формирования коллекции. Подробное описание этих опций представлено в Разделе [[#import_and_build_processes|import_and_build_processes]]. Пока же придерживайтесь значений "по умолчанию", напечатав: perl —S buildcol.pl dlpeople И снова не беспокойтесь о быстро бегущем по экрану тексте - это отчет о выполнении команды. Теперь "оживим" коллекцию: выделите содержимое каталога building коллекции dlpeople и перенесите его в каталог index. Так же вв можете проделать эту операцию, напечатав команду: rd /s index # on Windows NT/2000 deltree /Y index # on Windows 95/98 и изменить имя каталога building на index командой ren building index В заключение напечатайте: mkdir building подготовив систему для будущих переформирований. Важно, чтобы все эти команды были выполнены из требуемой директории (в отличие от команд Greenstone mkcol.pl, import.pl and buildcol.pl); если текущая рабочая директория не является dlpeople, напечатайте: cd "%GSDLHOME%\collect\dlpeople" до того, как вы запустите на исполнение команды rd, ren и mkdir. Вы должны уметь обращаться к вновь созданной коллекции с вашей домашней страницы Greenstone. Если эта страница открыта в вашем броузере, вы должны ее обновить или закрыть окно броузера и перезапустить его (для того, чтобы избежать проблем кэширования). Если вы пользуетесь "локальной версией библиотеки" Greenstone, то должны перезапустить всю программу. Для просмотра новой коллекции щелкните кнопкой мыши по изображению. Полученный результат вы можете увидеть на рисунке . {{..:images:dev_fig_006.png?156x120&direct}} В заключение приведем команды, создающие коллекцию: cd "C:\Program Files\gsdl " # assuming default location setup.bat perl —S mkcol.pl —creator me@cs.waikato.ac.nz dlpeople cd "%GSDLHOME%\collect\dlpeople " xcopy /s d:\collect\dlpeople\* import # assuming D drive perl —S import.pl dlpeople perl —S buildcol.pl dlpeople rd /s index # on Windows NT/2000 deltree /Y index # on Windows 95/98 ren building index mkdir building ==== Создание коллекции под Unix ==== Сначала вносим изменения в директорию, в которую была установлена система Greenstone. К примеру, если Greenstone была установлена с именем "по умолчанию, то в директорию верхнего уровня можно попасть, напечатав: cd ~/gsdl Затем напечатать: source setup.bash # if you're running the BASH shell source setup.csh # if you're running the C shell Этого файлы (которые вы можете просмотреть) указывают системе, где искать программы Greenstone. Если позже вы захотите вернуться на верхний уровень директории Green¬stone, напечатайте в командной строке cd $GSDLHOME. Если вы не уверены в типе использованной на вашем компьютере оболочки, напечатайте в командной строке $0, в результате чего вы получите полную информацию. Если при работе вы пользуетесь иной оболочкой, то вам нужно будет обратиться за советом к вашему системному администратору. Теперь вы имеете возможность формировать или переформировывать коллекции. Сначала мы рассмотрим программу mkcol.pl, написанную на Perl, имя которой означает "make a collection" (создание коллекции). Первый запуск этой программы можно осуществить, напечатав mkcol.pl, при этом на экране появится описание использования и список параметров. Как вы можете видеть в представленном примере, единственный обязательный аргумент - это creator (создатель), который исползьуется для описания лица, формирующего коллекцию. {{..:images:dev_fig_008.png?389x409&direct}} Теперь используем команду для создания начальных файлов и директорий, необходимых для создания домашней страницы участников проекта создания Цифровой библиотеки Greenstone. Для того, чтобы присвоить коллекции имя dlpeople, я печатаю: mkcol.pl —creator me@cs.waikato.ac.nz dlpeople Пожалуйста, измените мой email адрес на свой собственный! Для просмотра вновь созданных файлов перейдем в директорию созданной коллекции. Для этого напечатаем: cd $GSDLHOME/collect/dlpeople Вы можете просмотреть содержимое этой директории, напечатав Is. Здесь должно быть 7 директорий: archives, building, etc, images, import, index и perllib. Теперь необходимо заполнить коллекцию документами. Источник материалов для коллекции dlpeople находится на установочном CD-ROM Greenstone в каталоге collect/dlpeople. Для получения информации с CD-ROM под Linux вставьте диск в читающее устройство и напечатайте команду: mount /cdrom (эта команда может отличаться от системы к системе). После устаноки CD-ROM может использоваться, как любая другая директория, и напечатав Is /cdrom/collect, можно получить доступ к директории с именем dlpeople на CD-ROM. Затем скопируйте содержимое директории /cdrom/collect/dlpeople в директорию $GSDLHOME/collect/dlpeople/import. Для того, чтобы сделать это, напечатайте команду: cp —r /cdrom/collect/dlpeople/* import/ Затем наберите: umount /cdrom для того, чтобы закрыть CD-ROM напечатайте В директории коллекции etc находится файл collect.ucfg. Откройте его, воспользовавшись любым текстовым редактором или наиболее популярным в Linux текстовым редактором - emacs. В результате вы увидите окно, содержимое которого выглядит, как на рисунке , показывая содержимое файла конфигурации коллекции, созданного с использованием команды mkcol.pl -creator me@cs.waikato.ac.nz dlpeople. Теперь вы готовы импортировать коллекцию. Это процесс переноса документов в систему Greenstone, стандартизации формата документов, пути спецификации метаданных и структуры файла, в котором будут храниться документы. Напечатайте команду import.pl и получите полный список опций программы импорта. Для упрощения процедуры воспользуйтесь базовой командой import.pl dlpeople Не беспокойтесь по поводу быстро бегущего по экрану текста - это отчет о выполнении процедуры импорта. К сведению, процесс импорта этой коллекции занимает около 5 минут на 1 ГГц компьютере и несколько дольше на более медленных машинах. Обратите внимание на то, что вы не должны находиться в директориях collect или dlpeople при запуске этой команды, т.к. GSDLHOME уже определил для работы системы Greenstone местоположение необходимых файлов. Теперь давайте внесем изменения в файл конфигурации коллекции для модификации ее вида. Сначала присвоим коллекции имя. Оно будет воспринято веб-броузером как заголовок для титульного листа WWW-страницы, и использоваться в качестве иконки при отсутствии рисунка. Изменим строку collectionmeta collectionname "dlpeople" на строку вида: collectionmeta collectionname "The People of the NZDL project". Добавим описание коллекции между кавычками: //collectionmeta collectionextra ""//. Оно будет использовано в качестве материала для описания раздела "About" (о коллекции) на домашней WWW-странице. Я добавил "This collection is made up of the homepages of some of the people who have worked on the NZDL project." Важно вводить это описание одной строкой - не используйте для отбивки клавишу Enter/Ввод. Если вы хотите использовать в вашей коллекции многоязычный интерфейс, то существует способ вывода данного текста в соответствии с выбранным языком. Это описание будет представлено далее в разделе [[#configuration_file|configuration_file]]. Вы можете использовать изображения, которые будут фигурировать в качестве иконок на WWW-странице коллекции. Изображение, созданное мною, вы можете видеть на рисунке . Укажите путь нахождения изображения в кавычках в строке collectionmeta iconcollection "" файла конфигурации. Для краткости и мобильности _httpprefix_ может быть использован в качестве стартового URL, указывающего на изображение, находящееся в файловой области Greenstone. Например, вы можете ввести: httpprefix_/collect/dlpeople/images/icon.gif если вы поместили подходящее изображение в соответствующую директорию коллекции (в нашем примере это: collect\dlpeople\images ). Сохраните файл конфигурации коллекции и закройте его - он вам больше не понадобится на данном этапе обучения. Следующая фаза - "построение" коллекции, в которой будут созданы все индексы и файлы, отвечающие за работу коллекции. Напечатайте в командной строке buildcol.pl и получите список опций для формирования коллекции. Подробное описание этих опций представлено в Разделе [[#import_and_build_processes|import_and_build_processes]]. Пока же придерживайтесь значений "по умолчанию", напечатав: buildcol.pl dlpeople И снова не беспокойтесь о быстро бегущем по экрану тексте - это отчет о выполнении команды. Сделайте коллекцию "оперативной", как только материалы помещены в каталог building, перешлите их в каталог index. Если у вас прежде была уже сформирована коллекция, сначала удалите старые индесы, напечатав в командной строке: rm —r index/* (предполагается, что вы работаете в директории dlpeople). Затем введите: mv building/* index/ |< - 265 265 >| | **Windows** | **Linux** | | Linux Запустите setup, bat, чтобы сделать программы Greenstone доступными | Запустите setup, bat, чтобы сделать Запустите setup, bash или setup, csh, чтобы программы Greenstone доступными | | Скопируйте файлы с CD-ROM, используя менеджер файлов или с помощью команд Windows | Скопируйте файлы с CD-ROM, используя mount и команды Unix | | Замените индексы старой коллекции, напечатав rd /s index, потом ren building index затем mkdir building, или воспользуйтесь менеджером файлов | Замените индексы старой коллекции, напечатав rm –r index/* , а затем mv building/* index | Вы должны уметь обращаться к вновь созданной коллекции с вашей домашней страницы Greenstone. Если эта страница открыта в вашем броузере, вы должны ее обновить или закрыть окно броузера и перезапустить его (для того, чтобы избежать проблем кэширования). Если вы пользуетесь "локальной версией библиотеки" Greenstone, то должны перезапустить всю программу. Для просмотра новой коллекции щелкните кнопкой мыши по изображению. Полученный результат вы можете увидеть на рисунке . И в заключение приведем распечатку команд для создания коллекции dlpeople: cd ~/gsdl # assuming default Greenstone in home directory source setup.bash # if you're running the BASH shell source setup.csh # if you're running the C shell mkcol.pl —creator me@cs.waikato.ac.nz dlpeople cd $GSDLHOME/collect/dlpeople mount /cdrom # assuming this is where CD-ROM is mapped to cp —r /cdrom/collect/dlpeople/* import/ umount /cdrom import.pl dlpeople buildcol.pl dlpeople rm -r index/* mv building/* index ==== Различия между Windows и Unix ==== Создание коллекций в среде Unix и среде Windows очень похожи, за исключением некоторых небольших расхождений, которые были сведены в Таблицу . ===== Директории Greenstone ===== На рисунке представлена структура директорий GSDLHOME. В Таблице дано краткое описание содержимого каждой директории, показанной на диаграмме. Некоторые директории будут более детально рассмотрены в последующих разделах настоящего руководства - информация о разделах представлена в Таблице . {{..:images:dev_fig_010.png?415x143&direct}} |< - 132 331 66 >| | | содержание | раздел | | //bin// | Исполняемый двоичный код в директории с именем вашей ОС. | — | | //bin/script// | Скрипты языка Perl, используется для формирования и ведения коллекций (например, import.pl and buildcol.pl). Для получения описания этих программ напечатайте их имя в командной строке. | 1.3 | | //perllib// | Модуль языка Perl, используется во время формирования и импорта. | 2.1 | | //perllib/plugins// | Программа на языке Perl - приложение для обработки документов. | 2.1 | | //perllib/classify// | Программа - классификатор на языке Perl (например, код AZList, который создает список документов в алфавитном порядке по некоторому атрибуту). | 2.2 | | //cgi-bin// | Все CGI -скрипты системы Greenstone, которые помещены в cgi-bin каталог. | — | | //tmp// | Директория, используемая Greenstone для временного хранения файлов. | — | | //etc// | Файл конфигураций, инициализации и отчета об ошибках, база авторизации пользователей. | — | | //src// | Программа на C++, используется для обслуживанияколлекций через web-сервер. | 3 | | //src/colservr// | Программа на C++, используется для обслуживания коллекции –ответы на запросы и т.п. | [[#protocol|protocol]] | | //src/recpt// | Программа на C++, используется для передачи запроса через интерфейс пользователя и формирования ответа на запрос. | 3.9 | | //packages// | Пакет исходных программ, не входящих в состав программного обеспечения Greenstone, но используемых им | 2.5 | | //packages/mg// | Исходная программа MG, используется Greenstone для сжатия и индексации. | 2.5 | | //mappings// | ования символов Unicode (например, для установки китайской раскладки символов). | — | | //macros// | Макрофайлы, используются для пользовательского интерфейса. | 2.4 | | //collect// | Collections being served from this copy of Greenstone | 1.1 | | //lib// | исходная программа на C++, используемая как сервером коллекции, так и регистратором | 3.1 | | //images// | Изображения, используются для пользовательского интерфейса. | — | | //docs// | Документация | — | ===== Процессы import и build ===== При управлении формированием коллекцией из командной линии (см. Раздел [[#building_collections_from_the_command_line|building_collections_from_the_command_line]]) были использованы команды import.pl для импорта документов и buildcol.pl непосредственно для создания коллекции. Здесь мы подробнее рассмотрим, что делают сами эти программы и опции, которые их поддерживают. Используем переменную col_name для обращения к вновь сформированной или импортированной коллекции. Процессы импорта и формирования во многом схожи, в результате чего имеют много общих опций, описанных в Таблице . (Помните, что для того чтобы увидеть опции для различных скриптов Greenstone, достаточно набрать в командной строке его имя без добавления опций). |< - 132 104 293 >| | | **Аргумент** | **Функция** | | //-verbosity// | Число 0-3 | Контроль за тем, сколько данных о процессе значится как стандартная ошибка; 0 - мало, 3 - много. | | //-archivedir// | Имя директории | Указывает на место хранения архивных файлов Greenstone, на то, куда import.pl может их поместить и где buildcol.pl может их найти. По умолчанию используется директория GSDLHOME/collect/col name/archives | | //-maxdocs// | Число >0 | Показывает максимальное число документов, обработанных опциями import или built. Используется во время тестирования файла конфигурации новой коллекции или новых приложений. | | //-collectdir// | Имя директории | Указывает на место нахождения коллекции. По умолчанию используется GSDLHOME/collect | | //-out// | Имя файла | Указывает на файл, в котором записываются все исходящие сообщения, обычно для стандартных ошибок. Используется в работе приложений отладки найденных ошибок. | | //-keepold// | Отсутствует | Не удаляет результат предыдущих запусков процессов import или build; в процессе импорта не удаляет содержимое директории archives', в процессе формирования не очищает содержимое директории building. | | //—debug// | Отсутствует | Печать результатов работы приложений отладки. | ==== Процесс import ==== Процесс импорта служит для конвертации документов из их первичных форматов в Формат Архива Greenstone, используемый системой Greenstone, и записи в конечный файл (с именем archives, inf), который будет использоваться тогда, когда коллекция уже будет сформирована. Import.pl должен знать, какое приложение должно быть использовано и где находится файл-оригинал документа. В Таблице представлены опции для процессов импорта и формирования; в Таблице даны дополнительные опции, касающиеся только процесса импорта. Опции OIDtype заслуживают более подробного рассмотрения. Каждый документ имеет связанный Object Identi¬fier (Идентификатор Объекта) или OID. Это наилучший способ для хеширования содержимого документа (hash/хеш). Хотя он и очень медленный, но все же является достаточно простой альтернативой накоплению, представляя документы в том порядке, в котором они были импортированы. Вы можете использовать накопление для ускорения работы, но все же используйте хеширование в случае, если позже захотите добавить документы к вашей коллекции (без повторной процедуры импорта). |< - 132 104 293 >| | | **Аргумент** | **Функция** | | //-importdir// | Имя директории | Указывает на то, где могут быть найдены импортированные документы. По умолчанию: GSDLHOME/collect/coljiame/import. | | //-removeold// | Отсутствует | Очищает содержимое директории archives перед процессом импорта. | | //-gzip// | Отсутствует | Zip архивирует документы Greenstone, полученные в результате процесса импорта (ZIPPlug должен быть включен в список приложений, a gzip должен быть установлен на вашем компьютере). | | //-groupsize// | Число Х | Количество документов, группируемых в один архивный файл Greenstone, по умолчанию 1 (означает 1 документе 1 файл). | | //—sortmeta// | Имя тэга | Сортирует документы в алфавитном порядке по имени тэга метаданных метаданных. Однако, если коллекция имеет более 1 группы в одном архивном файле (т.е. groupsize >1), эта функция будет заблокирована. | | //-OIDtype// | Хэширование | Метод создания ОШ для документов: хэширование содержания, очень или наполнение медленный метод; метод наполнения работает гораздо быстрее и заключается в простом присваивании входящим документам последовательного номера | {{..:images:dev_fig_012.png?402x379&direct}} На рисунке представлен процесс импорта, инициированный процедурой работы программы import.pl. Каждый овал представляетсобой модуль исполняющий задачи определенной части системы Greenstone. Все эти модули находятся в директории GSDLHOME/perllib. Для шага 3. Обратите внимание, что переменные импортирования, такие как importdir и archivedir могут быть запущены из командной строки или из файла конфигурации коллекции.Если запуск произведен из командной строки, то все установки, сделанные через файл конфигурации, игнорируются. На 6 шаге был создан файл информационного архива (archives.ini). На 7 шаге был создан объект, который хранит информацию о том, куда были записаны документы, и подчиняется специальным инструкциям для процесса сохранения (таким как sortmeta, которая сортирует документы в соответствии со спецификой тэгов метаданных). Большая часть работы в процессе импорта делается приложениями, вызываемыми модулем plugin. Этот модуль создает конвейер приложений, описанных в файле конфигурации коллекции. Он также обслуживает запись документов архива Greenstone, используя объект document. ==== Процесс build ==== В течение процесса формирования происходит сжатие текста, по полному тексту производится индексация, описанная в файле конфигурации коллекции. Кроме того, на этом этапе обрабатывется и подключается информация о том, как уже сформированная коллекция будет выглядеть во всемирной паутине -например, данные о заголовках и иконках, классификационные данные и т.д. Buildcol.pl имеет много опций, используемых совместно с import.pl, см. Таблицу , и несколько уникальных, представленных в Таблице . |< - 132 104 293 >| | | **Аргумент** | **Функция** | | //-builddir// | Имя директории | Определяет, где будет храниться результат формирования (по умолчанию: //GSDLHOME/collect/col_name/building//). | | //-index// | Индексное имя | Определяет индексы процесса формирования. Данная (например '.Title) процедура по умолчанию присваивает индексы, обозначенные в файле конфигураций коллекции. | | //-allclassifications// | Отсутствует | В процессе формирования предупреждает удаление классификаций, не содержащих документов (например, классификация по литере "X" в заголовке, в случае, если там нет документов, чей заголовок начинается с литеры "X"). | | //-create_images// | Отсутствует | Автоматически создает коллекцию иконок (для пользования этой опцией у вас должны быть установлены GIMP и модуль Gimp Perl). | | //-mode// | //all//,
//compress_text//,
//infodb//, или
//build index// | Определяет, что должен сделать процесс формирования (по умолчанию all). All производит полное формирование, compress_text только сжатие текста документа, infodb создает базу данных информации, относящейся к коллекции - имя, файлы, связные файлы, классификационная информация и т.п., - build index -формирует индексы, указанные в файле конфигурации колекции или в командной строке. | | //—no_text// | | Не хранит сжатый текст. Данная опция используется в том случае, если вы хотите минимизировать размер сформированных индексов, в случае, если вы намерены во время запуска всегда выводить на экран оригинал документа. | {{..:images:dev_fig_014.png?308x234&direct}} На рисунке показана диаграмма пошагового выполнения процесса buildcol.pl. Многие из шагов относятся и к процессу импорта. Первый отличительный шаг - 4. Он производится только в том случае, если установлена опция create_images. Затем изображения создаются и регистрируются в файле конфигурации коллекции функцией скрипта buildcol.pl. Для того, чтобы это сработало, должны быть установлены и сконфигурированы программа GIMP (GNU Image Manipulation Program) и модуль Gimp Perl. Помимо этого, вы должны иметь доступ с правом записи (так же, как и чтения) в файл конфигурации коллекции. Шаг 5 сначала проверяет наличие определяющей коллекцию процедуры формирования. Некоторые коллекции требуют специальной разовой процедуры формирования, при которой указанный в коллекции составитель должен быть описан, и эта запись (имя файла должно включать название коллекции и приставку "builder") помещена в директорию коллекции perllib. Mgbuilder, в свою очередь, предоставляет информацию о заявленных составителях коллекции. На 5 шаге составитель (либо используя параметры по умолчанию, либо настройки коллекции) устанавливает исходные значения, такие как количество документов, включаемых в коллекцию, должна ли быть сохранена предыдущаяя версия коллекции и где расположены директории building и archive. На 6 шаге формирования текст документов сжат и проиндексирован, иконки и заголовки помещены в информационную базу данных коллекции, данные структурированы при поддержке классификаторов, впоследствии вызываемых приложениями коллекции. Всеми этими шагами управляет mgbuilder (или уполномоченный коллекцией компановщик), который, в свою очередь, использует для сжатия и индексации программное обеспечение MG ("Man¬aging Gigabytes," см. Witten et al., 1999). Части коллекции могут быть сформированы опцией mode, однако можно сформировать всю коллекцию, используя режим "по умолчанию" - сжать текст, проиндексировать его, содать информационную базу данных коллекции. Для создания доступа к сформированной коллекции через сеть Интернет вы должны переместить содержимое директории building в директорию index. Коллекция не может быть сформирована непосредственно в директории in¬dex, формирование больших коллекций может длиться несколько часов, а то и дней. Важной особенностью процесса формирования является то, что он не вносит изменений в существующую копию до тех пор, пока коллекция не будет окончательно сформирована. ===== Архив документов Greenstone ===== Все исходные документы, вносимые в систему Greenstone конвертируются в формат, известный как Greenstone Archive Format (Формат Архива Greenstone). Это формат XML, который размечает документы по разделам и поддерживает режим работы метаданных на уровне документа или раздела. Вам не придется создавать файлы архива Greenstone вручную, т.к. этой работой занимается специальное приложение обработки документов, описанное в следующей главе. Однако, т.к. это может помочь в понимании формата файлов системы Greenstone, мы решили поместить это описание ниже. В XML тэги разметки заключены в знаки о. Формат архива Greenstone преобразует документы, находящиеся в формате HTML и др. вставляя символы <, >, или " в исходный текст и избегая использования стандартных условий <, > и ".                 ]>
           ec158e.txt        Freshwater Resources in Arid Lands        HASH0158f56086efffe592636058        cover.jpg:image/jpeg:        p07a.png:image/png:        
                   Preface                                This is the text of the preface            
   
                   First and only chapter                
                           Part 1                                        This is the first part of the first and only chapter                    
       
                       Part 2                                      This is the second part of the first and only chapter                  
   
На рисунке вашему вниманю предложен Document Type Definition/ Определение типа документа (DTD) языка XML для формата архива Green¬stone. Изначально документ разбивается на Sections (секции или разделы), которые могут быть вложенными. Каждая Section имеет Description (описание) которое содержит 0 или более элементов Metadata, а также Con¬tent (содержательную часть), которая может быть равна нулю, а фактически это та часть, где находится содержимое документа. Каждому элементу Metadata соответствует имя атрибута и текстовые данные. В XML, PCDATA использует "parsed character сЫ:а"(анализируемые символьные данные): в основном текст. Рисунок демонстрирует пример документа в этом формате, представляющий собой небольшую книгу с двумя связными изображениями. Эта книга состоит из двух разделов, названных Preface и First and only chapter, которая состоит из двух подразделов. Обратите внимание на то, что нет никакого понятия "chapter": данный раздел представлен просто как раздел верхнего уровня. |< - 130 400 >| | //gsdlsourcefilename// | Исходный файл, из которого файлом архива Greenstone был сгенерирован | | //gsdlassocfile// | Файл, связанный с документом (например, файл изображения) | Открывающий тэг //
// обозначает начало каждого раздела документа, аа закрывающий тэг //
// - конец раздела. За каждым тэгом //
// следует раздел ////. В пределах данного раздела находятся элементы ////. Таким образом, различные метаданные могут быть связаны с индивидуальными разделами документа. Большинство из них используются в качестве специфических метаданных, таких как //<ТШе>//. Два значения атрибута name представлены в Таблице и специально разработаны Greenstone; все остальные представляют собой метаданные, прилагаемые к данному разделу. В некоторых коллекциях документы разбиты на отдельные страницы. Они означены как разделы. Например, книга может иметь разделы первого уровня, которые соответствуют главам, в пределах каждой из которых определено множество "разделов", которые фактически соответствуют отдельным страницам главы. ==== Метаданные документа ==== Метаданные содержат информацию описательного характера, такую как данные об авторе, заглавие, дату, ключевые слова и т.д., касающуюся конкретного документа. И, как было уже сказано выше, метаданные хранятся вместе с документом. Посмотрев на рисунок , вы можете увидеть, что тэг <Мегай?ага> определяет название типа метаданных и присваивает им значение. Обратимся для примера к строке First and only chap-ter на рисунке - заголовок документа является частью связанных с ним метаданных. Для определения типов метаданных был использован Dublin Core metadata standard (Dublin Core, 2001, Weibel, 1999; Thiele, 1997). Таблица демонстрирует, какие из стандартных типов, отмеченные звездочками, доступны сегодня к использованию на веб-сайте New Zealand Digital Library. Если нет возможности подобрать тип, точно описывающий метаданные, то можно использовать другой тип, не описанный в Dublin Core metadata standard. Например, в демонстрационной коллекции содержится метаданные how to и Magazine. |< - 133 94 305 >| | **Имя** | **Подтэг
метаданных** | **Описание** | | *Title | Title | Имя ресурса | | *Creator | //Creator// | Лицо, ответственное за формирование содержимого ресурса | | *Subject and keywords | //Subject// | Тема содержимого ресурса | | *Description | //Description// | Описание содержания ресурса | | *Publisher | //Publisher// | Лицо, ответственное за доступ к ресурсу | | Contributor | //Contributor// | Лицо, ответственное за пополнение содержимого ресурса | | *Date | //Date// | Дата публикации ресурса, либо другая важная дата, связанная с содержимым ресурса | | Resource type | //Type// | Характер или жанр содержимого ресурса | | Format | //Format// | Физическое или цифровое представление ресурса | | *Resource identifier | //Identifier// | Однозначная ссылка на ресурс это может быть идентификатор объекта или OID | | *Source | //Source// | Ссылка на источник, из которого был получен ресурс | | *Language | //Language// | Язык содержимого ресурса | | Relation | //Relation// | Ссылка на связный ресурс | | *Coverage | //Coverage// | Область охвата содержимого ресурса | | Rights | //Rights// | Информация о праве владенияи распространения ресурса management | ==== Inside Greenstone archive documents ==== Within a single document, the Greenstone archive format imposes a limited amount of structure. Documents are divided into paragraphs. They can be split hierarchically into sections and subsections; these may be nested to any depth. Each document has an associated Object Identifier or OID—these are extended to identify sections and subsections by appending section and subsection numbers, separated by periods, to the document's OID. For example, subsection 3 of section 2 of document HASHa7 is referred to as HASHa7.2.3. When you read a book in a Greenstone collection, the section hierarchy is manifested in the table of contents of the book. For example, books in the Demo collection have a hierarchical table of contents showing chapters, sections, and subsections, as illustrated in Figure . Documents in the Computer Science Technical Reports collection do not have a hierarchical subsection structure, but each document is split into pages and you can browse around the pages of a retrieved document. Chapters, sections, subsections, and pages are all implemented simply as “sections” within the document. {{..:images:dev_fig_015a.gif?373x251&direct}} {{..:images:dev_fig_015b.gif?373x251&direct}} Структура документа также индексируется и используется для поиска. Здесь существует 3 допустимых уровня индексации: //document//, //section// //^paragraph//, хотя большинство коллекций и не используют все три уровня для индексации. Индекс document содержит полный текст документа - вы пользуетесь им для поиска всех документов, которые содержат определенный набор слов (слова могут быть рассеяны по всему тексту документа). При создании индекса sec¬tion индексируется каждая порция текста от одного тэга
до появления следующего тэга
. Таким образом, глава, сразу же начинающаяся с нового раздела, создаст пустой документ при индексировании. Разделы и подразделы обрабатываются подобным образом: иерархическая структура документа сглаживается с целью создания поисковых индексов. При индексировании на уровне параграфов каждый параграф рассматривается как самостоятельный документ, что обеспечивает в дальнейшем возможность проведения более сфокусированного поиска. Выпадающее меню на рисунке наглядно демонстрирует поисковые индексы для Демонстрационной коллекции. "Chapters" и "section titles" -представляют собой индексирование на уровне разделов, тогда как "entire books" - индексирование на уровне документа. Индексирование любого вида метаданных может быть осуществлено так же, как индексирование текста. Например, некоторые коллекции предлагают для поиска использовать индексы заголовков раздела, что и показано на рисунке . ===== Файл конфигурации коллекции ===== Файл конфигурации коллекции управляет структурой коллекции и позволяет настроить ее внешний вид, параметры обработки документов и их публикации. Простои файл конфигурации коллекции создается, когда вы запускаете mkcol.pl, который создает запись для адресов E-mail лиц, ответственных за создание и поддержку коллекции. Следует помнить, что создание аргумента creator является принудительным, но если вы отдельно не оговариваете, то информация из этого аргумента автоматически будет перенесена в поле аргумента maintainer. |< - 132 397 >| | ''creator'' | E-mail создателя коллекции | | ''maintainer'' | E-mail службы поддержки коллекции | | ''public'' | Должна ли быть опубликована коллекция | | ''beta'' | Является ли настоящая публикация beta-версией коллекции | | ''indexes'' | Список индексов формирования | | ''defaultindex'' | Индексы по умолчанию | | ''subcollection'' | Определяет коллекцию, основанную на метаданных | | ''indexsubcollections'' | Указывает на подколлекцию для индексирования | | ''defaultsubcollection'' | Индексы по умолчанию для подколлекций | | ''languages'' | Список языков для индексирования | | ''defaultlanguage'' | Язык для индексирования, установленный по умолчанию | | ''collectionmeta'' | Определяет метаданные на уровне коллекции | | ''plugin'' | Определяет приложения, участвующие в процессе формирования | | ''format'' | Строковый формат (объяснение следует) | | ''classify'' | Определяет классификатор, используемый в процессе формирования | Каждая строка файла конфигурации коллекции по существу является парой "атрибут, значение". Каждый атрибут несет часть информации о коллекции, которая указывает на то, как документы должны выглядеть или как они должны быть обработаны. В таблице представлены элементы, которые должны быть включены в файл конфигурации коллекции, и для чего они используются. Таким же образом могут быть определены в файле конфигурации коллекции все опции командной строки для import.pl и buildcol.pl - например, при прочтении no_text true для опции buildcol.pl будет установлен атрибут no_text. Создание файла конфигурации коллекции с помощью скрипта mkcol.pl, показанного в Таблице , является очень простым и содержит необходимый минимум информации. Строки 1 и 2 являются значениями атрибута creator, созданными в результате работы программы mkcol.pl, и содержат адреса электронной почты лиц, ответственных за создание и наполнение коллекции (не обязательно один и тот же человек). |< - 132 132 265 >| | | **Атрибут** | **Значение** | | ''1'' | ''creator'' | username@email.com | | ''2'' | ''maintainer'' | username@email.com | | ''3'' | ''public'' | True | | ''4'' | ''beta'' | True | | ''5'' | ''indexes'' | document:text | | ''6'' | ''defaultindex'' | document:text | | ''7'' | ''plugin'' | ZIPPlug | | ''8'' | ''plugin'' | GAPlug | | ''9'' | ''plugin'' | TextPlug | | ''10'' | ''plugin'' | HTMLPlug | | ''11'' | ''plugin'' | EMAILPlug | | ''12'' | ''plugin'' | ArcPlug | | ''13'' | ''plugin'' | RecPlug | | ''14'' | ''classify'' | AZList metadata Title | | ''15'' | ''collectionmeta'' | collectionname "sample collection" | | ''16'' | ''collectionmeta'' | iconcollection "" | | ''17'' | ''collectionmeta'' | collectionextra "" | | ''18'' | ''collectionmeta'' | .document:text "documents" | Строка 3 указывает на тот факт, будет ли данная коллекция после ее формирования доступна широкому кругу пользователей, и принимает 2 значения: true (по умолчанию, означает, что коллекция будет доступна для публичного пользования) или false (означает, что не будет). Последнее обычно используется во время создания тестовых коллекций или для формирования коллекций документов для собственного использования. Линия 5 определяет, какие индексы создаются во время построения коллекции: в этом примере проиндексирован только текст документа. Индексы могут быть сконструированы для уровней //документа//, //части//, и //параграфа//. Они могут содержать материал в форме //текста// или в любом metadata\u2014 наиболее общем //Названии//. Форма используется для определения индекса //level:data//. Например, для того чтобы включить так же и заголовок части, вы должны поменять линию 5 на //indexes document:текст section:Название//. Более, чем один тип данных, могут быть включены в тот же индекс путём разделения данных запятыми. Например, для создания заголовков, текстов и дат на уровне части, линия должна читаться, как //indexes section:текст, Название, Дата.//. Индекс по умолчанию определён на линии 6, и используется по умолчанию на странице поиска. Линии 7-13 определяют, какие приставки использовать, когда документы конвертируются в архивный формат Гринстоуна и, когда создаются коллекции из архивных файлов. Часть [[#plugins|plugins]] даёт информацию о том, какие приставки доступны. Последовательность приставок в списке – это последовательность, в которой они пытаются обработать докумет. И как только приставка способна обработать найденный документ, все дальнейшие попытки прекращаются. Линия 14 определяет алфавитный список названий, создающийся с целью просмотра. Эти структуры конструируются при помощи "classifiers". Часть [[#classifiers|classifiers]] даёт информацию о классификаторах и о том, что они могут делать. Линии 15-18 использованы для определения метаданных на уровне коллекции. Определённая через //collectionname//, длинная форма названия использована как “название” коллекции для веб браузера. //collectionicon// даёт URL для иконки коллекции. Если индекс определён (как в линии 18), последующий текст отображается как имя этого индекса на странице поиска. Особенно важная часть метаданных - //collectionextra//, которая даёт развёрнутый текст, окружённый знаками цитат, описывающий коллекцию. Он будет показан как текст “О коллекции”. Вы можете использовать разные версии //collectionextra// для разных языков путём добавления спецификации языка в квадратные скобки. Например, > collectionmeta collectionextra "collection description" > collectionmeta collectionextra [l=fr] "description in French" > collectionmeta collectionextra [l=mi] "description in Maori" Если установлен язык интерфейса "fr" или "mi", то будет отображена соответствующая версия описания. Для других языков появится версия, заданная по умолчанию. Этот простой файл конфигурации коллекции, не включающий ни примеров строк формата, ни подколлекции, ни средств языка, предоставляемых файлом конфигурации. Строковый формат будет подробнее рассмотрен в Разделе [[#formatting_greenstone_output|formatting_greenstone_output]], а здесь мы рассмотрим ситуацию с поколлекциями и языками. ==== Подколлекции ==== Greenstone позволяет определять подколлекции и для каждой из них формировать отдельные индексы. Например, в одной коллекции имеется большое подмножество документов, именуемых //Food and Nutrition Bulletin//. Мы используем эту коллекцию в качестве примера. В этой коллекции имеются 3 индекса и все на уровне раздела: один - для коллекции, второй - для //Food and Nutrition Bulletin// и третий - для остальных документов. Ниже приведены соответствующие строки описания в файле конфигурации коллекции. indexes section:text subcollection fn "Title/^Food and Nutrition Bulletin/i " subcollection other "!Title/^Food and Nutrition Bulletin/i " indexsubcollections fn other fn,other Вторая и третья строки определяют следующие подколлекции: с именем fn, которая содержит документы Food and Nutrition Bulletin, и с именем other, в которой находятся остальные документы. Третье поле содержит выражение на языке Perl, которое идентифицирует эти подмножества, используя метаданные типа Title: в первом случае ищем заголовки, которые начинаются с Food and Nutrition Bulletin , а во втором - в которых данное описание отсутствует (обратите внимание на знак "!"). Знак i в конце строки означает, что при работе этих приложений регистр символов не учитывается. Поле метаданных, в нашем случае Title, может быть любым допустимым полем, или Filename, соответствущим первоначальному имени файла документа. В четвертой строке, indexsubcollections, определяются три индекса: один - для подколлекции fn, второй - для подколлекции other и третий - для обеих подколлекции (т.е. для всех документов). Обратите внимание на то, что если бы два вхождения были определены в строке indexes, то общее количество сгенерированных индексов было бы шесть, а не три. Если коллекция содержит документы на разных языках, то индексы должны быть определены отдельно для каждого языка. Язык является инструкцией метаданных; Language is a metadata statement; значения определяются в соответствии со стандартом ISO 639 двухбуквенным кодом, обозначающим язык - например, еп - это English (аглийский), zh - Chinese (китайский), и mi - это Maori (маори). Так как значения метаданных могут быть определены на уровне раздела, отдельные части документа могут быть представлены на разных языках. Например, если файл конфигурации содержит: текст раздела, заголовок раздела, текст документа и индексы текста параграфа, то для английского, китайского и языка маори были indexes section:text section:Title document:text paragraph:text languages en zh mi были бы созданы двенадцать индексов в целом. Добавление нескольких подколлекций умножает число индексов. Однако, следует с осторожностью относиться к раздуванию количества индексов. (Эта индексная спецификация могла бы быть определена с использованием средств subcollection, а не средство languages. Однако, в связи с тем, что синтаксис препятствует созданию "подколлекций подколлекций", становится невозможным отдельно индексировать каждый язык в подколлекциях). ==== Перекрестный поиск по коллекции ==== Greenstone имеет средство для "перекрестного поиска по коллекции", котороей позволяет производить поиск по нескольким коллекциям сразу с предоставлением объединенных результатов, так, как если бы вы искали по одной объединенной коллекции. Может быть просмотрено любое подмножество коллекций: Preferences page (страница определения предпочтений) позволяет Вам выбирать, какие коллекции должны быть включены в поиск. Возможность перекрестного поиска оговаривается строкой: supercollection col _1 col _2 …. где коллекции, вовлеченные в поиск, именуются col_l, col_2,... Точно такая же строка должна быть и в файле конфигурации тех коллекций, которые используются для перекрестного поиска.