Index: modules/dnet-parthenos/trunk/src/main/java/eu/dnetlib/parthenos/workflows/nodes/ReadVirtuosoByTypesJobNode.java
===================================================================
--- modules/dnet-parthenos/trunk/src/main/java/eu/dnetlib/parthenos/workflows/nodes/ReadVirtuosoByTypesJobNode.java	(revision 52477)
+++ modules/dnet-parthenos/trunk/src/main/java/eu/dnetlib/parthenos/workflows/nodes/ReadVirtuosoByTypesJobNode.java	(nonexistent)
@@ -1,46 +0,0 @@
-package eu.dnetlib.parthenos.workflows.nodes;
-
-import java.util.Iterator;
-
-import com.google.common.collect.Iterators;
-import eu.dnetlib.msro.workflows.graph.Arc;
-import eu.dnetlib.msro.workflows.procs.Env;
-import eu.dnetlib.rmi.common.ResultSet;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.springframework.web.client.RestTemplate;
-
-/**
- * Created by Alessia Bardi on 26/01/2018.
- *
- * @author Alessia Bardi
- */
-public class ReadVirtuosoByTypesJobNode extends ReadVirtuosoJobNode {
-
-	private static final Log log = LogFactory.getLog(ReadVirtuosoByTypesJobNode.class);
-
-	private static String CRMNamespace = "http://www.cidoc-crm.org/cidoc-crm/";
-	private static String CRMdigNamespace = "http://www.ics.forth.gr/isl/CRMext/CRMdig.rdfs/";
-	private static String CRMpeNamespace = "http://parthenos.d4science.org/CRMext/CRMpe.rdfs/";
-
-	@Override
-	protected String execute(final Env env){
-		log.info("Using virtuoso reader at : " + getVirtuosoReaderAPIUrl());
-		RestTemplate restTemplate = new RestTemplate(getClientHttpRequestFactory());
-
-		VirtuosoParthenosByTypeIterator iteratorD14 = new VirtuosoParthenosByTypeIterator().typeNamespace(CRMdigNamespace).typeName("D14_Software").datasourceInterface(getDatasourceInterface()).virtuosoReaderAPIUrl(getVirtuosoReaderAPIUrl()).datasourceName(getDatasourceName()).restTemplate(restTemplate);
-		VirtuosoParthenosByTypeIterator iteratorE39 = new VirtuosoParthenosByTypeIterator().typeNamespace(CRMNamespace).typeName("E39_Actor").datasourceInterface(getDatasourceInterface()).virtuosoReaderAPIUrl(getVirtuosoReaderAPIUrl()).datasourceName(getDatasourceName()).restTemplate(restTemplate);
-		VirtuosoParthenosByTypeIterator iteratorE78 = new VirtuosoParthenosByTypeIterator().typeNamespace(CRMNamespace).typeName("E78_Collection").datasourceInterface(getDatasourceInterface()).virtuosoReaderAPIUrl(getVirtuosoReaderAPIUrl()).datasourceName(getDatasourceName()).restTemplate(restTemplate);
-		VirtuosoParthenosByTypeIterator iteratorPE1 = new VirtuosoParthenosByTypeIterator().typeNamespace(CRMpeNamespace).typeName("PE1_Service").datasourceInterface(getDatasourceInterface()).virtuosoReaderAPIUrl(getVirtuosoReaderAPIUrl()).datasourceName(getDatasourceName()).restTemplate(restTemplate);
-		VirtuosoParthenosByTypeIterator iteratorPE18 = new VirtuosoParthenosByTypeIterator().typeNamespace(CRMpeNamespace).typeName("PE18_Dataset").datasourceInterface(getDatasourceInterface()).virtuosoReaderAPIUrl(getVirtuosoReaderAPIUrl()).datasourceName(getDatasourceName()).restTemplate(restTemplate);
-		VirtuosoParthenosByTypeIterator iteratorPE28 = new VirtuosoParthenosByTypeIterator().typeNamespace(CRMpeNamespace).typeName("PE28_Curation_Plan").datasourceInterface(getDatasourceInterface()).virtuosoReaderAPIUrl(getVirtuosoReaderAPIUrl()).datasourceName(getDatasourceName()).restTemplate(restTemplate);
-		VirtuosoParthenosByTypeIterator iteratorPE35 = new VirtuosoParthenosByTypeIterator().typeNamespace(CRMpeNamespace).typeName("PE35_Project").datasourceInterface(getDatasourceInterface()).virtuosoReaderAPIUrl(getVirtuosoReaderAPIUrl()).datasourceName(getDatasourceName()).restTemplate(restTemplate);
-
-		Iterator<String> it = Iterators.concat(iteratorD14, iteratorE39, iteratorE78, iteratorPE1, iteratorPE18, iteratorPE28, iteratorPE35);
-		ResultSet<String> rs = getRsFactory().createResultSet(() -> it);
-
-		env.setAttribute("virtuoso_rs", rs);
-
-		return Arc.DEFAULT_ARC;
-	}
-}
Index: modules/dnet-parthenos/trunk/src/main/java/eu/dnetlib/parthenos/workflows/nodes/ReadVirtuosoByTypeJobNode.java
===================================================================
--- modules/dnet-parthenos/trunk/src/main/java/eu/dnetlib/parthenos/workflows/nodes/ReadVirtuosoByTypeJobNode.java	(nonexistent)
+++ modules/dnet-parthenos/trunk/src/main/java/eu/dnetlib/parthenos/workflows/nodes/ReadVirtuosoByTypeJobNode.java	(revision 52478)
@@ -0,0 +1,51 @@
+package eu.dnetlib.parthenos.workflows.nodes;
+
+import eu.dnetlib.msro.workflows.graph.Arc;
+import eu.dnetlib.msro.workflows.procs.Env;
+import eu.dnetlib.rmi.common.ResultSet;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.springframework.web.client.RestTemplate;
+
+/**
+ * Created by Alessia Bardi on 26/01/2018.
+ *
+ * @author Alessia Bardi
+ */
+public class ReadVirtuosoByTypeJobNode extends ReadVirtuosoJobNode {
+
+	private static final Log log = LogFactory.getLog(ReadVirtuosoByTypeJobNode.class);
+
+	private String typeNamespace;
+	private String typeName;
+
+	@Override
+	protected String execute(final Env env){
+		log.info("Using virtuoso reader at : " + getVirtuosoReaderAPIUrl());
+		RestTemplate restTemplate = new RestTemplate(getClientHttpRequestFactory());
+
+		VirtuosoParthenosByTypeIterator iterator = new VirtuosoParthenosByTypeIterator().typeNamespace(typeNamespace).typeName(typeName).datasourceInterface(getDatasourceInterface()).virtuosoReaderAPIUrl(getVirtuosoReaderAPIUrl()).datasourceName(getDatasourceName()).restTemplate(restTemplate);
+		log.debug(String.format("Created iterator for %s:%s : ", typeNamespace, typeName ));
+		ResultSet<String> rs = getRsFactory().createResultSet(() -> iterator);
+
+		env.setAttribute("virtuoso_rs", rs);
+
+		return Arc.DEFAULT_ARC;
+	}
+
+	public String getTypeNamespace() {
+		return typeNamespace;
+	}
+
+	public void setTypeNamespace(final String typeNamespace) {
+		this.typeNamespace = typeNamespace;
+	}
+
+	public String getTypeName() {
+		return typeName;
+	}
+
+	public void setTypeName(final String typeName) {
+		this.typeName = typeName;
+	}
+}
Index: modules/dnet-parthenos/trunk/src/main/java/eu/dnetlib/parthenos/workflows/nodes/VirtuosoParthenosIterator.java
===================================================================
--- modules/dnet-parthenos/trunk/src/main/java/eu/dnetlib/parthenos/workflows/nodes/VirtuosoParthenosIterator.java	(revision 52477)
+++ modules/dnet-parthenos/trunk/src/main/java/eu/dnetlib/parthenos/workflows/nodes/VirtuosoParthenosIterator.java	(revision 52478)
@@ -186,7 +186,7 @@
 		try {
 			verifyStarted();
 		} catch (Exception e) {
-			executor.shutdownNow();
+			getExecutor().shutdownNow();
 			throw new CollectorServiceRuntimeException(e);
 		}
 		switch(currentElement){
@@ -203,11 +203,9 @@
 
 	@Override
 	public String doNext() {
-		try {
-			verifyStarted();
-		} catch (Exception e) {
-			executor.shutdownNow();
-			throw new CollectorServiceRuntimeException(e);
+		if(!hasNext()) {
+			log.error("Next called but hasNext is false", new NoSuchElementException());
+			throw new NoSuchElementException();
 		}
 		switch(currentElement){
 		case TERMINATOR:
Index: modules/dnet-parthenos/trunk/src/main/resources/eu/dnetlib/parthenos/workflows/nodes/applicationContext-parthenos-msro-nodes.xml
===================================================================
--- modules/dnet-parthenos/trunk/src/main/resources/eu/dnetlib/parthenos/workflows/nodes/applicationContext-parthenos-msro-nodes.xml	(revision 52477)
+++ modules/dnet-parthenos/trunk/src/main/resources/eu/dnetlib/parthenos/workflows/nodes/applicationContext-parthenos-msro-nodes.xml	(revision 52478)
@@ -25,6 +25,6 @@
 	<bean id="wfNodeRegisterClarinWorkflowFromTemplate" class="eu.dnetlib.parthenos.workflows.nodes.RegisterClarinWorkflowFromTemplateJobNode" scope="prototype"/>
 
 	<bean id="wfNodeReadVirtuoso" class="eu.dnetlib.parthenos.workflows.nodes.ReadVirtuosoJobNode" scope="prototype"/>
-	<bean id="wfNodeReadVirtuosoByTypes" class="eu.dnetlib.parthenos.workflows.nodes.ReadVirtuosoByTypesJobNode" scope="prototype"/>
+	<bean id="wfNodeReadVirtuosoByType" class="eu.dnetlib.parthenos.workflows.nodes.ReadVirtuosoByTypeJobNode" scope="prototype"/>
 
 </beans>
Index: modules/dnet-parthenos/trunk/src/main/resources/eu/dnetlib/bootstrap/profiles/workflows/publish/solr_publish_template.xml
===================================================================
--- modules/dnet-parthenos/trunk/src/main/resources/eu/dnetlib/bootstrap/profiles/workflows/publish/solr_publish_template.xml	(revision 52477)
+++ modules/dnet-parthenos/trunk/src/main/resources/eu/dnetlib/bootstrap/profiles/workflows/publish/solr_publish_template.xml	(revision 52478)
@@ -18,18 +18,20 @@
 				<PARAM name="interpretation" description="Interpretation of the MDFormat" required="true" type="string"/>
 			</PARAMETERS>
 			<WORKFLOW>
-				<NODE name="readFromVirtuoso" type="ReadVirtuosoByTypes" isStart="true">
+				<NODE name="readSoftwareFromVirtuoso" type="ReadVirtuosoByType" isStart="true">
 					<DESCRIPTION>Fetch records from Virtuoso</DESCRIPTION>
 					<PARAMETERS>
 						<PARAM name="datasourceName" ref="dsName"/>
 						<PARAM name="datasourceInterface" ref="interface"/>
 						<PARAM name="virtuosoReaderAPIUrl" ref="virtuosoReaderAPIUrl"/>
+						<PARAM name="typeNamespace" value="http://www.ics.forth.gr/isl/CRMext/CRMdig.rdfs/"/>
+						<PARAM name="typeName" value="D14_Software"/>
 					</PARAMETERS>
 					<ARCS>
-						<ARC to="index"/>
+						<ARC to="indexSoftware"/>
 					</ARCS>
 				</NODE>
-				<NODE name="index" type="UpdateIndex">
+				<NODE name="indexSoftware" type="UpdateIndex">
 					<DESCRIPTION>Feed index records</DESCRIPTION>
 					<PARAMETERS>
 						<PARAM name="eprParam" value="virtuoso_rs"/>
@@ -40,6 +42,168 @@
 						<PARAM name="feedingType" ref="feedingType"/>
 					</PARAMETERS>
 					<ARCS>
+						<ARC to="readActorsFromVirtuoso"/>
+					</ARCS>
+				</NODE>
+				<NODE name="readActorsFromVirtuoso" type="ReadVirtuosoByType">
+					<DESCRIPTION>Fetch records from Virtuoso</DESCRIPTION>
+					<PARAMETERS>
+						<PARAM name="datasourceName" ref="dsName"/>
+						<PARAM name="datasourceInterface" ref="interface"/>
+						<PARAM name="virtuosoReaderAPIUrl" ref="virtuosoReaderAPIUrl"/>
+						<PARAM name="typeNamespace" value="http://www.cidoc-crm.org/cidoc-crm/"/>
+						<PARAM name="typeName" value="E39_Actor"/>
+					</PARAMETERS>
+					<ARCS>
+						<ARC to="indexActors"/>
+					</ARCS>
+				</NODE>
+				<NODE name="indexActors" type="UpdateIndex">
+					<DESCRIPTION>Feed index records</DESCRIPTION>
+					<PARAMETERS>
+						<PARAM name="eprParam" value="virtuoso_rs"/>
+						<PARAM name="indexId" ref="indexId"/>
+						<PARAM name="format" value="CIDOC"/>
+						<PARAM name="interpretation" ref="interpretation"/>
+						<PARAM name="layout" value="index"/>
+						<PARAM name="feedingType" value="INCREMENTAL"/>
+					</PARAMETERS>
+					<ARCS>
+						<ARC to="readCollectionsFromVirtuoso"/>
+					</ARCS>
+				</NODE>
+				<NODE name="readCollectionsFromVirtuoso" type="ReadVirtuosoByType">
+					<DESCRIPTION>Fetch records from Virtuoso</DESCRIPTION>
+					<PARAMETERS>
+						<PARAM name="datasourceName" ref="dsName"/>
+						<PARAM name="datasourceInterface" ref="interface"/>
+						<PARAM name="virtuosoReaderAPIUrl" ref="virtuosoReaderAPIUrl"/>
+						<PARAM name="typeNamespace" value="http://www.cidoc-crm.org/cidoc-crm/"/>
+						<PARAM name="typeName" value="E78_Collection"/>
+					</PARAMETERS>
+					<ARCS>
+						<ARC to="indexCollections"/>
+					</ARCS>
+				</NODE>
+				<NODE name="indexCollections" type="UpdateIndex">
+					<DESCRIPTION>Feed index records</DESCRIPTION>
+					<PARAMETERS>
+						<PARAM name="eprParam" value="virtuoso_rs"/>
+						<PARAM name="indexId" ref="indexId"/>
+						<PARAM name="format" value="CIDOC"/>
+						<PARAM name="interpretation" ref="interpretation"/>
+						<PARAM name="layout" value="index"/>
+						<PARAM name="feedingType" value="INCREMENTAL"/>
+					</PARAMETERS>
+					<ARCS>
+						<ARC to="readServicesFromVirtuoso"/>
+					</ARCS>
+				</NODE>
+				<NODE name="readServicesFromVirtuoso" type="ReadVirtuosoByType">
+				<DESCRIPTION>Fetch records from Virtuoso</DESCRIPTION>
+				<PARAMETERS>
+					<PARAM name="datasourceName" ref="dsName"/>
+					<PARAM name="datasourceInterface" ref="interface"/>
+					<PARAM name="virtuosoReaderAPIUrl" ref="virtuosoReaderAPIUrl"/>
+					<PARAM name="typeNamespace" value="http://parthenos.d4science.org/CRMext/CRMpe.rdfs/"/>
+					<PARAM name="typeName" value="PE1_Service"/>
+				</PARAMETERS>
+				<ARCS>
+					<ARC to="indexServices"/>
+				</ARCS>
+			</NODE>
+				<NODE name="indexServices" type="UpdateIndex">
+					<DESCRIPTION>Feed index records</DESCRIPTION>
+					<PARAMETERS>
+						<PARAM name="eprParam" value="virtuoso_rs"/>
+						<PARAM name="indexId" ref="indexId"/>
+						<PARAM name="format" value="CIDOC"/>
+						<PARAM name="interpretation" ref="interpretation"/>
+						<PARAM name="layout" value="index"/>
+						<PARAM name="feedingType" value="INCREMENTAL"/>
+					</PARAMETERS>
+					<ARCS>
+						<ARC to="readDatasetsFromVirtuoso"/>
+					</ARCS>
+				</NODE>
+				<NODE name="readDatasetsFromVirtuoso" type="ReadVirtuosoByType">
+					<DESCRIPTION>Fetch records from Virtuoso</DESCRIPTION>
+					<PARAMETERS>
+						<PARAM name="datasourceName" ref="dsName"/>
+						<PARAM name="datasourceInterface" ref="interface"/>
+						<PARAM name="virtuosoReaderAPIUrl" ref="virtuosoReaderAPIUrl"/>
+						<PARAM name="typeNamespace" value="http://parthenos.d4science.org/CRMext/CRMpe.rdfs/"/>
+						<PARAM name="typeName" value="PE18_Dataset"/>
+					</PARAMETERS>
+					<ARCS>
+						<ARC to="indexDatasets"/>
+					</ARCS>
+				</NODE>
+				<NODE name="indexDatasets" type="UpdateIndex">
+					<DESCRIPTION>Feed index records</DESCRIPTION>
+					<PARAMETERS>
+						<PARAM name="eprParam" value="virtuoso_rs"/>
+						<PARAM name="indexId" ref="indexId"/>
+						<PARAM name="format" value="CIDOC"/>
+						<PARAM name="interpretation" ref="interpretation"/>
+						<PARAM name="layout" value="index"/>
+						<PARAM name="feedingType" value="INCREMENTAL"/>
+					</PARAMETERS>
+					<ARCS>
+						<ARC to="readCurationPlans"/>
+					</ARCS>
+				</NODE>
+				<NODE name="readCurationPlans" type="ReadVirtuosoByType">
+					<DESCRIPTION>Fetch records from Virtuoso</DESCRIPTION>
+					<PARAMETERS>
+						<PARAM name="datasourceName" ref="dsName"/>
+						<PARAM name="datasourceInterface" ref="interface"/>
+						<PARAM name="virtuosoReaderAPIUrl" ref="virtuosoReaderAPIUrl"/>
+						<PARAM name="typeNamespace" value="http://parthenos.d4science.org/CRMext/CRMpe.rdfs/"/>
+						<PARAM name="typeName" value="PE28_Curation_Plan"/>
+					</PARAMETERS>
+					<ARCS>
+						<ARC to="indexCurationPlans"/>
+					</ARCS>
+				</NODE>
+				<NODE name="indexCurationPlans" type="UpdateIndex">
+					<DESCRIPTION>Feed index records</DESCRIPTION>
+					<PARAMETERS>
+						<PARAM name="eprParam" value="virtuoso_rs"/>
+						<PARAM name="indexId" ref="indexId"/>
+						<PARAM name="format" value="CIDOC"/>
+						<PARAM name="interpretation" ref="interpretation"/>
+						<PARAM name="layout" value="index"/>
+						<PARAM name="feedingType" value="INCREMENTAL"/>
+					</PARAMETERS>
+					<ARCS>
+						<ARC to="readProjects"/>
+					</ARCS>
+				</NODE>
+				<NODE name="readProjects" type="ReadVirtuosoByType">
+					<DESCRIPTION>Fetch records from Virtuoso</DESCRIPTION>
+					<PARAMETERS>
+						<PARAM name="datasourceName" ref="dsName"/>
+						<PARAM name="datasourceInterface" ref="interface"/>
+						<PARAM name="virtuosoReaderAPIUrl" ref="virtuosoReaderAPIUrl"/>
+						<PARAM name="typeNamespace" value="http://parthenos.d4science.org/CRMext/CRMpe.rdfs/"/>
+						<PARAM name="typeName" value="PE35_Project"/>
+					</PARAMETERS>
+					<ARCS>
+						<ARC to="indexProjects"/>
+					</ARCS>
+				</NODE>
+				<NODE name="indexProjects" type="UpdateIndex">
+					<DESCRIPTION>Feed index records</DESCRIPTION>
+					<PARAMETERS>
+						<PARAM name="eprParam" value="virtuoso_rs"/>
+						<PARAM name="indexId" ref="indexId"/>
+						<PARAM name="format" value="CIDOC"/>
+						<PARAM name="interpretation" ref="interpretation"/>
+						<PARAM name="layout" value="index"/>
+						<PARAM name="feedingType" value="INCREMENTAL"/>
+					</PARAMETERS>
+					<ARCS>
 						<ARC to="success"/>
 					</ARCS>
 				</NODE>
