Научная статья на тему 'Практическое применение алгоритма семантического анализа изменений в HTML-документах'

Практическое применение алгоритма семантического анализа изменений в HTML-документах Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
316
48
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СЕМАНТИЧЕСКИЙ АНАЛИЗ ИЗМЕНЕНИЙ / ВЕБ-КЛИППИНГ / СТРУКТУРА ДАННЫХ ВЕБ-СТРАНИЦЫ / HTML / SEMANTIC CHANGE DETECTION / WEB-CLIPPINNG / WEB PAGE DATA STRUCTURE

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Чеснавский А. А.

В данной статье рассматривается алгоритм семантического отслеживания изменений (АСОИ), который позволяет выявить изменения данных в теле HTML-документа, а не изменений разметки документа. Особенностью данного алгоритма является, то что не требуется проводить предобработку документа и знать внутреннюю структуру HTML-страницы. АСОИ может быть использован в различных практических задачах, где требуется манипулировать данными, полученными с веб-сайтов. В качестве основных примеров можно привести семантический веб-клиппинг, кэширование страниц, получение RDF-представление HTML-страниц.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Application of Semantic Change Detection of HTML-Documents Algorithm

That article is dedicated to describe semantic web-sites change detection algorithm. The main advantages of proposed algorithm are detection of changes only in data of HTML-page, not presentation part; there is no need to know internal structure of the page and have a preprocessing of HTML-pages. That algorithm could be used in many practical areas, where there is a need to proceed data retrieved from web-sites. The main examples of applications are semantic web-clipping, web-pages caching, transforming HTML-pages in RDF form.

Текст научной работы на тему «Практическое применение алгоритма семантического анализа изменений в HTML-документах»

УДК 612

А. А. Чеснавский

Московский государственный инженерно-физический институт Каширское шоссе, 31, Москва, 115409, Россия E-mail: chester2000@inbox.ru

ПРАКТИЧЕСКОЕ ПРИМЕНЕНИЕ АЛГОРИТМА СЕМАНТИЧЕСКОГО АНАЛИЗА ИЗМЕНЕНИЙ В HTML-ДОКУМЕНТАХ

В данной статье рассматривается алгоритм семантического отслеживания изменений (АСОИ), который позволяет выявить изменения данных в теле HTML-документа, а не изменений разметки документа. Особенностью данного алгоритма является, то что не требуется проводить предобработку документа и знать внутреннюю структуру HTML-страницы. АСОИ может быть использован в различных практических задачах, где требуется манипулировать данными, полученными с веб-сайтов. В качестве основных примеров можно привести семантический веб-клиппинг, кэширование страниц, получение RDF-представление HTML-страниц.

Ключевые слова: семантический анализ изменений, веб-клиппинг, структура данных веб-страницы, HTML.

Введение

На сегодняшний день одним из базовых средств интеграции унаследованных вебприложений является использование портальной платформы как единой точки доступа. Наиболее популярными и функциональными платформами на сегодняшний день являются Microsoft Office SharePoint Server 2007, IBM WebSphere Portal Server и Oracle Portal.

Порталы, первоначально являясь средством единого места доступа к Web-ресурсам, сейчас предоставляя дополнительные функции по организации совместной работы, делопроизводства, обеспечения безопасности, поиска, превратились в унифицированное информационное пространство для коллективной работы.

Полнофункциональное решение для портала должно предоставлять пользователям удобный доступ ко всему, что им необходимо для выполнения своих задач, вне зависимости от времени и места, а также при гарантии информационной безопасности.

Современные портальные решения, базирующиеся на Web-технологиях, реализованы в большинстве случаев на платформе J2EE (Java2 Enterprise Edition) в виде компонентов сервера приложений. Портальный сервер (Portal engine), представляет собой приложение, выполняющееся в среде сервера приложений, именно поэтому наиболее полнофункциональные портальные решения предлагаются компаниями, лидирующими в этой области.

Создание информационного наполнения портала (рис. 1) осуществляется при помощи портлетов - компонентов сервера портала, обеспечивающих доступ к приложениям, Web-содержимому и другим информационным ресурсам и выполняющих функцию визуализации предоставляемых ими данных.

Каждый отдельный портлет разрабатывается, развертывается, управляется и отображается независимо от других. Администраторы и конечные пользователи могут создавать персонализированные страницы портала при помощи выбора и настройки, соответствующих портлетов, что приводит к появлению полноценных Web-страниц. Режимы портлетов позволяют, в зависимости от требуемой задачи отображать различные варианты пользовательского интерфейса.

В состав коммерческих портальных решений, как правило, включен обширный набор готовых к использованию портлетов, предназначенных для совместной работы пользователей; визуализации хранящихся в СУБД данных; выполнения XML-преобразований, а также для организации доступа к IBM Lotus, Microsoft Exchange, SAP/R3, Siebel и т. д.

