From 849f9b02439ebccbfe2f957eca3181bd853d3c70 Mon Sep 17 00:00:00 2001 From: Patrick Hammer <patham9@gmail.com> Date: Fri, 6 Apr 2018 18:56:15 -0400 Subject: [PATCH] NAL9 improvements with working example --- nal/opennars2/fear.nal | 7 +++++++ nars_core/nars/control/ConceptProcessing.java | 2 +- nars_core/nars/main/NAR.java | 2 ++ nars_core/nars/main/Plugins.java | 3 --- nars_core/nars/operator/mental/Believe.java | 2 -- nars_core/nars/plugin/mental/Counting.java | 2 +- nars_core/nars/plugin/mental/InternalExperience.java | 12 ++++++------ 7 files changed, 17 insertions(+), 13 deletions(-) create mode 100644 nal/opennars2/fear.nal diff --git a/nal/opennars2/fear.nal b/nal/opennars2/fear.nal new file mode 100644 index 0000000000..044e939b55 --- /dev/null +++ b/nal/opennars2/fear.nal @@ -0,0 +1,7 @@ +<{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 diff --git a/nars_core/nars/control/ConceptProcessing.java b/nars_core/nars/control/ConceptProcessing.java index 2410445dda..8bea715d37 100644 --- a/nars_core/nars/control/ConceptProcessing.java +++ b/nars_core/nars/control/ConceptProcessing.java @@ -542,7 +542,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.getBudget().summary()>=InternalExperience.MINIMUM_BUDGET_SUMMARY_TO_CREATE_ANTICIPATION) { + if(ctarget != null && ctarget.getPriority()>=InternalExperience.MINIMUM_BUDGET_SUMMARY_TO_CREATE_ANTICIPATION) { ((Anticipate)c.memory.getOperator("^anticipate")).anticipationFeedback(imp.getPredicate(), null, c.memory); } } diff --git a/nars_core/nars/main/NAR.java b/nars_core/nars/main/NAR.java index 2af568d1b9..fca28d8659 100644 --- a/nars_core/nars/main/NAR.java +++ b/nars_core/nars/main/NAR.java @@ -202,11 +202,13 @@ public class NAR extends SensoryChannel implements Serializable,Runnable { this.reset(); return true; } + else if(text.startsWith("*decisionthreshold=")) { Double value = Double.valueOf(text.split("decisionthreshold=")[1]); param.decisionThreshold.set(value); return true; } + else if(text.startsWith("*volume=")) { Integer value = Integer.valueOf(text.split("volume=")[1]); param.noiseLevel.set(value); diff --git a/nars_core/nars/main/Plugins.java b/nars_core/nars/main/Plugins.java index 6a03ce4944..219706c37b 100644 --- a/nars_core/nars/main/Plugins.java +++ b/nars_core/nars/main/Plugins.java @@ -1,6 +1,5 @@ package nars.main; -import nars.main.NAR; import nars.operator.mental.Anticipate; import nars.plugin.mental.FullInternalExperience; import nars.plugin.mental.InternalExperience; @@ -8,7 +7,6 @@ import nars.plugin.misc.RuntimeNARSettings; import nars.plugin.mental.Emotions; import nars.plugin.mental.Counting; import nars.plugin.mental.Abbreviation; -import nars.plugin.mental.ComplexEmotions; import nars.language.SetInt; import nars.language.Term; import nars.plugin.perception.VisionChannel; @@ -22,7 +20,6 @@ public class Plugins { n.addPlugin(new RuntimeNARSettings()); n.addPlugin(new Emotions()); n.addPlugin(new Anticipate()); // expect an event - n.addPlugin(new ComplexEmotions()); Term label = SetInt.make(new Term("bright")); n.addSensoryChannel(label.toString(), new VisionChannel(label, n, n, 1, 1)); diff --git a/nars_core/nars/operator/mental/Believe.java b/nars_core/nars/operator/mental/Believe.java index bc5f28c874..69a93f8901 100644 --- a/nars_core/nars/operator/mental/Believe.java +++ b/nars_core/nars/operator/mental/Believe.java @@ -33,8 +33,6 @@ import nars.inference.BudgetFunctions; import nars.io.Symbols; import nars.language.Term; import nars.operator.Operation; -import nars.operator.Operation; -import nars.operator.Operator; import nars.operator.Operator; /** diff --git a/nars_core/nars/plugin/mental/Counting.java b/nars_core/nars/plugin/mental/Counting.java index f77542cdfc..5ff8bace7d 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.budget.summary() < InternalExperience.MINIMUM_BUDGET_SUMMARY_TO_CREATE) { + if(task.getPriority() < InternalExperience.MINIMUM_BUDGET_SUMMARY_TO_CREATE) { return; } diff --git a/nars_core/nars/plugin/mental/InternalExperience.java b/nars_core/nars/plugin/mental/InternalExperience.java index 17b15c545e..d60dbcb2a5 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.92f; //0.92 - public static float MINIMUM_BUDGET_SUMMARY_TO_CREATE_WONDER_EVALUATE=0.92f; - public static float MINIMUM_BUDGET_SUMMARY_TO_CREATE_ANTICIPATION=0.92f; + 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; //internal experience has less durability? public static final float INTERNAL_EXPERIENCE_PROBABILITY=0.0001f; @@ -137,7 +137,7 @@ public class InternalExperience implements Plugin, EventObserver { arg[0]=Term.SELF; arg[1]=s.getTerm(); if (s.truth != null) { - arg[2] = s.truth.toWordTerm(); + arg[2] = s.projection(mem.time(), mem.time()).truth.toWordTerm(); } //Operation.make ? @@ -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.budget.summary()<MINIMUM_BUDGET_SUMMARY_TO_CREATE_WONDER_EVALUATE) { + if(task.getPriority()<MINIMUM_BUDGET_SUMMARY_TO_CREATE_WONDER_EVALUATE) { return false; } } else - if(task.budget.summary()<MINIMUM_BUDGET_SUMMARY_TO_CREATE) { + if(task.getPriority()<MINIMUM_BUDGET_SUMMARY_TO_CREATE) { return false; } } -- GitLab