Методы сравнения иерархически структурированных документов

advertisement
УДК 004(06) Компьютерные системы и технологии
О.Б. ЩИРБА, В.О. ЧУКАНОВ
Московский инженерно-физический институт (государственный университет)
МЕТОДЫ СРАВНЕНИЯ ИЕРАРХИЧЕСКИ СТРУКТУРИРОВАННЫХ ДОКУМЕНТОВ
Доклад посвящен методам сравнения иерархически структурированных документов.
В настоящее время расширяемый язык разметки XML становится все
более распространенным. Область применения XML не ограничивается
только Web’ом. Уже стало обычным использование этого формата для
хранения конфигурационных параметров приложения, обмена текстовыми данными между компонентами системы. Появляются сервера баз данных, предназначенные для обработки информации в формате XML. В связи с этим становятся актуальными задачи контроля версий XML документов, их сравнения и обновления.
Алгоритмы, используемые для сравнения обычных текстовых файлов,
не подходят для обработки структурированной информации, так как не
учитывают иерархические особенности ее представления. Поэтому необходимы иные методы решения проблемы.
Общий подход к решению данной задачи аналогичен подходу, используемому при сравнении текстовых данных, а именно, необходимо построить сценарий редактирования, состоящий из простейших операций, который позволяет преобразовать один объект в другой.
Ключевыми критериями для оценки того или иного метода являются
скорость выполнения сравнения документов и рациональность построенного сценария редактирования. Под рациональным сценарием редактирования следует понимать такой набор операций, который позволяет преобразовать один объект в другой с минимальными издержками. Также для
рациональности сценария имеют значение разновидности используемых
операций, например, удаление/добавление/обновление узла или удаление/добавление/перемещение поддерева. Не все алгоритмы позволяют
применять полный набор этих операций.
Наиболее очевидным решением является метод на основе алгоритма
Майерса [1] для нахождения наибольшей общей подпоследовательности,
который используется для сравнения строковых данных. Этот алгоритм
может быть расширен посредством специальных критериев определения
идентичности узлов документов, как в методе [2]. Он обеспечивает макISBN 5-7262-0633-9. НАУЧНАЯ СЕССИЯ МИФИ-2006. Том 12
147
УДК 004(06) Компьютерные системы и технологии
симальную скорость выполнения, но сценарий редактирования зачастую
бывает избыточным.
Алгоритм, описанный в [3], позволяет получить лучший результат с
точки зрения сценария редактирования, но за более длительное время.
Расширенная версия алгоритма [4] позволяет использовать операции удаления и добавления поддерева. Применение данного метода оправдано в
некритичных ко времени системах.
В настоящее время путем к ускорению выполнения сравнения является
принятие неких допущений о природе обрабатываемых документов. Примером такого подхода является алгоритм, описанный в [5]. Он позволяет
получить рациональный результат сравнения за приемлемое время, если
обрабатываемые документы удовлетворяют определенным условиям. Такой подход является наиболее приемлемым для класса задач, которые
позволяют определить некоторые закономерности представления документов.
Таким образом, при разработке системы необходимо выбирать между
скоростью и лаконичностью сценария. Следовательно, необходим алгоритм, позволяющий получить приемлемые характеристики в отношении
обоих критериев, алгоритм, который бы предоставлял полный спектр операций редактирования, включая операции с поддеревьями.
В ходе работы над проблемой был разработан программный модуль
xmldiff, реализующий три вышеупомянутых подхода. С помощью соответствующего настроечного параметра пользователь может выбрать, какой алгоритм он хочет использовать. Также пользователь может определить, в каком формате должна быть представлена дельта документов.
Программа позволяет контролировать способ обработки xml-документа, а
именно, какие конструкции нужно игнорировать, как обрабатывать некоторые типы узлов и другие характерные для XML особенности.
Список литературы
1. Е. Myers, An O(ND) difference algorithm and its variations. Algorithmica, 1:251-266,
1986.
2. Sudarshan S. Chawathe, Comparing Hierarchical Data in External Memory. Department of
Computer Science, University of Maryland.
3. K. Zhang, D. Shasha, Simple fast algorithms for the editing distance between trees and related problems. SIAM Journal of Computing, 18(6):1245-1262, 1989.
4. David T.Barnard, Gwen Clarke, Nicholas Duncan, Tree-to-tree Correction for Document
Trees. Departament of Computing and Information Science, Queen’s University, 1995.
5. S. Chawathe, A. Rajaraman, H. Garcia-Molina, J. Widom, Change Detection in Hierarchically Structured Information. Stanford University, California, June 1996.
ISBN 5-7262-0633-9. НАУЧНАЯ СЕССИЯ МИФИ-2006. Том 12
148
Download