I feel like 1 and 2 are essentially the same method

In 1, you detect N different properties, and assign the objects to one of N groups

In 2, you also detect N different properties, which have 2^N different intersections (assuming no property is subset of any other). You then assign the objects to one of 2^N groups