Perché Google Wave operativa Transform annotazioni bisogno?
-
28-09-2019 - |
Domanda
La trasformazione roba operativo utilizzato in Google Wave ha un formato di documento piuttosto curiosa. Un documento è fondamentalmente solo un documento sottoinsieme XML - personaggi, iniziano tag e tag di chiusura. In aggiunta a ciò, il documento ha "annotazioni", che sono meta-dati associati con intervalli, ad esempio e fine posizione iniziare. Il white paper giustifica la loro presenza con:
operazioni di documenti d'onda anche il supporto delle annotazioni. Un'annotazione è alcuni meta-dati associati con una gamma elemento, cioè una posizione iniziale ed una posizione finale. Ciò è particolarmente utile per descrivere il testo di formattazione e grammatica suggerimenti, in quanto non unecessarily complicare il formato di documento strutturato sottostante.
posso certamente vedere come sarebbe un po 'difficile se un intervallo arbitrario da un documento sarebbe selezionato e per esempio in grassetto -. XML tag nidificazione è rigorosa e che avrebbe causato un disastro di inserimenti tag di apertura e chiusura
Tuttavia, è questo davvero un problema nella pratica? Voglio dire, cosa si deve necessariamente supportare tale operazione, se non facendo un editor che fondamentalmente imita gli anni Elaborazione di paradigma, invece di essere un editor strutturato? Sarebbe puro XML operativa trasformare con la struttura del documento semplicemente come HTML5 essere quella terribile? Si tratta di un problema di prestazioni che gli stili sarebbero nel documento come tag? Oppure il modello di trasformare operativa produrre qualche modo risultati insoddisfacenti sulla formattazione del testo se sono rappresentate con i tag?
Inoltre, una domanda lato - quanto è buono sarebbe il puro "Inserisci carattere, caratteri Rimuovere, mantenere" operativa trasformare il modello sia sulle rappresentazioni di testo? Per esempio, l'editing HTML5 come testo -? O la modifica di articoli di Wikipedia
Soluzione
Ci sono problemi fondamentali con l'utilizzo di un linguaggio di markup gerarchica con OT. Vedi sotto per un esempio pratico:
Altri suggerimenti
Questa scelta ha senso per me come un'ottimizzazione su più fronti:
- I resti dei documenti sottostanti come leggibile e parse-in grado possibile
- Gli algoritmi per analizzare l'XML sottostante rimanga il più semplice possibile (utile per la compatibilità con tentativi non Google a parsing documenti risultanti, e per la manutenzione)
- L'immondizia in più raccolte, dopo molteplici modifiche, può portare a grandi colpi di prestazione -. A causa del gran numero di tag e / o ulteriori passaggi sul documento per tentare di semplificare