def getRuleResults(self, rule, domainModel, sentencesSoFar): """ generated source for method getRuleResults """ ConcurrencyUtils.checkForInterruption() headForm = self.model.getSentenceForm(rule.getHead()) varDomains = SentenceDomainModels.getVarDomains(rule, domainModel, VarDomainOpts.INCLUDE_HEAD) functionInfoMap = sentencesSoFar.getFunctionInfo() completedSentenceFormValues = sentencesSoFar.getSentences().asMap() assignments = AssignmentsImpl(rule, varDomains, functionInfoMap, completedSentenceFormValues) asnItr = assignments.getIterator() sentencesToAdd = GdlSentenceSet.create() while asnItr.hasNext(): for literal in rule.getBody(): ConcurrencyUtils.checkForInterruption() if not satisfies(assignment, literal, sentencesSoFar.getSentences()): asnItr.changeOneInNext(GdlUtils.getVariables(literal), assignment) allSatisfied = False break if allSatisfied: sentencesToAdd.put(headForm, CommonTransforms.replaceVariables(head, assignment)) asnItr.changeOneInNext(GdlUtils.getVariables(head), assignment) return sentencesToAdd
def satisfiesDistinct(self, assignment, distinct): """ generated source for method satisfiesDistinct """ distinct = CommonTransforms.replaceVariables(distinct, assignment) return distinct.getArg1() != distinct.getArg2()
def satisfiesSentence(self, assignment, sentence, sentencesSoFar): """ generated source for method satisfiesSentence """ sentence = CommonTransforms.replaceVariables(sentence, assignment) form = self.model.getSentenceForm(sentence) return sentencesSoFar.get(form).contains(sentence)