Manipulating alignments through a web client:
a tutorial companion for the Alignment server

This version:
https://moex.gitlabpages.inria.fr/alignapi/tutorial/tutorial1/server.html
Author:
Jérôme Euzenat, INRIA & Univ. Grenoble Alpes

Here is an illustration of the Alignment API tutorial using the alignment server.

This tutorial has been designed for the Alignment API version 3.0 and updated for the Alignment API 4.0. Actual screendumps may vary since the interface has evolved and the functionalities have been extended.

Launching the alignment server for the first time

This tutorial can be used by locally launching an Alignment server or by using a publicly available Alignment server. We explain here how to install the alignment server.

Installing the Alignment server requires a jdbc-compliant relational database. Here we use MySQL. Drivers for Postgres are also available from the release.

Setting up the server requires to create a database. This is achieved through the following instructions:

$ sudo /usr/local/mysql/bin/mysqld_safe --user=mysql & $ /usr/local/mysql/bin/mysqladmin -u root password $ /usr/local/mysql/bin/mysqladmin -u root -h localhost password $ /usr/local/mysql/bin/mysql -u root -p sql> CREATE DATABASE AServDB; sql> GRANT ALL PRIVILEGES ON AServDB.* TO adminAServ@localhost IDENTIFIED BY 'aaa345'; sql> quit
Of course, it is advised to use different user, password and database name. This can be achieved either:

Once this done, the server can be launched through command line by:

$ java -jar lib/alignsvc.jar -H
for a minimal HTML server, or
$ java -jar lib/alignsvc.jar -Ddbmsbase=MyDB -Dwndict=../WordNet-3.0/dict -H -W -d 4
for a more complete server with specific database, access to wordnet set, webservices and debug. The alignment server is then available by HTTP through:
http://localhost:8089/html/

Connecting through the server with an HTTP client

Once the server has been installed, it can be accessed using http://localhost:8089/html/. This provides access to two menus. The first one is the user menu:

The second one is the management menu:
You can browse in these menus to see what is available.

The data

The data is the same as that of the genuine tutorial. We will, however, use the versions which are available on the web at https://moex.gitlabpages.inria.fr/alignapi/tutorial/. They can be seen here:

edu.mit.visus.bibtex.owl
is a relatively faithfull transcription of BibTeX as an ontology. It can be seen here in RDF/XML or HTML.
myOnto.owl
is an extension of the previous one that contains a number of supplementary concepts. It can be seen here in RDF/XML or HTML.

Matching

Your first matching task can be achieved by selecting the "Match ontology" button in the user menu:

As most of the tasks through the Alignment server, it provides a result under that form:
By clicking on the link, one can obtain the HTML display of the obtained alignment:

We will see later how to obtain the same result in different formats.

Other algorithms can be used by selecting other algorithm names or by passing different arguments to the same algorithm. The two algorithms used in the tutorial can be called as follows:

Ticking the "force" checkbox is necessary, otherwise the server will return the existing alignment using the same algorithm (i.e., the one previously computed).

Look at the results: how are they different from before?

We can see that the correspondences now contain confidence factors different than 1.0, they also match strings which are not the same and indeed far more correspondences are available.

We can do the same with the other measure (the smoaDistance):

Manipulating

As can be seen there are some correspondences that do not really make sense. Fortunately, they also have very low confidence values. It is thus interesting to use a threshold for eliminating these values. Let's try a threshold of .33 over the alignment (with the -t switch):

Trimming, as most operations in the server, generate a new alignment:

As expected we have suppressed some of these inaccurate correspondences. But did we also suppressed accurate ones?

This operation has contributed eliminating a number of innacurate correspondences like Journal-Conference or Composite-Conference. However, there remains some unaccurate correspondences like Institution-InCollection and Published-UnPublished!

More work: There is another switch (-T) in Procalign that specifies the way a threshold is applied (hard|perc|prop|best|span) the default being "hard". The curious reader can apply these and see the difference in results. How they work is explained in the Alignment API documentation.

Other manipulations: It is possible to invert an alignment by using the invert button of the main menu or the one provided directly after results. This provides the following interface:

Searching alignments

The list of alignments available from the server can by obtained from the main menu and gives:

It is also possible to look for alignments between specific ontologies through the Find button of the main menu. This present the following interface:
which returns the following result:

Output

From the server, it is possible to generate all the formats available at the command line (depending on your browser, this may require to see the source of returned documents). This is achieved by using the "Render an alignment" button of the user menu:

Here is a result in OWL:

One can ask for the result as SWRL:

Or in XSLT:

Loading and storing

It is possible to load an alignment available somewhere on the web or on a disk through:

which returns:

An alignment can be stored definitely on the server, i.e., its database through the Store button of the main menu which triggers the following interface:

Comparing

An alignment can be compared to another (reference) one through the Diff Evaluator class: which returns three sets of correspondences (correct, incorrect and missing) :

Evaluating

An alignment can be evaluated against a reference alignment through an Evaluator class:

which returns the measures provided by the evaluator (here precision, recall and derivative measures):

Further exercises

More info: https://moex.gitlabpages.inria.fr/alignapi/tutorial/


https://moex.gitlabpages.inria.fr/alignapi/tutorial/tutorial1/server/