private Map<SentenceForm, SentenceFormDomain> getCartesianDomainsFromModel() throws InterruptedException {
Map<SentenceForm, SentenceFormDomain> results = Maps.newHashMap();
for (Entry<NameAndArity, List<TermModel>> sentenceEntry : sentencesModel.entrySet()) {
ConcurrencyUtils.checkForInterruption();
NameAndArity nameAndArity = sentenceEntry.getKey();
GdlConstant name = nameAndArity.getName();
List<TermModel> bodyModels = sentenceEntry.getValue();
// We'll end up taking the Cartesian product of the different
// types of terms we have available
if (nameAndArity.getArity() == 0) {
GdlSentence sentence = GdlPool.getProposition(name);