Data-Freedom Suite

How Data Freedom relates to Gaby and QuickList.

One aim of data-freedom.org is to promote means to convert data between formats and platforms. It does not matter whether this data already exists in some structured form, the user should be able to convert the data to any other format.

Wherever possible, existing applications need to be linked into an overall scheme, or suite, that includes applications, tools, utilities and user customised scripts in a variety of languages.

A significant weakness of many (non-XML) formats is that each conversion requires the user to specify the "mapping" - which components of format A relate to components of format B - without storing this mapping meta-data.

A new application, the data-freedom GUI, is anticipated to solve these problems by allowing the user to create a map for converting format A to format B using SQL-type syntax and storing this map as an external file. The map can then be processed by scripts and other tools to automate all future conversions between these specific formats. This was a task originally planned for QSF maps but a new design is needed to remove the reliance on libxml2 in processing the conversion maps. SQL-type commands are easier to use with any QOF application and a limited SQL syntax should be sufficient to map a wide variety of formats.

 

Key

The diagram shows how data can be processed using suite tools and QOF.

  1. Unstructured data can be handled by quicklist, interactively generating a structure for the data. Once the user is happy with the structure, the structure description is exported (along with the data) to become accessible to other suite tools, including gaby.
  2. Structured data can be handled by Gaby, if necessary building a Gaby description to match the incoming data. Gaby will provide simple data entry, data queries and export of the data (or results of queries on the data) to a variety of backends, including those supported by QOF.
  3. Data-Freedom GUI is only in planning. The idea is to accept two distinct structured data formats and create a map that relates components of the incoming data type with components of the outgoing data type, with data conversion where required. e.g. TypeA may include a date field with a particular syntax. TypeB may require a date field but with a different syntax. The Data-Freedom GUI will describe how the date can be converted to the syntax for TypeA from TypeB and vice-versa. Wherever possible, conversions should be bi-directional. This is an extension of how many applications currently deal with comma-separated values (CSV) data. The main benefits are a permanent, scriptable, map with data conversion. Individual maps can then be shared via the data-freedom website and included in the next release of the data-freedom GUI.

The copyright licensing notice below applies to this text.

Copyright © 2006 Neil Williams

Permission is granted to copy, distribute, and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of this license is included in the file copying.txt