Зачем для оперативного преобразования Google Wave нужны аннотации?

StackOverflow https://stackoverflow.com/questions/4085847

  •  28-09-2019
  •  | 
  •  

Вопрос

Операционное преобразование, используемое в Google Wave, имеет довольно любопытный формат документа.Документ - это, по сути, просто документ подмножества XML-символов, начальных и конечных тегов.В дополнение к этому, в документе есть "аннотации", которые представляют собой метаданные, связанные с диапазонами, напримерначальное положение и конечное положение.Белая книга оправдывает их присутствие:

Операции с документами Wave также поддерживают аннотации.Аннотация - это некоторые метаданные, связанные с диапазоном товаров, т.е. с начальной позицией и конечной позицией.Это особенно полезно для описания форматирования текста и предложений по правописанию, поскольку необязательно усложняет базовый формат структурированного документа.

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

Однако, является ли это в самом деле проблема на практике?Я имею в виду, обязательно ли поддерживать такую операцию, если не создавать редактор, который в основном имитирует многолетнюю парадигму обработки текстов вместо того, чтобы быть структурированным редактором?Будет ли чистое операционное преобразование XML со структурой документа в виде простого HTML5 настолько ужасным?Является ли проблемой производительности то, что стили будут присутствовать в документе в виде тегов?Или операционная модель преобразования каким-то образом приводит к неудовлетворительным результатам при форматировании текста, если они представлены тегами?

Кроме того, побочный вопрос - насколько хороша была бы чистая модель оперативного преобразования "вставить символ, удалить символ, сохранить" для простых текстовых представлений?Например, редактирование HTML5 в виде текста - или редактирование статей Википедии?

Это было полезно?

Решение

Существуют фундаментальные проблемы, связанные с использованием иерархического языка разметки с OT.Работающий пример приведен ниже:

Работает ли оперативное преобразование со структурированными документами, такими как HTML, если их просто обрабатывать как обычный текст?

Другие советы

Этот выбор имеет смысл для меня как оптимизация по нескольким направлениям:

  • Базовый документ остается максимально удобным для чтения человеком и разбора
  • Алгоритмы для анализа базового XML остаются максимально простыми (полезно для совместимости с попытками анализа результирующих документов, не используемыми Google, и для обслуживания).
  • Дополнительный собранный мусор после нескольких правок может привести к значительному снижению производительности - из-за огромного количества тегов и / или дополнительных проходов по документу, направленных на его упрощение.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top