1. A computer implemented method for updating a hierarchical dataset using a hierarchical edit script, wherein the dataset comprises a plurality of dataset nodes; the edit script comprises a plurality of edit script nodes, each edit script node being one of: a non-move operation node defining a non-move operation to be performed in respect of one or more of the dataset nodes; a source node indicating a source of a move operation in which one or more dataset nodes are to be moved from an original location in the dataset to a target location; a target node indicating a target location to which one or more dataset nodes are to be moved to in a move operation; and wherein the method comprises: processing each edit script source node by: determining a move identifier identifying the move operation to which the source node relates, determining one or more dataset nodes which are to be moved in the identified move operation, and generating a move record in respect of the move operation, the move record comprising the move identifier and the one or more dataset nodes which are to be moved in the move operation; for each move operation, processing the dataset to delete the one or more dataset nodes which are involved in that move operation from their original location in the dataset; processing each edit script non-move operation node by: determining an operation type of the non-move operation node, and updating zero or more dataset nodes related to the non-move operation in accordance with the operation type determined; and processing each edit script target node by: determining a move identifier identifying the move operation to which the target node relates, using the move identifier to access the move record in respect of the move operation, retrieving the one or more dataset nodes which are to be moved from the identified move record, and inserting the one or more dataset nodes retrieved from the move record at a location in the dataset indicated by the target node.