diff --git a/source/RobotAPI/interface/armem/MemoryInterface.ice b/source/RobotAPI/interface/armem/MemoryInterface.ice
index 73533340ff455fa1e7f0b74ece141fcda7f080e7..60bf16839a9ad8f0f524ca2487f2b8e2d506889c 100644
--- a/source/RobotAPI/interface/armem/MemoryInterface.ice
+++ b/source/RobotAPI/interface/armem/MemoryInterface.ice
@@ -9,6 +9,23 @@ module armarx
     {
         module data
         {
+            struct AddSegmentInput
+            {
+                string coreSegmentName;
+                string providerSegmentName;
+            };
+            sequence<AddSegmentInput> AddSegmentsInput;
+
+            struct AddSegmentOutput
+            {
+                bool success = false;
+                string segmentID;
+
+                string errorMessage;
+            };
+            sequence<AddSegmentOutput> AddSegmentsOutput;
+
+
             struct EntityUpdate
             {
                 string entityID;
@@ -35,6 +52,12 @@ module armarx
 
         interface WritingInterface
         {
+            /// Register a core or provider segment.
+            data::AddSegmentOutput addSegment(data::AddSegmentInput input);
+            /// Register multiple core or provider segments.
+            data::AddSegmentsOutput addSegments(data::AddSegmentsInput input);
+            // void removeSegment();
+
             /// Commit data to the memory.
             data::CommitResult commit(data::Commit commit);
         };