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