US 12,321,760 B2
Transforming instructions for collaborative updates
Andrew Moreland, Stanford, CA (US); and John Carrino, Redwood City, CA (US)
Assigned to Palantir Technologies Inc., Denver, CO (US)
Filed by Palantir Technologies Inc., Denver, CO (US)
Filed on Mar. 20, 2023, as Appl. No. 18/186,424.
Application 18/186,424 is a continuation of application No. 16/997,193, filed on Aug. 19, 2020, granted, now 11,640,309.
Application 16/997,193 is a continuation of application No. 16/133,431, filed on Sep. 17, 2018, granted, now 10,782,983.
Application 16/133,431 is a continuation of application No. 15/298,473, filed on Oct. 20, 2016, granted, now 10,133,588.
Prior Publication US 2023/0297396 A1, Sep. 21, 2023
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 9/451 (2018.01); G06F 3/0481 (2022.01); G06F 3/0482 (2013.01); G06F 16/23 (2019.01); G06F 40/169 (2020.01); G06F 40/194 (2020.01); G06Q 10/101 (2023.01); G06F 8/65 (2018.01)
CPC G06F 9/451 (2018.02) [G06F 3/0481 (2013.01); G06F 3/0482 (2013.01); G06F 16/2365 (2019.01); G06F 40/169 (2020.01); G06F 40/194 (2020.01); G06Q 10/101 (2013.01); G06F 8/65 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A method comprising:
receiving, by a first client device, a first group of instructions from a server, the first group of instructions instructing the first client device to execute a first update to an element of a user interface presented on the first client device, the first group of instructions having been received by the server from a second client device, wherein the first group of instructions are generated based off a state of the element presented on a user interface of the second client device;
determining that the first group of instructions conflicts with a second group of instructions previously executed on the first client device, the second group of instructions having performed a previous update to the element of the user interface;
in response to determining that the first group of instructions conflicts with the second group of instructions:
transforming the first group of instructions based on the second group of instructions to generate a transformed first group of instructions;
causing the first client device to execute the transformed first group of instructions; and
transmitting the transformed first group of instructions to the server, wherein the server transmits the transformed first group of instructions to the second client device and cause the second client device to execute the transformed first group of instructions.