From ef33be772020693fb58876a8032182cf6ae5da96 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Euzenat?= <Jerome.Euzenat@inria.fr>
Date: Tue, 13 Apr 2010 20:49:39 +0000
Subject: [PATCH] - implemented automatically dotted of alignments containing
 only 0 and 1

---
 .../impl/eval/AveragePRGraphEvaluator.java     |  1 +
 .../exmo/align/impl/eval/GraphEvaluator.java   |  6 ++++++
 src/fr/inrialpes/exmo/align/util/GenPlot.java  | 18 +++++++++++-------
 3 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/src/fr/inrialpes/exmo/align/impl/eval/AveragePRGraphEvaluator.java b/src/fr/inrialpes/exmo/align/impl/eval/AveragePRGraphEvaluator.java
index fde5972e..9409b9c0 100644
--- a/src/fr/inrialpes/exmo/align/impl/eval/AveragePRGraphEvaluator.java
+++ b/src/fr/inrialpes/exmo/align/impl/eval/AveragePRGraphEvaluator.java
@@ -129,6 +129,7 @@ public class AveragePRGraphEvaluator extends GraphEvaluator {
 	initCellSet();
 	if ( align2 == null ) return; //no increase of precisions
 	for ( Cell c : align2 ) {
+    	    if ( invalid && c.getStrength() != 1. && c.getStrength() != 0. ) invalid = false;
 	    cellSet.add( new EvalCell( c, isCorrect( c, align1 ) ) );
 	}
 
diff --git a/src/fr/inrialpes/exmo/align/impl/eval/GraphEvaluator.java b/src/fr/inrialpes/exmo/align/impl/eval/GraphEvaluator.java
index f2611e2f..9fe2a6a5 100644
--- a/src/fr/inrialpes/exmo/align/impl/eval/GraphEvaluator.java
+++ b/src/fr/inrialpes/exmo/align/impl/eval/GraphEvaluator.java
@@ -67,6 +67,9 @@ public abstract class GraphEvaluator {
     protected SortedSet<EvalCell> cellSet = null;
     public Vector<Pair> points;
 
+    // By default result is invalid
+    public boolean invalid = true;
+
     /**
      * Returns the points to display in a graph
      */
@@ -141,10 +144,13 @@ public abstract class GraphEvaluator {
 	// Set the found cells in the sorted structure
 	if ( al == null ) return;
 	for ( Cell c : al ) {
+	    if ( invalid && c.getStrength() != 1. && c.getStrength() != 0. ) invalid = false;
 	    cellSet.add( new EvalCell( c, isCorrect( c, ref ) ) );
 	}
     }
 
+    public boolean isValid() { return !invalid; }
+
     public int nbCells() {
 	if ( cellSet == null ) return 0;
 	else return cellSet.size();
diff --git a/src/fr/inrialpes/exmo/align/util/GenPlot.java b/src/fr/inrialpes/exmo/align/util/GenPlot.java
index f7c27521..e1a5e019 100644
--- a/src/fr/inrialpes/exmo/align/util/GenPlot.java
+++ b/src/fr/inrialpes/exmo/align/util/GenPlot.java
@@ -27,7 +27,6 @@ package fr.inrialpes.exmo.align.util;
 import org.semanticweb.owl.align.Alignment;
 
 import fr.inrialpes.exmo.align.impl.eval.GraphEvaluator;
-import fr.inrialpes.exmo.align.impl.eval.PRGraphEvaluator;
 import fr.inrialpes.exmo.align.impl.eval.Pair;
 
 import fr.inrialpes.exmo.ontowrap.OntologyFactory;
@@ -367,7 +366,7 @@ public class GenPlot {
     public void printPGFTex( Vector<Vector<Pair>> result ){
 	int i = 0;
 	String marktable[] = { "+", "*", "x", "-", "|", "o", "asterisk", "star", "oplus", "oplus*", "otimes", "otimes*", "square", "square*", "triangle", "triangle*", "diamond", "diamond*", "pentagon", "pentagon*"};
-	String colortable[] = { "black", "red", "green", "blue", "cyan", "magenta", "yellow" }	;
+	String colortable[] = { "black", "red", "green", "blue", "cyan", "magenta" }	;
 	output.println("\\documentclass[11pt]{book}");
 	output.println();
 	output.println("\\usepackage{pgf}");
@@ -390,8 +389,11 @@ public class GenPlot {
 	output.println("\\draw (-0.3,5) node[rotate=90] {$"+ylabel+"$}; ");
 	output.println("\\draw (-0.3,10) node {1.}; ");
 	output.println("% Plots");
+	i = 0;
 	for ( String m : listAlgo ) {
-	    output.println("\\draw["+colortable[i%7]+"] plot[mark="+marktable[i%19]+"] file {"+m+".table};");
+	    output.print("\\draw["+colortable[i%6] );
+	    if ( !listEvaluators.get(i).isValid() ) output.print(",dotted");
+	    output.println("] plot[mark="+marktable[i%19]+"] file {"+m+".table};");
 	    //,smooth
 	    i++;
 	}
@@ -399,10 +401,12 @@ public class GenPlot {
 	output.println("% Legend");
 	i = 0;
 	for ( String m : listAlgo ) {
-	    output.println("\\draw["+colortable[i%7]+"] plot[mark="+marktable[i%19]+"] coordinates {("+((i%3)*3+1)+","+(-(i/3)*.8-1)+") ("+((i%3)*3+3)+","+(-(i/3)*.8-1)+")};");
+	    output.print("\\draw["+colortable[i%6] );
+	    if ( !listEvaluators.get(i).isValid() ) output.print(",dotted");
+	    output.println("] plot[mark="+marktable[i%19]+"] coordinates {("+((i%3)*3+1)+","+(-(i/3)*.8-1)+") ("+((i%3)*3+3)+","+(-(i/3)*.8-1)+")};");
 	    //,smooth
-	    output.println("\\draw["+colortable[i%7]+"] ("+((i%3)*3+2)+","+(-(i/3)*.8-.8)+") node {"+m+"};");
-	    output.printf("\\draw["+colortable[i%7]+"] ("+((i%3)*3+2)+","+(-(i/3)*.8-1.2)+") node {%1.2f};\n", listEvaluators.get(i).getGlobalResult() );
+	    output.println("\\draw["+colortable[i%6]+"] ("+((i%3)*3+2)+","+(-(i/3)*.8-.8)+") node {"+m+"};");
+	    output.printf("\\draw["+colortable[i%6]+"] ("+((i%3)*3+2)+","+(-(i/3)*.8-1.2)+") node {%1.2f};\n", listEvaluators.get(i).getGlobalResult() );
 	    i++;
 	}
 	output.println("\\end{tikzpicture}");
@@ -442,7 +446,7 @@ public class GenPlot {
 	}
     }
 
-    // 2010: THIS IS ONLY FOR TSV ET CA NE MARCHE PAS A
+    // 2010: THIS IS ONLY FOR TSV AND THIS DOES NOT WORK
     // IT IS SUPPOSED TO PROVIDE
     // List of algo
     // List of STEP + points
-- 
GitLab