3 ms·
CRDTs give you a tool to resolve conflicts at the data layer, but not necessarily at the semantic layer. In the example, we have a canvas. Turn up the latency.
by Retr0id 3y ago
CRDTs give you a tool to resolve conflicts at the data layer, but not necessarily at the semantic layer.
In the example, we have a canvas. Turn up the latency. User A draws an outline of a heart on their canvas, and User B draws a smiley face on theirs.
After the "network" catches up, the CRDT does it's thing, and our states have been synchronised. But we're left with an overlapping heart/smiley combo that neither collaborator really intended.
A really smart system might say "user A started drawing their heart a moment before User B started drawing a smiley. Even though most of the drawing happened concurrently, we will give user A's drawing the priority" (perhaps also making a backup of B's work so that it isn't lost).
Resolving conflicts in this way requires an understanding of semantics and intent - that a NN could perhaps provide a heuristic for.
- antirez 3y agoExactly what I had in mind. Thank you for developing the idea and make it more clear.
- vsareto 3y agoIt's hard for me to ignore that generative AI can do images and text so the immediate usefulness of this resolving conflicting edits is going over my head. Both users would have to share an intent that has more details that what a particular conflict and the current canvases have to offer. From there though, you could synthesize a compromise, like let's say choosing a color that isn't either user's first choice but is close enough to both, and also happens to be a good choice given the rest of the image. Or it decides that a compromise isn't a good idea and that choosing one of the user's edits is best. If you didn't want to share that intent though, you are giving up your intent to the machine's intent (however it was trained), so you may as well generate two separate things and use some other tools to mix them.
- deleted 3y ago[deleted]
- junon 3y agoWhy does this need a NN? What you described is doable with very simple logic.
- Retr0id 3y agoWhat if user A and user B were drawing things that were supposed to coexist? Perhaps one is drawing the heart outline, the other is filling it in, etc. If every potentially-conflicting action was followed up with a "which version do you want to keep?", it would get rather tedious. And I don't imagine an "AI" would answer that question 100% accurately either, but it would make it a less frequent issue.