From f1ffd8657bc82a9cf0ef55e99ef120456565d2f7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Aur=C3=A9lien=20Lamercerie?=
 <aurelien.lamercerie@tetras-libre.fr>
Date: Fri, 19 Aug 2022 10:43:22 +0200
Subject: [PATCH] PNG graph renaming after png/dot generation

---
 convert_text_to_amr.py                        |  41 ++++++++++++------
 outputData/TEST/TEST-01/TEST-01.amr.nt        |  32 +++++++-------
 ....stog.amr.dot.png => TEST-01.stog.amr.png} | Bin
 outputData/TEST/TEST-02/TEST-02.amr.nt        |  24 +++++-----
 ....stog.amr.dot.png => TEST-02.stog.amr.png} | Bin
 5 files changed, 56 insertions(+), 41 deletions(-)
 rename outputData/TEST/TEST-01/{TEST-01.stog.amr.dot.png => TEST-01.stog.amr.png} (100%)
 rename outputData/TEST/TEST-02/{TEST-02.stog.amr.dot.png => TEST-02.stog.amr.png} (100%)

diff --git a/convert_text_to_amr.py b/convert_text_to_amr.py
index 9b9b05d0..261ec6a8 100644
--- a/convert_text_to_amr.py
+++ b/convert_text_to_amr.py
@@ -39,6 +39,7 @@ TEXT_SUFFIX = ".txt"
 SENTENCE_SUFFIX = ".sentence.txt"
 PENMAN_AMR_GRAPH_SUFFIX = ".stog.amr.penman"
 DOT_AMR_GRAPH_SUFFIX = ".stog.amr.dot"
+PNG_AMR_GRAPH_SUFFIX = ".stog.amr.png"
 AMR_RDF_SUFFIX = ".amr.nt"
 AMR_TTL_SUFFIX = ".amr.ttl"
 
@@ -85,6 +86,11 @@ def get_dot_amr_graph_output_filepath(data):
     data_file_name = data["data_ref"] + DOT_AMR_GRAPH_SUFFIX
     return data_dir + data_file_name
 
+def get_png_amr_graph_output_filepath(data):
+    data_dir = get_output_data_dir(data["output_data_dir"])
+    data_file_name = data["data_ref"] + PNG_AMR_GRAPH_SUFFIX
+    return data_dir + data_file_name
+
 def get_amr_rdf_triple_output_filepath(data):
     data_dir = get_output_data_dir(data["output_data_dir"])
     data_file_name = data["data_ref"] + AMR_RDF_SUFFIX
@@ -211,7 +217,7 @@ def prepare_work_data(base_ref):
 #==============================================================================
 
 def generate_penman_amr_graph(data):   
-    """ Writing AMR graph to output file """
+    """ AMR graph generation in penman format """
     
     graph = data["graph"]
     
@@ -223,18 +229,27 @@ def generate_penman_amr_graph(data):
 
 
 def generate_dot_amr_graph(data):
-        graph = data["graph"]
-        try:
-            output_file = get_dot_amr_graph_output_filepath(data)
-            format = 'png'
-            print("----- AMR Graph file (dot, png): " + output_file)
-            plot = AMRPlot(output_file, format)
-            plot.build_from_graph(graph)
-            plot.graph.render()
-            # plot.view() # -- vizualisation of the dot graph 
-        except:
-            logger.warning('Exception when trying to plot') # -- TODO
-            traceback.print_exc()
+    """ AMR graph generation in dot and png format """
+    
+    graph = data["graph"]
+    
+    try:
+        # -- generating dot/png files using AMRLib and GraphViz 
+        dot_fn = get_dot_amr_graph_output_filepath(data)
+        format = 'png'
+        print("----- AMR Graph file (dot): " + dot_fn)
+        plot = AMRPlot(dot_fn, format) 
+        plot.build_from_graph(graph)
+        plot.graph.render()
+        
+        render_fn = dot_fn + '.' + format # -- renaming PNG file
+        good_png_fn = get_png_amr_graph_output_filepath(data)
+        print("----- AMR Graph file (png): " + good_png_fn)
+        os.rename(render_fn, good_png_fn)
+        
+    except:
+        logger.warning('Exception when trying to plot') # -- TODO
+        traceback.print_exc()
             
 
 def convert_sentences_to_graphs(model, data_list):