ISSN 1818-7900. Вестник НГУ. Серия: Информационные технологии. 2008. Том 6, выпуск 1 © А. А. Чеснавский, 2008

Поскольку портлеты продолжают эволюционировать как новый стандарт для настольных приложений и средств интеграции производители порталов прикладывают значительные усилия для стандартизации прикладных программных интерфейсов, которые необходимы для взаимодействия между порталами и другими приложениями. Сообщество Java Community Process (JCP) и Organization for The Advancement of Structured Information Standards (OASIS) совместно работают над проблемой стандартизации технологий Java и XML, что обеспечит соединение порталов с разнородными приложениями.

В настоящее время корпоративные порталы активно используются для интеграции информационных систем в единое информационное пространство предприятия. Одним из самых востребованных механизмов интеграции является синдикация вебконтента. С точки зрения синдикации контента, возможности портальных платформ можно разделить на две части: синдикация контента из XML-источников и синдикация контента из других источников. В качестве

наиболее востребованных XML-источников являются RSS-ленты, удаленные портлеты и т. п. В качестве не-XML источников можно указать HTML-страницы. Синдикация контента из первой группы практически во всех портальных платформах представлены в достаточном виде, в то время как синдикация контента из HTML-страниц (веб-клиппинг) может быть с трудом представлен на практике. Так, например, в Microsoft SharePoint Server 2007 и IBM WebSphere Portal Server веб-клиппинг представлен только в виде помещения целевой страницы в выделенный портлет на странице (с помощью iframe). Oracle Portal предоставляет большую функциональность, позволяя помещать в портлет только фрагмент страницы, но во всех реализациях портальных платформ не реализован механизм семантического анализа структуры и синдикации значимых данных HTML-страниц.

В данной статье рассматривается практическое применение интеграции веб-контента в корпоративный портал на основе семантического анализа изменений веб-страниц.

Рис. 1. Общая архитектура портального решения

Существующие алгоритмы поиска изменений

Как уже указывалось выше, существующие реализации веб-клиппинга имеют существенный недостаток - они не позволяют определить семантические изменения документов HTML, что связано с тем, что HTML - это во-первых, не просто файл, а полуструктурированный текст, а во-вторых, наряду с данными в нем содержатся и элементы представления данных. Все это существенно усложняет анализ изменений HTML-страниц.

На данный момент автору данной статьи неизвестны алгоритмы семантического анализа изменений HTML-страниц. Существующие алгоритмы ориентированы либо на анализ изменений в «плоских» документах, в XML-документах, а также синтаксический анализ изменений в HTML-документах.

Так, одним из наиболее популярных инструментов для анализа изменений в «плоских» файлах является GNU утилита diff. Эта программа выводит построчно изменения, сделанные в файле (для текстовых файлов). Работа diff основана на поиске наибольшей общей подпоследовательности (англ. longest common subsequence, LCS) [Bergroth, Hakonen, 2005]. В целом, задача нахождения наибольшей общей подпоследовательности является одной из классиче-

ских задач информатики и применяется не только в таких утилитах, как diff, но и в биоинформатике. Если вкратце описать суть алгоритма, то последовательность Z является общей подпоследовательностью последовательностей X и Y, если Z является подпоследовательностью как X, так и Y. Требуется для двух последовательностей X и Y найти общую подпоследовательность наибольшей длины. Очевидно, что данный алгоритм не подходит для анализа иерархических, а тем более HTML-документов. Конечно, иерархические документы можно сериализовать и затем применить к ним утилиту diff, но это будет неэффективно.

Вторую группу составляют алгоритмы, ориентированные на анализ изменений в иерархических документах, в частности, в XML-файлах. Эти алгоритмы в большинстве случаев основываются на сравнении деревьев (благодаря тому, что иерархические документы представимы в древовидной форме). В 1979 г. Kuo-Chung Tai представил первый неэкспоненциальный алгоритм сравнения двух деревьев на основе расстояния редактирования [Tai, 1979]. До этого в 1977 г. Selkow [Selkow, 1997] предложил довольно близкий к XML алгоритм преобразования деревьев - рекурсивный алгоритм поиска наибольшей общей подпоследовательности. Позже S. Chawathe [Chawathe, 1999; Chawathe et al., 1998; Chawathe, Garcia-Molina, 1997; Chawathe et al., 1996] предложил два алгоритма - MMDiff и XMDiff (для основной и внешней памяти соответственно) для анализа изменений в упорядоченных деревьях, основанных на алгоритме Selkow.

