Стратегии встраивания отслеживания изменений в формат структурированных данных - PullRequest
1 голос
/ 21 декабря 2011

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

Как минимум, полезной отслеживаемой информацией будет:

  • идентификатор автора
  • отметка времени
  • тип изменения
  • то, что было изменено с

И элементы данных, и любые списки таких элементов данных должны отслеживаться осмысленно, эффективно.Схема данных должна быть отделимой / не знать о метаданных, отслеживающих ее, хотя могут потребоваться облегчающие аннотации, такие как идентификаторы узлов.Для обеспечения отслеживания может потребоваться доверенное приложение;однако было бы полезно иметь возможность рассчитывать «дельты» через интервалы, сравнивая разделы данных между версиями, а не требовать, чтобы редактор отслеживал каждое изменение в реальном времени.

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

Для посимвольных или побайтных данных работают алгоритмы типа diff / patch.Мне кажется, что структурированные данные (которые следует рассматривать как структурированные) требуют более сложных решений.

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

Какие существуют стратегии для встраивания отслеживания изменений в формат структурированных данных?

Спасибо!

1 Ответ

2 голосов
/ 27 декабря 2011

Возможно, вас заинтересуют форматы исправлений XML (например, как описано в rfc 5261 ). Например, вы можете создать список таких патчей, встроенных в верхней части вашего структурированного XML-файла, и пометить каждый патч его автором, номером запроса на потенциальную функцию / номером ошибки и т. Д., Потенциально аннотируя его информацией о патче семантического уровня (например, " добавил такой объект "," удалил такое правило "...). Использование такого формата может помочь вам получить старые версии из вашего документа довольно легко, поскольку существуют инструменты для его обработки.

...