Создание инструмента научных исследований на основе XML: Проблемы и методология - страница 8
4. Создание интерфейса
Главная задача проекта «Летопись журнальных статей» — обеспечить свободный доступ посредством Web интерфейса к данным за двадцать лет публикации «Летописи журнальных статей», которые мы в конце концов приведем в электронную форму и закодируем при помощи XML. Трудоемкий процесс оцифровывания и кодирования по-прежнему продолжается, но мы уже начали работу по созданию Web интерфейса для данных.
Прототип Web интерфейса, используемый нами в настоящее время, представляет собой комбинацию HTML, Java и JavaScript, связанных с сервером XYZFind. Интерфейс Летописи это страница сервера Java (Java Server Page (JSP)), которая использует Javascript и Java, связанную с HTML, и побуждает локальную JavaBean без памяти о предыдущих результатах поиска к более сложной логике (которая скорее всего в конечном итого будет выделена в отдельную JavaBean). В дополнение к классам XYZFind JSP также использует Xerces для доступа к XML Document Object Model (DOM) и Xalan для Extensible Stylesheet Language Transformations (XSLT) трансформаций.
Динамическое содержание страницы управляется внешне загружаемым JavaScript. Первоначально код JavaScript также сочетался с JSP файлом. Проблемы возникали когда поисковые системы JSP/Servlet неправильно распознавали JSP файлы, когда они содержали нелатинские символы Unicode (еще одна трудность, порожденная Unicode).
Поисковый интерфейс позволяет пользователю вносить слова для поиска и сочетать их с булеаном «И» («Все слова») или булеаном «Или» («Любые слова»), или задавать кокретную фразу для поиска. Кроме того, пользователь может выбирать временной диапазон и предметную область. После того как пользователь выбирает какой-либо предмет поиска первого уровня (div1), страница динамично генерирует список заголовков второго уровня (div2), с уже выбраннным самым первым подзаголовком. Аналогично, как только пользователь выберет какой-либо подзаголовок второго уровня, страница динамично генерирует перечень входящих в него подзаголовков третьего уровня (div3). Если пользователь выбирает только раздел из верхнего уровня (div1) или второго уровня (div2), система запросов произведет поиск по всем div2 и/или div3 предметным категориям, содержащимся внутри выбранного верхнего или второго предметного заголовка. Это позволяет пользователю производить широкий поиск по одному общему предметному заголовку и всем подразделам, которые в нем находятся, либо ограничить поиск до одного определенного предметного подраздела второго или третьего уровня.
Рисунок 1 показывает интерфейс поиска, каким он первоначально предстает пользователю.
Рисунок 1: Поисковый интерфейс Летописи (Первоначальный вид)
На рисунке 2 изображен поисковый интерфейс с выбранным подзаголовком третьего уровня (div3) и другими опциями из меню «Найти» и падающего меню «Период».
Рисунок 2: Поисковый интерфейс Летописи (с изображением большего количества опций)
Рисунок 3 ниже демонстрирует страницу с результатами поиска. Каждая ссылка указана с подзаголовком, непосредственно предшествующим ей структурно с соответствующей комбинацией римского номера, арабского номера и кириллической буквы, определяющей положение подзаголовка в предметной иерархии. Исследователи, использовавшие печатный вариант Летописи, знакомы с предметной иерархией и, вероятно, ожидают увидеть эти индикаторы положения ссылки в структуре Летописи.