From f4e9cd54fba749ed2a55d7f448be9796a419f38d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Euzenat?= <Jerome.Euzenat@inria.fr>
Date: Fri, 8 Feb 2013 14:27:25 +0000
Subject: [PATCH] - corrected bugus implementation of Relaxed evaluator

---
 .../exmo/align/impl/eval/ExtPREvaluator.java  | 24 ++++++++++---------
 .../impl/renderer/RDFRendererVisitor.java     |  2 +-
 2 files changed, 14 insertions(+), 12 deletions(-)

diff --git a/src/fr/inrialpes/exmo/align/impl/eval/ExtPREvaluator.java b/src/fr/inrialpes/exmo/align/impl/eval/ExtPREvaluator.java
index 26c81dde..bfacd129 100644
--- a/src/fr/inrialpes/exmo/align/impl/eval/ExtPREvaluator.java
+++ b/src/fr/inrialpes/exmo/align/impl/eval/ExtPREvaluator.java
@@ -1,7 +1,7 @@
 /*
  * $Id$
  *
- * Copyright (C) INRIA, 2004-2010, 2012
+ * Copyright (C) INRIA, 2004-2010, 2012-2013
  *
  * 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
@@ -212,16 +212,18 @@ public class ExtPREvaluator extends BasicEvaluator implements Evaluator {
 	    for ( Cell c2 : align2 ) {
 		int val1 = 0; // the similatity between the o1 objects
 		int val2 = 0; // the similarity between the o2 objects
-		if ( onto1.getEntityURI( c1.getObject1() ).equals(onto1.getEntityURI(c2.getObject1())) ){
+		if ( onto1.getEntityURI( c1.getObject1() ).equals( onto1.getEntityURI(c2.getObject1()) ) ){
 		    val1 = 0;
 		} else {
-		    val1 = Math.abs( relativePosition( c1.getObject2(), c2.getObject2(), onto2 ) );
+		    val1 = Math.abs( relativePosition( c1.getObject1(), c2.getObject1(), onto1 ) );
+		    //System.err.println( c1.getObject1()+" -- "+c2.getObject1()+" = "+val1 );
 		    if ( val1 == 0 ) continue;
 		}
-		if ( onto2.getEntityURI(c1.getObject2()).equals(onto2.getEntityURI(c2.getObject2())) ){
+		if ( onto2.getEntityURI( c1.getObject2() ).equals( onto2.getEntityURI(c2.getObject2()) ) ){
 		    val2 = 0;
 		} else {
-		    val2 = Math.abs( relativePosition( c1.getObject1(), c2.getObject1(), onto1 ) );
+		    val2 = Math.abs( relativePosition( c1.getObject2(), c2.getObject2(), onto2 ) );
+		    //System.err.println( c1.getObject2()+" -- "+c2.getObject2()+" = "+val2 );
 		    if ( val2 == 0 ) continue;
 		}
 		double val = Math.pow( symALPHA, val1 + val2 );
@@ -250,7 +252,7 @@ public class ExtPREvaluator extends BasicEvaluator implements Evaluator {
 		if ( onto1.getEntityURI( c1.getObject1() ).equals(onto1.getEntityURI(c2.getObject1())) ){
 		    val = 1.;
 		} else {
-		    val1 = relativePosition( c1.getObject2(), c2.getObject2(), onto2 );
+		    val1 = relativePosition( c1.getObject1(), c2.getObject1(), onto1 );
 		    if ( val1 == 0 ) {
 			continue;
 		    } if ( val1 > 0 ) {
@@ -262,7 +264,7 @@ public class ExtPREvaluator extends BasicEvaluator implements Evaluator {
 		if ( onto2.getEntityURI(c1.getObject2()).equals(onto2.getEntityURI(c2.getObject2())) ){
 		    // val remains val
 		} else {
-		    val2 = relativePosition( c1.getObject1(), c2.getObject1(), onto1 );
+		    val2 = relativePosition( c1.getObject2(), c2.getObject2(), onto2 );
 		    if ( val2 == 0 ) {
 			continue;
 		    } if ( val2 > 0 ) {
@@ -296,7 +298,7 @@ public class ExtPREvaluator extends BasicEvaluator implements Evaluator {
 		if ( onto1.getEntityURI( c1.getObject1() ).equals(onto1.getEntityURI(c2.getObject1())) ){
 		    val = 1.;
 		} else {
-		    val1 = relativePosition( c1.getObject2(), c2.getObject2(), onto2 );
+		    val1 = relativePosition( c1.getObject1(), c2.getObject1(), onto1 );
 		    if ( val1 == 0 ) {
 			continue;
 		    } if ( val1 > 0 ) {
@@ -308,7 +310,7 @@ public class ExtPREvaluator extends BasicEvaluator implements Evaluator {
 		if ( onto2.getEntityURI(c1.getObject2()).equals(onto2.getEntityURI(c2.getObject2())) ){
 		    // val remains val
 		} else {
-		    val2 = relativePosition( c1.getObject1(), c2.getObject1(), onto1 );
+		    val2 = relativePosition( c1.getObject2(), c2.getObject2(), onto2 );
 		    if ( val2 == 0 ) {
 			continue;
 		    } if ( val2 > 0 ) { // This is the inverse from o1 because queries flow from o1 to o2
@@ -340,7 +342,7 @@ public class ExtPREvaluator extends BasicEvaluator implements Evaluator {
 		if ( onto1.getEntityURI( c1.getObject1() ).equals(onto1.getEntityURI(c2.getObject1())) ){
 		    val = 1.;
 		} else {
-		    val1 = relativePosition( c1.getObject2(), c2.getObject2(), onto2 );
+		    val1 = relativePosition( c1.getObject1(), c2.getObject1(), onto1 );
 		    if ( val1 == 0 ) {
 			continue;
 		    } if ( val1 > 0 ) {
@@ -352,7 +354,7 @@ public class ExtPREvaluator extends BasicEvaluator implements Evaluator {
 		if ( onto2.getEntityURI(c1.getObject2()).equals(onto2.getEntityURI(c2.getObject2())) ){
 		    // val remains val
 		} else {
-		    val2 = relativePosition( c1.getObject1(), c2.getObject1(), onto1 );
+		    val2 = relativePosition( c1.getObject2(), c2.getObject2(), onto2 );
 		    if ( val2 == 0 ) {
 			continue;
 		    } if ( val2 > 0 ) { // This is the inverse from o1 because queries flow from o1 to o2
diff --git a/src/fr/inrialpes/exmo/align/impl/renderer/RDFRendererVisitor.java b/src/fr/inrialpes/exmo/align/impl/renderer/RDFRendererVisitor.java
index ab959caa..c7433db0 100644
--- a/src/fr/inrialpes/exmo/align/impl/renderer/RDFRendererVisitor.java
+++ b/src/fr/inrialpes/exmo/align/impl/renderer/RDFRendererVisitor.java
@@ -41,7 +41,7 @@ import fr.inrialpes.exmo.align.impl.BasicAlignment;
 import fr.inrialpes.exmo.align.impl.ObjectCell;
 
 import fr.inrialpes.exmo.ontowrap.LoadedOntology;
-import fr.inrialpes.exmo.ontowrap.Ontology; //?
+import fr.inrialpes.exmo.ontowrap.Ontology;
 
 import fr.inrialpes.exmo.align.parser.SyntaxElement;
 import fr.inrialpes.exmo.align.parser.SyntaxElement.Constructor;
-- 
GitLab