UQERU Metadata Schema Facility v 1.1
Description
These notes describe the University of Queensland E-Research Unit's Metadata Schema Facility (MSF).
This consists of the MSS model (a schema for metadata schemas), together with a
Metadata Schema Editor (MSE) and tools for converting schemas into other representations;
e.g. currently "flattened" MSS files and XSD files. The schema editor includes
"wizards" for exporting "flattened" MSS and XSD to the file system and uploading
them to the Metadata Schema Repository (MDSR). (MDSR is a separate component which is
included in the same distribution tarball.)
The au.edu.archer.metadata.msf.* code-base leverages Eclipse Modeling Framework
(EMF) both in the schema editor and in some of the ancillary tools. The editor
runs within the Eclipse RCP framework, and is deployed in the form of an Eclipse
Feature.
(Some MSF tools can also be run from the command line, provided that the required subset
of Eclipse and EMF jar files are included on the classpath.)
Please refer to the MSF User Guide for more information.
Copyright and Licensing
The MSF software and documentation are Copyrighted by the University of Queensland, and licensed
under the GPL 3.0. A copy of the GPL 3.0 license may be found in GPL_LICENSE.txt in the parent
tarball.
(Note: later versions of Ext JS replace LGPL 3.0 with GPL 3.0.)
Dependencies
MSF is Java software that is designed to run on an Eclipse RCP platform. The current version of
MSF requires an Eclipse 3.4 base platform with plugins for the EMF 2.4.
It is recommended that you download the "Eclipse Ganymede J2EE" distribution from the Eclipse website.
This distribution has all prerequisite plugins for this version of MSF pre-installed.
MSF requires Java 1.5 or later.
Validated Platforms
This component has been validated for the following platforms, and 3rd-party
components.
- Fedora Core 8 and 9
- Sun SDK 1.5.x
- Eclipse Ganymede - J2EE version.
Installation
The installation procedure for MSF is pretty straightforward:
- Unpack the MSF distribution file; e.g. using tar or unzip as appropriate.
- Unpack the "update-site" TAR file.
- If necessary, download and install a compatible Java 1.5 SDK;
see "Dependencies" section above for details.
- Download a recommended Eclipse distribution;
see "Dependencies" section above for details.
- Create a fresh Eclipse installation from the distribution. Warning: the
distributions from the Eclipse Foundation unpack into "./eclipse". Be careful
not to accidentally overwrite an existing installation!
$ cd $INSTALL_DIR
$ mkdir temp-dir
$ cd temp-dir
$ tar -zxf <eclipse-distro.tar.gz>
$ cd ..
- Now rename the new installation to something that you won't confuse with the
Eclipse installations you use for other things:
$ mv temp-dir/eclipse ./eclipse-msf-<version>
$ rmdir temp-dir
- Start Eclipse from the new installation; e.g.
$ eclipse-msf-<version>/eclipse &
- As Eclipse launches, it will ask you for the name of a workspace. It is a good idea
to create a new one for schema development (or testing), rather than polluting an
existing one.
- When Eclipse has launched, go to the Eclipse Workbench.
- Install the MSF Feature into your new Eclipse installation as follows:
- "Help > Software Updates > Find and Install"
- Select the "Search for New Features to Install" radio button and click "Next>".
- In the "Update Sites to Visit" page, click the "New Local Site" button.
- Navigate to the "update-site" directory containing MSF features and plugins; e.g. the
one you unpacked above.Click "OK".
- Click "OK" to complete the "Edit Local Site" dialog.
- In the "Update Sites to Visit" page, click "Finish".
- In the "Select features to install" pane of the "Updates" page, expand the tree
view for the 'site' you just added until you see the feature(s) called
"Metadata Schema Facility <version>".
- Check the box for the feature version you want to install, and click "Next>"
- Accept the License terms and click "Next>".
(This is a bit silly: the GPL is a license that applies whether or not you "accept"
its terms. Just go with the flow.)
- Click "Finish" to install the MSF feature.
- Restart Eclipse as recommended.
Running the Schema Editor
The Metadata Schema Editor (MSE) by simply starting Eclipse from the installation created
above; e.g.
$ eclipse-msf-<version>/eclipse &
The first time you run the editor, you will need to create a new Project to house the
schema artifacts as described in the MSF User Guide; start with the tutorial in Chapter 3.
Alternatively, you could import an Eclipse Project containing MSS resource files
created by someone else. (We can provide a Project archive containing the ARCHER
Xtal 0.4 schemas in MSS 1.1 format to those who need it.)
For information on how to use MSE, please refer to the MSF User Guide.
Changes Since Last Release
- The MSS metamodel's datatype support has been enhanced as follows:
- IntegerType and DecimalType are now arbitrary size, with optional limits on
precision (for DecimalType) and optional lower and upper bounds.
- DoubleType has been added supporting IEEE 754 double precision values.
- DateType has been enhanced to support types compatible with the XML schema
types 'gYear', 'gYearMonth', 'date' and 'dateTime'.
- The following structural changes have been made to the MSS metamodel:
- The Folder class has been replaced with Model, and various MSF tools
have been enhanced to support it.
- Support for ExternalTypeReferences (inter-model type references) has
been improved, and support for intra-model type references has been added.
- MetadataElement has been refactored as MetadataGroupElement and
MetadataLeafElement to support nested metadata elements. Matching
changes have been made to the XML profile classes.
- A 'units' attribute has been added to MetadataLeafElement to allow
the schema developer to specify the measurement units for an element's
values.
- The following improvements have been made to the MSS metamodel's support
for Constraints.
- ElementReference has been extended to support 'paths' allowing
Constraints to 'navigate' nested element structures. Element
references can now be evaluated for multi-valued elements, producing
collection values.
- The operators Split, Join, OneOf, SimilarToOneOf and Size
have been added to support collection values.
- Concat and the relational operators have been enhanced to support
collection values.
- The MSE's import / export wizards have been further improved as follows:
- A new wizard has been added for extracting a draft MSS schema from an XSD file.
The wizard doesn't work for complicated XSD schemas and schemas that define
structures that MSS does not support.
- A new wizard has been added for importing schemas from the MDSR.
- The existing MDSR export wizard now supports Models. You can now flatten,
generate and upload all Metadata Schemas in a Model in one operation.
- The wizards are now available via "File > Import" and "File > Export".
- Various dialogs and screen layouts have been improved.
- Wrapper scripts have been provided so allowing some of the import/export wizards
to be run from the command line.
- Specific error messages have been defined for all constraints on the
MSS metamodel.
- The Eclipse / EMF platform has been updated to the latest (Ganymede) release. We no
longer use the EasyEclipse platform.
- The MSF User Guide has been updated, and a new "MSS Cookbook" chapter has been added.
Known Limitations
- The current release of MSF does not support qualified Dublin Core; e.g. 'encoding', 'language'
and element 'refinements'.
- The current release of MSF does not support metadata values held in XML attributes and other
proposed XML profile features.
- The current release of MSF does not support Thesauri or Ontologies. Support for controlled
lists is limited to case sensitive term lists with strict compliance.
- The current release of MSF does not support the proposed "higher order" operators. This
makes some complex constraints on repeated or nested elements difficult to express.
- Constraint expressions cannot test an element value against the current date / time.
- Constraint expressions cannot convert between native and textual date values.
- ElementReference paths do not support "..".
- There is no support for debugging Constraints.
- While switching to the "Ganymede" Eclipse platform has helped, an Eclipse + EMF + MSF
installation is still "bloated" with functionality that is not relevant to the task of
schema development.
Bugs and Workarounds
- 212: only a subset of ISO language codes are understood for multi-lingual MSS descriptions.
(This is mooted by the fact that MDE provides no way to change the default "preferred language".)
- 221: flattened schemas are not validated after flattening. The workaround is to validate
them by hand.
- No MSS 1.0 to MSS 1.1 schema converter has been implemented. (If you have schemas that
require converting, please contact the developers.)
Bugs Fixed in this Release
- Attempting to add a SetLiteral node to an MSS constraint expression would give an error.
- 212: a tiny subset of valid ISO 2 character language codes were supported for 'international
text' attributes. All are now supported.
- 213: the XSD generator emitted XSD files including the fragment 'type=""' for some types.
- 222, 223: Cyclic TypeReferences and ExternalTypeReferences were not detected by the validator.
Undetected cycles also caused problems for other components. Validation now detects cycles,
and the various MSF tools and libraries are more defensive in cases where cycles caused
problems.
-oOo-