use of nars.entity.Task in project opennars by opennars.
the class BudgetFunctions method revise.
/**
* Evaluate the quality of a revision, then de-prioritize the premises
*
* @param tTruth The truth value of the judgment in the task
* @param bTruth The truth value of the belief
* @param truth The truth value of the conclusion of revision
* @return The budget for the new task
*/
static BudgetValue revise(final TruthValue tTruth, final TruthValue bTruth, final TruthValue truth, final boolean feedbackToLinks, final nars.control.DerivationContext nal) {
final float difT = truth.getExpDifAbs(tTruth);
final Task task = nal.getCurrentTask();
task.decPriority(1 - difT);
task.decDurability(1 - difT);
if (feedbackToLinks) {
TaskLink tLink = nal.getCurrentTaskLink();
tLink.decPriority(1 - difT);
tLink.decDurability(1 - difT);
TermLink bLink = nal.getCurrentBeliefLink();
final float difB = truth.getExpDifAbs(bTruth);
bLink.decPriority(1 - difB);
bLink.decDurability(1 - difB);
}
float dif = truth.getConfidence() - max(tTruth.getConfidence(), bTruth.getConfidence());
float priority = or(dif, task.getPriority());
float durability = aveAri(dif, task.getDurability());
float quality = truthToQuality(truth);
return new BudgetValue(priority, durability, quality);
}
use of nars.entity.Task in project opennars by opennars.
the class Evaluate method execute.
/**
* To create a quest with a given statement
* @param args Arguments, a Statement followed by an optional tense
* @param memory The memory in which the operation is executed
* @return Immediate results as Tasks
*/
@Override
protected ArrayList<Task> execute(Operation operation, Term[] args, Memory memory) {
Term content = args[1];
Sentence sentence = new Sentence(content, Symbols.QUEST_MARK, null, new Stamp(memory));
BudgetValue budget = new BudgetValue(Parameters.DEFAULT_QUEST_PRIORITY, Parameters.DEFAULT_QUESTION_DURABILITY, 1);
return Lists.newArrayList(new Task(sentence, budget, true));
}
use of nars.entity.Task in project opennars by opennars.
the class Feel method feeling.
/**
* To get the current value of an internal sensor
*
* @param value The value to be checked, in [0, 1]
* @param memory The memory in which the operation is executed
* @return Immediate results as Tasks
*/
protected ArrayList<Task> feeling(float value, Memory memory) {
Stamp stamp = new Stamp(memory, Tense.Present);
TruthValue truth = new TruthValue(value, Parameters.DEFAULT_JUDGMENT_CONFIDENCE);
Term predicate = new SetInt(feelingTerm);
Term content = Inheritance.make(selfSubject, predicate);
Sentence sentence = new Sentence(content, Symbols.JUDGMENT_MARK, truth, stamp);
float quality = BudgetFunctions.truthToQuality(truth);
BudgetValue budget = new BudgetValue(Parameters.DEFAULT_JUDGMENT_PRIORITY, Parameters.DEFAULT_JUDGMENT_DURABILITY, quality);
return Lists.newArrayList(new Task(sentence, budget, true));
}
Aggregations