Если рассматривать неупорядоченные деревья, то задача становится NP-сложной и необходимы дополнительные ограничения для сравнения двух деревьев. Так, можно выделить алгоритмы K. Zhang [Zhang, 1996] и X-Diff ', созданные для решения этой задачи. Еще одной утилитой, достойной внимания, является DeltaXML (по мнению ряда аналитиков, одна из лучших утилит для анализа изменений в XML-документах [Cobena et al., 2002]). Эта утилита использует алгоритм, основанный на поиске наибольшей общей подпоследовательности и обладает линейной сложностью. Если говорить про анализ изменений на HTML-страницах, то практически единственной на сегодняшний день утилитой является HtmlDiff. HtmlDiff рассматривает HTML-документ как последовательность токенов, которые формируются на основе разметки и текста. В основе HtmlDiff лежит взвешенный алгоритм поиска наибольшей общей подпоследовательности. Результатом работы этой утилиты является синтаксический анализ отличия между двумя HTML-документами. На основе HtmlDiff создан ряд других утилит для анализа изменений: AT&T Internet Difference Engine, CS-HTMLDiff.

В целом, существует довольно ограниченное число утилит и соответствующих алгоритмов, подходящих для анализа изменений в иерархических документах. Если же рассматривать класс алгоритмов для анализа изменений в HTML-документах, то все известные автору алгоритмы ориентированы на синтаксический анализ изменений, что имеет невысокую применимость в более общей задаче веб-клиппинга из-за того, что необходимо прежде всего анализировать значимые изменения на веб-страницах.

Рассмотрим пример HTML-документа 1 2 [8]:

<TABLE BORDER>

<CAPTION>A test table with merged cells.<CREDIT>(T.Berners Lee/WWWC,1995.) </CREDIT></CAPTION>

<TR><TH ROWSPAN=2><TH COLSPAN=2> Average <th rowspan=2>Red<br>eyes

<TR><TH>height<TH>weght

<TR><TH ALIGN=left>males<TD>1.9<TD>0.003<td>40%

<TR><TH ALIGN=left>females<TD>1.7<TD>0.002<td>43%

</TABLE>

1 Wang Y., Dewitt D. J., Cai J.-Y., X-Diff: A Fast Change Detection Algorithm for XMLDocuments, http://www.cs.wisc. edu/ yuanwang/xdiff. html.

