pseudocode for a distributed lattice

decide which features go in each lattice;
fill individual lattices without throwing any out because of heterogeneity
(list of supracontexts) lattice = lattices[0]
for 1..$#$lattices - 1
combine(lattice, lattices[$_])
combine_final(lattice, lattices[$#lattices])

list<Supracontext> combine(lat1, lat2){
    list<Supra> output;
    for (Supra s1 : lat1) {
        for (Supra s2 : lat2) {
        Item[] data = intersection(s1.data, s2.data);
        if(data)
            output.add(new Supra(data));
        }
    }
}