private Map<URI, Record> extractRelated(final Record record) throws Throwable {
final URI id = record.getID();
final URI type = record.getSystemType();
final Map<URI, Record> map = Maps.newHashMap();
if (type.equals(KS.RESOURCE)) {
for (final URI mentionID : record.get(KS.HAS_MENTION, URI.class)) {
map.put(mentionID, Record.create(mentionID, KS.MENTION).add(KS.MENTION_OF, id));
}
} else if (type.equals(KS.MENTION)) {
final URI resourceID = record.getUnique(KS.MENTION_OF, URI.class);
if (resourceID != null) {
map.put(resourceID, Record.create(resourceID, KS.RESOURCE).add(KS.HAS_MENTION, id));
}
} else {
throw new Error("Unexpected type: " + type);
}
return map;
}