diff --git a/eraser-base/libs/relast.jar b/eraser-base/libs/relast.jar index 9b52866a399cfdd0c4fe29c102125beab5d77989..321f2b0bf46ce58648bdc6ebf8f36656b93201cd 100644 Binary files a/eraser-base/libs/relast.jar and b/eraser-base/libs/relast.jar differ diff --git a/eraser-base/src/main/jastadd/DecisionTree.jrag b/eraser-base/src/main/jastadd/DecisionTree.jrag index 22d94464f86fe8ab7876b4f870e4b32a5eb30521..da4352c0a2ed081d550f0ac0ba1f213d54a2f956 100644 --- a/eraser-base/src/main/jastadd/DecisionTree.jrag +++ b/eraser-base/src/main/jastadd/DecisionTree.jrag @@ -52,15 +52,15 @@ aspect DecisionTree { MachineLearningResult result = new MachineLearningResult(); Set<Item> seenItems = new HashSet<>(); List<DecisionTreeElement> ancestors = ancestors(); - for (ItemPreference pref : getPreferenceList()) { - result.addItemPreference(pref); - seenItems.add(pref.getItem()); + for (ItemUpdate update : getPreferenceList()) { + result.addItemUpdate(update); + seenItems.add(update.getItem()); } for (DecisionTreeElement ancestor : ancestors) { - for (ItemPreference pref : ancestor.getPreferenceList()) { - if (!seenItems.contains(pref.getItem())) { - result.addItemPreference(pref); - seenItems.add(pref.getItem()); + for (ItemUpdate update : ancestor.getPreferenceList()) { + if (!seenItems.contains(update.getItem())) { + result.addItemUpdate(update); + seenItems.add(update.getItem()); } } } diff --git a/eraser-base/src/main/jastadd/DecisionTree.relast b/eraser-base/src/main/jastadd/DecisionTree.relast index 17a1e65c1c6cd12ba2d49eeceba1eb920dae31bd..78271d1f64c22bc889e0f1634c6c21ffe2354cc3 100644 --- a/eraser-base/src/main/jastadd/DecisionTree.relast +++ b/eraser-base/src/main/jastadd/DecisionTree.relast @@ -1,6 +1,6 @@ // ---------------- Decision Tree ------------------------------ DecisionTreeRoot : InternalMachineLearningModel ::= RootRule:DecisionTreeRule ; -abstract DecisionTreeElement ::= Preference:ItemPreference*; +abstract DecisionTreeElement ::= Preference:ItemUpdate*; abstract DecisionTreeRule : DecisionTreeElement ::= Left:DecisionTreeElement Right:DecisionTreeElement <Label:String> ; ItemStateCheckRule : DecisionTreeRule ::= ItemStateCheck ; diff --git a/eraser-base/src/main/jastadd/Item.jrag b/eraser-base/src/main/jastadd/Item.jrag index 97ebec744146ae2b884602bc183b75bb25df7905..b749ea58a5717ee8786b3b93994ba03aa765efa1 100644 --- a/eraser-base/src/main/jastadd/Item.jrag +++ b/eraser-base/src/main/jastadd/Item.jrag @@ -398,33 +398,33 @@ aspect ItemHandling { setState(getState().withDifferentBrightness(value)); } - //--- ItemPreference.apply --- - public abstract void ItemPreference.apply(); - public void ItemPreferenceColor.apply() { - getItem().setStateFromColor(getPreferredHSB()); + //--- ItemUpdate.apply --- + public abstract void ItemUpdate.apply(); + public void ItemUpdateColor.apply() { + getItem().setStateFromColor(getNewHSB()); getItem().freeze(); for (Item controller : getItem().getControlledByList()) { - controller.setStateFromColor(getPreferredHSB()); + controller.setStateFromColor(getNewHSB()); } getItem().unfreeze(); } - //--- ItemPreference.apply --- - public void ItemPreferenceDouble.apply() { - getItem().setStateFromDouble(getPreferredValue()); + //--- ItemUpdate.apply --- + public void ItemUpdateDouble.apply() { + getItem().setStateFromDouble(getNewValue()); getItem().freeze(); for (Item controller : getItem().getControlledByList()) { - controller.setStateFromDouble(getPreferredValue()); + controller.setStateFromDouble(getNewValue()); } getItem().unfreeze(); } - //--- ItemPreference.describe --- - syn String ItemPreference.describe() = getItem().getID() + " -> " + getNewStateAsString(); + //--- ItemUpdate.describe --- + syn String ItemUpdate.describe() = getItem().getID() + " -> " + getNewStateAsString(); - //--- ItemPreference.getNewStateAsString --- - syn String ItemPreference.getNewStateAsString(); - eq ItemPreferenceColor.getNewStateAsString() = getPreferredHSB().toString(); - eq ItemPreferenceDouble.getNewStateAsString() = Double.toString(getPreferredValue()); + //--- ItemUpdate.getNewStateAsString --- + syn String ItemUpdate.getNewStateAsString(); + eq ItemUpdateColor.getNewStateAsString() = getNewHSB().toString(); + eq ItemUpdateDouble.getNewStateAsString() = Double.toString(getNewValue()); // // override Item.init$Children from JastAdd's own ASTNode aspect // refine ASTNode public void Item.init$Children() { diff --git a/eraser-base/src/main/jastadd/Logging.jadd b/eraser-base/src/main/jastadd/Logging.jadd index 710bd79a7bce048213ce0d52bb42cae5176b832a..a98a0fd051a917f4e703a8853a2ab4c1889e72b9 100644 --- a/eraser-base/src/main/jastadd/Logging.jadd +++ b/eraser-base/src/main/jastadd/Logging.jadd @@ -1,7 +1,7 @@ aspect Logging { // Base protected org.apache.logging.log4j.Logger Item.logger = org.apache.logging.log4j.LogManager.getLogger(Item.class); - protected org.apache.logging.log4j.Logger ItemPreference.logger = org.apache.logging.log4j.LogManager.getLogger(ItemPreference.class); + protected org.apache.logging.log4j.Logger ItemUpdate.logger = org.apache.logging.log4j.LogManager.getLogger(ItemUpdate.class); // MachineLearning private org.apache.logging.log4j.Logger DummyMachineLearningModel.logger = org.apache.logging.log4j.LogManager.getLogger(DummyMachineLearningModel.class); diff --git a/eraser-base/src/main/jastadd/MachineLearning.jrag b/eraser-base/src/main/jastadd/MachineLearning.jrag index 5ed155aaff7771c193433c960efc6ec02fab4d3b..f722856ba47906cc94d7b6b17e5edcaae9735d14 100644 --- a/eraser-base/src/main/jastadd/MachineLearning.jrag +++ b/eraser-base/src/main/jastadd/MachineLearning.jrag @@ -24,15 +24,15 @@ aspect MachineLearning { syn java.util.Optional<Activity> Root.currentActivity() { return resolveActivity((int) getSmartHomeEntityModel().getActivityItem().getState()); } - private int Root.extractActivityIdentifier(List<ItemPreference> preferences) { - if (preferences.isEmpty()) { + private int Root.extractActivityIdentifier(List<ItemUpdate> updates) { + if (updates.isEmpty()) { return -1; } - return (int) ((ItemPreferenceDouble) preferences.get(0)).getPreferredValue(); + return (int) ((ItemUpdateDouble) updates.get(0)).getNewValue(); } // //--- currentPreferences --- -// syn List<ItemPreference> Root.currentPreferences() = getMachineLearningRoot().getPreferenceLearning().getDecoder().classify().getItemPreferences(); +// syn List<ItemUpdate> Root.currentPreferences() = getMachineLearningRoot().getPreferenceLearning().getDecoder().classify().getItemUpdates(); //--- canSetActivity --- syn boolean MachineLearningModel.canSetActivity() = false; @@ -170,7 +170,7 @@ aspect MachineLearning { //--- classify --- public MachineLearningResult MachineLearningModel.classify() { MachineLearningResult result = getDecoder().classify(); - setLastPreference(result); + setLastResult(result); return result; } @@ -180,29 +180,29 @@ aspect MachineLearning { return false; } MachineLearningResult otherResult = (MachineLearningResult) other; - if (getNumItemPreference() != otherResult.getNumItemPreference()) { + if (getNumItemUpdate() != otherResult.getNumItemUpdate()) { return false; } - for (int i = 0; i < getNumItemPreference(); i++) { - if (!getItemPreference(i).equals(otherResult.getItemPreference(i))) { + for (int i = 0; i < getNumItemUpdate(); i++) { + if (!getItemUpdate(i).equals(otherResult.getItemUpdate(i))) { return false; } } return true; } - public abstract boolean ItemPreference.equals(Object other); - public boolean ItemPreferenceDouble.equals(Object other) { - if (!(other instanceof ItemPreferenceDouble)) { + public abstract boolean ItemUpdate.equals(Object other); + public boolean ItemUpdateDouble.equals(Object other) { + if (!(other instanceof ItemUpdateDouble)) { return false; } - return getItem() == ((ItemPreferenceDouble) other).getItem() && getPreferredValue() == ((ItemPreferenceDouble) other).getPreferredValue(); + return getItem() == ((ItemUpdateDouble) other).getItem() && getNewValue() == ((ItemUpdateDouble) other).getNewValue(); } - public boolean ItemPreferenceColor.equals(Object other) { - if (!(other instanceof ItemPreferenceColor)) { + public boolean ItemUpdateColor.equals(Object other) { + if (!(other instanceof ItemUpdateColor)) { return false; } - return getItem() == ((ItemPreferenceColor) other).getItem() && getPreferredHSB() == ((ItemPreferenceColor) other).getPreferredHSB(); + return getItem() == ((ItemUpdateColor) other).getItem() && getNewHSB() == ((ItemUpdateColor) other).getNewHSB(); } } @@ -216,8 +216,8 @@ aspect ChangeEvents { for (Item relevantItem : modelOfRecognition.getRelevantItems()) { result.addRelevantItem(ChangedItem.newFrom(relevantItem)); } - if (modelOfRecognition.hasLastPreference()) { - for (ItemPreference preference : modelOfRecognition.getLastPreference().getItemPreferences()) { + if (modelOfRecognition.hasLastResult()) { + for (ItemUpdate preference : modelOfRecognition.getLastResult().getItemUpdates()) { result.addChangedItem(ChangedItem.newFrom(preference)); } } @@ -232,8 +232,8 @@ aspect ChangeEvents { return result; } - //--- newFrom ItemPreference --- - public static ChangedItem ChangedItem.newFrom(ItemPreference update) { + //--- newFrom ItemUpdate --- + public static ChangedItem ChangedItem.newFrom(ItemUpdate update) { ChangedItem result = new ChangedItem(); result.setItem(update.getItem()); result.setNewStateAsString(update.getNewStateAsString()); diff --git a/eraser-base/src/main/jastadd/MachineLearning.relast b/eraser-base/src/main/jastadd/MachineLearning.relast index 07229645c6500a122d2478d04b0c8b4255e2b234..5efa5ccbf867ff38857b4abf10036166545d28af 100644 --- a/eraser-base/src/main/jastadd/MachineLearning.relast +++ b/eraser-base/src/main/jastadd/MachineLearning.relast @@ -14,7 +14,7 @@ rel RecognitionEvent.RelevantItem* -> ChangedItem ; ManualChangeEvent : ChangeEvent ; -abstract MachineLearningModel ::= [LastPreference:MachineLearningResult] ; +abstract MachineLearningModel ::= [LastResult:MachineLearningResult] ; rel MachineLearningModel.RelevantItem* <-> Item.RelevantInMachineLearningModel* ; rel MachineLearningModel.TargetItem* <-> Item.TargetInMachineLearningModel* ; @@ -22,10 +22,10 @@ ExternalMachineLearningModel : MachineLearningModel ; abstract InternalMachineLearningModel : MachineLearningModel ::= <OutputApplication:DoubleDoubleFunction> ; -MachineLearningResult ::= ItemPreference* ; +MachineLearningResult ::= ItemUpdate* ; -abstract ItemPreference ::= ; -rel ItemPreference.Item -> Item ; +abstract ItemUpdate ::= ; +rel ItemUpdate.Item -> Item ; -ItemPreferenceColor : ItemPreference ::= <PreferredHSB:TupleHSB> ; -ItemPreferenceDouble : ItemPreference ::= <PreferredValue:double> ; +ItemUpdateColor : ItemUpdate ::= <NewHSB:TupleHSB> ; +ItemUpdateDouble : ItemUpdate ::= <NewValue:double> ; diff --git a/eraser-base/src/main/jastadd/NeuralNetwork.jrag b/eraser-base/src/main/jastadd/NeuralNetwork.jrag index c9035025c77943cabf4f93fead3d9f56ecffea2b..b4614dd89620e334f947b4450ab5a1c7f9c520a0 100644 --- a/eraser-base/src/main/jastadd/NeuralNetwork.jrag +++ b/eraser-base/src/main/jastadd/NeuralNetwork.jrag @@ -20,7 +20,7 @@ aspect NeuralNetwork { } public MachineLearningResult computePreferences() { MachineLearningResult result = new MachineLearningResult(); - result.addItemPreference(new ItemPreferenceDouble(affectedItem, number)); + result.addItemUpdate(new ItemUpdateDouble(affectedItem, number)); return result; } } diff --git a/eraser-base/src/test/java/de/tudresden/inf/st/eraser/DecisionTreeTest.java b/eraser-base/src/test/java/de/tudresden/inf/st/eraser/DecisionTreeTest.java index 9ffee83b3a16695fd392efa6e123e7d9754a2fe1..85f0722976a1365aa021dd55ea1d3694589530bd 100644 --- a/eraser-base/src/test/java/de/tudresden/inf/st/eraser/DecisionTreeTest.java +++ b/eraser-base/src/test/java/de/tudresden/inf/st/eraser/DecisionTreeTest.java @@ -145,23 +145,23 @@ public class DecisionTreeTest { } private ItemStateCheckRule newRule(DecisionTreeElement left, DecisionTreeElement right, String label, - ItemStateNumberCheck check, ItemPreference... preferences) { + ItemStateNumberCheck check, ItemUpdate... updates) { ItemStateCheckRule result = new ItemStateCheckRule(); result.setLeft(left); result.setRight(right); result.setLabel(label); result.setItemStateCheck(check); - for (ItemPreference preference : preferences) { - result.addPreference(preference); + for (ItemUpdate update : updates) { + result.addPreference(update); } return result; } - private DecisionTreeLeaf newLeaf(String label, ItemPreference... preferences) { + private DecisionTreeLeaf newLeaf(String label, ItemUpdate... updates) { DecisionTreeLeaf result = new DecisionTreeLeaf(); result.setLabel(label); - for (ItemPreference preference : preferences) { - result.addPreference(preference); + for (ItemUpdate update : updates) { + result.addPreference(update); } return result; } diff --git a/feedbackloop.analyze/src/main/java/de/tudresden/inf/st/eraser/feedbackloop/analyze/AnalyzeImpl.java b/feedbackloop.analyze/src/main/java/de/tudresden/inf/st/eraser/feedbackloop/analyze/AnalyzeImpl.java index b3d3a3d4b61c23cccd18a6939920a473a614d1f7..1bf035c38f529000f801f3f34855ff6e48293c50 100644 --- a/feedbackloop.analyze/src/main/java/de/tudresden/inf/st/eraser/feedbackloop/analyze/AnalyzeImpl.java +++ b/feedbackloop.analyze/src/main/java/de/tudresden/inf/st/eraser/feedbackloop/analyze/AnalyzeImpl.java @@ -3,7 +3,7 @@ package de.tudresden.inf.st.eraser.feedbackloop.analyze; import de.tudresden.inf.st.eraser.feedbackloop.api.Analyze; import de.tudresden.inf.st.eraser.feedbackloop.api.Plan; import de.tudresden.inf.st.eraser.jastadd.model.Activity; -import de.tudresden.inf.st.eraser.jastadd.model.ItemPreference; +import de.tudresden.inf.st.eraser.jastadd.model.ItemUpdate; import de.tudresden.inf.st.eraser.jastadd.model.MachineLearningResult; import de.tudresden.inf.st.eraser.jastadd.model.Root; import org.apache.logging.log4j.LogManager; @@ -45,7 +45,7 @@ public class AnalyzeImpl implements Analyze { @Override public void analyzeLatestChanges() { MachineLearningResult recognitionResult = knowledgeBase.getMachineLearningRoot().getActivityRecognition().getDecoder().classify(); - recognitionResult.getItemPreferences().forEach(ItemPreference::apply); + recognitionResult.getItemUpdates().forEach(ItemUpdate::apply); knowledgeBase.currentActivity().ifPresent(activity -> { MachineLearningResult newMLResult = knowledgeBase.getMachineLearningRoot().getPreferenceLearning().classify(); // check if activity has changed diff --git a/feedbackloop.api/src/main/java/de/tudresden/inf/st/eraser/feedbackloop/api/Execute.java b/feedbackloop.api/src/main/java/de/tudresden/inf/st/eraser/feedbackloop/api/Execute.java index 0592bdcedb4980e4e66e357690c5312f1c92202e..4809ab7396dbd9ba658ab09f4a044fcad37cf452 100644 --- a/feedbackloop.api/src/main/java/de/tudresden/inf/st/eraser/feedbackloop/api/Execute.java +++ b/feedbackloop.api/src/main/java/de/tudresden/inf/st/eraser/feedbackloop/api/Execute.java @@ -1,11 +1,10 @@ package de.tudresden.inf.st.eraser.feedbackloop.api; import de.tudresden.inf.st.eraser.commons.color.ColorUtils.RGBvalues; -import de.tudresden.inf.st.eraser.jastadd.model.ItemPreference; +import de.tudresden.inf.st.eraser.jastadd.model.ItemUpdate; import de.tudresden.inf.st.eraser.jastadd.model.Root; import de.tudresden.inf.st.eraser.util.Tuple; -import java.util.List; import java.util.Map; /** @@ -29,8 +28,8 @@ public interface Execute { void updateItems(Map<String, Tuple<Integer, RGBvalues>> brightnessAndRgbForItems); /** - * Updates items according to given preferences - * @param preferences tuples containing item and its new HSB value + * Updates items according to given updates + * @param updates tuples containing item and its new HSB value */ - void updateItems(Iterable<ItemPreference> preferences); + void updateItems(Iterable<ItemUpdate> updates); } diff --git a/feedbackloop.api/src/main/java/de/tudresden/inf/st/eraser/feedbackloop/api/Plan.java b/feedbackloop.api/src/main/java/de/tudresden/inf/st/eraser/feedbackloop/api/Plan.java index eae690c1390b8f14dd776c9fb58d0e5343b692a6..5155a62bf8d2eebe012fdb7dbf6f478818d115a1 100644 --- a/feedbackloop.api/src/main/java/de/tudresden/inf/st/eraser/feedbackloop/api/Plan.java +++ b/feedbackloop.api/src/main/java/de/tudresden/inf/st/eraser/feedbackloop/api/Plan.java @@ -1,11 +1,9 @@ package de.tudresden.inf.st.eraser.feedbackloop.api; import de.tudresden.inf.st.eraser.jastadd.model.Activity; -import de.tudresden.inf.st.eraser.jastadd.model.ItemPreference; +import de.tudresden.inf.st.eraser.jastadd.model.ItemUpdate; import de.tudresden.inf.st.eraser.jastadd.model.Root; -import java.util.List; - /** * Third phase in the MAPE feedback loop, planning reconfiguration actions to adapt to recent changes. * @@ -21,7 +19,7 @@ public interface Plan { void planToMatchPreferences(Activity activity); - default void informExecute(Iterable<ItemPreference> preferences) { - getExecute().updateItems(preferences); + default void informExecute(Iterable<ItemUpdate> updates) { + getExecute().updateItems(updates); } } diff --git a/feedbackloop.execute/src/main/java/de/tudresden/inf/st/eraser/feedbackloop/execute/ExecuteImpl.java b/feedbackloop.execute/src/main/java/de/tudresden/inf/st/eraser/feedbackloop/execute/ExecuteImpl.java index 90baaff24e042423b4abf8b4958223bfe63f6086..1765c3e6dd04f2795604c712d36712df029eb6ab 100644 --- a/feedbackloop.execute/src/main/java/de/tudresden/inf/st/eraser/feedbackloop/execute/ExecuteImpl.java +++ b/feedbackloop.execute/src/main/java/de/tudresden/inf/st/eraser/feedbackloop/execute/ExecuteImpl.java @@ -29,7 +29,7 @@ public class ExecuteImpl implements Execute { @Override public void updateItems(Map<String, Tuple<Integer, RGBvalues>> brightnessAndRgbForItems) { - List<ItemPreference> preferences = new ArrayList<>(); + List<ItemUpdate> updates = new ArrayList<>(); for (Map.Entry<String, Tuple<Integer, RGBvalues>> entry : brightnessAndRgbForItems.entrySet()) { String itemId = entry.getKey(); resolveOrLogError(itemId, item -> { @@ -47,15 +47,15 @@ public class ExecuteImpl implements Execute { hsb = HSBvalues255.of(0, 100, brightness); } hsb.ensureBounds(); - preferences.add(new ItemPreferenceColor(item, TupleHSB.of(hsb.hue, hsb.saturation, hsb.brightness))); + updates.add(new ItemUpdateColor(item, TupleHSB.of(hsb.hue, hsb.saturation, hsb.brightness))); }); } - updateItems(preferences); + updateItems(updates); } @Override - public void updateItems(Iterable<ItemPreference> preferences) { - for (ItemPreference preference : preferences) { + public void updateItems(Iterable<ItemUpdate> updates) { + for (ItemUpdate preference : updates) { preference.apply(); } } diff --git a/feedbackloop.execute/src/test/java/de/tudresden/inf/st/eraser/feedbackloop/execute/ExecuteImplTest.java b/feedbackloop.execute/src/test/java/de/tudresden/inf/st/eraser/feedbackloop/execute/ExecuteImplTest.java index ff915252454a236e885f504858afe7914f30aec5..109ff59b56256e32b1aa4a53c10dfa690881f63f 100644 --- a/feedbackloop.execute/src/test/java/de/tudresden/inf/st/eraser/feedbackloop/execute/ExecuteImplTest.java +++ b/feedbackloop.execute/src/test/java/de/tudresden/inf/st/eraser/feedbackloop/execute/ExecuteImplTest.java @@ -38,7 +38,7 @@ public class ExecuteImplTest { Assert.assertEquals(0, numberItem.getState(), DELTA); Assert.assertEquals(TupleHSB.of(0, 0, 0), lamp.getState()); - ItemPreference preference = new ItemPreferenceColor(lamp, TupleHSB.of(1, 2, 3)); + ItemUpdate preference = new ItemUpdateColor(lamp, TupleHSB.of(1, 2, 3)); execute.updateItems(Collections.singletonList(preference)); Assert.assertEquals(3, numberItem.getState(), DELTA); @@ -69,7 +69,7 @@ public class ExecuteImplTest { Assert.assertFalse(button.getState()); Assert.assertEquals(TupleHSB.of(0, 0, 0), lamp.getState()); - ItemPreference preference = new ItemPreferenceColor(lamp, TupleHSB.of(1, 2, 3)); + ItemUpdate preference = new ItemUpdateColor(lamp, TupleHSB.of(1, 2, 3)); execute.updateItems(Collections.singletonList(preference)); Assert.assertTrue(button.getState()); @@ -116,7 +116,7 @@ public class ExecuteImplTest { Assert.assertEquals(TupleHSB.of(0, 0, 0), colorItem.getState()); Assert.assertEquals(TupleHSB.of(0, 0, 0), lamp.getState()); - ItemPreference preference = new ItemPreferenceColor(lamp, TupleHSB.of(1, 2, 3)); + ItemUpdate preference = new ItemUpdateColor(lamp, TupleHSB.of(1, 2, 3)); execute.updateItems(Collections.singletonList(preference)); Assert.assertEquals(3, numberItem.getState(), DELTA); diff --git a/feedbackloop.learner_backup/src/main/java/de/tudresden/inf/st/eraser/feedbackloop.learner_backup/MachineLearningImpl.java b/feedbackloop.learner_backup/src/main/java/de/tudresden/inf/st/eraser/feedbackloop.learner_backup/MachineLearningImpl.java index a16a0d1148517d7c25655ad83c5578dbc39ffddd..eebc330da89dd763dfe6cf6563a031bb0c10c940 100644 --- a/feedbackloop.learner_backup/src/main/java/de/tudresden/inf/st/eraser/feedbackloop.learner_backup/MachineLearningImpl.java +++ b/feedbackloop.learner_backup/src/main/java/de/tudresden/inf/st/eraser/feedbackloop.learner_backup/MachineLearningImpl.java @@ -161,14 +161,14 @@ public class MachineLearningImpl implements MachineLearningDecoder, MachineLearn return result; } Item activityItem = resolve(this.root.getSmartHomeEntityModel(), "activity"); - ItemPreference classifiedActivity = null; + ItemUpdate classifiedActivity = null; for (Activity activity : this.root.getMachineLearningRoot().getActivityList()) { if (activity.getLabel().equals(activityStringValue)) { - classifiedActivity = new ItemPreferenceDouble(activityItem, activity.getIdentifier()); + classifiedActivity = new ItemUpdateDouble(activityItem, activity.getIdentifier()); } } if (classifiedActivity != null) { - result.addItemPreference(classifiedActivity); + result.addItemUpdate(classifiedActivity); } return result; case GOAL_PREFERENCE_BRIGHTNESS_IRIS: @@ -179,7 +179,7 @@ public class MachineLearningImpl implements MachineLearningDecoder, MachineLearn color = Math.round(Float.valueOf(preference_result[0])); brightness = Math.round(Float.valueOf(preference_result[1])); } - result.addItemPreference(new ItemPreferenceColor(iris1, TupleHSB.of(color, 100, brightness))); + result.addItemUpdate(new ItemUpdateColor(iris1, TupleHSB.of(color, 100, brightness))); return result; default: logger.error("Unknown goal value ({}) set in classify", this.goal); diff --git a/feedbackloop.plan/src/main/java/de/tudresden/inf/st/eraser/feedbackloop/plan/PlanImpl.java b/feedbackloop.plan/src/main/java/de/tudresden/inf/st/eraser/feedbackloop/plan/PlanImpl.java index 4647c26ba6d54107c014e90cd34afdb8e733d1fb..078670223ec8967194b94b1680eddcea909e27ad 100644 --- a/feedbackloop.plan/src/main/java/de/tudresden/inf/st/eraser/feedbackloop/plan/PlanImpl.java +++ b/feedbackloop.plan/src/main/java/de/tudresden/inf/st/eraser/feedbackloop/plan/PlanImpl.java @@ -6,8 +6,6 @@ import de.tudresden.inf.st.eraser.jastadd.model.*; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import java.util.List; - /** * Reference implementation for Plan. * @@ -37,17 +35,17 @@ public class PlanImpl implements Plan { @Override public void planToMatchPreferences(Activity activity) { logger.info("Plan got new activity [{}]: {}", activity.getIdentifier(), activity.getLabel()); - MachineLearningResult mlResult = knowledgeBase.getMachineLearningRoot().getPreferenceLearning().getLastPreference(); - knowledgeBase.getMachineLearningRoot().addChangeEvent(createRecognitionEvent(activity, mlResult.getItemPreferences())); + MachineLearningResult mlResult = knowledgeBase.getMachineLearningRoot().getPreferenceLearning().getLastResult(); + knowledgeBase.getMachineLearningRoot().addChangeEvent(createRecognitionEvent(activity, mlResult.getItemUpdates())); knowledgeBase.getMachineLearningRoot().getChangeEventList(); - informExecute(mlResult.getItemPreferences()); + informExecute(mlResult.getItemUpdates()); } - private ChangeEvent createRecognitionEvent(Activity activity, Iterable<ItemPreference> preferences) { + private ChangeEvent createRecognitionEvent(Activity activity, Iterable<ItemUpdate> updates) { RecognitionEvent result = RecognitionEvent.createRecognitionEvent(knowledgeBase.getMachineLearningRoot().getActivityRecognition()); result.setActivity(activity); - for (ItemPreference preference : preferences) { - result.addChangedItem(ChangedItem.newFrom(preference)); + for (ItemUpdate update : updates) { + result.addChangedItem(ChangedItem.newFrom(update)); } return result; }