diff --git a/cubicweb_rodolf/entities.py b/cubicweb_rodolf/entities.py
index a626feac4ea4c29a9fdb11bcadd9d55523f557e9_Y3ViaWN3ZWJfcm9kb2xmL2VudGl0aWVzLnB5..a633599acb05f833d0bb1a6817a686d7807b7b55_Y3ViaWN3ZWJfcm9kb2xmL2VudGl0aWVzLnB5 100644
--- a/cubicweb_rodolf/entities.py
+++ b/cubicweb_rodolf/entities.py
@@ -19,7 +19,7 @@
 
 from datetime import datetime, timedelta
 import pytz
-from cubicweb import NoResultError
+from cubicweb import NoResultError, Binary
 
 from cubicweb.entities import AnyEntity
 from rdf_data_manager import VirtuosoCredentials
@@ -23,6 +23,7 @@
 
 from cubicweb.entities import AnyEntity
 from rdf_data_manager import VirtuosoCredentials
+from rdflib import Graph
 
 
 TIMEDELTA_REFRESH = {
@@ -104,3 +105,20 @@
         except NoResultError:
             return True
         return False
+
+
+class ImportProcess(AnyEntity):
+    __regid__ = "ImportProcess"
+
+    def update_dataset(self, graph: Graph):
+        dataset_file = self._cw.create_entity(
+            "File",
+            title=f"Graph file for ImportProcess#{self.eid}",
+            data=Binary(graph.serialize(format="ttl").encode("utf8")),
+            data_name=f"data_ImportProcess_{self.eid}.ttl",
+            data_format="text/turtle",
+        )
+        self.cw_set(
+            has_output_dataset=dataset_file,
+        )
+        return dataset_file
diff --git a/cubicweb_rodolf/sobjects/process_type_registry.py b/cubicweb_rodolf/sobjects/process_type_registry.py
index a626feac4ea4c29a9fdb11bcadd9d55523f557e9_Y3ViaWN3ZWJfcm9kb2xmL3NvYmplY3RzL3Byb2Nlc3NfdHlwZV9yZWdpc3RyeS5weQ==..a633599acb05f833d0bb1a6817a686d7807b7b55_Y3ViaWN3ZWJfcm9kb2xmL3NvYmplY3RzL3Byb2Nlc3NfdHlwZV9yZWdpc3RyeS5weQ== 100644
--- a/cubicweb_rodolf/sobjects/process_type_registry.py
+++ b/cubicweb_rodolf/sobjects/process_type_registry.py
@@ -19,16 +19,7 @@
         import_procedure = import_process.import_procedure[0]
         dataservice = import_recipe.dataservice[0]
         graph = get_graph_from_url(dataservice.data_url, log)
-        dataset_file = self._cw.create_entity(
-            "File",
-            title=f"Graph file for ImportProcess#{import_process.eid}",
-            data=Binary(graph.serialize(format="ttl").encode("utf8")),
-            data_name=f"data_ImportProcess_{import_process.eid}.ttl",
-            data_format="text/turtle",
-        )
-        import_process.cw_set(
-            has_output_dataset=dataset_file,
-        )
+        dataset_file = import_process.update_dataset(graph)
         upload_graph_to_sparql_endpoint(
             import_procedure,
             graph,
@@ -37,3 +28,15 @@
             log,
         )
         return graph
+
+
+class DefaultDryRunProcessType(AppObject):
+    __registry__ = "rodolf.appobject.processtype"
+    __regid__ = "default-dryrun"
+
+    def __call__(self, import_process: ImportProcess, log: logging.Logger) -> Graph:
+        import_recipe = import_process.import_recipe[0]
+        dataservice = import_recipe.dataservice[0]
+        graph = get_graph_from_url(dataservice.data_url, log)
+        import_process.update_dataset(graph)
+        return graph