2010-11-03 5 views
5

La fonctionnalité de transformation opérationnelle utilisée dans Google Wave a un format de document plutôt curieux. Un document est essentiellement un document de sous-ensemble XML: caractères, balises de début et balises de fin. En plus de cela, le document a des "annotations", qui sont des méta-données associées à des plages, par ex. position de départ et position finale. Le livre blanc justifie leur présence par:Pourquoi Google Wave Operational Transform a-t-il besoin d'annotations?

Les opérations de document d'onde prennent également en charge les annotations. Une annotation est une métadonnée associée à une plage d'éléments, c'est-à-dire une position de départ et une position de fin. Ceci est particulièrement utile pour décrire les suggestions de mise en forme et d'orthographe du texte, car cela ne complique pas inutilement le format de document structuré sous-jacent.

Je peux certainement voir comment il serait un peu difficile si une gamme arbitraire d'un document sera sélectionné et par exemple en gras - imbrication de balise XML est stricte et que causerait un gâchis d'insertions de tag ouvrir et fermer.

Cependant, est-ce vraiment un problème dans la pratique? Je veux dire, faut-il nécessairement soutenir une telle opération, si ce n'est de faire un éditeur qui imite fondamentalement le paradigme de traitement de texte vieux d'années au lieu d'être un éditeur structuré? Est-ce que le XML pur opérationnel transformerait avec la structure du document comme simplement HTML5 serait-ce terrible? Est-ce un problème de performances que les styles seraient dans le document en tant que balises? Ou le modèle de transformation opérationnelle produit-il des résultats insatisfaisants sur la mise en forme du texte s'ils sont représentés avec des balises?

En outre, une question secondaire - comment bien le pur "insérer le caractère, retirer le caractère, conserver" modèle de transformation opérationnelle soit sur les représentations de texte brut? Par exemple, éditer HTML5 en tant que texte - ou éditer des articles Wikipedia?

Répondre

2

Ce choix me sens comme une optimisation sur plusieurs fronts:

  • Le document sous-jacent demeure lisible par l'homme et d'analyser-mesure possible
  • Les algorithmes pour analyser le XML sous-jacent reste aussi simple que possible (utile pour la compatibilité avec les tentatives non-google pour analyser les documents résultants, et pour la maintenance)
  • La poubelle collectée en plus, après plusieurs modifications, peut générer des résultats importants en termes de performances, en raison du nombre important d'étiquettes et/ou d'autres passe sur le document pour tenter de le simplifier.
+0

La raison pour laquelle tout cela est un peu clair pour moi. Le format de document sous-jacent est particulièrement obfusqué car les styles ne peuvent pas être vus du document, mais sont des plages séparées qu'un humain ne peut pas vraiment assembler. HTML5 n'est-il pas lisible par l'homme? En outre, l'algorithme n'est-il pas capable d'analyser le XML de la même manière, sans tenir compte d'autres choses? Je m'attendrais à ce que l'algorithme soit * plus * complexe quand il faut suivre les attributs séparément. XML a vu le jour juste parce que c'était simple. Et je ne suis pas sûr de ce dont vous parlez? Chaque modification est une modification enregistrée du document. – Nakedible

+0

Il est logique pour moi de ne pas tenir compte du HTML5 en tant qu'option - ce n'était pas le cas lorsque le travail sur Wave commençait probablement, par exemple. Je suppose qu'ils utiliseraient un analyseur personnalisé pour aider à nettoyer le bruit supplémentaire généré par les tags. L'analyseur ne doit pas nécessairement faire ce travail cependant.Je pense que les plages arbitraires des attributs sont plus faciles à gérer lorsque les modifications apportées à ces attributs ne modifient pas l'arborescence d'analyse résultante. La poubelle est un «bruit d'étiquette», résultant en un arbre désordonné une fois analysé. – blueberryfields

+0

HTML5 était juste un exemple, XHTML/HTML4/ce qui aurait été tout aussi approprié. – Nakedible

Questions connexes