public Collection<JSONObject> listRelatedViewpoints() throws Exception {
	Set<String> identifiers = new HashSet();
	for (HypertopicMap.Corpus c : this.openedCorpora) {
		for (HypertopicMap.Corpus.Item i : c.getItems()) {
			for (HypertopicMap.Viewpoint.Topic t : i.getTopics()) {
				identifiers.add(t.getViewpointID());	
			}
			for (
				HypertopicMap.Corpus.Item.Highlight h : 
				i.getHighlights()
			) {
				identifiers.add(h.getTopic().getViewpointID());	
			}
		}
	}
	Collection<JSONObject> result = new ArrayList();
	for (String id : identifiers) {
		//TODO request name
		result.add(new JSONObject("{\"id\":\""+id+"\",\"name\":\""+id+"\"}"));
	}
	return result;
}