# Evaluating alignments

On top of the alignment API, there is an evaluation API and an implementation described here. It is included in the Alignment toolkit

## Evaluating

For demonstrating the use of the API, we implement it and use it through a particular processor (`fr.inrialpes.exmo.align.util.EvalAlign`) which:

- Reads two OWL/RDF ontologies;
- Creates an alignment object;
- Computes the alignment between these ontologies;
- Displays the result.

Running the program is achieved through:

    $ java -cp lib/procalign.jar fr.inrialpes.exmo.align.util.EvalAlign
    Require two alignement filenames
    usage: EvalAlign [options] file1 file2
    options are:
            --debug[=n] -d[=n]              Report debug info at level ,
            --impl[=classname] -i classname Use classname for implementing Evaluator
            --help -h                       Print this message

or ($CWD is the current directory)

    $ java -cp lib/procalign.jar fr.inrialpes.exmo.align.util.EvalAlign file://$CWD/result/align1.owl file://$CWD/result/align2.owl

## Implementing and extending the API

A (default) impplementation of this API can be found in the `fr.inrialpes.exmo.align.impl` package.

Adding new evaluations methods amounts to create a new `Evaluator` class implementing the interface. Generally, this can extend the proposed `fr.inrialpes.exmo.align.impl.BasicEvaluator` class.

The `BasicEvaluator` has the good taste of defining the storage sructures for alignment, but that is all.

The `BasicEvaluator` has been extended so as to provide different evaluation:

`PRecEvaluator`
  computes Precision/Recall rates as well as derived measures.
`ExtPRecEvaluator`
  provide the relaxed precision and recall as defined in a paper by Ehrig and Euzenat in 2005.
``