2 Raggett D., Hors D., Jacob S I. HTML 4.0 Specification- W3C Recommendation. (http://www.w3.orglTR/ REChtml40, April 1998).

Предположим, что значение 40 % в последней колонке (рис. 2) изменяется на 50 %, что означает, что значение процента красных глаз у мужчин изменилось с 40 % на 50 %. Для того, чтобы технически осуществить данное изменение, нужно в HTML-коде в пятой строке 40 % заменить на 50 %. Как уже говорилось выше, при синтаксическом анализе изменений сообщение об изменении в пятой строке было совсем неинформативным. Даже структурированное описание изменения в HTML-коде, основанное на HTML-грамматике, такое как «TABLE.TR.TD.40% изменено на TABLE.TR.TD.50%», не является достаточно информативным, и с его помощью тяжело отследить реальное изменение процента красных глаз у мужчин.

Подобные проблемы могут быть успешно разрешены с помощью алгоритма семантического отслеживания изменений (АСОИ).

Алгоритм семантического отслеживания изменений

АСОИ отслеживает изменения, которые мы назовем семантическими изменениями, в HTML-документах в рамках иерархии данных, в отличие от иерархии разметки HMTL-документа. Используя описанный выше пример, АСОИ определил бы изменения как «Males.‘Red eyes’ изменен с 40 % на 50 %». Особенность АСОИ состоит в адаптации понятия семантических изменений для отслеживания изменений в HTML-документах. В противоположность другим хорошо спроектированным полуструктурированным данным или XML документам путь между корневой вершиной и листовым узлом в дереве анализа HTML-документа (например, TABLE.TR.TD.40%) не обязательно описывает значение самого узла, так как HTML определяет к тому же и представление данных. В отличие от HTML в хорошо

Рис. 2. Пример таблицы

Группы HTML-тегов

HTML-теги Тип 1 Тип 2

Head TITLE, META ISINDEX, BASE, LINK, SCRIPT, STYLE, META

Body Заголовки H1,H2,H3,H4,H5,H6

Блоки P, CENTER, BLOCKQUOTE, PRE, DIR, MENU, DL, DT, DD, UL, OL, LI, TABLE, CAPTION, THEAD, TBODY, TR, TH, TD ISINDEX, HR, DIV

Текст Шрифт TT, I, B, U, STRIKE, BIG, SMALL, SUB, SUP

Фраза EM, STRONG, DFN, CODE, SAMP, KBD,VAR, CITE

Специальный IMG A, APPLET, FONT, BASE-FONT, BR, SCRIPT, MAP

Форма FORM, INPUT, SELECT, TEXTAREA

Адрес ADDRESS

структурированных документах путь между вершиной и листовым узлом в основном информативен и значим. Более того, XML требует, чтобы каждый элемент был закрытым, в то время как закрывающие теги у некоторых HTML-элементов могут отсутствовать или быть необязательными, что приводит к сложностям в разборе (parsing) HTML-документов. В результате из-за этих отличий получение информации из HTML-документов требует дополнительных знаний о внутренней структуре или предобработки исходных документов [Atzeni, Mecca, 2007] (что в реальной практике может быть недоступно), чего не нужно для работы АСОИ.

АСОИ состоит из следующих шагов:

• конструирование семантической иерархии (дерева) HTML-документа;

• анализ изменений семантической иерархии.

Структурно HTML-документ состоит из одной или более логических секций которые:

• находятся друг относительно друга на одном уровне, например Section 1, Section 2 и т. д.;

• одна секция структурно включает другую, например Section 1 и Section 1.2;

• две секции не находятся на одном уровне, и одна из них не включает другую, например Section 1.3 и Section 4.

Прежде всего необходимо определить семантическую иерархию секций в HTML-документе, используя различные HTML-теги. Как уже было сказано выше, HTML был создан не только для определения, но и для отображения данных и, следовательно, большинство HTML-документов не способствуют организации компонентов HTML в секции или блоки согласно иерархии. Таким образом, в первую очередь необходимо идентифицировать, какие HTML-теги могут быть использованы для конструирования иерархической структуры HTML-документов (тип 1), а какие служат для представления данных (тип 2). Список тегов с разделением по типам можно найти в приведенной выше таблице.

Конструирование семантической иерархии для нетабличных данных состоит из двух шагов. На первом шаге все теги типа 2 удаляются из исходного HTML-документа. Отметим, что удаление тегов типа 2 может привести к конкатенации #PCDATA. Например, <LI><I>text 1</I>text 2</LI> приводит к <LI>text 1 text 2</LI> после удаления тега <I>. На втором шаге, семантическая иерархия конструируется на основе предшествования нетабличных HTML-тегов так, как это изображено на рис. 3. Предшествование между двумя HTML-элементами A и B, обозначаемое A>>B показывает, что данные, содержащиеся в A, выше в соответствующей иерархии, чем данные, содержащиеся в B.

Определив порядок предшествования среди тегов типа 1 (за исключением тегов, предназначенных для создания таблиц) в HTML-документе H, мы применяем следующие правила к синтаксической иерархии H для конструирования семантической иерархии S данных в H.

• Создать корневой узел Vr иерархии S из #PCDATA из элемента TITLE. Элемент TITLE, который является обязательным для любого HTML-документа и, согласно спецификации HTML, содержит описание документа.

• Создать иерархию KEYWORDS ^ «список ключевых слов» из любого тега META в виде <META NAME= "keywords" VALUE="list_of_keywords" >. Присоединить иерархию к Vr и получить Vr ^ KEYWORDS ^ "список ключевых слов". Вообще, META является опциональным и предоставляет произвольное количество ключевых слов, каждое из которых релевантно исходному документу.

• Создать иерархию ADDRESS ^ texti text2 text3 ^ HREF="link", если элемент ADDRESS в форме <ADDRESS>text1<A HREF="link"> text2 </a> text3 </ADDRESS>, где text1 и text3 может быть пустым. Создать иерархию ADDRESS ^ text вместо предыдущего вари-

TITLE

МЕТА

ADDRESS

UL, OL, DIR, MENU DL, CENTER, PRE BLOCKQUOTE

Рис. 3. Порядок предшествования нетабличных элементов (тип 1)

анта, если элемент ADDRESS в форме <ADDRESS> text </ADDRESS> и присоединить к иерархии Vr. Отметим, что элемент ADDRESS является опциональным, и, если он существует, он должен быть потомком элемента BODY.

• Для всех оставшихся элементов HTML-документа применять следующее. Для HTML-элемента в форме <t1> #PCDATA <t2> ... </t2></t1>, где t1 (t2 соответственно) - название элемента HTML, создать иерархию #PCDATA ^ sh, где sh - семантическая иерархия, полученная из <t2> ... </t2>. Когда после #PCDATA идут другие HTML-теги, это обычно свидетельствует о том, что данные включены в теги. Отсюда мы полагаем, что #PCDATA содержит данные. Данные ветви в составном виде: I0(I1 ... d1,12 ....d2, ..., /„,... dn), если d1 ... dn являются #PCDATA ... I0(I1 ... d1, I2 ... d2, ..., In ... dn...), если dn - единственная таблица в In ... dn, где Ii (0 < i < n) - элемент HTML. Создаем иерархию di ^ dn (1 < i < n) если Ii >> In и Ik Ф In, для любого k (i + 1 < k < n). Присоединить дугу от корня для каждой сконструированной иерархии к Vr.

Это правило говорит о том, что для данных (ф), заключенных в dn, мы создаем иерархическую связь между ними. Если dn является таблицей, то используется заглушка TABLE in di ^ TABLE, которая затем будет заменена на корневой элемент семантической иерархии соответствующей таблицы. Условие, что dn является единственной таблицей в In...dn, подразумевает, что эта таблица есть внешняя таблица в этой ветви.

Рассмотрим табличные элементы HTML. Среди табличных элементов TR определяет число строк, тогда как TH и TD определяют число столбцов в HTML-таблице. Элемент TH используется для задания одного или более заголовков. Элемент TD используется для внесения данных в ячейки таблицы. Будем в дальнейшем называть данные в элементах TD табличными данными, в отличие от данных, содержащихся в элементах TH, которые будем называть заголовками.

Типовая HTML-таблица имеет как минимум один столбец-заголовок в верхней части таблицы и как минимум одну строку-заголовок в левой части. Такой тип таблиц мы назовем строчно-столбцовым. Другой тип таблицы содержит как минимум один столбец-заголовок (одну строку-заголовок) и называется в этом случае столбцовым (строчным соответственно) типом таблицы. Заголовки в строчных и столбцовых таблицах задают схему таблицы. Для любых таблиц, которые не имеют элементов TH, в ходе анализа было выявлено, что первая строка или столбец обычно используется как заголовок.

Среди табличных элементов два атрибута TH и TD, ROWSPAN и COLSPAN играют существенную роль в определении иерархии HTML-таблиц. Для иллюстрации обратимся к рассмотренному выше примеру: наблюдается различное число строк и столбцов, что затрудняет процесс корреляции строк и столбцов. Когда TH или TD включает ROWSPAN="n" (COLSPAN="n" соответственно), связанная ячейка распространяется на N столбцов вниз (N строк вправо соответственно).

Для определения семантической иерархии (SH), расширяющей синтаксическое дерево любой HTML-таблицы T, мы в первую очередь определяем иерархические зависимости данных в T. Как только иерархические зависимости определены, SH содержит только данные, и все теги исключены из T.

Семантическая иарархия HTML-таблицы определяется согласно нотации псевдотаблицы, так как свойства псевдотаблицы легки для восприятия. Псевдотаблица может рассматриваться как особый тип HTML-таблицы и может быть использована для выражения строчностолбцовых, строчных и столбцовых таблиц. Общая схема построения семантической иерархии - это в первую очередь отображение таблицы T на псевдотаблицу и затем получение из нее семантической иерархии [Чеснавский, 2007].

Практическое применение АСОИ

В результате работы АСОИ применительно к определенной веб-странице мы получаем семантическую иерархию, которая обладает следующими характеристиками:

1) отсутствие информации о форматировании;

