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