Пример #1
0
 def getMatchingAndUpstream(cls, allNodes, dependencyGraph, matcher):
     """ generated source for method getMatchingAndUpstream """
     results = Sets.newHashSet()
     toTry = Queues.newArrayDeque()
     toTry.addAll(Collections2.filter(allNodes, matcher))
     while not toTry.isEmpty():
         if not results.contains(curElem):
             results.add(curElem)
             toTry.addAll(dependencyGraph.get(curElem))
     return ImmutableSet.copyOf(results)
Пример #2
0
 def applyRuleBodyOnlyPropagation(cls, neededConstantsByForm, curDomains, model):
     """ generated source for method applyRuleBodyOnlyPropagation """
     somethingChanged = False
     for rule in getRules(model.getDescription()):
         for var in ImmutableSet.copyOf(GdlUtils.getVariables(rule)):
             if not varsInHead.contains(var):
                 if neededConstants == None:
                     raise IllegalStateException("var is " + var + ";\nvarDomains key set is " + varDomains.keySet() + ";\nvarsInHead is " + varsInHead + ";\nrule is " + rule)
                 for conjunct in rule.getBody():
                     somethingChanged |= addPossibleValuesToConjunct(neededConstants, conjunct, var, neededConstantsByForm, model)
     return somethingChanged
Пример #3
0
 def getAmbiguitiesByOriginalForm(cls, model):
     """ generated source for method getAmbiguitiesByOriginalForm """
     result = ArrayListMultimap.create()
     formsByName = getFormsByName(model)
     for name in formsByName.keySet():
         for form in forms:
             result.putAll(form, getAmbiguities(form, forms))
     allForms = ImmutableSet.copyOf(formsByName.values())
     for ambiguity in result.values():
         Assert.assertTrue(allForms.contains(ambiguity.getOriginal()))
         Assert.assertTrue(allForms.contains(ambiguity.getReplacement()))
     return result
Пример #4
0
 def propagatePossibleConstants(cls, newPossibleConstantsByForm, curDomain, model):
     """ generated source for method propagatePossibleConstants """
     # Injection: Go from the intersections of variable values in rules to the
     # values in their heads
     somethingChanged = False
     for rule in getRules(model.getDescription()):
         for varInHead in ImmutableSet.copyOf(GdlUtils.getVariables(rule.getHead())):
             domainsOfHeadVars.put(varInHead, domain)
             somethingChanged |= addPossibleValuesToSentence(domain, head, varInHead, newPossibleConstantsByForm, model)
     # Language-based injections
     somethingChanged |= applyLanguageBasedInjections(GdlPool.INIT, GdlPool.TRUE, newPossibleConstantsByForm)
     somethingChanged |= applyLanguageBasedInjections(GdlPool.NEXT, GdlPool.TRUE, newPossibleConstantsByForm)
     somethingChanged |= applyLanguageBasedInjections(GdlPool.LEGAL, GdlPool.DOES, newPossibleConstantsByForm)
     return somethingChanged
Пример #5
0
 def mergeStrata(cls, toMerge, toAdd, strataDependencyGraph):
     """ generated source for method mergeStrata """
     newStratum = ImmutableSet.copyOf(Iterables.concat(toMerge))
     for oldStratum in toMerge:
         toAdd.remove(oldStratum)
     toAdd.add(newStratum)
     # Change the keys
     for oldStratum in toMerge:
         strataDependencyGraph.putAll(newStratum, parents)
         strataDependencyGraph.removeAll(oldStratum)
     # Change the values
     for entry in ImmutableList.copyOf(strataDependencyGraph.entries()):
         if toMerge.contains(entry.getValue()):
             strataDependencyGraph.remove(entry.getKey(), entry.getValue())
             strataDependencyGraph.put(entry.getKey(), newStratum)
Пример #6
0
 def copyOf(cls, other):
     """ generated source for method copyOf """
     if isinstance(other, (ImmutableSentenceDomainModel, )):
         return cls.copyOf((other).getFormModel())
     elif isinstance(other, (ImmutableSentenceFormModel, )):
         return other
     rulesByForm = ImmutableSetMultimap.builder()
     trueSentencesByForm = ImmutableSetMultimap.builder()
     for form in other.getSentenceForms():
         rulesByForm.putAll(form, other.getRules(form))
         trueSentencesByForm.putAll(form, other.getSentencesListedAsTrue(form))
     return ImmutableSentenceFormModel(ImmutableList.copyOf(other.getDescription()), ImmutableSet.copyOf(other.getSentenceForms()), ImmutableSet.copyOf(other.getConstantSentenceForms()), ImmutableSet.copyOf(other.getIndependentSentenceForms()), ImmutableSetMultimap.copyOf(other.getDependencyGraph()), rulesByForm.build(), trueSentencesByForm.build())
Пример #7
0
 def __init__(self, interfaceClass):
     """ generated source for method __init__ """
     self.interfaceClass = interfaceClass
     self.allClasses = ImmutableSet.copyOf(self.REFLECTIONS.getSubTypesOf(interfaceClass))
     self.concreteClasses = ImmutableSet.copyOf(Sets.filter(self.allClasses, self.IS_CONCRETE_CLASS))
Пример #8
0
 def findSentenceForms(self):
     """ generated source for method findSentenceForms """
     createModel()
     return ImmutableSet.copyOf(getSentenceFormsFromModel())
Пример #9
0
 def create(cls, form, constantChecker):
     """ generated source for method create """
     return FunctionInfoImpl(form, ImmutableSet.copyOf(constantChecker.getTrueSentences(form)))
Пример #10
0
 def getConstantSentenceForms(cls, sentenceForms, dependencyGraph):
     """ generated source for method getConstantSentenceForms """
     augmentedGraph = augmentGraphWithLanguageRules(dependencyGraph, sentenceForms)
     changingSentenceForms = DependencyGraphs.getMatchingAndDownstream(sentenceForms, augmentedGraph, Predicates.or_(SentenceForms.TRUE_PRED, SentenceForms.DOES_PRED))
     return ImmutableSet.copyOf(Sets.difference(sentenceForms, changingSentenceForms))
Пример #11
0
 def getIndependentSentenceForms(cls, sentenceForms, dependencyGraph):
     """ generated source for method getIndependentSentenceForms """
     augmentedGraph = augmentGraphWithLanguageRules(dependencyGraph, sentenceForms)
     moveDependentSentenceForms = DependencyGraphs.getMatchingAndDownstream(sentenceForms, augmentedGraph, SentenceForms.DOES_PRED)
     return ImmutableSet.copyOf(Sets.difference(sentenceForms, moveDependentSentenceForms))