Конфигурация HTML-парсера Проектирование конфигурации HTML-парсера
Конфигурация HTML-парсера проектируется в соответствии с типичными поисковыми задачами, которые могут возникнуть для данной коллекции документов. В процессе разработки конфигурации рекомендуется придерживаться следующих основных шагов.
Определить имена поисковых зон и поисковых атрибутов, которые будут участвовать в языке запросов.
Пример: Для поиска по подзаголовкам документов введем поисковую зону header. Для поиска по тексту ссылок на другие документы введем поисковую зону anchor. Для поиска по адресам ссылок на другие документы введем поисковый атрибут link.
Для каждой поисковой зоны указать список имен HTML-тегов, содержимое которых должно принадлежать данной поисковой зоне.
Пример: Определим, что поисковой зоне header принадлежит текст документа, находящийся внутри любого из тегов <h1>...</h1>, <h2>...</h2> или <h3>...</h3>.
Определить, будут ли некоторые поисковые зоны условными. Условными будем называть поисковые зоны, образуемые только при наличии заданного поискового атрибута. Для списка HTML-тегов, определяющего поисковую зону, может быть дополнительно указано имя некоторого поискового (не HTML!) атрибута. Если имя указано, и при попытке создать поисковую зону из содержимого данного HTML-тега эта зона не получает поискового атрибута с указанным именем (и любым значением), то поисковая зона не создается.
Пример: Пусть поисковой зоне anchor должен принадлежать текст документа, находящийся внутри тега <a>...</a>, но только при условии, что данный текст ссылается на другой документ. Для этого данный тег должен иметь HTML-атрибут href. Поэтому определим поисковую зону anchor как условную, возникающую только при наличии поискового атрибута link, описанного в следующем примере.
Для каждого поискового атрибута выбрать его тип (из числа описанных в разделе Типы атрибутов) и список пар (имя HTML-тега, имя HTML-атрибута этого тега). Если у HTML-тега, имя которого совпадает с первым именем в паре имеется HTML-атрибут, имя которого совпадает со вторым именем в паре, то значение этого HTML-тега распознается как значение определяемого поискового атрибута по правилам, специфичным для указанного типа поискового атрибута.
Пример: Определим, что поисковый атрибут link имеет тип URL и значениями этого атрибута будут значения HTML-атрибута href HTML-тега <a> и значения HTML-атрибута src HTML-тега <frame>.
Конфигурация парсера, спроектированная в примерах данного раздела, имеет следующий вид. <HtmlParser> <Zones> header = h1,h2,h3 anchor = a/link </Zones> <Attributes> link = URL,any/a.href,frame.src </Attributes> </HtmlParser> Формальные правила описания конфигурации приведены в следующем разделе.