diff --git a/outputData/TEST/TEST-01/TEST-01.amr.nt b/outputData/TEST/TEST-01/TEST-01.amr.nt
index 3f781df0..c9e5f29f 100644
--- a/outputData/TEST/TEST-01/TEST-01.amr.nt
+++ b/outputData/TEST/TEST-01/TEST-01.amr.nt
@@ -1,22 +1,22 @@
-<http://amr.isi.edu/rdf/core-amr#NamedEntity> <http://www.w3.org/2000/01/rdf-schema#label> "AMR-Term" .
-<http://amr.isi.edu/rdf/core-amr#Concept> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2000/01/rdf-schema#Class> .
-<http://amr.isi.edu/rdf/core-amr#Frame> <http://www.w3.org/2000/01/rdf-schema#label> "AMR-PropBank-Frame" .
-<http://amr.isi.edu/amr_data/TEST-01#root01> <http://amr.isi.edu/rdf/core-amr#has-id> "TEST-01" .
-<http://amr.isi.edu/rdf/core-amr#Frame> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://amr.isi.edu/rdf/core-amr#Concept> .
-<http://amr.isi.edu/rdf/amr-terms#sun> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://amr.isi.edu/rdf/core-amr#Concept> .
-<http://amr.isi.edu/amr_data/TEST-01#s2> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://amr.isi.edu/rdf/amr-terms#sun> .
-<http://amr.isi.edu/frames/ld/v1.2.2/FrameRole> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://amr.isi.edu/rdf/core-amr#Role> .
-<http://amr.isi.edu/amr_data/TEST-01#root01> <http://amr.isi.edu/rdf/core-amr#has-sentence> "The sun is a star." .
-<http://amr.isi.edu/rdf/core-amr#NamedEntity> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://amr.isi.edu/rdf/core-amr#Concept> .
-<http://amr.isi.edu/frames/ld/v1.2.2/FrameRole> <http://www.w3.org/2000/01/rdf-schema#label> "AMR-PropBank-Role" .
-<http://amr.isi.edu/entity-types#star> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://amr.isi.edu/rdf/core-amr#NamedEntity> .
+<http://amr.isi.edu/rdf/core-amr#NamedEntity> <http://www.w3.org/2000/01/rdf-schema#label> "AMR-EntityType" .
+<http://amr.isi.edu/amr_data/TEST-01#root01> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://amr.isi.edu/rdf/core-amr#AMR> .
+<http://amr.isi.edu/rdf/core-amr#Concept> <http://www.w3.org/2000/01/rdf-schema#label> "AMR-Concept" .
 <http://amr.isi.edu/amr_data/TEST-01#root01> <http://amr.isi.edu/rdf/core-amr#root> <http://amr.isi.edu/amr_data/TEST-01#s> .
 <http://amr.isi.edu/rdf/core-amr#Role> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2000/01/rdf-schema#Class> .
-<http://amr.isi.edu/amr_data/TEST-01#root01> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://amr.isi.edu/rdf/core-amr#AMR> .
+<http://amr.isi.edu/amr_data/TEST-01#s2> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://amr.isi.edu/rdf/amr-terms#sun> .
+<http://amr.isi.edu/rdf/amr-terms#sun> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://amr.isi.edu/rdf/core-amr#Concept> .
+<http://amr.isi.edu/amr_data/TEST-01#root01> <http://amr.isi.edu/rdf/core-amr#has-id> "TEST-01" .
 <http://amr.isi.edu/amr_data/TEST-01#s> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://amr.isi.edu/entity-types#star> .
