def rule_strength_tester(codelet): rule = codelet.arguments[0] rule.updateStrength() probability = formulas.temperatureAdjustedProbability( rule.totalStrength / 100.0) assert random.random() <= probability coderack.newCodelet('rule-builder', codelet, rule.totalStrength, rule)
def description_strength_tester(codelet): description = codelet.arguments[0] description.descriptor.buffer = 100.0 description.updateStrength() strength = description.totalStrength probability = formulas.temperatureAdjustedProbability(strength / 100.0) assert formulas.coinFlip(probability) coderack.newCodelet('description-builder', codelet, strength)
def group_strength_tester(codelet): # update strength value of the group group = codelet.arguments[0] __showWhichStringObjectIsFrom(group) group.updateStrength() strength = group.totalStrength probability = formulas.temperatureAdjustedProbability(strength / 100.0) assert random.random() <= probability # it is strong enough - post builder & activate nodes group.groupCategory.getRelatedNode(slipnet.bondCategory).buffer = 100.0 if group.directionCategory: group.directionCategory.buffer = 100.0 coderack.newCodelet('group-builder', codelet, strength)
def bond_strength_tester(codelet): bond = codelet.arguments[0] __showWhichStringObjectIsFrom(bond) bond.updateStrength() strength = bond.totalStrength probability = formulas.temperatureAdjustedProbability(strength / 100.0) logging.info('bond strength = %d for %s', strength, bond) assert formulas.coinFlip(probability) bond.facet.buffer = 100.0 bond.sourceDescriptor.buffer = 100.0 bond.destinationDescriptor.buffer = 100.0 logging.info("succeeded: posting bond-builder") coderack.newCodelet('bond-builder', codelet, strength)
def correspondence_strength_tester(codelet): correspondence = codelet.arguments[0] objectFromInitial = correspondence.objectFromInitial objectFromTarget = correspondence.objectFromTarget assert objectFromInitial in workspace.objects and (objectFromTarget in workspace.objects or correspondence.flipTargetObject and not workspace.target.equivalentGroup(objectFromTarget.flipped_version())) correspondence.update_strength() strength = correspondence.total_strength probability = temperatureAdjustedProbability(strength / 100.0) assert random.random() <= probability # activate some concepts for mapping in correspondence.conceptMappings: mapping.initialDescriptionType.buffer = 100.0 mapping.initialDescriptor.buffer = 100.0 mapping.targetDescriptionType.buffer = 100.0 mapping.targetDescriptor.buffer = 100.0 coderack.newCodelet('correspondence-builder', codelet, strength, correspondence)