XORT is a utility written in Perl that can be used to read to and write from a relational schema using XML as an interchange format. In GMOD XORT is frequently used to transfer data to and from Chado.
XORT’s three major elements are an XML-database schema mapping specification, an XORT language for both data retrieval and data construction, and a collection of tools that are based on the specification to facilitate the mapping and data exchange. The mapping specification specifies the schema requirement, mapping, operation, and object reference mechanism; the XORT language is used to construct the dump specification; the tool collections comprise the data validation, data input, data output and data debug system. Because it originates from the Chado database, we denote the corresponding XML - Chado XML.
Our project has been using XORT for Drosophila melanogaster genome annotation in the context of a genome database, specifically with Chado and Apollo. Our results validate the architecture of XORT, and show that XORT provides excellent performance both in flexibility and extensibility. Despite its start as a system to manage an organism genome database, with its generic design, it can readily be extended to other database systems, as long the schema design satisfies minimal basic requirements.
Note that GMODTools offers an alternative approach to bulk uploads and downloads from a Chado database.
The DBStag XML<->SQL API implements the XORT spec for bulkloading of data; it does not support the dump spec
Chado-XML is a direct mapping of the Chado relational schema into XML.
Tools that read and write Chado-XML
The OBO repository is pre-converted to Chado-XML on a nightly basis, see
The bio-chaos library reads and writes chaos-xml, which can be converted to and from chado
Status: no longer supported
The basic chado-xml expansion can be extremely verbose - this is because chado-xml uses the unique keys from the chado db, yet it does not database internal foreign keys. XORT can be configured with macros that can be used to capture repeated nodes in the XML and give them XML IDs that are valid within a particular document.