Alignment API: API structure

The Alignement API package name is org.semanticweb.owl.align. This package name is used for historical reasons. In fact, the API itself is fully independent from OWL or the OWL API.

The API is essentially made of three interfaces. We present here, under the term "features", the information that the API implementation must provide. For each feature, there are the usual reader and writer accessors.

Concrete implementation of the API is described in the implementation page. RDF/XML rendering is presented in the format and EDOAL pages.

Ontology networks


The Alignment interface describes a particular alignment. It contains a specification of the alignment and a list of cells. Its features are the following:

xml (value: "yes"/"no")
indicates if the alignment can be read as an XML file compliant with the DTD;
level (values "0", "1", "2*")
indicates the level of Alignment format used;
type (values: "11", "1?", "1+", "1*", "?1", "??", "?+", "?*", "+1", "+?", "++", "+*", "*1", "*?", "?+", "**")
the type of alignment;
onto1 (value: Ontology)
the first ontology to be aligned;
onto2 (value: Ontology)
the second ontology to be aligned;
map (value: Cell*)
the set of correspondences between entities of the ontologies.

In addition, the interface specifies operations:

thresholding: Alignment.cut(double)
an alignment with threshold as argument;
hardening: Alignment.harden(double)
an alignment by considering that all correspondences whose strength is strictly greater than the argument is converted to the maximum confidence, the others being set to the minimum;
outputting: Alignment.render(visitor)
alignment in a particular format (SWRL, OWL, XSLT, RDF, etc.).

Correspondences (Cell)

The Cell interface describes a particular correspondence between entities. It provides the following features:

rdf:about (value: URI, optional)
the URI identifying the current correspondence;
entity1 (value: Object, URI, EDOALExpression)
an entity of the first ontology;
entity2 (value: Object, URI, EDOALExpression)
an entity of the second ontology;
relation (value: Relation)
the relation holding between the first and second entity;
measure (value: float between 0. and 1.)
the confidence in the assertion that the relation holds between the first and the second entity (the higher the value, the higher the confidence).

Note: In a further version the strength will not be restricted to double but abstracted so that it is possible to define properly a composition algebra.


The Relation interface does not mandate any particular feature.

To these three main interfaces, implementing the format, are added a couple of other interfaces and classes.


The AlignmentProcess interface extends the Alignment interface by providing an align method. This interface must be implemented for each matching algorithm.

computing: Alignment.align(Alignment, Properties)
the alignment, with input alignment;


The Evaluator interface describes the comparison of two alignments (the first one could serve as a reference). Its features are the following:

align1 (value: URI)
a first alignment, sometimes the reference alignment;
align2 (value: URI)
a second alignment which will be compared with the first one.

comparing: Evaluator.eval(Properties)
one alignment with another;


The AlignmentException class specifies the kind of exceptions that are raised by matching algorithms and can be used by alignment implementations.


The AlignmentVisitor interface specifies a way to traverse alignment structire. It is used, in particular for rendering alignments.

In addition, matching and evaluation algorithms accept parameters in the form of java.lang.Properties. The parameters can be the various weights used by some algorithms, some intermediate thresholds or the tolerance of some iterative algorithms.