XYZFind это сервер, содержащий XML хранилище информации и XML систему запросов.
Как хранилище информации XML, XYZFind принимает любое количество правильно сформированных XML документов и представляет данные в виде единого документа, вбирающего в себя все получаемые документы. Оригиналы документов могут быть извлечены, изменены или удалены из хранилища. После того как набор документов был проиндексирован XYZFind, становятся доступными поиск и запросы, о которых будет рассказано ниже.
Как система запросов XML, XYZFind принимает запросы, сформированные на языке XML, называемом XYZQL. XYZQL очень богатый по своим возможностям язык запросов, включающий поддержку запросов path-level, запросы булеан, поиск по ключевым словам и запросы по числовым диапазонам. XYZQL система запросов это система фильтрующих ограничений, которая определяет какие конкретно XML документы будут возвращены, а также какие части документов. XYZFind процессор запросов использует свое хранилище для оптимизации процесса фильтрации, превосходя по свом показателям выходных данных менее утонченные подходы.
Мы испытали некоторые трудности при поиске подходящего, относительно дружелюбного по отношению к пользователям редактора XML, который поддерживал бы Unicode и имел способность редактировать большие файлы и с легкостью кодировать текст. Персонал, нанятый нами для кодировки и корректирования, обладает превосходным знанием русского языка, однако эти сотрудники не являются экспертами по XML или специалистами в области информационных технологий. Мы имеем возможность, и фактически обучаем наших корректоров, однако мы предпочитаем использовать редактор, который могли бы использовать люди с минимальным знаниями в области XML и информационных технологий.
Для предыдущих и текущих англоязычных проектов, не требовавших способности поддерживать Unicode, мы использовали emacs с PGSGML главным модулем ( http://www.lysator.liu.se/~lenst/about_psgml/), и SoftQuad’s XMetaL ( http://www.softquad.com/). С версией 2.1 XMetaL в настоящее время обеспечивает хорошую поддержку Unicode (хотя он не вполне справляется с задачей поддержки языков, читаемых справа налево, в частности иврита) по сравнению с временем, когда мы начали проект в 1999 году, когда поддержка Unicode, предоставляемая ими, была очень ограничена и XMetaL не показывал кириллические тексты Unicode. В качестве дефолтного варианта редактора XML для нашего проекта нами был избран WordPefect ( http://www.corel.com/). Он позволяет редактировать большие документы, имеет привычный для новичков в области XML интерфейс Word и обеспечивает приемлемый уровень поддержки Unicode. Остальные протестированные нами продукты мы решили не использовать поскольку их интерфейс не подходил для целей нашей работы, они либо не обеспечивали поддержку Unicode, либо требовали знания XML выше уровня нанятого нами персонала.
Главная задача проекта «Летопись журнальных статей» — обеспечить свободный доступ посредством 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 предметным категориям, содержащимся внутри выбранного верхнего или второго предметного заголовка. Это позволяет пользователю производить широкий поиск по одному общему предметному заголовку и всем подразделам, которые в нем находятся, либо ограничить поиск до одного определенного предметного подраздела второго или третьего уровня.
Читать дальше