Andreas Hess // Projects // Assam // Download

Assam WSDL Annotator 0.6 Download

The current version of Assam is 0.6, released on the 21st of May 2005.

Required programs

Assam needs the following third party applications/libraries:


Fortunately, if you download the bundled version of Assam, you won't have to download and install these programs separately. The bundled version includes Jena2, Weka and the MySQL JDBC driver. You still need a Java Runtime Environment and the MySQL server

If you already have some or all of the required programs, you may want to download the "pure Assam" version instead.

The collection of annotated web service descriptions will be soon available in Assam's internal format as an sql-script to import directly into the database.


First, copy the contents of the archive in a directory of your choice. Before you can start Assam, you will have to setup the database and load the profile, domain and datatype ontologies. The "install" script does that for you. It assumes that there is a mysql user root that can log into the database from localhost without password. It creates a database called "assam05" and grants all privileges on that database to user "assam" that can log in from localhost with password "assam". If you want a different database configuration, do not execute the install script out of the box, but modifiy assam.sql according to your needs. If necessary, make changes to Assam's configuration file assam.ini. The install script also loads the default ontologies into the database. If you want to use different ontologies, either copy them over the existing .owl files and use install as normal, or run the assam.sql script manually and use jpm to manage your ontologies. The use of jpm is explained below.

Default installation: bundled version

  1. Copy the contents of the archive in a directory of your choice
  2. Run install
  3. Run assam

Default installation: unbundled version

  1. Copy the contents of the archive in a directory of your choice
  2. Setup your classpath so that all required programs as well as assam.jar are in your classpath
  3. Run install
  4. Run assam

Installation with other database settings

  1. Copy the contents of the archive in a directory of your choice
  2. Modify the "create database" and "grant" lines in assam.sql to meet your needs
  3. Modify assam.ini to match the changes you made in assam.sql
  4. Run install
  5. Run assam

Installation with other ontologies

  1. Copy the contents of the archive in a directory of your choice
  2. Either copy your ontologies over ProfileHierarchy.owl, Domain.owl and Datatype.owl, or run assam.sql manually and then use jpm to manage your ontologies
  3. If necessary, modify assam.ini to match the ontologies you loaded
  4. Run assam

If you want to start playing around with Assam immediately, you can download our collection of web service descriptions.

Managing Ontologies

Assam uses three different ontologies for annotating the services as a whole (the profile hierarchy ontology), the operations of a service (the domain ontology) and individual parameters and complex types (the datatype ontology). Assam cannot edit the ontologies directly, but ontologies can be imported and exported using the "jpm" tool. Assam currently only supports ontologies in OWL format.

Each ontology is (in the database) identified by a name also called a URN. The default URNs are "ProfileHierarchy", "Operations" and "Datatypes".

Which ontologies are actually used by Assam is set in assam.ini

jpm usage

The syntax for jpm is:

jpm command [urn [file]]

Recognised commands are:

modelsdisplays the URNs of all ontologies stored in the database
import urn fileImport the ontology from file into the database, giving it the URN urn.
export urn fileExport the ontology identified by URN urn from the database and write into into file.
classes urnShow all classes and properties from the ontology identified by urn
delete urnDelete the model identified by urn from the database.


Most of Assam's behaviour can be set in the configuration file assam.ini. The file included in the archive is commented, so refer to the file for configuration options. Note that it is possible to use a separate database for the ontology store.

You can specify an alternative configuration file as a command line parameter when calling java ie.moguntia.annotator.Annotator.

Machine Learning

The key feature of Assam is of course that it can recommend possible annotations for a Web Service's components to you: Select Annotation/Wizard from the menu.

To enable you to start playing around with Assam immediately, even without previously annotated training examples, the machine learning procedure is "bootstrapped" using the labels from the ontology itself. Also, the annotation wizard is truly interactive. Annotations that you make are immediately used as training examples. However, this "interactive mode" uses a simpler classifier than the one that is described in our papers.

Hardcore Machine Learning for Tough Power-Users

If you want to use relational learning features described in our papers, you have to use some command line tools.

The database holds different sets of annotations, each of which has an ID, referred to as 'aid'. The aid 0 is reserved for hand-crafted annotation and is used as training data. This data is created when you use the point-and-click interface to assign annotations. Annotations with other aids are created when you run the classification algorithm. These can be used as input to the 'annotation wizard'. By default, the wizard uses aid 4 for its input. The aid that is used for output can be specified on the command line when running the classifier.

The classifier uses already annotated web services as training data and performs a leave-one-out classification, classifying all services, including the training services. An evaluation tool can be used to compare the assigned classifications with the predictions the classifier made.

Before you start using the advanced machine learning features (and later every time you import a new profile hierarchy ontology), you have to perform the following step:

The relevant tools at a glance:

java ie.moguntia.classifier.DBIterativeClassifer target_aid num_iterations Create a new classification with the given id. Our iterative classification algorithm is used. Details will be described in our paper that has been submitted to the ISWC04. More details will be presented in a forthcoming paper to be completed soon. A rough draft on how it all works can be found in our AAAI Spring Symposium 2004 paper (see below). The classifier always generates two output aids, the specified aid (using the iterative algorithm) and the specified aid + 1 (using the plain classification without iteration as a comparison). The number of iterations must be set on the command line (5 is a good value), other settings must unfortunately be done within the (commented) source code.
java ie.moguntia.eval.DBEvaluator aid typeFrom typeTo Show an evaluation of a classification. The classification with the specified aid is compared to the 'gold standard' with the aid 0. The type parameters are as follows:
  • 1: service as a whole
  • 4: operations
  • 6: output messages
  • 7: input messages
  • 11: complex types
  • 12: elements within complex types
Yes, this is not very intuitive...

To make the annotation wizard use another aid than 33 for its input, currrently the only way to do this is to edit the file ie/moguntia/annotator/ This may become a configurable option in the future. Remember to turn off "interactive" in assam.ini.

Related publications

26 Mar 2007, Andreas Hess, andreas at idirlion dot de