2) устойчивость относительно некардинальных изменений в форматировании HTML-страницы.

CiMJsers\aches\IDesfcH>p\teslljenl - Windows Internet Explore

File Edit View Favorites loots Help

Hi ® C:\Users\aches\Desletop\testljirn | Q) " S3 " § "■ EK Eage - Tools » ”

<TEXT_FROMARRAY>" П ерм ские моторы" сменили хозяина: компания вошла в "Оборонпром" </ТЕXT_FR0МARRAY>

<TEXT_F RO MARRAY ^Граждан е выбрали двоевластие: россияне не готовы к самостоятельности Медведева</ТЕХГТ_Р ROM ARRAY >

<TEXT_FROMARRAY ^Нерезидентов — на биржу: хочет вывести ФСФР </Т Е >СТ_ FRO MARRAY >

<TEXT_FROMARRAY>HHKonafi Цветков ставит на "Гран-при": земельная агропромышленная корпорация "Знак" пытается пристроить свои землн</ТЕ>СТ_Р ROM ARRAY > <TEXT_FROMARRAY^Рискованные игры: Корея может оспорить проведение Олимпиады в Co4H</TEXT_FR0MARRAY>

</ТЕ XT_F ROM ARRAY >

- <TEXT_FROMARRAY>

Подписка на газету РБК daily

<TEXT_F ROM ARRAY>Внимание! Зрителям телеканала РБК-ТВ на платформе "HTB-nJllOC"!</TEXT_FROMARRAY>

<TEXT_FROMARRAY>Quote.ru: Настроения на российском рынке акций резко ухудшились (Рынки - аидео) </TEXT_F ROM ARRAY >

