From 5644701cfdb8646cd2df57ea55cd166dcca0c314 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Euzenat?= <Jerome.Euzenat@inria.fr>
Date: Sat, 10 Mar 2012 15:53:15 +0000
Subject: [PATCH] - implemented XML/RDF output

---
 .../exmo/align/impl/eval/DiffEvaluator.java   | 27 ++++++++++++++++---
 1 file changed, 23 insertions(+), 4 deletions(-)

diff --git a/src/fr/inrialpes/exmo/align/impl/eval/DiffEvaluator.java b/src/fr/inrialpes/exmo/align/impl/eval/DiffEvaluator.java
index 4307fa20..c4128e68 100644
--- a/src/fr/inrialpes/exmo/align/impl/eval/DiffEvaluator.java
+++ b/src/fr/inrialpes/exmo/align/impl/eval/DiffEvaluator.java
@@ -158,8 +158,7 @@ public class DiffEvaluator extends BasicEvaluator implements Evaluator {
         return result;
     }
 
-
-    private String writeCellsHTML(Set<Cell> set, String what) { 
+    private String writeCellsHTML( Set<Cell> set, String what ) { 
 	String result = ""; 
 	try {
 	    result += "              <dt> " + what + "</dt><dd>\n";
@@ -173,10 +172,30 @@ public class DiffEvaluator extends BasicEvaluator implements Evaluator {
 	return result;  
     }
 
+    public void printAsCells ( String what, Set<Cell> set, PrintWriter writer ) {
+	writer.println("  <"+what+" rdf:parseType=\"Collection\">");
+	for ( Cell c : truepositive ){
+	    try {
+		writer.println("    <Cell>");
+		writer.println("      <entity1 rdf:resource=\""+c.getObject1AsURI()+"\">");
+		writer.println("      <entity2 rdf:resource=\""+c.getObject2AsURI()+"\">");
+		writer.println("      <relation>"+c.getRelation().getRelation()+"</relation>");
+		writer.println("    </Cell>");
+	    } catch (AlignmentException e) {
+		e.printStackTrace(); 
+	    }
+	}
+	writer.println("  </"+what+">");
+    }
 
-    public void write(PrintWriter writer) throws java.io.IOException {
-	// Cassia: here you can put your display as XML But this is not compulsory
+    public void write( PrintWriter writer ) throws java.io.IOException {
 	writer.println("<?xml version='1.0' encoding='utf-8' standalone='yes'?>");
+	writer.println("<DiffAlignment>");
+	// Should be good to add the reference alignments
+	printAsCells( "truePositive", truepositive, writer );
+	printAsCells( "falsePositive", falsepositive, writer );
+	printAsCells( "falseNegative", falsenegative, writer );
+	writer.println("</DiffAlignment>");
     }
 
     public Properties getResults() {
-- 
GitLab