}
public static CalaisResponse processResponse(Map<String, Object> map,
final String payload) {
Map<String, Object> doc = (Map<String, Object>) map.remove("doc");
final CalaisObject info = extractObject(doc, "info");
final CalaisObject meta = extractObject(doc, "meta");
Multimap<String, CalaisObject> hierarchy = createHierarchy(map);
final Iterable<CalaisObject> topics = Iterables
.unmodifiableIterable(hierarchy.get("topics"));
final Iterable<CalaisObject> entities = Iterables
.unmodifiableIterable(hierarchy.get("entities"));