XML-поиск

XML-поиск XML-поиск называется структурированным поиском. Некоторые исследователи предпочитают термин полуструктурированный поиск (semi- structural retrieval), чтобы отличить XML-поиск от обработки запросов в базах данных. Мы используем терминологию, которая широко распространена в среде сообщества, занимающегося XML-поиском. Например, обычно XML-запросы называются структурированными, а не полу структурированными. Термин структурированный поиск редко используется в контексте запросов к базам данных и в этой книге относится исключительно к XML-поиску.

Существует второй тип задач, связанных с информационно-поисковыми системами и занимающих промежуточное место между поиском по неструктурированным данным и запросами к реляционным базам данных: параметрический и зонный поиск, который был рассмотрен ранее. В модели параметрического и зонного поиска предусмотрены поля параметров (реляционные атрибуты наподобие data или file-size) и зоны — тестовые атрибуты, каждый из которых хранит фрагмент неструктурированного текста как значение, например, author или title. Эта модель данных является плоской, т.е. в ней нет вложенности атрибутов. Количество атрибутов мало. В противоположность этому XML-документы имеют более сложную древовидную структуру, в которой, атрибуты вложены. Количество атрибутов и узлов в этой структуре больше, чем при параметрическом и зонном поиске

XML-документ (XML document) — это упорядоченное и размеченное дерево. Каждый его узел — это XML-элемент (XML element). Он записывается с помощью открывающего и закрывающего тегов (tag). Элемент может иметь один или несколько XML-ampufjvmoe (XML attributes). В XML-документе, представленном на рисунке, элемент scene заключен между двумя метками <scene . . . > и </scene>. Он имеет атрибут number со значением vii и два дочерних элемента: title и verse.

Листья дерева (leaf nodes) содержат текст, например Shakespeare, Macbeth и Macbeth' s castle. Внутренние узлы дерева (internal nodes) описывают либо структуру документа (title, act и scene), либо метаданные (author).

Как правило, для доступа к XML-документам и их обработки используется объектная модель документа, или DOM (Document Object Model). Эта модель представляет элементы, атрибуты и текст внутри элементов как узлы дерева. С помощью инртерфейса прикладного программирования модели DOM можно обработать XML-документ, начиная с корневого узла и спускаясь вниз по дереву от родительских узлов к дочерним.

Для перебора путей в коллекции XML-документов обычно используется язык XPath. В данной главе эти пути называются контекстами XML (XML contexts) или просто контекстами. Для наших целей можно ограничиться лишь небольшим подмножеством «зыка XPath. Выражение языка XPath node выбирает все узлы по заданному имени. Последовательные элементы пути разделяются косой чертой: команда act /scene выбирает элементы scene, родительский узел которой является элементом act. Двойная косая черта означает, что в промежутке может встретиться произвольное количество элементов: команда play//scene выбирает все элементы scene, встречающиеся в элементе play. На рис. 10.1 это множество состоит из одного элемента scene, достичь которого можно из корня через узлы play, act и scene. Начальная косая черта обозначает на-чало пути, которое расположено в корневом элементе. На рис. 10.2 команда /play/ title выбирает названия пьес, команда /play//title выбирает множество, состоящее из двух элементов (названия пьесы и названия сцены), а команда /scene/title не выбирает ни одного элемента. Для удобства обозначений мы допускаем, что финальный элемент пути является проиндексированным термином из лексикона коллекции, и отделяем его от пути символом #, хотя это и не соответствует стандарту языка XPath. Например, команда title# "Macbeth" выбирает все названия, содержащие термин Macbeth.

Понятие схемы (schema) Схема накладывает определенные ограничения на структуру XML-документов, допустимых в конкретном приложении. Схема для пьес Шекспира может поставить условие, что сцены могут быть только дочерними элементами актов и только акты и сцены могут иметь атрибут number. Существует два стандарта схем для XML-документов: XML DTD (document type definition) и XML (XML schema). Пользователи могут задавать структурированные запросы системе поиска по XML-документам, только если у них есть хотя бы минимальные знания о схеме коллекции.

tel-icq