В электронной библиотеке Гринстоун 3 сущесвуют различные механизмы классификации документов.

Большинство из них решают стандартные задачи. Например, такие:

  • Построение алфавитного каталога документов. Для данной классификации необходимо лишь присутсвие названий документов, которые сортируются по алфавиту.
  • Построение алфавитного каталог групп документов, каждая из которых может быть раскрыта для доступа к документам, относящимся к группе. Для построения данных классификаций необходимо добавление к каждому документу поля метаданного, относящего его к группе.

Однако, бывают случаи, когда необходима большая глубина вложенности документа в группы.

Для этого в Greenstone 3 существует классификатор иерархий. Для его использования в метаданное документа необходимо задавать путь в иерархии, к которому предполагается отнести данный документ. Примером такого пути может быть строка "3.7.2". Точка является разделителем, а цифры обозначают номер подгруппы для данного уровня вложенности.

Сложность состоит в том, что на практике задавать для каждого документа цифровое значение пути иерархии неудобно, так как приходится постоянно обращаться к документу, в котором соотнесены названия элементов иерархии и их пути.

Для того, чтобы облегчить выполнение этой задачи я написал необольшое меню выбора на javaScript, которое загружает из Greenstone 3 файл с названиями элементов иерархии и путей и после создания поля метаданного открывает меню для задания цифрового значения.

Значение можно задать как мышкой, выбирая группы и подгруппы по названиям элементов иерархии, так и с клавиатуры, задавая цифровые значения пути. При задании цифровых значений пути меню будет автоматически переходить на текущий выбранный уровень иерархии.

Таким образом, задача по назначению уровня иерархии для данного способа классификации документов значительно упростилась.

Код был принят в проект Greenstone 3. http://trac.greenstone.org/browser/main/trunk/greenstone3/web/interfaces/default/js/hierarchy.js