cache GraphWorkspace instances so we don't load multiple copies for a given id, and don't reject self-referential parent relationships.