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

  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
  extends <http://ua.be/sdo2l/description/artifacts/RefinementPM#> as RefinementPM

  instance model : pm:Model [
    object_diagram:hasName "MyPM_2_pm"
  ]
 
  instance initial : pm:Initial [
  	pm:hasName "Start Sketching Process"
    object_diagram:inModel model
    pm:ctrlTo activity_0_port_0
  ]

  instance activity_0_port_0 : pm:CtrlInputPort [
    pm:hasName "cin"
    pm:ofActivity activity_0
    object_diagram:inModel model
  ]

  instance activity_0 : pm:Activity [
    pm:hasName "sketch"
    pm:isTransformation ftg_instance:t_Sketch
    object_diagram:inModel model
  ]

  instance activity_0_port_1 : pm:CtrlOutputPort [
    pm:hasName "cout"
    pm:ofActivity activity_0
    object_diagram:inModel model
    pm:ctrlTo activity_1_port_0
  ]

  instance activity_0_port_2 : pm:ActivityDataOutputPort [ 
    pm:hasName "sketch"
    pm:ofActivity activity_0
    object_diagram:inModel model
    pm:dataTo artifact_0
  ]

  instance activity_1_port_0 : pm:CtrlInputPort [
    pm:hasName "cin"
    pm:ofActivity activity_1
    object_diagram:inModel model
  ]

  instance activity_1_port_2 : pm:DataInputPort [
    pm:hasName "sketch"
    pm:ofActivity activity_1
    object_diagram:inModel model
  ]

  instance activity_1 : pm:Activity [
    pm:hasName "look_at_sketch"
    pm:isTransformation ftg_instance:t_LookAtSketch
    object_diagram:inModel model
  ]

  instance activity_1_port_1 : pm:CtrlOutputPort [
    pm:hasName "cout"
    pm:ofActivity activity_1
    object_diagram:inModel model
    pm:ctrlTo invoking_activity_port_0
  ]

  instance activity_1_port_3 : pm:CtrlOutputPort [
    pm:hasName "cout_end"
    pm:ofActivity activity_1
    object_diagram:inModel model
    pm:ctrlTo final
  ]

  instance invoking_activity_port_0 : pm:CtrlInputPort [
    pm:hasName "cin"
    pm:ofActivity invoking_activity
    object_diagram:inModel model
  ]

  instance invoking_activity : pm:InvokingActivity [
	 pm:hasName "refine_sketch_process"
	 pm:isTransformation ftg_instance:t_LookAtSketch
	 pm:invokesPM RefinementPM:model
	 object_diagram:inModel model
  ]

  instance invoking_activity_port_2 : pm:CtrlOutputPort [
    pm:hasName "cout"
    pm:ofActivity invoking_activity
    object_diagram:inModel model
    pm:ctrlTo evaluate_sketch_input_port
  ]
  
  instance invoking_activity_data_output : pm:ActivityDataOutputPort [
    pm:hasName "rsketch"
    pm:ofActivity invoking_activity
    object_diagram:inModel model
    pm:dataTo refined_sketch_artifact
  ]

  instance evaluate_sketch_input_port : pm:CtrlInputPort [
    pm:hasName "cin_evaluate"
    pm:ofActivity evaluate_sketch
    object_diagram:inModel model
  ]

  instance evaluate_sketch_data_input : pm:DataInputPort [
      pm:hasName "refined_sketch_in"
      pm:ofActivity evaluate_sketch
      object_diagram:inModel model
  ]

  instance evaluate_sketch : pm:Activity [
      pm:hasName "evaluate_sketch"
      pm:isTransformation ftg_instance:t_LookAtSketch
      object_diagram:inModel model
  ]

  instance evaluate_sketch_output_port : pm:CtrlOutputPort [
      pm:hasName "cout_evaluated"
      pm:ofActivity evaluate_sketch
      object_diagram:inModel model
      pm:ctrlTo final
  ]

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

  instance artifact_0 : pm:Artifact [
    pm:hasName "sketch"
    pm:hasType ftg_instance:f_xopp
    object_diagram:inModel model
    pm:dataTo activity_1_port_2
  ]

  instance refined_sketch_artifact : pm:Artifact [
    pm:hasName "refined_sketch"
    pm:hasType ftg_instance:f_xopp
    object_diagram:inModel model
    pm:dataTo evaluate_sketch_data_input
  ]
  
  relation instance ctrl_flow_0 : pm:CtrlFlow [
    from initial
    to activity_0_port_0
    object_diagram:inModel model
  ]

  relation instance ctrl_flow_1 : pm:CtrlFlow [
    from activity_0_port_1
    to activity_1_port_0
    object_diagram:inModel model
  ]

  relation instance ctrl_flow_2 : pm:CtrlFlow [
    from activity_1_port_1
    to invoking_activity_port_0
    object_diagram:inModel model
  ]

  relation instance ctrl_flow_3 : pm:CtrlFlow [
    from activity_1_port_3
    to final
    object_diagram:inModel model
  ]

  relation instance ctrl_flow_4 : pm:CtrlFlow [
    from invoking_activity_port_2
    to evaluate_sketch_input_port
    object_diagram:inModel model
  ]

  relation instance ctrl_flow_5 : pm:CtrlFlow [
      from evaluate_sketch_output_port
      to final
      object_diagram:inModel model
  ]

  relation instance data_flow_0 : pm:DataFlow [
    from artifact_0
    to activity_1_port_2
    object_diagram:inModel model
  ]

  relation instance data_flow_1 : pm:DataFlow [
    from activity_0_port_2
    to artifact_0
    object_diagram:inModel model
  ]

  relation instance data_flow_2 : pm:DataFlow [
      from invoking_activity_data_output
      to refined_sketch_artifact
      object_diagram:inModel model
  ]

  relation instance data_flow_3 : pm:DataFlow [
      from refined_sketch_artifact
      to evaluate_sketch_data_input
      object_diagram:inModel model
  ]
}