SunsetProv.Skill<-function(recipe,data){
  #fcst definition (Dataset+Datasubset)
  graph<-data$graph.prov
  if(!is.null(data$fcst)){
    graph_fcst<-Prov.Skill(recipe,data,graph,type="fcst")
  }
  #hcst definition (Dataset+Datasubset)
  graph_hcst<-Prov.Skill(recipe,data,graph,type="hcst")
  
  #hcst definition (Dataset+Datasubset)
  graph_obs<-Prov.Skill(recipe,data,graph,type="obs")
  if(!is.null(data$fcst)){
    graph<-my_union_graph(graph_fcst$graph,graph_hcst$graph)
    graph<-SunsetProv.Command(graph, package="Skill", version="2.0.0", fun="modules/Skill/Skill.R", arg.list=list("recipe"="Recipe","Data"="Data"), 
                              origin.node.name=list(graph_fcst$parentnodename,graph_hcst$parentnodename))
    graph<-list("graph"=graph, "parentnodename"=list("parentnodename_fcst"=graph_fcst$parentnodename, "parentnodename_hcst"=graph_hcst$parentnodename,
                                                     "parentnodename_obs"=graph_obs$parentnodename))
  } else{
    graph<-graph_hcst$graph
    graph<-SunsetProv.Command(graph, package="Skill", version="2.0.0", fun="modules/Skill/Skill.R", arg.list=list("recipe"="Recipe","Data"="Data"), 
                              origin.node.name=list(graph_hcst$parentnodename))
    graph<-list("graph"=graph, "parentnodename"=list("parentnodename_hcst"=graph_hcst$parentnodename,"parentnodename_obs"=graph_obs$parentnodename))   
  }
  
  data$graph.prov<-graph
  return(data)
}
