为什么Google Wave Operational Transform需要注释?

时间:2010-11-03 09:59:10

标签: google-wave

Google Wave中使用的操作转换内容具有相当好奇的文档格式。文档基本上只是一个xml子集文档 - 字符,开始标记和结束标记。除此之外,该文档具有“注释”,其是与范围相关联的元数据,例如,开始位置和结束位置。白皮书证明了他们的存在:

  

Wave文档操作也支持注释。注释是与项目范围相关联的一些元数据,即开始位置和结束位置。这对于描述文本格式和拼写建议特别有用,因为它不会使底层结构化文档格式复杂化。

我可以肯定地看到,如果选择文档中的任意范围并且例如用粗体显示会有些困难 - XML标记嵌套是严格的,这会导致打开和关闭标记插入的混乱。

然而,这个真的在实践中是一个问题吗?我的意思是,是否必须支持这样的操作,如果不是使编辑器基本上模仿多年的文字处理范例而不是结构化编辑器?将纯XML操作转换为文档结构只是简单的HTML5会是那么可怕吗?是一个性能问题,样式会在文档中作为标记吗?或者,如果操作转换模型用标记表示,它们会以某种方式在文本格式上产生令人不满意的结果吗?

另外,一个附带问题 - 纯粹的“插入字符,删除字符,保留”操作转换模型在纯文本表示中有多好?例如,将HTML5编辑为文本 - 还是编辑维基百科文章?

2 个答案:

答案 0 :(得分:2)

这个选择对我来说是有意义的,可以在几个方面进行优化:

  • 基础文档仍然是人类可读和可解析的
  • 解析基础XML的算法尽可能简单(对于解析生成的文档和维护时非谷歌尝试的兼容性很有用)
  • 经过多次编辑后,额外收集的垃圾可能导致大量性能点击 - 由于标签的数量过多和/或文档上的其他传递以尝试简化它。

答案 1 :(得分:2)

使用OT的分层标记语言存在基本问题。请参阅下面的工作示例:

Does operational transformation work on structured documents such as HTML if simply treated as plain text?