diff --git a/nal/opennars2/fear.nal b/nal/opennars2/fear.nal index 044e939b55ce9b5f0cfa04611221a4d3f589c2b7..32c7e536fd3c90d16458a0cde45e18a9d99d7dfd 100644 --- a/nal/opennars2/fear.nal +++ b/nal/opennars2/fear.nal @@ -1,7 +1,6 @@ <{SELF} --> [hurt]>! %0% -<(&/,<a --> A>,+1000) =/> <{SELF} --> [hurt]>>. -<a --> A>. :|: -//make observable for anticipation: -<{SELF} --> [hurt]>. :|: %1.0;0.01% -<(&|,(^want,{SELF},#1,FALSE),(^anticipate,{SELF},#1)) =|> <{SELF} --> [afraid]>>. -<{SELF} --> [afraid]>? \ No newline at end of file +<{SELF} --> [hurt]>. :|: %0% +<(&/,<(*,{SELF},wolf) --> close_to>,+1000) =/> <{SELF} --> [hurt]>>. +<(*,{SELF},wolf) --> close_to>. :|: +<(&|,(^want,{SELF},$1,FALSE),(^anticipate,{SELF},$1)) =|> <(*,{SELF},$1) --> afraid_of>>. +<(*,{SELF},?what) --> afraid_of>? \ No newline at end of file diff --git a/nars_core/nars/control/ConceptProcessing.java b/nars_core/nars/control/ConceptProcessing.java index 8bea715d378b83106ccb638b138e09e8c598961a..f21f7c6f2adbc69f5b78435e71c83b4c9c15a1d9 100644 --- a/nars_core/nars/control/ConceptProcessing.java +++ b/nars_core/nars/control/ConceptProcessing.java @@ -13,15 +13,16 @@ import nars.language.*; import nars.operator.Operation; import nars.plugin.mental.InternalExperience; import nars.io.events.Events; -import nars.storage.LevelBag; - import static nars.inference.LocalRules.revisible; import static nars.inference.LocalRules.revision; import static nars.inference.LocalRules.trySolution; import nars.operator.FunctionOperator; import nars.operator.Operator; import nars.operator.mental.Anticipate; -import static nars.plugin.mental.InternalExperience.MINIMUM_BUDGET_SUMMARY_TO_CREATE_WONDER_EVALUATE; +import nars.operator.mental.Believe; +import nars.operator.mental.Want; +import nars.operator.mental.Evaluate; +import nars.operator.mental.Wonder; public class ConceptProcessing { /** @@ -37,7 +38,13 @@ public class ConceptProcessing { public static boolean processTask(Concept concept, final DerivationContext nal, final Task task) { if(task.isInput()) { if(task.sentence.isJudgment() && !task.sentence.isEternal() && task.sentence.term instanceof Operation) { - TemporalInferenceControl.NewOperationFrame(nal.memory, task); + Operation op = (Operation) task.sentence.term; + Operator o = (Operator) op.getPredicate(); + //only consider these mental ops an operation to track when executed not already when generated as internal event + if(!(o instanceof Believe) && !(o instanceof Want) && !(o instanceof Wonder) + && !(o instanceof Evaluate) && !(o instanceof Anticipate)) { + TemporalInferenceControl.NewOperationFrame(nal.memory, task); + } } concept.observable = true; } @@ -542,7 +549,7 @@ public class ConceptProcessing { if(c.negConfirmation.sentence.term instanceof Implication) { Implication imp = (Implication) c.negConfirmation.sentence.term; Concept ctarget = nal.memory.concept(imp.getPredicate()); - if(ctarget != null && ctarget.getPriority()>=InternalExperience.MINIMUM_BUDGET_SUMMARY_TO_CREATE_ANTICIPATION) { + if(ctarget != null && ctarget.getPriority()>=InternalExperience.MINIMUM_CONCEPT_PRIORITY_TO_CREATE_ANTICIPATION) { ((Anticipate)c.memory.getOperator("^anticipate")).anticipationFeedback(imp.getPredicate(), null, c.memory); } } diff --git a/nars_core/nars/plugin/mental/Counting.java b/nars_core/nars/plugin/mental/Counting.java index 5ff8bace7d63ce5202842e2c3fd27d888a34a444..85f88b874f2aa7753b42268d6b8835af1672dfa0 100644 --- a/nars_core/nars/plugin/mental/Counting.java +++ b/nars_core/nars/plugin/mental/Counting.java @@ -38,7 +38,7 @@ public class Counting implements Plugin { return; Task task = (Task)a[0]; - if(task.getPriority() < InternalExperience.MINIMUM_BUDGET_SUMMARY_TO_CREATE) { + if(task.getPriority() < InternalExperience.MINIMUM_PRIORITY_TO_CREATE_WANT_BELIEVE_ETC) { return; } diff --git a/nars_core/nars/plugin/mental/InternalExperience.java b/nars_core/nars/plugin/mental/InternalExperience.java index d60dbcb2a58fb1586f7ceca2f282729b2e208b45..7014132ac024662c250b997eefe459236d31db3b 100644 --- a/nars_core/nars/plugin/mental/InternalExperience.java +++ b/nars_core/nars/plugin/mental/InternalExperience.java @@ -33,9 +33,9 @@ import nars.operator.Operator; */ public class InternalExperience implements Plugin, EventObserver { - public static float MINIMUM_BUDGET_SUMMARY_TO_CREATE=0.4f; //0.92 - public static float MINIMUM_BUDGET_SUMMARY_TO_CREATE_WONDER_EVALUATE=0.4f; - public static float MINIMUM_BUDGET_SUMMARY_TO_CREATE_ANTICIPATION=0.25f; + public static float MINIMUM_PRIORITY_TO_CREATE_WANT_BELIEVE_ETC=0.3f; + public static float MINIMUM_PRIORITY_TO_CREATE_WONDER_EVALUATE=0.3f; + public static float MINIMUM_CONCEPT_PRIORITY_TO_CREATE_ANTICIPATION=0.1f; //internal experience has less durability? public static final float INTERNAL_EXPERIENCE_PROBABILITY=0.0001f; @@ -71,17 +71,17 @@ public class InternalExperience implements Plugin, EventObserver { public double getMinCreationBudgetSummary() { - return MINIMUM_BUDGET_SUMMARY_TO_CREATE; + return MINIMUM_PRIORITY_TO_CREATE_WANT_BELIEVE_ETC; } public void setMinCreationBudgetSummary(double val) { - MINIMUM_BUDGET_SUMMARY_TO_CREATE=(float) val; + MINIMUM_PRIORITY_TO_CREATE_WANT_BELIEVE_ETC=(float) val; } public double getMinCreationBudgetSummaryWonderEvaluate() { - return MINIMUM_BUDGET_SUMMARY_TO_CREATE_WONDER_EVALUATE; + return MINIMUM_PRIORITY_TO_CREATE_WONDER_EVALUATE; } public void setMinCreationBudgetSummaryWonderEvaluate(double val) { - MINIMUM_BUDGET_SUMMARY_TO_CREATE_WONDER_EVALUATE=(float) val; + MINIMUM_PRIORITY_TO_CREATE_WONDER_EVALUATE=(float) val; } private Memory memory; @@ -190,12 +190,12 @@ public class InternalExperience implements Plugin, EventObserver { // (!OLD_BELIEVE_WANT_EVALUATE_WONDER_STRATEGY && (task.sentence.punctuation==Symbols.QUESTION_MARK || task.sentence.punctuation==Symbols.QUEST_MARK))) { { if(task.sentence.punctuation == Symbols.QUESTION_MARK || task.sentence.punctuation == Symbols.QUEST_MARK) { - if(task.getPriority()<MINIMUM_BUDGET_SUMMARY_TO_CREATE_WONDER_EVALUATE) { + if(task.getPriority()<MINIMUM_PRIORITY_TO_CREATE_WONDER_EVALUATE) { return false; } } else - if(task.getPriority()<MINIMUM_BUDGET_SUMMARY_TO_CREATE) { + if(task.getPriority()<MINIMUM_PRIORITY_TO_CREATE_WANT_BELIEVE_ETC) { return false; } }