A fragmentation scheme consists of three types of fragments: (1) primary fragments are small and user-defined, and may overlap; (2) primitive fragments are the largest non-overlapping fragments derived from the intersections of primary fragments; and (3) auxiliary fragments include the primary fragments and all unions thereof. This taxonomy is illustrated in Fig. .