#!/bin/sh
# Updated 20/02/2007 for the Align API 3.0
# Results are the same
# But ExtGroupEval requires more memory and is very slow.

TESTDIR=`pwd`
JAVALIB=/Java/alignapi/lib
JAVA=/usr/bin/java
#JAVA=/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Commands/java

COMP='automs coma DSSim falcon hmatch jhuapl OCM prior RiMOM'

#################################################################
## EXTRACTED
# Made by hand. Consists of extractig the benchmark files
# from the zip provided by participants and sometimes renaming the
# directory

#################################################################
## CREATE MERGE
echo Assembling data files...

/bin/rm -rf MERGED

cp -r /Web/html/oaei/2006/benchmarks MERGED
/bin/rm -rf MERGED/RCS MERGED/xslt MERGED/refs MERGED/NEW305

for sys in $COMP
do
for test in `ls -d MERGED/???|sed "s:MERGED/::"`
do
cp EXTRACTED/$sys/$test/$sys.rdf MERGED/$test
done
done

#################################################################
## IF NECESSARY CREATE EDNA RESULTS
echo Processing edna...

cd MERGED
$JAVA -cp $JAVALIB/procalign.jar fr.inrialpes.exmo.align.util.GroupAlign -o edna -n http://oaei.ontologymatching.org/2006/benchmarks/101/onto.rdf -i fr.inrialpes.exmo.align.impl.method.StringDistAlignment -Dnoinst=1
cd ..

COMP="edna $COMP"

#################################################################
## TEST SPECIFIC EDITION
echo Fixing file problems...

for test in `ls -d MERGED/???|sed "s:MERGED/::"`
do
cp MERGED/$test/jhuapl.rdf /tmp/jhuapl.rdf
sed "s;oaei.inrialpes.fr;oaei.ontologymatching.org;" /tmp/jhuapl.rdf > MERGED/$test/jhuapl.rdf
cp MERGED/$test/prior.rdf /tmp/prior.rdf
sed "s;file:/home/common_place/om06;http://oaei.ontologymatching.org/2006;" /tmp/prior.rdf > MERGED/$test/prior.rdf
done

for test in 206 207 210
do
cp MERGED/$test/falcon.rdf /tmp/falcon.rdf
sed "s;utf-8;iso-8859-1;" /tmp/falcon.rdf > MERGED/$test/falcon.rdf
done

# 102 raise problems with aggregated measures (the way we compute them)
/bin/rm -rf MERGED/102
# This is necessary for avoiding unexpected error in OWLRDFParse...
#for sys in refalign $COMP
#do
#cp MERGED/102/$sys.rdf /tmp/$sys.rdf
#sed "s;http://oaei.ontologymatching.org/2006/benchmarks/102/onto.rdf;http://www.w3.org/TR/2003/PR-owl-guide-20031215/wine;" /tmp/$sys.rdf | sed "s;20031209;20031215;" > MERGED/102/$sys.rdf
#done

cp MERGED/302/RiMOM.rdf /tmp/RiMOM.rdf
sed "s;\#publication</uri2>;</uri2>;"  /tmp/RiMOM.rdf > MERGED/302/RiMOM.rdf
cp MERGED/302/OCM.rdf /tmp/OCM.rdf
sed "s;<onto2>http://ebiquity.umbc.edu/v2.1/ontology/publication.owl;<onto2>http://oaei.ontologymatching.org/2006/benchmarks/302/onto.rdf;" /tmp/OCM.rdf > MERGED/302/OCM.rdf
cp MERGED/302/jhuapl.rdf /tmp/jhuapl.rdf
sed "s;oaei.inrialpes.fr;oaei.ontologymatching.org;" /tmp/jhuapl.rdf | sed "s;\#publication</uri2>;</uri2>;" > MERGED/302/jhuapl.rdf
cp MERGED/302/prior.rdf /tmp/prior.rdf
sed "s;<onto1>file:/home/common_place/om06;<onto1>http://oaei.ontologymatching.org/2006;" /tmp/prior.rdf | sed "s;\#publication</uri2>;</uri2>;" > MERGED/302/prior.rdf

