description <http://ua.be/sdo2l/description/artifacts/RefinementPM#> as RefinementPM {

  uses <http://ua.be/sdo2l/vocabulary/formalisms/pm#> as pm
  uses <http://ua.be/sdo2l/vocabulary/formalisms/object_diagram#> as object_diagram
  extends <http://ua.be/sdo2l/description/artifacts/FTG_ftg#> as ftg_instance

  instance model : pm:Model [
    object_diagram:hasName "RefinementPM"
  ]

  instance initial : pm:Initial [
  	pm:hasName "Start Refinement"
    object_diagram:inModel model
    pm:ctrlTo activity_gen_port_in
  ]

  instance activity_gen : pm:Activity [
    pm:hasName "generate_refined_sketch"
    pm:isTransformation ftg_instance:t_Sketch
    object_diagram:inModel model
  ]

  instance activity_gen_port_in : pm:CtrlInputPort [
    pm:hasName "cin"
    pm:ofActivity activity_gen
    object_diagram:inModel model
  ]

  instance activity_gen_port_cout : pm:CtrlOutputPort [
    pm:hasName "cout"
    pm:ofActivity activity_gen
    object_diagram:inModel model
    pm:ctrlTo final
  ]

  instance activity_gen_port_dout : pm:ActivityDataOutputPort [
    pm:hasName "refined_sketch_out"
    pm:ofActivity activity_gen
    object_diagram:inModel model
    pm:dataTo refined_artifact
  ]

  instance refined_artifact : pm:Artifact [
    pm:hasName "refined_sketch"
    pm:hasType ftg_instance:f_xopp
    object_diagram:inModel model
    pm:dataTo parameter_output
  ]
  
    relation instance data_flow_gen_2 : pm:DataFlow [
    from refined_artifact
    to parameter_output
    object_diagram:inModel model
  ]

  instance final : pm:Final [
  	pm:hasName "End Refinement"
    object_diagram:inModel model
  ]

  relation instance ctrl_flow_gen_1 : pm:CtrlFlow [
    from initial
    to activity_gen_port_in
    object_diagram:inModel model
  ]

  relation instance ctrl_flow_gen_2 : pm:CtrlFlow [
    from activity_gen_port_cout
    to final
    object_diagram:inModel model
  ]
  
  instance parameter_output : pm:DataOutputPort [
      pm:hasName "rsketch"
      object_diagram:inModel model
  ]

  relation instance data_flow_gen_1 : pm:DataFlow [
    from activity_gen_port_dout
    to refined_artifact
    object_diagram:inModel model
  ]
}