2003 · 421 citations · 22 references
Software MaintenanceEngineeringSoftware EngineeringSoftware AnalysisXyleme ProjectInformation RetrievalData ScienceData MiningManagementData IntegrationXml StructuringData ManagementXml LibraryXml DocumentsKnowledge DiscoveryXml DataComputer ScienceXml DatabaseXml LanguageXml TransformationDiff AlgorithmXml QueryingData Modeling
We present a diff algorithm for XML data. This work is motivated by the support for change control in the context of the Xyleme project that is investigating dynamic warehouses capable of storing massive volumes of XML data. Because of the context, our algorithm has to be very efficient in terms of speed and memory space even at the cost of some loss of quality. Also, it considers, besides insertions, deletions and updates (standard in diffs), a move operation on subtrees that is essential in the context of XML. Intuitively, our diff algorithm uses signatures to match (large) subtrees that were left unchanged between the old and new versions. Such exact matchings are then possibly propagated to ancestors and descendants to obtain more matchings. It also uses XML specific information such as ID attributes. We provide a performance analysis of the algorithm. We show that it runs in average in linear time vs. quadratic time for previous algorithms. We present experiments on synthetic data that confirm the analysis. Since this problem is NP-hard, the linear time is obtained by trading some quality. We present experiments (again on synthetic data) that show that the output of our algorithm is reasonably close to the optimal in terms of quality. Finally we present experiments on a small sample of XML pages found on the Web.
22
The Tree-to-Tree Correction Problem
Kuo‐Chung Tai · Journal of the ACM · 1979 · 856 citations · Full text
Change detection in hierarchically structured information
Sudarshan S. Chawathe, Anand Rajaraman, Héctor García-Molina et al. · 1996 · 486 citations