cp MERGED/303/hmatch.rdf /tmp/hmatch.rdf
sed  "s;http://dummy-ontologies.com/dummy.owl;http://www.aifb.uni-karlsruhe.de/ontology;" /tmp/hmatch.rdf  > MERGED/303/hmatch.rdf
cp MERGED/303/OCM.rdf /tmp/OCM.rdf
sed "s;<onto2>http://www.aifb.uni-karlsruhe.de/ontology;<onto2>http://oaei.ontologymatching.org/2006/benchmarks/303/onto.rdf;" /tmp/OCM.rdf  > MERGED/303/OCM.rdf
cp MERGED/303/jhuapl.rdf /tmp/jhuapl.rdf
sed "s;<uri2>http://oaei.inrialpes.fr/2006/benchmarks/303/onto.rdf;<uri2>http://www.aifb.uni-karlsruhe.de/ontology;" /tmp/jhuapl.rdf | sed "s;oaei.inrialpes.fr;oaei.ontologymatching.org;" > MERGED/303/jhuapl.rdf
cp MERGED/303/prior.rdf /tmp/prior.rdf
sed "s;<onto1>file:/home/common_place/om06;<onto1>http://oaei.ontologymatching.org/2006;" /tmp/prior.rdf | sed "s;\#publication</uri2>;</uri2>;" > MERGED/303/prior.rdf

#################################################################
## Eval
echo Primary evaluation...

/bin/rm -rf HTML
mkdir HTML

cd MERGED

FILES=refalign,`echo $COMP | sed "s: :,:g"` 

$JAVA -Xmx1200m -cp $JAVALIB/procalign.jar fr.inrialpes.exmo.align.util.GroupEval -c -l $FILES > ../HTML/results.html

$JAVA -Xmx1200m -cp $JAVALIB/procalign.jar fr.inrialpes.exmo.align.util.GroupEval -t triangle -l $FILES > ../HTML/triangle.tex

echo Generalized precision and recall...

$JAVA -Xmx1800m -cp $JAVALIB/procalign.jar fr.inrialpes.exmo.align.util.ExtGroupEval -f s -c -l $FILES > ../HTML/symresults.html

$JAVA -Xmx1800m -cp $JAVALIB/procalign.jar fr.inrialpes.exmo.align.util.ExtGroupEval -f e -c -l $FILES > ../HTML/effresults.html

$JAVA -Xmx1800m -cp $JAVALIB/procalign.jar fr.inrialpes.exmo.align.util.ExtGroupEval -f o -c -l $FILES > ../HTML/ordresults.html

#################################################################
## GENERATE PRECISION/RECALL GRAPHS
echo Precision/recall graphs...

$JAVA -Xmx1200m -cp $JAVALIB/procalign.jar fr.inrialpes.exmo.align.util.GenPlot -l $FILES -t tex -o prgraph.tex

mv *.table ../HTML
mv  prgraph.tex ../HTML

#################################################################
## EDIT EVAL
echo Aggregation per category...

/bin/rm -rf .r1xx .r2xx .r3xx

mkdir .r1xx
cp -r 1?? .r1xx
cd .r1xx
$JAVA -Xmx1200m -cp $JAVALIB/procalign.jar fr.inrialpes.exmo.align.util.GroupEval -c -l $FILES > ../../HTML/1xx.html
cd ..

mkdir .r2xx
cp -r 2?? .r2xx
cd .r2xx
$JAVA -Xmx1200m -cp $JAVALIB/procalign.jar fr.inrialpes.exmo.align.util.GroupEval -c -l $FILES > ../../HTML/2xx.html
cd ..

mkdir .r3xx
cp -r 3?? .r3xx
cd .r3xx
$JAVA -Xmx1200m -cp $JAVALIB/procalign.jar fr.inrialpes.exmo.align.util.GroupEval -c -l $FILES > ../../HTML/3xx.html
cd ..

#################################################################
## EDIT EVAL
echo Comparison with previous years...

/bin/rm -rf .r1xx .r2xx .r3xx .year

mkdir .r1xx
cp -r 1?? .r1xx
cd .r1xx
$JAVA -Xmx1200m -cp $JAVALIB/procalign.jar fr.inrialpes.exmo.align.util.GroupEval -c -l $FILES > ../../HTML/y1xx.html
cd ..

mkdir .r2xx
cp -r 201 202 203 204 205 206 221 222 223 224 225 228 230 .r2xx
cd .r2xx
$JAVA -Xmx1200m -cp $JAVALIB/procalign.jar fr.inrialpes.exmo.align.util.GroupEval -c -l $FILES > ../../HTML/y2xx.html
cd ..

mkdir .r3xx
cp -r 3?? .r3xx
cd .r3xx
$JAVA -Xmx1200m -cp $JAVALIB/procalign.jar fr.inrialpes.exmo.align.util.GroupEval -c -l $FILES > ../../HTML/y3xx.html
cd ..

mkdir .year
cp -r .r1xx/* .year
cp -r .r2xx/* .year
cp -r .r3xx/* .year
cd .year
$JAVA -Xmx1200m -cp $JAVALIB/procalign.jar fr.inrialpes.exmo.align.util.GroupEval -c -l $FILES > ../../HTML/year.html
cd ..

$JAVA -Xmx1200m -cp $JAVALIB/procalign.jar fr.inrialpes.exmo.align.util.GroupOutput -c -l $FILES -o ../HTML/diagrams.tex

cd ..

