From a9536f2db727b3c4e35883a71e4ec8b1a6f7e5fa Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Euzenat?= <Jerome.Euzenat@inria.fr>
Date: Tue, 6 Apr 2010 20:25:39 +0000
Subject: [PATCH] - added a getResult() method to Evaluator

---
 .../exmo/align/impl/eval/ExtPREvaluator.java   | 18 +++++++++++++++++-
 .../exmo/align/impl/eval/PRecEvaluator.java    | 14 ++++++++++++++
 .../exmo/align/impl/eval/SemPRecEvaluator.java | 13 ++++++++++---
 .../exmo/align/impl/eval/SymMeanEvaluator.java | 12 +++++++++++-
 src/org/semanticweb/owl/align/Evaluator.java   |  8 +++++++-
 5 files changed, 59 insertions(+), 6 deletions(-)

diff --git a/src/fr/inrialpes/exmo/align/impl/eval/ExtPREvaluator.java b/src/fr/inrialpes/exmo/align/impl/eval/ExtPREvaluator.java
index 62a42090..76be9de6 100644
--- a/src/fr/inrialpes/exmo/align/impl/eval/ExtPREvaluator.java
+++ b/src/fr/inrialpes/exmo/align/impl/eval/ExtPREvaluator.java
@@ -23,6 +23,7 @@ package fr.inrialpes.exmo.align.impl.eval;
 import org.semanticweb.owl.align.Alignment;
 import org.semanticweb.owl.align.AlignmentException;
 import org.semanticweb.owl.align.Cell;
+import org.semanticweb.owl.align.Evaluator;
 
 import fr.inrialpes.exmo.align.parser.SyntaxElement;
 import fr.inrialpes.exmo.align.impl.Namespace;
@@ -51,7 +52,7 @@ import java.net.URI;
  * @version $Id$ 
  */
 
-public class ExtPREvaluator extends BasicEvaluator {
+public class ExtPREvaluator extends BasicEvaluator implements Evaluator {
 
     private HeavyLoadedOntology<Object> onto1;
     private HeavyLoadedOntology<Object> onto2;
@@ -305,5 +306,20 @@ public class ExtPREvaluator extends BasicEvaluator {
 	writer.print("</"+Namespace.ATLMAP.shortCut+":orientedrecall>\n  </"+Namespace.ATLMAP.shortCut+":output>\n</"+SyntaxElement.RDF.print()+">\n");
     }
 
+    public Properties getResults() {
+	Properties results = new Properties();
+	results.setProperty( "symmetric precision", Double.toString( symprec ) );
+	results.setProperty( "symmetric recall", Double.toString( symrec ) );
+	results.setProperty( "symmetric similarity", Double.toString( symsimilarity ) );
+	results.setProperty( "effort-based precision", Double.toString( effprec ) );
+	results.setProperty( "effort-based recall", Double.toString( effrec ) );
+	results.setProperty( "effort-based similarity", Double.toString( effsimilarity ) );
+	results.setProperty( "oriented precision", Double.toString( orientprec ) );
+	results.setProperty( "oriented recall", Double.toString( orientrec ) );
+	results.setProperty( "oriented similarity", Double.toString( orientsimilarity ) );
+	results.setProperty( "nbexpected", Integer.toString( nbexpected ) );
+	results.setProperty( "nbfound", Integer.toString( nbfound ) );
+	return results;
+    }
 }
 
diff --git a/src/fr/inrialpes/exmo/align/impl/eval/PRecEvaluator.java b/src/fr/inrialpes/exmo/align/impl/eval/PRecEvaluator.java
index 4ba047c4..04ac2eb1 100644
--- a/src/fr/inrialpes/exmo/align/impl/eval/PRecEvaluator.java
+++ b/src/fr/inrialpes/exmo/align/impl/eval/PRecEvaluator.java
@@ -207,6 +207,20 @@ return result;
 	writer.print("</result>\n  </"+Namespace.ATLMAP.shortCut+":output>\n</"+SyntaxElement.RDF.print()+">\n");
     }
 
+    public Properties getResults() {
+	Properties results = new Properties();
+	results.setProperty( "precision", Double.toString( precision ) );
+	results.setProperty( "recall", Double.toString( recall ) );
+	results.setProperty( "overall", Double.toString( overall ) );
+	results.setProperty( "fallout", Double.toString( fallout ) );
+	results.setProperty( "fmeasure", Double.toString( fmeasure ) );
+	results.setProperty( "nbexpected", Integer.toString( nbexpected ) );
+	results.setProperty( "nbfound", Integer.toString( nbfound ) );
+	results.setProperty( "true positive", Integer.toString( nbcorrect ) );
+	if ( time != 0 ) results.setProperty( "time", Long.toString( time ) );
+	return results;
+    }
+
     public double getPrecision() { return precision; }
     public double getRecall() {	return recall; }
     public double getOverall() { return overall; }
