diff --git a/source/RobotAPI/interface/CMakeLists.txt b/source/RobotAPI/interface/CMakeLists.txt
index be1193d665db683b844d28d60662e8e3088eec70..2913cd662cf51c48ef7315c930f5c48434eb7618 100644
--- a/source/RobotAPI/interface/CMakeLists.txt
+++ b/source/RobotAPI/interface/CMakeLists.txt
@@ -110,6 +110,7 @@ set(SLICE_FILES
     armem/io.ice
     armem/commit.ice
     armem/memory.ice
+    armem/predictions.ice
     armem/query.ice
 
     armem/client.ice
@@ -120,7 +121,7 @@ set(SLICE_FILES
     armem/server/StoringMemoryInterface.ice
     armem/server/LoadingMemoryInterface.ice
     armem/server/MemoryInterface.ice
-    armem/server/MemoryPredictorInterface.ice
+    armem/server/PredictingMemoryInterface.ice
     armem/server/ReadingMemoryInterface.ice
     armem/server/WritingMemoryInterface.ice
 
diff --git a/source/RobotAPI/interface/armem/predictions.ice b/source/RobotAPI/interface/armem/predictions.ice
new file mode 100644
index 0000000000000000000000000000000000000000..5748a11cf660fa31ed6d73dcd156aa70ad552521
--- /dev/null
+++ b/source/RobotAPI/interface/armem/predictions.ice
@@ -0,0 +1,20 @@
+#pragma once
+
+module armarx
+{
+    module armem
+    {
+        module predictions
+        {
+            module data
+            {
+                struct PredictionSettings
+                {
+                    string predictionEngine = "";
+                };
+
+                sequence<string> PredictionEngineSeq;
+            };
+        };
+    };
+};
diff --git a/source/RobotAPI/interface/armem/server.ice b/source/RobotAPI/interface/armem/server.ice
index 4d9b0bce81301a18163bbe831c814577d8ab4f3b..5c7a32c4734ede6124ba8c4e028ce3dcd98bb556 100644
--- a/source/RobotAPI/interface/armem/server.ice
+++ b/source/RobotAPI/interface/armem/server.ice
@@ -3,3 +3,4 @@
 #include <RobotAPI/interface/armem/server/MemoryInterface.ice>
 #include <RobotAPI/interface/armem/server/ReadingMemoryInterface.ice>
 #include <RobotAPI/interface/armem/server/WritingMemoryInterface.ice>
+#include <RobotAPI/interface/armem/server/PredictingMemoryInterface.ice>
diff --git a/source/RobotAPI/interface/armem/server/MemoryInterface.ice b/source/RobotAPI/interface/armem/server/MemoryInterface.ice
index 05b2ea8c54207f6bcfa7a2d708f8fd7e59df416b..2c6c1e14c5e2ff31ee61006cae3b9ebd6788c534 100644
--- a/source/RobotAPI/interface/armem/server/MemoryInterface.ice
+++ b/source/RobotAPI/interface/armem/server/MemoryInterface.ice
@@ -5,6 +5,8 @@
 
 #include <RobotAPI/interface/armem/server/ReadingMemoryInterface.ice>
 #include <RobotAPI/interface/armem/server/WritingMemoryInterface.ice>
+#include <RobotAPI/interface/armem/server/PredictingMemoryInterface.ice>
+
 #include <RobotAPI/interface/armem/server/ActionsInterface.ice>
 
 #include <RobotAPI/interface/armem/client/MemoryListenerInterface.ice>
@@ -27,6 +29,7 @@ module armarx
             interface MemoryInterface extends
                     WorkingMemoryInterface,
                     LongTermMemoryInterface,
+                    PredictingMemoryInterface,
                     actions::ActionsInterface,
                     client::MemoryListenerInterface
             {
diff --git a/source/RobotAPI/interface/armem/server/MemoryPredictorInterface.ice b/source/RobotAPI/interface/armem/server/MemoryPredictorInterface.ice
deleted file mode 100644
index 42920804f6d80d9e79151600864dc50e3b0c7aa3..0000000000000000000000000000000000000000
--- a/source/RobotAPI/interface/armem/server/MemoryPredictorInterface.ice
+++ /dev/null
@@ -1,16 +0,0 @@
-#pragma once
-
-#include <RobotAPI/interface/armem/server/ReadingMemoryInterface.ice>
-#include <RobotAPI/interface/armem/server/WritingMemoryInterface.ice>
-
-module armarx {
-  module armem {
-    module server {
-        interface MemoryPredictorInterface
-        {
-            // TODO
-            void predict();
-        }
-    };
-  };
-};
diff --git a/source/RobotAPI/interface/armem/server/PredictingMemoryInterface.ice b/source/RobotAPI/interface/armem/server/PredictingMemoryInterface.ice
new file mode 100644
index 0000000000000000000000000000000000000000..2a805895d5cb8daff5674b294114ab8b47dd563c
--- /dev/null
+++ b/source/RobotAPI/interface/armem/server/PredictingMemoryInterface.ice
@@ -0,0 +1,23 @@
+#pragma once
+
+#include <RobotAPI/interface/armem/memory.ice>
+#include <RobotAPI/interface/armem/predictions.ice>
+#include <RobotAPI/interface/armem/query.ice>
+
+module armarx
+{
+  module armem
+  {
+    module server
+    {
+        interface PredictingMemoryInterface
+        {
+            armem::query::data::Result
+            predict(armem::data::MemoryID memoryID,
+                    predictions::data::PredictionSettings predictionSettings);
+
+            predictions::data::PredictionEngineSeq getAvailableEngines();
+        }
+    };
+  };
+};
diff --git a/source/RobotAPI/libraries/armem/server/plugins/ReadWritePluginUser.cpp b/source/RobotAPI/libraries/armem/server/plugins/ReadWritePluginUser.cpp
index 41e09c13be1cbc68f0281023596be9c275f16dc5..4ce314f5a5409368ae41b33d0a6eb68903553077 100644
--- a/source/RobotAPI/libraries/armem/server/plugins/ReadWritePluginUser.cpp
+++ b/source/RobotAPI/libraries/armem/server/plugins/ReadWritePluginUser.cpp
@@ -117,4 +117,19 @@ namespace armarx::armem::server::plugins
         return {};
     }
 
+    // PREDICTIONS
+    armem::query::data::Result ReadWritePluginUser::predict(const data::MemoryID&  /*memoryID*/, const armem::predictions::data::PredictionSettings&  /*predictionSettings*/, const ::Ice::Current& /*unused*/)
+    {
+        armem::query::data::Result result;
+        result.success = false;
+        result.errorMessage = "This memory does not implement predictions.";
+        result.memory = nullptr;
+        return result;
+    }
+
+    armem::predictions::data::PredictionEngineSeq ReadWritePluginUser::getAvailableEngines(const ::Ice::Current& /*unused*/)
+    {
+        return {};
+    }
+
 } // namespace armarx::armem::server::plugins
diff --git a/source/RobotAPI/libraries/armem/server/plugins/ReadWritePluginUser.h b/source/RobotAPI/libraries/armem/server/plugins/ReadWritePluginUser.h
index 83e761281bf064a111a90efe15a9148689daa2ff..3ecd8915fcc67d824ab71b9b340a4dd6fbf4093c 100644
--- a/source/RobotAPI/libraries/armem/server/plugins/ReadWritePluginUser.h
+++ b/source/RobotAPI/libraries/armem/server/plugins/ReadWritePluginUser.h
@@ -55,6 +55,10 @@ namespace armarx::armem::server::plugins
         virtual armem::actions::GetActionsOutputSeq getActions(const armem::actions::GetActionsInputSeq& inputs, const ::Ice::Current&) override;
         virtual armem::actions::ExecuteActionOutputSeq executeActions(const armem::actions::ExecuteActionInputSeq& inputs, const ::Ice::Current&) override;
 
+        // PredictingInterface interface
+        virtual armem::query::data::Result predict(const data::MemoryID& memoryID, const armem::predictions::data::PredictionSettings& predictionSettings, const ::Ice::Current& = Ice::emptyCurrent) override;
+        virtual armem::predictions::data::PredictionEngineSeq getAvailableEngines(const ::Ice::Current& = Ice::emptyCurrent) override;
+
     public:
 
         Plugin& memoryServerPlugin();