-<http://amr.isi.edu/amr_data/TEST-01#s> <http://amr.isi.edu/rdf/amr-terms#domain> <http://amr.isi.edu/amr_data/TEST-01#s2> .
+<http://amr.isi.edu/amr_data/TEST-01#root01> <http://amr.isi.edu/rdf/core-amr#has-sentence> "The sun is a star." .
+<http://amr.isi.edu/frames/ld/v1.2.2/FrameRole> <http://www.w3.org/2000/01/rdf-schema#label> "AMR-PropBank-Role" .
 <http://amr.isi.edu/rdf/amr-terms#domain> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://amr.isi.edu/rdf/core-amr#Role> .
-<http://amr.isi.edu/rdf/core-amr#Concept> <http://www.w3.org/2000/01/rdf-schema#label> "AMR-Concept" .
-<http://amr.isi.edu/rdf/core-amr#NamedEntity> <http://www.w3.org/2000/01/rdf-schema#label> "AMR-EntityType" .
 <http://amr.isi.edu/rdf/core-amr#Role> <http://www.w3.org/2000/01/rdf-schema#label> "AMR-Role" .
+<http://amr.isi.edu/amr_data/TEST-01#s> <http://amr.isi.edu/rdf/amr-terms#domain> <http://amr.isi.edu/amr_data/TEST-01#s2> .
+<http://amr.isi.edu/rdf/core-amr#NamedEntity> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://amr.isi.edu/rdf/core-amr#Concept> .
+<http://amr.isi.edu/rdf/core-amr#Concept> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2000/01/rdf-schema#Class> .
+<http://amr.isi.edu/rdf/core-amr#NamedEntity> <http://www.w3.org/2000/01/rdf-schema#label> "AMR-Term" .
+<http://amr.isi.edu/rdf/core-amr#Frame> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://amr.isi.edu/rdf/core-amr#Concept> .
+<http://amr.isi.edu/rdf/core-amr#Frame> <http://www.w3.org/2000/01/rdf-schema#label> "AMR-PropBank-Frame" .
+<http://amr.isi.edu/entity-types#star> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://amr.isi.edu/rdf/core-amr#NamedEntity> .
+<http://amr.isi.edu/frames/ld/v1.2.2/FrameRole> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://amr.isi.edu/rdf/core-amr#Role> .
 
diff --git a/outputData/TEST/TEST-01/TEST-01.stog.amr.dot.png b/outputData/TEST/TEST-01/TEST-01.stog.amr.png
similarity index 100%
rename from outputData/TEST/TEST-01/TEST-01.stog.amr.dot.png
rename to outputData/TEST/TEST-01/TEST-01.stog.amr.png
diff --git a/outputData/TEST/TEST-02/TEST-02.amr.nt b/outputData/TEST/TEST-02/TEST-02.amr.nt
index 447bae59..9f6e8790 100644
--- a/outputData/TEST/TEST-02/TEST-02.amr.nt
+++ b/outputData/TEST/TEST-02/TEST-02.amr.nt
@@ -1,19 +1,19 @@
-<http://amr.isi.edu/amr_data/TEST-02#root01> <http://amr.isi.edu/rdf/core-amr#root> <http://amr.isi.edu/amr_data/TEST-02#p> .
-<http://amr.isi.edu/amr_data/TEST-02#root01> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://amr.isi.edu/rdf/core-amr#AMR> .
-<http://amr.isi.edu/frames/ld/v1.2.2/FrameRole> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://amr.isi.edu/rdf/core-amr#Role> .
-<http://amr.isi.edu/amr_data/TEST-02#p> <http://www.w3.org/2000/01/rdf-schema#label> "Earth" .
-<http://amr.isi.edu/amr_data/TEST-02#root01> <http://amr.isi.edu/rdf/core-amr#has-id> "TEST-02" .
-<http://amr.isi.edu/entity-types#planet> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://amr.isi.edu/rdf/core-amr#NamedEntity> .
+<http://amr.isi.edu/rdf/core-amr#Concept> <http://www.w3.org/2000/01/rdf-schema#label> "AMR-Concept" .
 <http://amr.isi.edu/rdf/core-amr#Frame> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://amr.isi.edu/rdf/core-amr#Concept> .
 <http://amr.isi.edu/rdf/core-amr#Role> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2000/01/rdf-schema#Class> .
