Download the AutoMed API

All distributions of the AutoMed API are in the form of a gzip tar file, which you extract on a Unix machine by the command:

tar -zxvf file.tgz

The AutoMed API uses a relational database as a persistent storage of information (the repository), and in order to use the API you must have available a database account for this purpose. The API at present has only been tested on the Postgres database server.

Release History

For normal use, you should select the highest version number from the table below, ignoring any `latest' releases. Detailings of what is available in the CVS repository archive (available to only to people with a doc.ic.ac.uk account) and the latest release here can be found in the AutoMed mailing list.

Version Date Comments
latest
software
api
- Latest release candidate of API; this may change on a daily basis and no revision history is kept (except if you have access to the AutoMed CVS repository). If you use this copy, keep your own backup copy of the download in case you need to revert to an earlier version.

Changes are (as of 27th August 2011):

  • The SQL wrapper now uses "nullable" and "notnullable" in schemes to represent if a column of nullable. This change is to prevent the syntax of the IQL being ambiguous.
  • A copySchema method has been added to Schema, together with a method called merge that will apply extend transformations to two schemas to make them identical, and then apply ident transformations to a new STORED_SCHEMA which acts as the global schema for the two input Schemas. The basic package in the examples directory has been changed to use these methods in integration.
  • IQL function isNull has been provided (returning true when passed an expression that evaluates to null), and the SQL wrapper has had its handling of null corrected to work on all data types.
  • GUI now has a PathwayTool available when a Schema is selected, that allows navigation away from a Schema via its contected transformations, updating the view of the schema as each transformation is followed.
  • A constructor has been added to EditorPanel to allow creation of a JPanel to view a Schema. This is useful for applications that want to embed a view of a Schema, and not use a standard Scheam window within the Gui.
  • Query Processor has been substantially changed, and code using it needs to be rewritten.
  • Postgres is the default database for the repository.
  • Most wrappers are not loaded by default (but you can remove the comments in .automed/data_source_repository.cfg to load extra wrappers).
0.41
software
api
14-02-2007

Major changes are:

  • Query Processor now supports version 1.1 of the IQL, and have support for both GAV and LAV query reformulation.
  • XML Schema wrapper included, able to wrap XML documents with associated XML Schemas, and query those documents. In addition, an experimental mapper has been added that converts schemas in the XML Schema Model into schemas in the HDM Model.
  • Support for types on schemes is provided in the API, with an associated type hierarchy.
  • P2P functionality has been improved, including making the loss of a peer not cuase hangs during query processing.
  • Semi-automated matching and merging of relational schemas is now supported from the GUI, and the API includes support for handling uncertainty in the data mappings.
  • The STR now checks queries in transformations to ensure that they contain schemes that are present within the schemas that the transformation connects. This means that various applyTransformation methods in Schema now throw an IntegrityException where previously they could only throw a NotFoundException.
0.4
software
guide (ps)
guide (pdf)
20-01-2006

Major changes are:

  • Gui class once more can have several instances. Use the Gui.openMainWindow() method to get the default window. All tools that are called by Gui should now have the method template method(Gui g,Object o[]), but at present method(Object o[]) will still work.
  • P2P functionality is available in the repository, and a P2PWrapper class allows one AutoMed repository to use schemas from another AutoMed repository as data sources
  • The editor now automatically updates itself for all changes to repository objects that impact on the visual appearance of objects (including changes in position and colour).
  • getProperty and setProperty methods have been added to Transformation, and by default, all ident transformations are given the property IQL_function with value "choose". This property will be used in an updated version of the query processor to alter how alternative answers to queries are processed.
  • You may now load an alternative to the standard data_source_repository.cfg file by using the -c option on the Gui, such as by:
    java uk.ac.ic.doc.automed.editor.Gui -c my_data_source.cfg
    You may change the file in applications by using DSRConfiguration as the first class in your AutoMed application, setting the new default file name
  • A new query processor architecture is available, and the IQLTool has been adapted to use it. Also there is a new application in the examples directory, called UniversityDatabaseQuerying that demonstrates its use. The new architecture is able to make use of wrappers that process subtrees of ASG expressions (as opposed to the previous assumption that just schemes could be processed) and thus sets the path for greater optimisation of query processing in AutoMed. At present, the old query processing classes still work. The SQLWrapper has been adapted to process subtrees in this new architecture.
  • The Transformation class now checks the syntax of IQL queries that are supplied, and also supplies a Range Void Any query when no query is supplied for extend/contract transformations. It also throws exceptions if queries are supplied for constraint constructs being added/deleted, and if no query is supplied for non-constraint contructs being added/deleted. For applications that created transformations correctly, this change should make no difference in their operation.
  • The Pathway.write() method has been adapted to print out the contents of a pathway in a method that allows the implementation of a corresponding read() method.
0.3
software
24-09-2004 Major changes are:
  • STR has a caching mechanism, making this release much faster than 0.3; MDR still needs to have caching mechanism added.
  • Wrapper architecture has been improved, and now includes SQL, XML, and Semistructured Text wrappers. The SQL wrapper has support for SQL schemas.
  • IQL langauge supports variable unification, and has had several bugs fixed.
  • GUI is much improved, and now automatically updates itself when any application in the same Java VM makes use of the AutoMed API to change the repository.
0.2
software
02-06-2003 Major changes are:
  • New .automed/data_source_repository.cfg file format in use. You must move your old configuration file to a safe place, run an AutoMed repository application which will create a new default one, and if necessary edit the new data_source_repository.cfg with you login details (it defaults to the Postgres database "automed" on the localhost).
  • First version of the schema editor, which you run by
    java uk.ac.ic.doc.automed.editor.Gui
    You may add commands onto the menus by editing the file .automed/actions.cfg
  • This is the last release to use the old form of IDENT transformation, where each SchemaObject is the subject of a separate IDENT. Now, only one IDENT is used to connect two schemas, and the mapping between objects is represented by a pair of arrays.
0.1
software
03-02-2003 Major changes are:
  • First release of the IQL query processing and translation API.
  • Fixed bugs in the examples, which had become out of step with the the API.
0.0
software
18-01-2002 First version of the API to use the new Exception handling system, where extensive use of the runtime exception "InconsistentException" is made to mask exceptions which should not occur if the API is operating correctly.