public ItemSet getSelectedItemSet() throws Exception {
	if (this.cache==null) {
		Iterator<HypertopicMap.Viewpoint.Topic> t = 
			this.selectedTopics.iterator(); 
		if (t.hasNext()) {
			HypertopicMap.Viewpoint.Topic topic = t.next();
			this.cache = new ItemSet(topic);
			while (t.hasNext()) {
				topic = t.next();
				this.cache.retainAll(
					new ItemSet(topic)
				);
			}
		} else {
			this.cache = new ItemSet();
			for (HypertopicMap.Corpus c : this.openedCorpora) {
				this.cache.addAll(
					new ItemSet(c)
				);
			}
		}
	}
	return this.cache;
}