Pratikakis, J. Foster, M. Hicks//Proc. of the 2006 ACM SIGPLAN conf. on Programming language design and implementation. - ACM NY, 2006.
7. Qadeer, S. KISS: Keep It Simple and Sequential [TeKCT]/S. Qadeer, D.Wu//Proc. of the ACM SIGPLAN 2004 conf. on Programming language design and implementation. - ACM NY, 2004.
8. Chugh, R. Dataflow Analysis for Concurrent Programs using Datarace Detection [Текст]Ж. Chugh, J. Voung, R. Jhala [et al.]// Proc. of the 2008 ACM SIGPLAN conf. on Programming language design and implementation. - ACM NY, 2008.
9. Ицыксон, В.М. Исследование средств построения моделей исходного кода программ на языках C и C++ [Текст]/В.М. Ицыксон, М.И. Глухих, А.В. Зо-
зуля [и др.]//Научно-технические ведомости СПбГПУ - 2009. - № 1.
10. Cytron, R. Efficiently Computing Static Single Assignment Form and the Control Dependence Graph [Текст]Ж. Cytron [et al.]//ACM Transactions on Programming Languages and Systems. - ACM NY, 1991.-Vol. 13.-№ 4.
11. Ramanujam, J. Languages and Compilers for Parallel Computing. Analysis of Event Synchronization in Parallel Programs [Текст]Л. Ramanujam, A. Mathew. -Berlin, Springer, 1995.-P. 300-315.
12. Моисеев, М.Ю. Итеративный алгоритм статического анализа для обнаружения дефектов в исходном коде программ [Текст]/М.Ю. Моисеев // Информационные и управляющие системы.-2009.-№ 3.
УДК 004.021
А.А. Иванков, Д.С. Елисеев
ДИНАМИЧЕСКОЕ ОТСЛЕЖИВАНИЕ МОДУЛЕМ ИНФОРМАЦИОННО-ПОИСКОВОЙ СИСТЕМЫ ИЗМЕНЕНИЙ В СТРУКТУРЕ ИЛИ ТЕКСТЕ ИНТЕРНЕТ-РЕСУРСА
В данной статье предлагается решение задачи динамического отслеживания программными средствами информационно-поисковой системы (ИПС) изменений Интернет-ресурса на основе анализа изменений в его структуре или содержании. В качестве Интернет-ресурса (далее - документа) будем рассматривать только HTML-страницы. Опыт работы с собственной ИПС [1-3] позволяет утверждать, что подавляющее большинство веб-серверов по-прежнему предоставляют доступ к своим ресурсам в формате HTML-страниц. Мы не ставили перед собой задачу анализа документов в форматах XML, RDF и т. п. Они слишком редко встречаются в процессе обхода роботами нашей ИПС веб-серверов, изменения ресурсов которых представляют для нас интерес. Реализованные нами алгоритмы сравнительно просто расширить и на упомянутые выше форматы. Изменениями в структуре или содержании HTML-страницы будем оперировать как количественными характеристиками, задав соответствующие метрики.
Важность этой задачи вызвана тем, что БД ИПС должна, по возможности, содержать актуальную копию документа или отдельных его частей. В случае веб-сервера, который предоставляет доступ к данному документу и корректно обрабатывает запрос клиента «If-Modified-Since», такую задачу приходится решать всякий раз, когда изменяется значение атрибута «Last Modified» этого документа. Для документов, которые хранятся на веб-серверах, где администрирование организовано недостаточно профессионально, эту задачу решаем с определенной периодичностью. Когда атрибуты документа указывают, что последний претерпел какие-то изменения, естественным образом возникает еще одна задача - обнаружение, локализация этих изменений в структуре и содержании HTML-страницы. Следует подчеркнуть, что мы имеем в виду еще и алгоритмы для сбора данных, которые периодически обновляются и накапливаются на веб-серверах в течение достаточно длительного периода их существования. Примерами таких данных могут быть показатели
различных финансовых институтов (бирж, рынков), метеосводки, сообщения в блогах, а решаемыми при этом задачами - ретроспективный сбор этих данных для последующего их анализа. Еще один пример задачи, которая может быть решена с помощью наших алгоритмов, - метапоиск и исследования, требующие имитации действий пользователя, обращающегося с запросом к ИПС.
Автоматическое отслеживание изменений может быть основано на различных алгоритмах и моделях обрабатываемого документа. Хорошо известны такие алгоритмы как HtmlDiff, MMDiff, X-Diff, XYDiff. Они позволяют отслеживать изменения в частично структурированных или иерархически организованных документах и уже вошли в арсенал ряда поисковых машин. В большинстве работ для сравнения меток вершин помеченного дерева как иерархической модели структуры документа привлекается модель плоского текста. Нам представляются перспективными исследования алгоритмов сравнения иерархических моделей документов, предполагающие задание различных количественных мер семантической близости текстов в вершинах этого дерева.
Алгоритмы отслеживания семантических изменений в документах - это интенсивно развивающееся в настоящее время направление [4-7]. Мы лишь вкратце, на примере алгоритма АСОИ [6, 7], отметим присущие им достоинства и недостатки. В [6, 7] предлагается алгоритм семантического отслеживания изменений в документах, представленных в форме HTML-страницы. Автор этих публикаций, как и целого ряда подобных им, оперирует понятием семантики документа или отдельных его частей. Понятие семантики обычно интерпретируется в рамках семантической модели «сущность-отношение», ставшей уже канонической в технологиях проектирования реляционных баз данных. Такой подход, безусловно, обладает элементом новизны по сравнению с векторными моделями документов. Один из недостатков этих алгоритмов - их односторонняя ориентация только на семантический аспект. Автор АСОИ строит семантическую иерархию документа на основе иерархии некоторого подмножества HTML-тегов и тут же замечает, что «описание изменения в HTML-коде, основанное на HTML-грамматике,... не является достаточно информативным, и с его помощью тяжело отследить реальное изменение» [6]. Другими словами, для выделения семантических иерархий
в документе используется HTML-грамматика, и при этом отрицается ее, фундаментальная роль в таком алгоритме. Это противоречие вряд ли можно трактовать как диалектическое. На наш взгляд, при анализе изменений HTML-страницы HTML-грамматика может предоставить отправную точку для выявления таких изменений в структуре ресурса. Содержимое структурных элементов, которые изменились или были добавлены в новой редакции ресурса, далее может быть подвергнуто морфологическому, синтаксическому и семантическому анализу.
Постановка задачи
Динамическое отслеживание изменений в документах должно быть основано на моделях, в которых учтена как структура, так и содержание. При этом анализ структуры играет иногда не менее важную роль, чем анализ текста. Алгоритмы должны, по возможности, обеспечить автоматический режим работы. Огромные объемы информации, подлежащей мониторингу, с необходимостью предполагают, что операторы ИПС участвуют в этом процессе как можно реже. Они (операторы ИПС) должны привлекаться только в следующих исключительных случаях:
инициирование процесса мониторинга конкретного документа или их конечного подмножества; одна из главных задач на этом этапе -анализ его (их) структуры путем уточнения подмножества HTML-тегов и отношения порядка, заданных по умолчанию на элементах этого подмножества;
устранение ошибок гипертекстовой разметки в исходном документе, когда такие исправления не удается сделать автоматически;
принятие решения о продолжении мониторинга после кардинального изменения структуры новой редакции документа, когда содержание всего документа, либо какой-то его части не удовлетворяет критерию релевантности информационной потребности.
Обсуждаемый в данной статье метод и реализованный на его основе модуль ИПС построены на основе метризации множества редакций (версий) документа как в отношении их структуры, так и в отношении содержания всего текста документа или отдельной его части. Под метризацией мы подразумеваем процедуру задания метрики на множестве элементов определенного типа.
Структура документа определяется исходя из отношения порядка, заданного нами на некотором подмножестве HTML-тегов. Это подмножество выделено нами, на основе личного опыта разработки и сопровождения веб-сайтов и веб-порталов. Стандарт языка HTML не предполагает, что его теги будут служить для определения структуры документа. Теги гипертекстовой разметки, в отличие от тегов XML, указывают только на то, как следует отображать документ, отдельные его элементы. Встречаются ресурсы, подготовленные с нарушением HTML-грамматики. В тех случаях, когда не возникает неоднозначных вариантов устранения ошибок, с ними справляется модуль ИПС. Но исправление грубых ошибок -сложная задача. Принимая во внимание ошибки верстки, которые допускают при подготовке материала к публикации в Интернете, наши допущения относительно иерархии, которую мы задаем на подмножестве HTML-тегов, могут быть оспорены, как не единственно возможные для конкретного документа. Выбранное нами подмножество HTML-тегов и отношение порядка отражают, на наш взгляд, классическую семантическую иерархию отдельных частей документа, когда заголовок раздела рассматривается в качестве семантического родителя по отношению к самому разделу. Однако такой выбор далеко не однозначен, и для каждого конкретного ресурса возможен пересмотр как элементов этого множества тегов, так и отношения порядка на них в зависимости от конкретных информационных потребностей, для удовлетворения которых инициируется мониторинг.
Это главные причины, по которым к инициации мониторинга изменений документа необходимо привлекать оператора ИПС.
Метризация на основе отношения порядка, заданного на подмножествах HTML-тегов
Для определения структуры документа нами были выделены следующие подмножества HTML-тегов (указаны вместе с отношением порядка, заданным на элементах):
Html < Head < { TITLE, META } < Body <
< { Hx < { P, PRE, DIR, MENU, DL, DT, (1)
DD, UL, OL, LI, TABLE < {TR < {TH, TD}}}},
где Hx - один из элементов {H1, H2, H3, H4, H5, H6}, и на этом подмножестве, в свою очередь, со-
гласно HTML-грамматике, задано отношение порядка H1< H2 < H3 < H4 < H5 < H6.
На основе этой иерархии HTML-тегов выполняется построение описания структуры документа, отчасти совпадающее с так называемым «DOM-деревом» этого документа. Здесь следует понимать, что эта иерархия используется для построения помеченного дерева, которое не изоморфно DOM-дереву лишь в силу редуцирования из гипертекстового документа тегов (вместе с их содержимым), исключенных при построении подмножеств (1). Не следует думать, что, вложенные в ячейку таблицы, <TD>, списки или теги <P>, <DIV> создают какие-либо трудности при построении нашего описания структуры документа. Такая ситуация разрешается модулем ИПС стандартным образом и вершина дерева, помеченная тегом <TD>, будет родителем вершин с метками <P>, <DIV> и т. п. В ИПС поддерживаются две формы такого описания: скобочная запись и XML.
Метрика на множестве вышеуказанных структур задается стандартным образом, как редактирующее расстояние [8].
Пусть имеется конечное (ограниченное сверху) множество сигнатур (меток) вершин Sgntr. В простейшем случае - множество HTML-тегов. Ограничение на мощность множества Sgntr объясняется вполне очевидными соображениями: обрабатываемые документы всегда конечного размера. Дополним множество Sgntr сигнатурой пустого дерева 0, т. е. пустое подмножество, неявно принадлежащее любому множеству, в т. ч. и Sgntr, теперь указано явно.
Пусть T1, T2 - два помеченных дерева. Причем их представления (скобочная запись) получены с помощью одного и того же порядка перечисления вершин. Множества вершин этих деревьев, Nodes(Tl), Nodes(T2), - это подмножества Sgntr.
Введем три элементарные (атомарные) операции редактирования дерева:
(n1, n2) - переименование вершины; (0, n1) - добавление вершины вместе с прилегающими к ней ребрами;
(n1, 0) - удаление вершины вместе с прилегающими к ней ребрами.
Определим на декартовом произведении Nodes(Tl) х Nodes(T2) множеств вершин деревьев T1, T2 функцию, которая, в конечном счете, позволит оценить стоимость преобразования дерева T1 в дерево T2:
cost:(Nodes(T1)xNodes(T2))/(0x0)^R. (2)
Для этого достаточно определить стоимости элементарных преобразований, cost(n1, n2), cost(0, n2), cost(n1, 0) соответственно, а функцию cost применять рекурсивно.
Как любая другая метрика, функция cost должна удовлетворять следующим аксиомам для произвольных вершин n1, n2, n3:
1) cost(n1, n2) > 0;
2) cost(n1, n2) = cost(n2, n1); (3)
3) cost(n1, n3) < cost(n1, n2) + cost(n2, n3).
Обозначив элементарное преобразование op:= (n1, n2), а последовательность элементарных преобразований дерева T1 в дерево T2 как OP = op1, ..., op., запишем оценку стоимости этой последовательности преобразования дерева T1 в дерево T2: .
cost(OP) = ^cost(op), (4)
j=1 '
где i - число элементарных операций, преобразующих дерево T1 в дерево T2. Очевидно i <= |Nodes(T1)| + |Nodes(T2)|.
Тогда метрику, или редактирующее расстояние, между двумя структурами (в нашем случае они представляют собой деревья T1, T2), можно задать следующим образом:
5 (T1, T2) = min(cost(OP) : OP e OPs, (5)
где OPs - множество всех последовательностей элементарных преобразований дерева T1 в дерево T2.
Нетрудно заметить, что заданная таким образом аддитивная функция тоже удовлетворяет аксиомам метрики.
При выборе алгоритма для вычисления редактирующего расстояния (5) мы рассматривали следующие возможные варианты: MMDiff, XDiff, XYDiff [8,9]. XYDiff - это приближенный алгоритм. Наши исследования и оценки, приведенные в [9], указывают на то, что время работы алгоритма XYDiff практически линейно зависит от объема документа, но всегда дает неоптимальный результат (переоценивает количество внесенных в документ изменений). Алгоритм X-Diff, разработанный для неупорядоченных деревьев, медленнее работает на сильно ветвящихся деревьях, а типичные HTML-страницы, согласно нашим собственным результатам, - это несбалансированные деревья (более чем в 50 % случаев - пере-
кос по высоте вправо, более чем в 20 % случаев -перекос по высоте влево). Кроме того, вычислительная сложность X-Diff (количество операций) выше, чем для MMDiff [9, 10].
В итоге был выбран алгоритм MMDiff, время работы которого и расходы по памяти линейно зависят от произведения мощности множеств вершин деревьев, между которыми вычисляется редактирующее расстояние.
Напомним, оценка редактирующего расстояния между структурами двух редакций одного и того же документа обеспечивает нам возможность задать критерий наличия изменений в очередной редакции документа на уровне его структуры.
Алгоритм работы модуля структурного анализа документа
1. В ходе очередной сессии робот ИПС загружает первую редакцию документа, последующие редакции которого требуется отслеживать на предмет наличия изменений. HTML-страница поступает на обработку в модуль ИПС. Последний выполняет построение так называемого «шаблона» этого документа на основе заданных по умолчанию подмножеств (1) HTML-тегов. Полученный таким образом шаблон можно рассматривать как описание по умолчанию для структуры анализируемого документа, своего рода «первое приближение».
2. Оператор ИПС редуцирует либо дополняет эту структуру:
путем уменьшения или, соответственно, расширения подмножества тегов, на основе которых она создается;
интерактивно, с помощью формы, которую ему предоставляет веб-интерфейс ИПС, указав связные участки (подграфы, если представить структуру документа в форме графа), определив на структуре документа так называемые «семантические иерархии» (СИ). Под СИ мы будем понимать подграф в иерархической структуре документа, вершины которого содержат информацию, релевантную конкретным информационным потребностям. Другими словами, именно эта часть документа содержит данные (числовые, текст), в отношении которых далее будет осуществляться отслеживание семантических изменений. Например, анализ первой редакции некоторого документа, порождаемого с помощью одного из популярных wiki-движков (www.docuwiki.org), позволяет выделить в структуре этого документа СИ, обра-
зуемую тегами <H2> (заголовок раздела) и <DIV> с атрибутом CLASS=«LEVEL2» (текст раздела). Обращаем внимание, что в одной редакции документа может иметь место несколько непересекающихся вхождений подграфа, определяемого как СИ на структуре этого документа. Таким образом определяется подмножество структурных элементов документа, изменения в содержании которых следует проверять с заданной периодичностью. СИ, заданные вышеуказанным способом, позволяют естественным образом продолжить их в структуре новой редакции документа. При условии, что структура прежней редакции документа изоморфна поддереву его новой редакции, вначале идентифицируются вхождения СИ в этом поддереве, затем ищутся вхождения СИ в оставшейся части структуры новой редакции. Для решения этой задачи в ИПС выполняется преобразование скобочной записи дерева к виду: HTML[(TAG)*].
Грамматика:
TAG:=HTMLTAG#[{ATTRIBUTESLIST}] [(TAG_CHILD)*]
ATTRIBUTESLIST: = (ATTRIBUTE_ NAME=«ATTRIBUTE_VALUE»;)*
TAG_CHILD:=TAG, где метасимволы: [.] - необязательный элемент; (.)* - произвольное (в т. ч. равное нулю) число вхождений элемента в скобках; # - порядковый номер HTML-тега в списке дочерних тегов (того же типа) его родителя; HTMLTAG, ATTRIBUTE_ NAME, ATTRIBUTE_VALUE - термы.
Например, документ, который содержит только одну таблицу из двух строк и двух столбцов, будет (в простейшем случае) представлен так:
HTMLBODYTABLETR0TD0TD1TR1TD0TD1
Если оператор расширил множество HTML-тегов, включив в него атрибуты BORDER и ID тега TABLE:
HTMLBODYTABLE{ID=«1»;
BORDER=«2»;}TR0TD0TD1TR1TD0TD1 (6)
Указав в структуре этой же редакции документа в качестве СИ принадлежащую ему таблицу, оператор сохраняет в БД ИПС формальное определение СИ в виде строки:
TABLE{ID=«1»; BORDER=«2»; } R0TD0TD1TR1TD0TD1 (7)
Тогда идентификация вхождений СИ в структуре документа сводится к поиску в строке вида
(6) непересекающихся подстрок вида (7).
После этого оператор может инициировать процесс мониторинга. Далее его вмешательство потребуется лишь в том случае, когда очередная редакция документа будет отличаться от шаблона.
Оперируя понятием метрики, заданной нами на структурах, вмешательство оператора будет необходимо в случаях, когда расстояние между структурой новой редакции документа и структурой, определенной шаблоном, окажется отличным от порогового (в наших исследованиях мы обычно принимали его равным нулю), и когда структура новой редакции не содержит поддерева, изоморфного структуре прежней редакции документа (шаблона).
Оперируя понятием метрики (скажем «векторная модель») на содержании элементов СИ, его вмешательство потребуется, когда расстояние до центра кластера, образованного множеством векторов, полученных по итогам лексического анализа всех предыдущих редакций документа превышает пороговую величину. Для первых к редакций в качестве центра кластера может быть указан вектор, построенный на основе подмножества лексем словаря ИПС. При построении этого вектора лексемы выбираются из словаря так, чтобы по возможности отражать терминологию релевантной предметной области.
3. Последующие загрузки новых редакций этого документа предполагают уже следующий порядок его обработки.
3.1. На вход модуля ИПС поступает новая редакция, загруженная роботом, а также идентификатор шаблона, созданный оператором на этапе инициации мониторинга этого документа. По идентификатору из БД ИПС извлекается сам шаблон (в формате, который поддерживается ИПС: скобочная запись либо XML) и подмножество HTML-тегов, на основе которых он был построен.
3.2. На основе вышеуказанного подмножества HTML-тегов модуль формирует описание структуры новой, загруженной редакции этого документа (в одном из форматов, поддерживаемых ИПС).
3.3. Вычисляется расстояние (5) между структурой, полученной на шаге 3.2, и структурой, хранящейся в шаблоне.
3.3.1. Если вычисленное расстояние (5) равно нулю, то выполняется редукция части документа, которую оператор отметил в шаблоне как нерелевантную, а содержание релевантных элементов
текста (СИ) документа обрабатывается с использованием векторной модели документа.
3.3.2. Если вычисленное редактирующее расстояние (5) отлично от нуля, то модуль пытается найти в структуре новой редакции поддерево, изоморфное структуре шаблона.
3.3.2.1. Если такое поддерево обнаружено, то аналогично выполняется его редукция для выделения СИ и обработки элементов СИ на основе векторной модели. Затем на оставшейся части структуры новой редакции модуль пытается продолжить СИ, т. е. отыскать подстроки вида (7), и, в случае успеха, сохранить содержимое таких элементов в БД ИПС с пометкой «новые данные». Затем структура новой редакции автоматически замещает прежний шаблон для этого документа в БД ИПС.
3.3.2.2. Если в структуре новой редакции документа не обнаружено поддерево, изоморфное структуре шаблона, то модуль сохраняет новую редакцию документа в БД ИПС целиком, помечая эту запись, т. е. устанавливая атрибут «Требуется вмешательство оператора».
Автоматическое отслеживание изменений на примере сайта GISMETEO
В качестве примера рассмотрим результаты, полученные по итогам мониторинга изменений на странице http://gismeteo.ru/city/daily/4079/. По исходному HTML-коду страницы, соответствующей этому URL, модулем ИПС был автоматически построен шаблон, который затем сократил оператор, указав, что для его построения следует использовать только подмножество HTML-тегов: HTML, BODY, DIV, TABLE, TR, TD. Скобочная запись (в виду ограниченности объема публикации мы не используем XML), определяющая структуру этого документа, имеет следующий вид:
(0(1361(1360(1235(122 8X1230(1229)) (1232(1231))(1234(1233)))(1248(1236)(1237)(1238) (1239)(1240)(1241)(1242)(1243)(1244)(1245)(1246) (1247))(1262(1249)(1250)(1251)(1252)(1253)(1254) (1255)(1256)(1257)(1258)(1259)(1260)(1261)) (1276(1263)(1264)(1265)(1266)(1267)(1268)(1269) (1270)(1271)(1272)(1273)(1274)(1275))(1290(1277) (1278)(1279)(1280)(1281)(1282)(1283)(1284)(1285) (1286)(1287)(1288)(1289))(1304(1291)(1292)(1293) (1294)(1295)(1296)(1297)(1298)(1299)(1300)(1301) (1302)(1303))(1318(1305)(1306)(1307)(1308)(1309) (1310)(1311)(1312)(1313)(1314)(1315)(1316) (1317))(1345(1320(1319))(1322(1321))(1324(1323))
(1326(1325))(1328(1327))(1330(1329))(1332(1331)) (1334(1333))(1336(1335))(1338(1337))(1340(1339)) (1342(1341))(1344(1343)))(1359(1346)(1347)(1348) (1349)(1350)(1351)(1352)(1353)(1354)(1355)(1356) (1357)(1358))))),
где числа - идентификаторы записей БД ИПС, которые хранят содержимое соответствующего тега-контейнера. Например, 1290 - это тег TR (строка таблицы), содержащая сведения о температуре, а сами прогнозируемые значения температур содержатся в тегах-контейнерах TD: 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286,1287, 1288, 1289.
Спустя несколько месяцев владельцы сайта изменили дизайн и, тем самым, структура документа изменилась. Это изменение было выявлено модулем ИПС, который записал новую версию страницы в БД ИПС с атрибутом записи «Требуется вмешательство оператора». Повторное построение шаблона с участием оператора ИПС позволило продолжить мониторинг этого документа на основе другого шаблона. Скобочная запись, определяющая структуру новой редакции документа, теперь имеет следующий вид:
(0(1612(1611(1363(1362))(1378(1365(1364)) (1367(13 66))(1369(1368))(1371(1370))(1373(1372)) (1375(13 74))(1377(1376)))(1389(1379)(1381(1380)) (1382)(1383)(1384)(1386(1385))(1387)(1388)) (1400(1390)(1392(1391))(1393)(1394)(1395) (1397(1396))(1398)(1399))(1411(1401)(1403(1402)) (1404)(1405)(1406)(1408(1407))(1409)(1410)) (1422(1412)(1414(1413))(1415)(1416)(1417) (1419(1418))(1420)(1421))(1424(1423))(1426(1425)) (1441(1428(1427))(1430(1429))(1432(1431)) (1434(1433))(1436(1435))(1438(1437))(1440(1439))) (1452(1442)(1444(1443))(1445)(1446)(1447) (1449(1448))(1450)(1451))(1463(1453)(1455(1454)) (1456)(1457)(1458)(1460(1459))(1461)(1462)) (1474(1464)(1466(1465))(1467)(1468)(1469) (1471(1470))(1472)(1473))(1485(1475)(1477(1476)) (1478)(1479)(1480)(1482(1481))(1483)(1484)) (1487(1486))(1489(1488))(1504(1491(1490)) (1493(1492))(1495(1494))(1497(1496))(1499(1498)) (1501(1500))(1503(1502)))(1515(1505)(1507(1506)) (1508)(1509)(1510)(1512(1511))(1513)(1514)) (1526(1516)(1518(1517))(1519)(1520)(1521) (1523(1522))(1524)(1525))(1537(1527)(1529(1528)) (1530)(1531)(1532)(1534(1533))(1535)(1536)) (1548(1538)(1540(1539))(1541)(1542)(1543) (1545(1544))(1546)(1547))(1550(1549))(1552(1551)) (1567(1554(1553))(1556(1555))(1558(1557)) (1560(1559))(1562(1561))(1564(1563))(1566(1565))) (1578(1568)(1570(1569))(1571)(1572)(1573)
(1575(1574))(1576)(1577))(1588(1579)(1581(1580)) (1582)(1583)(1584)(1585)(1586)(1587))(1598(1589) (1591(1590))(1592)(1593)(1594)(1595)(1596)(1597)) (1608(1599)(1601(1600))(1602)(1603)(1604)(1605) (1606)(1607))(1610(1609))))).
Она была построена оператором на основе того же подмножества HTML-тегов {HTML, BODY, DIV, TABLE, TR, TD}.
В нашей поисковой машине, ввиду того, что произошло кардинальное изменение структуры -одна только строка заголовка таблицы частично была вынесена за ее пределы в виде списка (теги LI), частично оформлена в виде меток строк, - потребовалось вмешательство оператора. К примеру, данные о температуре, которые в прежнем варианте структуры соответствовали тегу TR, ID 1290, и вложенных в него тегах TD (метка «Температура воздуха» в TD 1277, температуры -ID: 1278 - 1289), теперь оказались: сама метка «Температура воздуха» в TD 1369 (DIV 1368), а конкретные значения температуры в тегах TD 1383, 1394, 1405, 1416, 1446, 1457, 1468, 1479, 1509, 1520, 1531, 1542.
Невозможно использовать для динамического отслеживания изменений одни только алгоритмы на основе предварительно построенных иерархических семантик. Другими словами, автоматически построить биекцию данных на их основе не удастся, без привлечения дополнительных моделей и методов анализа содержимого тегов-контейнеров. Давайте обсудим следующую умозрительную ситуацию, которая в терминах модальной логики соответствует не «самому невероятному из возможных миров». В заголовках закладок, где сейчас явно указаны даты, владельцы сайта решили использовать существительные «сегодня», «завтра», «послезавтра». Такое изменение содержания уже не удастся динамически учесть при сохранении новых данных, если использовать лишь семантические модели типа «сущность-отношение». Потребуется привлечь референтные семантики на уровне словаря ИПС, не говоря уже о том, что интерпретация референций тоже потребует дополнительных усилий с учетом временных зон, времени суток и точки зрения владельцев сайта на эти атрибуты.
СПИСОК ЛИТЕРАТУРЫ
1. Иванков, А.А. Оценивание релевантности информационного ресурса при сборе информации в сети Internet с помощью информационно-поисковых систем. Краткий обзор современного состояния проблемы [Текст]/А.А. Иванков//Научные исследования и инновационная деятельность: матер. науч.-практ. конф.-СПбГПУ, 2008.-С. 202-207.
2. Иванков, А.А. Отслеживание семантических изменений в гипертекстовых документах. Модели, алгоритмы, опыт их применения [Текст]/А.А. Иван-ков //Научные исследования и инновационная деятельность: матер. науч.-практ. конф.-СПбГПУ, 2009. -С. 275-284.
3. Иванков, А.А. Об использовании ультраметрик, заданных на структуре Интернет-ресурса, для оценивания его релевантности [Текст]/А.А. Иванков, Д.С. Елисеев //Фундаментальные исследования и инновации в национальных исследовательских университетах: матер. XIV Всерос. конф. -СПбГПУ, 2010. -С. 88-89.
4. Cutler, Michal Using the Structure of HTML Documents to Improve Retrieval [Текс^/Michal Cutler, Shih Yungming, Meng Weiyi//Proc. of the USENIX symp. on Internet Technologies and Systems.-Monterey, California, Dec. 1997.
5. Newby, G. Information Space Based on HTML Structure [TeKCT]/G. Newby//NIST Special Publication 500-249: Proc. of The 9 Text REtrieval conf. (TREC 9).-Gaithersburg, Maryland, Nov. 13-16, 2000.
6. Чеснавский, А.А. Семантическое отслеживание изменений на веб-сайтах [Текст]/А.А. Чеснавский// Управление большими системами.-2007.-Вып. 19.-М.: ИПУ РАН.-С. 134-153.
7. Чеснавский, А.А. Семантическое отслеживание изменений на веб-сайтах [Текст]/А.А. Чеснавский//Ин-формационные технологии.-2008.-№ 5.-С. 16-22.
8. Philip, Bille Tree edit distance, Alignment Distance & Inclusion [Текст]/ Bille Philip//Technical report TR-2003-23 in IT University Technical Report Series.-March 2003.
9. Yuan, Wang X-Diff: An Effective Change Detection Algorithm for XML Documents [Текст]/Yuan Wang, David J. DeWitt, Jin-yi Cai // Proc. of the 19th International conf. on Data Engineering. Bangalore, India.-March 5-8, 2003.-P. 519-530.
10. Chawathe, Sudarshan S. Comparing Hierarchical Data in External Memory^^^/Suda^an S.Chawathe// Proc. of the 25th VLDB conf.-Edinburgh, Scotland, 1999.