2010-11-03 7 views
5

La materia de transformación operativa utilizada en Google Wave tiene un formato de documento bastante curioso. Un documento es básicamente solo un documento subconjunto xml: caracteres, etiquetas de inicio y etiquetas de finalización. Además de eso, el documento tiene "anotaciones", que son metadatos asociados con rangos, p. posición de inicio y posición final. El documento técnico justifica su presencia con:¿Por qué Google Wave Operational Transform necesita anotaciones?

Las operaciones de documento Wave también admiten anotaciones. Una anotación son algunos metadatos asociados con un rango de elementos, es decir, una posición de inicio y una posición final. Esto es particularmente útil para describir el formato de texto y las sugerencias de ortografía, ya que no complica innecesariamente el formato del documento estructurado subyacente.

Ciertamente puedo ver cómo sería ser un poco difícil si cualquier rango de un documento sería seleccionado y, por ejemplo en negrita - anidación etiqueta XML es estricta y que podría causar un desastre de inserciones de etiquetas de apertura y cierre.

Sin embargo, ¿este es realmente un problema en la práctica? Quiero decir, ¿uno tiene que soportar necesariamente esa operación, si no está haciendo un editor que básicamente imita el paradigma del procesamiento de textos de años en lugar de ser un editor estructurado? ¿Sería pura la transformación operativa de XML con la estructura del documento como simplemente HTML5 sería tan terrible? ¿Es un problema de rendimiento que los estilos estén en el documento como etiquetas? ¿O el modelo de transformación operacional de alguna manera produce resultados insatisfactorios en el formato del texto si se representan con etiquetas?

Además, una pregunta complementaria: ¿qué tan bueno sería el modelo de transformación operacional "inserta carácter, elimina el carácter, retén" puro en representaciones de texto sin formato? Por ejemplo, editar HTML5 como texto, ¿o editar artículos de Wikipedia?

Respuesta

2

Esta elección tiene sentido para mí como una optimización en varios frentes:

  • El documento subyacente sigue siendo legible y analizar-poder como sea posible
  • Los algoritmos para analizar el código XML subyacente siguen siendo tan simple como posible (útil para la compatibilidad con intentos que no son de Google para analizar los documentos resultantes y para el mantenimiento)
  • La basura extra recolectada, después de varias ediciones, puede generar grandes resultados de rendimiento debido a la gran cantidad de etiquetas y/o pasa el documento para tratar de simplificarlo.
+0

El fundamento de todo esto es un poco confuso para mí. El formato del documento subyacente se ofusca especialmente ya que los estilos no se pueden ver en el documento, pero son rangos separados que un ser humano no puede armar. ¿HTML5 no es legible para humanos? Además, ¿no es el "algoritmo" para analizar el XML lo mismo independientemente de las negritas y otras cosas? Esperaría que el algoritmo sea * más * complejo al tener que rastrear los atributos por separado. XML llegó a buen término solo porque era simple. Y no estoy seguro de qué basura extra estás hablando? Cada cambio es un cambio registrado en el documento. – Nakedible

+0

Para mí tiene sentido descontar HTML5 como una opción; no existía cuando el trabajo en Wave probablemente comenzó, por ejemplo. Supongo que usarían un analizador personalizado para ayudar a limpiar el ruido adicional que se genera. Sin embargo, el analizador no necesariamente tiene que hacer ese trabajo.Los rangos arbitrarios de los atributos son, creo, más fáciles de administrar cuando los cambios en ellos no cambian el árbol de análisis resultante. La basura es "ruido de etiqueta", lo que da como resultado un árbol desordenado una vez analizado. – blueberryfields

+0

HTML5 era solo un ejemplo, XHTML/HTML4/lo que hubiera sido igual de adecuado. – Nakedible

Cuestiones relacionadas