コード例 #1
0
ファイル: GdlChainingReasoner.py プロジェクト: hobson/ggpy
 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
ファイル: GdlChainingReasoner.py プロジェクト: hobson/ggpy
 def satisfiesDistinct(self, assignment, distinct):
     """ generated source for method satisfiesDistinct """
     distinct = CommonTransforms.replaceVariables(distinct, assignment)
     return distinct.getArg1() != distinct.getArg2()
コード例 #3
0
ファイル: GdlChainingReasoner.py プロジェクト: hobson/ggpy
 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)