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:
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.
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.
|