<TEXT_FROMARRAY>Utro.ru: В "газовой войне" победил один человек </TEXT_FROMARRAY>

</TEXT_FROM ARRAY>

- <TEXT_FROMARRAY>

Краткий (35 из 101) выпуск новостей РБК:

<TEXT_FR0MARRAY>11:03В Пермском крае из-за неисправного магнитофона произошел пожар в жилом доме. </TEXT_FR0MARRAY>

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

<TEXT_FR0MARRAY >10:5IB Красноярском крае изъято 35 т контрафактного средства для принятия BaHH.</TEXT_FRQMARRAY>

<TEXT_FROMARRAY>10:39B Москве режим работы станции "Новослободская" с 17 по 24 марта будет изменен.</TEXT_FRQMARRAY>

<TEXT_FRQMARRAY>10:20В результате пожара в Свердловской обя. погибли 3 и пострадал 1 человек.</TEXT_FROMARRAY>

<TEXT_FR0MARRAY>10:Q5ETC (tomorrow, 10:05 мск) средневзвешенный курс - 23,8564 руб./долл.</TEXT_FRQMARRAY>

<TEXT_FRQMARRAY>10:0ЗШаттл Endeavour успешно стартовал с мыса Канаверал.</TEXT_FRQMARRAY>

<TEXT_FROMARRAY>09:54Температура воздуха в Москве днем 11 марта составит плюс 2 градуса.</TEXT_FROMARRAY>

<TEXT_FRQMARRAY>09:45B Свердловской обл. госпитализированы 11 воспитанников детского дома. </TEXT_FROMARRAY>

<TEXT_FROMARRAY>09:24®OHflOBbie торги в США 10 марта 2008г. завершились снижением ведущих индексов.</TEXT_FROMARRAY>

<TEXT_FRQMARRAY>09:05МИД ФРГ: План Израиля по строительству на территории Западного берега Иордана - неприемлем.</TE>CT_FR0MARRAY>

<TEXT_FRO MARRAY>0в:45Жертвами взрывов в Пакистане стали по крайней мере 12 человек.</TEXT_FR0MARRAY>

<ТЕ >CT_FR0 MARRAY >09:29"Комме рса нтъ": Распределение доходов богатых и бедных не меняется с 1995 года. </TEXT_FR0MARRAY>

<TEXT_F ROM ARRAY>08:19Россия и Франция обсудят сегодня взаимодействие в вопросах безопасности.</TEXT_FROMARRAY>

<TEXT_FR0MARRAY>07:34LJtopm оставил без электричества 10 тыс. домов в Великобритании.</TEKT_FR0MARRAY>

<TEXT_FROMARRAY>07:26C сегодняшнего дня будет изменен режим работы станции "Новокузнецкая" московского метро. </TEXT_FRDMARRAY> <TEXT_FROMARRAY>06:59B Бразилии в ДТП погибли 9 человек.</TEXT_FR0MARRAY>

<TEXT_FR0MARRAY>06:48ApMflHCKafl полиция разыскивает двух депутатов и редактора газеты в связи с беспорядками в Ереване.</TEXT_FROMARRAY>

<ТЕ >CT_FR0 MARRAY >06:24Boeing сегодня опротестует решение ВВС США о контракте с Airbus на 35 млрд долл. </TEXT_FR0MARRAY>

<TEXT_FROMARRAY>05:57nocTnpefl РФ в ООН: Американский корабль у берегов Ливана не помог разрешить политический кризис в стране. </TEXT_FROMARRAY> <TE>CГ_FR0MARRAY>05:43Инфляция в Китае в феврале 2008г. составила б,б°/о.f/TEXT_FR0MARRAY>

<TEXT_FR0MARRAY>05:23B Индонезии произошло землетрясение силой более 5 баллов.</TEXT_FROMARRAY>

<TE>CГ_FR0MARRAY>O4:59Oбнapyжeнныe в замороженной рыбе в США предметы - растительные добавки, утверждает производитель.</TE>TT_FR0MARRAY> <TEXT_FR0MARRAY>04:29AHepHKa некий суд оставил под стражей предполагаемого сообщника А. Бута. </TEXT_F ROM ARRAY >

</TEXT_FR0MARRAY>

- <TEXT_FROMARRAY>

Предыдущие новости можно посмотреть здесь.

<TEXT_FROMARRAY ^Праздничные условия банков по кредитом - PBK.Kpeflnr</TEXT_FROMARRAY>

<TEXT_F RO MARRAY >И нт е ра кт ивн ая карта Москвы: дома, организации, фoтoгpaф*и</TEXT_FROMARRAY>

<TEXT_FROMARRAY>Тиrist.ru:Приятные развлечения для длинных aaMano4eTOB</TE>CT_FR0MARRAY>

