При разработке специализированного формата документа структурированных данных (возможно, на основе XML): часть требований к этому формату документа заключается в том, что он включает в раздел метаданных историю значительных (на уровне приложения) изменений в структурированных данныхна уровне поля.
Как минимум, полезной отслеживаемой информацией будет:
- идентификатор автора
- отметка времени
- тип изменения
- то, что было изменено с
И элементы данных, и любые списки таких элементов данных должны отслеживаться осмысленно, эффективно.Схема данных должна быть отделимой / не знать о метаданных, отслеживающих ее, хотя могут потребоваться облегчающие аннотации, такие как идентификаторы узлов.Для обеспечения отслеживания может потребоваться доверенное приложение;однако было бы полезно иметь возможность рассчитывать «дельты» через интервалы, сравнивая разделы данных между версиями, а не требовать, чтобы редактор отслеживал каждое изменение в реальном времени.
«Значимое» отслеживание может включать в себя схему метаданных, обрабатывающую данные более высокого уровня , изменяющиеся атомарно - например, обновление группы полей, которое обрабатывается на уровне приложения как одна точка данных.
Для посимвольных или побайтных данных работают алгоритмы типа diff / patch.Мне кажется, что структурированные данные (которые следует рассматривать как структурированные) требуют более сложных решений.
Я понимаю, что у меня нет четко сформулированных требований - цель моего вопроса здесь состоит в том, чтобы выяснить, где этипроблемы были рассмотрены с большей элегантностью.
Какие существуют стратегии для встраивания отслеживания изменений в формат структурированных данных?
Спасибо!