diff --git a/src/fr/inrialpes/exmo/align/impl/eval/SemPRecEvaluator.java b/src/fr/inrialpes/exmo/align/impl/eval/SemPRecEvaluator.java
index 70be963b..8927e114 100644
--- a/src/fr/inrialpes/exmo/align/impl/eval/SemPRecEvaluator.java
+++ b/src/fr/inrialpes/exmo/align/impl/eval/SemPRecEvaluator.java
@@ -51,9 +51,7 @@ import java.net.URI;
  * @version $Id$ 
  */
 
-public class SemPRecEvaluator //extends BasicEvaluator 
-				      //implements Evaluator {
-    extends PRecEvaluator {
+public class SemPRecEvaluator extends PRecEvaluator implements Evaluator {
 
     private int nbfoundentailed = 0; // nb of returned cells entailed by the reference alignment
     private int nbexpectedentailed = 0; // nb of reference cells entailed by returned alignment
@@ -138,5 +136,14 @@ public class SemPRecEvaluator //extends BasicEvaluator
 
     public int getFoundEntailed() { return nbfoundentailed; }
     public int getExpectedEntailed() { return nbexpectedentailed; }
+
+    public Properties getResults() {
+	Properties results = super.getResults();
+	results.setProperty( "nbexpectedentailed", Integer.toString( nbexpectedentailed ) );
+	results.setProperty( "nbfoundentailed", Integer.toString( nbfoundentailed ) );
+	return results;
+    }
+
+
 }
 
diff --git a/src/fr/inrialpes/exmo/align/impl/eval/SymMeanEvaluator.java b/src/fr/inrialpes/exmo/align/impl/eval/SymMeanEvaluator.java
index 97324d9e..f6cf570f 100644
--- a/src/fr/inrialpes/exmo/align/impl/eval/SymMeanEvaluator.java
+++ b/src/fr/inrialpes/exmo/align/impl/eval/SymMeanEvaluator.java
@@ -23,6 +23,7 @@ package fr.inrialpes.exmo.align.impl.eval;
 import org.semanticweb.owl.align.Alignment;
 import org.semanticweb.owl.align.AlignmentException;
 import org.semanticweb.owl.align.Cell;
+import org.semanticweb.owl.align.Evaluator;
 
 import fr.inrialpes.exmo.align.parser.SyntaxElement;
 import fr.inrialpes.exmo.align.impl.Namespace;
@@ -52,7 +53,7 @@ import java.io.PrintWriter;
  * @version $Id$ 
  */
 
-public class SymMeanEvaluator extends BasicEvaluator {
+public class SymMeanEvaluator extends BasicEvaluator implements Evaluator {
     private double classScore = 0.;
     private double propScore = 0.;
     private double indScore = 0.;
@@ -120,4 +121,13 @@ public class SymMeanEvaluator extends BasicEvaluator {
  	writer.print("</result>\n  </Evaluation>\n</"+SyntaxElement.RDF.print()+">\n");
     }
 
+    public Properties getResults() {
+	Properties results = new Properties();
+	results.setProperty( "class score", Double.toString( classScore ) );
+	results.setProperty( "property score", Double.toString( propScore ) );
+	results.setProperty( "individual score", Double.toString( indScore ) );
+	results.setProperty( "global symmetric difference", Double.toString( result ) );
+	return results;
+    }
+
 }
diff --git a/src/org/semanticweb/owl/align/Evaluator.java b/src/org/semanticweb/owl/align/Evaluator.java
index b75fe38a..6490a622 100644
--- a/src/org/semanticweb/owl/align/Evaluator.java
+++ b/src/org/semanticweb/owl/align/Evaluator.java
@@ -1,7 +1,7 @@
 /*
  * $Id$
  *
- * Copyright (C) INRIA, 2004, 2007-2009
+ * Copyright (C) INRIA, 2004, 2007-2010
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -58,5 +58,11 @@ public interface Evaluator {
      * ontologies.
      */
     public void write( PrintWriter writer ) throws java.io.IOException ;
+
+    /**
+     * Returns the results as a property list not further described but
+     * suitable for display.
+     */
+    public Properties getResults();
 }
 
-- 
GitLab