<TEXT_FROMARRAY >Хостинг-Центр РБК: Качественный хостинг по низким ценам. ХЦ РБК - ваш верный выбор! </TEXT_FROMARRAY>

</TEXT_FROM ARRAY>

<TEXT_FROMARRAY>Поиск на PBK</TEXT_FROMARRAY>

<TEXT_FROM ARRAY>Ваш e-mail на n04TA.ru</TEXT_FROMARRAY>

- <TEXT_FROMARRAY>

РБК СОФТ

<TEXT_FROMARRAY>Мультимедиа презентации</TEXT_FR0MARRAY>

<TEXT_FR0MARRAY Документооборот </TEXT_FR0MARRAY>

<TEXT_FRO MARRAY >Инт&рнет-решения </TEXT_FRO MARRAY >____

Demi

[fc Computer | Protected Mode: Off

ф.100% т

Рис. 4. Семантическая иерархия сайта РБК

На рис. 4 представлен пример получения семантической иерархии для популярного аналитического сайта РБК 3.

Следует отметить, что, получив семантическую иерархию веб-сайта в виде XML-документа, можно реализовать следующие варианты практического применения АСОИ:

1) оптимизация кэширования в алгоритмах веб-клиппинга;

2) публикация семантической структуры сайта в формате RDF;

3) анализ изменений отдельных узлов семантической иерархии.

Рассмотрим более подробно каждый из этих сценариев. Как уже говорилось выше, в настоящее время при разработке промышленных портальных решений одной из востребованных, но слабореализуемых на практике задач является синдикация HTML-контента в единое информационное пространство на базе портала, т. е. публикация содержимого существующей веб-страницы в отдельный портлет в рамках корпоративного портала. Основная задача данного портлета - это предоставление по запросу пользователя содержимого конкретной HTML-страницы. Однако это только кажущаяся простота. Пользователями данного портлета могут быть тысячи людей с различной динамикой обращения к странице. В простейшем варианте реализации подобный портлет при каждом запросе пользователя будет формировать запрос от сервера портала к целевой странице, что в совокупности сгенерирует очень высокий трафик и нагрузку на систему. Гораздо эффективнее организовать кэширование запрашиваемых страниц. Однако основной проблемой отображения закэшированных данных является обеспечение актуальности (свежести) данных. В подавляющем большинстве случаев пользователей портлетов с веб-клиппингом интересует семантика внешней страницы, а не форматирование. И изменения в кэше должны происходить только в случае изменения семантической структуры страницы. Таким образом, АСОИ может быть использован как основа для анализа необходимости обновления кэша.

3 www.rbc.ru.

В последние несколько лет в среде ИТ-профессионалов все активнее обсуждаются такие концепции, как «семантическая сеть», «Web 2.0» и т. п. Семантическая сеть (также известная как семантический веб) - это расширение существующей сети (интернета), в которой информация снабжена смыслом, позволяющим человеку и компьютеру успешно взаимодействовать. Для иллюстрации различия между WWW и семантической сетью можно привести следующий пример: допустим необходимо провести поиск по ключевым словам в интернете. В качестве результата будут получены ссылки, многие из которых окажутся не совсем релевантными. Это связано с тем, что информация в WWW хранится по большей части в виде HTML-страниц, которые не предназначены для автоматической обработки и формирования формальной семантической структуры. Сеть нового поколения должна обеспечивать возможность автоматизированной интерпретации и обработки информации, семантической интероперабельности информационных ресурсов. Необходимость решения указанных задач вызвала потребность в таких средствах формального описания семантики XML-данных, которые бы позволяли анализировать и обрабатывать их с помощью программного обеспечения. Консорциум W3C предложил многоуровневую архитектуру для семантической сети (рис. 5).

В основе этой структуры лежит стандарт RDF (Resource Description Framework). RDF представляет собой простой способ описания экземплярных данных в формате субъект-отношение-объект, в котором в качестве любого элемента этой тройки используются только идентификаторы ресурсов. Существует стандартизованное отображение этих троек на XML-документы предопределенной структуры. Благодаря тому, что в результатом работы АСОИ является формальная семантическая иерархия, которая может быть преобразована не просто в XML, но и RDF, появляется возможность автоматического получения семантики вебстраниц в формате RDF, что в дальнейшем позволит манипулировать данными веб-страниц с помощью соответствующих инструментов.

