A method of searching for data in a data store, the data store comprising: a first data set; a second data set; and a third data set, wherein the method comprises: searching for a data item in the first, second and/or third data sets (1811, 1812, 1813); and in response to said searching finding the data item, returning data stored in association with the data item, wherein, if the data item is found in the first data set, said returning comprises returning first data stored in association with the data item in the first data set, wherein, if the data item is not found in the first data set and is found in the second and third data sets (1812, 1813), said returning comprises, in preference to returning second data stored in association with the data item in the second data set, returning third data stored in association with the data item in the third data set, wherein the method comprises identifying the second data set based on parent metadata, the parent metadata being indicative of the second data set being a parent of the first data set, and wherein the method comprises identifying the third data set based on overlay metadata, the overlay metadata being indicative of an overlay relationship between the first data set and the third data set. a first data set; a second data set; and a third data set, wherein the method comprises: searching for a data item in the first, second and/or third data sets (1811, 1812, 1813); and in response to said searching finding the data item, returning data stored in association with the data item, wherein, if the data item is found in the first data set, said returning comprises returning first data stored in association with the data item in the first data set, wherein, if the data item is not found in the first data set and is found in the second and third data sets (1812, 1813), said returning comprises, in preference to returning second data stored in association with the data item in the second data set, returning third data stored in association with the data item in the third data set, wherein the method comprises identifying the second data set based on parent metadata, the parent metadata being indicative of the second data set being a parent of the first data set, and wherein the method comprises identifying the third data set based on overlay metadata, the overlay metadata being indicative of an overlay relationship between the first data set and the third data set. searching for a data item in the first, second and/or third data sets (1811, 1812, 1813); and in response to said searching finding the data item, returning data stored in association with the data item, wherein, if the data item is found in the first data set, said returning comprises returning first data stored in association with the data item in the first data set, wherein, if the data item is not found in the first data set and is found in the second and third data sets (1812, 1813), said returning comprises, in preference to returning second data stored in association with the data item in the second data set, returning third data stored in association with the data item in the third data set, wherein the method comprises identifying the second data set based on parent metadata, the parent metadata being indicative of the second data set being a parent of the first data set, and wherein the method comprises identifying the third data set based on overlay metadata, the overlay metadata being indicative of an overlay relationship between the first data set and the third data set.