-<http://amr.isi.edu/rdf/core-amr#NamedEntity> <http://www.w3.org/2000/01/rdf-schema#label> "AMR-EntityType" .
-<http://amr.isi.edu/rdf/core-amr#Frame> <http://www.w3.org/2000/01/rdf-schema#label> "AMR-PropBank-Frame" .
-<http://amr.isi.edu/rdf/core-amr#Concept> <http://www.w3.org/2000/01/rdf-schema#label> "AMR-Concept" .
+<http://amr.isi.edu/rdf/core-amr#Role> <http://www.w3.org/2000/01/rdf-schema#label> "AMR-Role" .
+<http://amr.isi.edu/amr_data/TEST-02#p> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://amr.isi.edu/entity-types#planet> .
+<http://amr.isi.edu/amr_data/TEST-02#p> <http://www.w3.org/2000/01/rdf-schema#label> "Earth" .
 <http://amr.isi.edu/amr_data/TEST-02#root01> <http://amr.isi.edu/rdf/core-amr#has-sentence> "Earth is a planet." .
-<http://amr.isi.edu/rdf/core-amr#NamedEntity> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://amr.isi.edu/rdf/core-amr#Concept> .
+<http://amr.isi.edu/rdf/core-amr#NamedEntity> <http://www.w3.org/2000/01/rdf-schema#label> "AMR-EntityType" .
 <http://amr.isi.edu/rdf/core-amr#Concept> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2000/01/rdf-schema#Class> .
-<http://amr.isi.edu/rdf/core-amr#Role> <http://www.w3.org/2000/01/rdf-schema#label> "AMR-Role" .
 <http://amr.isi.edu/frames/ld/v1.2.2/FrameRole> <http://www.w3.org/2000/01/rdf-schema#label> "AMR-PropBank-Role" .
-<http://amr.isi.edu/amr_data/TEST-02#p> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://amr.isi.edu/entity-types#planet> .
 <http://amr.isi.edu/rdf/core-amr#NamedEntity> <http://www.w3.org/2000/01/rdf-schema#label> "AMR-Term" .
+<http://amr.isi.edu/rdf/core-amr#NamedEntity> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://amr.isi.edu/rdf/core-amr#Concept> .
+<http://amr.isi.edu/amr_data/TEST-02#root01> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://amr.isi.edu/rdf/core-amr#AMR> .
+<http://amr.isi.edu/amr_data/TEST-02#root01> <http://amr.isi.edu/rdf/core-amr#root> <http://amr.isi.edu/amr_data/TEST-02#p> .
+<http://amr.isi.edu/rdf/core-amr#Frame> <http://www.w3.org/2000/01/rdf-schema#label> "AMR-PropBank-Frame" .
+<http://amr.isi.edu/entity-types#planet> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://amr.isi.edu/rdf/core-amr#NamedEntity> .
+<http://amr.isi.edu/amr_data/TEST-02#root01> <http://amr.isi.edu/rdf/core-amr#has-id> "TEST-02" .
+<http://amr.isi.edu/frames/ld/v1.2.2/FrameRole> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://amr.isi.edu/rdf/core-amr#Role> .
 
diff --git a/outputData/TEST/TEST-02/TEST-02.stog.amr.dot.png b/outputData/TEST/TEST-02/TEST-02.stog.amr.png
similarity index 100%
rename from outputData/TEST/TEST-02/TEST-02.stog.amr.dot.png
rename to outputData/TEST/TEST-02/TEST-02.stog.amr.png
-- 
GitLab