И, наконец, рассмотрим применение АСОИ для автоматического анализа изменений отдельных элементов семантической иерархии HTML-страницы. Например: трейдер формирует портфель из нескольких финансовых инструментов. Текущие котировки берутся со специализированного веб-сайта, содержащего данные по всем эмитентам. С помощью связки АСОИ (для получения семантической иерархии) и портала (публикация значения выделенного элемента) трейдер может избежать постоянного мониторинга массива данных по котировкам и получать на свою персональную страницу только данные по нужным ему эмитентам. Более того, поскольку семантическая иерархия представляет собой XML-документ, то к отслеживаемым элементам иерархии можно применять выражения Xpath. Так, в частности, можно выставить пороговые значения для элемента и проводить какие-либо действия при выходе за эти границы (например, информировать пользователя о достижении критических значений).

Рассмотрим данную схему на практике. В качестве источника будем использовать данные по котировкам акций на ФБ ММВБ на сайте QUOTE.RU (РБК) (рис. 6). В исходной HTML-странице находятся данные по более чем 300 эмитентам с несколькими значениями котировок для каждого из них, т. е. порядка 3 000 значений, среди которых трейдер вынужден искать интересующую его информацию.

Рис. 5. Многоуровневая архитектура семантической сети

Рис. 6. Российские фондовые индексы на сайте РБК

Рис. 7. Мониторинг котировок на портале с помощью АСОИ

В результате работы АСОИ мы получим семантическую иерархию (рис. 7) - XML-документ, который дальше может быть использован для получения информации по котировкам отдельного эмитента.

Ключевая задача, которую необходимо решить при мониторинге отдельного элемента семантической иерархии, - это позиционирование элементов в семантической иерархии, т. е. определение координат каждого элемента. Наиболее подходящее решение этой задачи, -использование Xpath-пути к элементу в качестве идентификатора. Таким образом, применением специального XSLT-преобразования к исходному XML-документу можно получить семантическую иерархию с помеченными элементами. Преимущество такого подхода заключается в том, что идентификатор без каких-либо изменений можно использовать в Xpath выражении для поиска элемента.

Последним шагом в задаче мониторинга элементов семантической иерархии является публикация значения элемента, например, на персональной странице пользователя на портале. (Пример использования АСОИ для мониторинга значений акций «Полюс Золото» в портале на основе Microsoft Office SharePoint Server 2007 см. на рис. 7).

Заключение

В данной статье предложен алгоритм семантического отслеживания изменений (АСОИ), который позволяет выявить изменения данных в теле HTML-документа, а не изменений разметки документа. Особенностью данного алгоритма является, то что не требуется проводить предобработку документа и знать внутреннюю структуру HTML-страницы. АСОИ может быть использован в различных практических задачах, где требуется манипулировать данными, полученными с веб-сайтов. В качестве основных примеров можно привести семантический веб-клиппинг, кэширование страниц, получение RDF-представление HTML-страниц.

Список литературы

Чеснавский А. Семантическое отслеживание изменений на веб-сайтах // Управление большими системами. 2007. Вып. 19. С. 134-153.

Atzeni P., Mecca G. Cut and Paste // Proceedings of the 16th Intl. Symposium on Principles of Database Systems. 1997. P. 144-153.

Bergroth L., Hakonen H. A Survey of Longest Common Subsequence Algorithms. 2005.

Chawathe S. Comparing Hierarchical Data in External Memory, VLDB. 1999.

Chawathe S., Abiteboul S., Widom J. Representing and querying changes in semistructured data, ICDE. 1998.

Chawathe S., Garcia-Molina H. Meaningful Change Detection in Structured Data, SIGMOD. Tuscon, Arizona, 1997. P. 26-37.

Chawathe S., Rajaraman A., Garcia-Molina H., Widom J. Change detection in hierarchically structured information, SIGMOD. 1996. Vol. 25. No. 2. P. 493-504.

Cobena G., Abdessalem T., Hinnach Y. A comparative study for XML change detection, Institut National de Recherche en Informatique et en Automatique. Rocquencourt, France, 2002.

Selkow S. The tree-to-tree editing problem // Information Processing Letters. 1977. P. 184-186.

Tai K. The tree-to-tree correction problem // Journal of the ACM. 1979. Vol. 26 (3). P. 422-433.

Zhang K. A Constrained Edit Distance Between Unordered Labeled Trees // Algorithmica. 1996.

Материал поступил в редколлегию 22.03.2008

A. A. Tchesnavskij

Application of Semantic Change Detection of HTML-Documents Algorithm

That article is dedicated to describe semantic web-sites change detection algorithm. The main advantages of proposed algorithm are detection of changes only in data of HTML-page, not presentation part; there is no need to know internal structure of the page and have a preprocessing of HTML-pages. That algorithm could be used in many practical areas, where there is a need to proceed data retrieved from web-sites. The main examples of applications are semantic webclipping, web-pages caching, transforming HTML-pages in RDF form.

Keywords: semantic change detection, web-clippinng, web page data structure, HTML.

i Надоели баннеры? Вы всегда можете отключить рекламу.