Patent ID: 8555161

Claim:
A method comprising: opening a local copy of a document on a first computing device, the local copy of the document comprising underlying data that represents virtual element arrays of real element arrays in the document, the underlying data comprising an index tree and a piece descriptor table, the piece descriptor table comprising piece descriptors that each identify a different element in the real element array, the index tree comprising a hierarchy of index nodes, each of the index nodes corresponding to a different piece descriptor in the piece descriptor table and indicating where each element in the virtual element array belong in the real element array, for each index node in the index tree, elements associated with index nodes in a left subtree of the index node are to the left in a given virtual element array of the elements associated with the index node, and for each index node in the index tree, elements associated with index nodes in a right subtree of the index node are to the right in the given virtual element array of the elements associated with the index node; and performing the following actions concurrently on the first computing device while the local copy of the document is open on the first computing device and a remote copy of the document is open on a second computing device: updating the local copy of the document to reflect a local change, the local change being a change made to the local copy of the document by a first user, the first user using the first computing device; and updating the local copy of the document to reflect a remote change, the remote change being a change made to the remote copy of the document by a second user, the second user using the second computing device.