Collaborative Editing of Structured Documents in Denicek
Kolaborativní editace strukturovaných dokumentů v systému Denicek
diplomová práce (OBHÁJENO)
Zobrazit/ otevřít
Trvalý odkaz
http://hdl.handle.net/20.500.11956/209846Identifikátory
SIS: 295422
Kolekce
- Kvalifikační práce [12153]
Autor
Vedoucí práce
Oponent práce
Faltín, Tomáš
Fakulta / součást
Matematicko-fyzikální fakulta
Obor
Informatika - Softwarové a datové inženýrství
Katedra / ústav / klinika
Katedra distribuovaných a spolehlivých systémů
Datum obhajoby
9. 6. 2026
Nakladatel
Univerzita Karlova, Matematicko-fyzikální fakultaJazyk
Angličtina
Známka
Výborně
Klíčová slova (česky)
programming systems|distributed systems|CRDT|operational transformKlíčová slova (anglicky)
programming systems|distributed systems|CRDT|operational transformationDenicek je výpočetní substrát pro document-oriented end-user program- ming, ve kterém uživatelé programují nahráváním a replayováním editačních sekvencí nad stromově strukturovanými dokumenty. Tato práce evaluuje pří- stupy ke kolaborativní editaci v systému Denicek, porovnávající Conflict-free Replicated Data Types (CRDT) s původní Operational Transformation (OT) systému Denicek. Hodnotíme tři přístupy - Automerge, Loro a vlastní pure operation-based CRDT - a popisujeme kompromisy každého z nich s ohle- dem na požadavky systému Denicek: adresování cestou, wildcards, struktu- rální editace a programování demonstrací. Výsledná implementace mydenicek ukládá editace v grow-only grafu událostí a dokument získává deterministic- kou funkcí eval, která přehraje události v topologickém pořadí. Konvergence plyne z použití pure operation-based CRDT (G-Set stav + deterministická eval); hlavním inženýrským přínosem je zachování záměru (intention pre- servation) - zajištění, že reference přežijí strukturální editace, wildcards se rozšíří na konkurentní vložení a nahrané editační sekvence fungují po změně schématu. Implementace je validována na formativních příkladech, 358 tes- tech (včetně matice konkurentních párů a property-based testování konver- gence).
Denicek is a computational substrate for document-oriented end-user pro- gramming where users program by recording and replaying edit sequences over tree-structured documents. This thesis evaluates approaches to collab- orative editing in Denicek, comparing Conflict-free Replicated Data Types (CRDTs) with the original Denicek's Operational Transformation (OT). We evaluate three approaches - Automerge, Loro, and a custom pure operation- based CRDT - and describe the trade-offs of each with respect to Denicek's requirements: path-based addressing, wildcards, structural edits, and pro- gramming by demonstration. The resulting implementation, called mydenicek, stores edits in a grow-only event graph and obtains documents via a deter- ministic eval function that replays events in topological order. Convergence follows from the pure operation-based CRDT framework (G-Set state + de- terministic eval); the main engineering contribution is intention preservation - ensuring that references survive structural edits, wildcards expand over concurrent inserts, and recorded edit sequences replay correctly after schema evolution. The implementation is validated on formative examples, 358 tests (including a concurrent pair matrix and property-based convergence testing).
