示例#1
0
 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
示例#2
0
 def satisfiesDistinct(self, assignment, distinct):
     """ generated source for method satisfiesDistinct """
     distinct = CommonTransforms.replaceVariables(distinct, assignment)
     return distinct.getArg1() != distinct.getArg2()
示例#3
0
 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)