Data-Freedom.org

Purposes

Imagine being able to liberate your data from one application and make it seamlessly available on another.

Imagine being able to liberate your data from one platform and make it seamlessly available on another.

Data Freedom is all about granting such wishes. Rather than reverse engineering specific troublesome file formats, data-freedom concentrates on encouraging the development of implementation architectures and conceptual foundations to synchronise arbitrary tree-structured data.

The goal is to encourage generic data handling using extensible mechanisms that are inter-related to allow free exchange of data between disparate applications, systems, architectures and platforms.

Each implementation is free to choose the most suitable method of providing data and receiving data. All that is required is that the method chosen is as open, extensible and generic as possible. Naturally, the eXtensible Markup Language - XML - features strongly.

Existing interfaces (like libgda and odbc) are used to provide access to a variety of database sources as well, allowing interchange of data between any of the supported backends. Support is available for SQLite0 and is being developed for SQLite3, MySQL, PostgreSQL, FreeTDS and ODBC.

 

Three layers on the desktop

The application has every right to control the file format but, it has no rights to obscure the user from doing whatever they want to do with the data.


FAQ

Is there any code yet?

QOF is an existing library that implements the basis of data abstraction in a generic, extensible and queriable form complete with an XML storage format.

Estron (the new name for DWI) is a data-centric development platform using XML and Glade to create data-driven graphic interfaces based on the structure of the data, not a programming language. Estron uses QOF and has backend drivers for sqlite3, MySQL, PostgreSQL, ODBC and others.

What is the scope of the project?
  1. Platforms:

    QOF is tried and tested within GnuCash and runs on Mac OSX, as well as GNU/Linux, *BSD, and the traditional Unixes: Solaris, AIX, and so on. There should be no real reason why QOF could not build on Windows although, currently, no work has been done in this area.

  2. Formats:

    • XML
    • sqlite0
    • GDA (GNOME Data Access) for plugins to MySQL, PostgreSQL, ODBC and others.

Is it going to be a program, a library, set of standards, an API, RFC's, Schemas, guidelines or ?

Data Freedom supports all such approaches. Some projects are libraries, some applications and utilities.

Will every project communicate directly with libraries like QOF that produce the content or just on the data - whether in XML or some other compatible structure?

Whatever is most suitable for the project.

Timescales

QOF is ready - the GDA backend is being developed for the next major release which will also remove old, deprecated, interfaces in favour of 64 bit time handling on all platforms.

Estron is in development - the main interpreter is mostly ready but a WYSIWYG editor is also being written (in estron) to allow any user to create an estron interface. Various export formats are also being developed using estron so that data can be exported in CSV files compatible with other applications, bespoke interchange formats like OFX as well as HTML or plain text reports. Estron is the new name for DWI but the first release under the Estron name will use libqof2 which is scheduled for release late 2008 or early 2009.

It's an ambitious plan, how confident are you that you can make it happen?

The main questions revolve around how widespread this freedom can become, rather than whether it can exist at all. Free software and open source software are familiar with the usefulness of sharing source code - data sharing is only an extension of the main principles.

What about Windows?

There's no good reason for Windows users to be left in the cold, both within Windows and between Windows and other operating systems.

When did this project start?

This site began in April 2005 but the ideas and principles have been around since the first software. The growth of free software and the appeal of free software solutions on platforms like Mac OSX and Windows has made data freedom accessible as well as desirable.

How are you going to fight the corner against those who would lock users into an application by denying the very access you (we) want to achieve?

There are people out there with v.big budgets who will fight long and hard (and not necessarily cleanly) to prevent such a wonderland for users. It falls to users to make the switch and developers to make the switch as appealing as possible.

Where does Debian come in?

Both QOF and Estron have migrated from SourceForge to Alioth for easier code management (particularly bug tracker and mailing list support). Alioth is a Debian project but the use of Alioth for QOF and Estron is purely down to an easier interface for the developers. Neither QOF nor Estron are specific to Debian.

Estron uses the QOF-devel mailing list. Support for QOF, Estron or data-freedom.org should be obtained by subscribing to the mailing list. Archives are also available via Alioth and Debian.

QOF is already a Debian package, Estron will be uploaded to Debian (and become available in Debian derivatives like Ubuntu) once the first release is made under the Estron name.


What is QOF?

QOF provides a set of C language utilities for performing generic structured complex queries on a set of data held by a set of C/C++ objects. This framework allows programmers to add query support to their applications without having to hook into a SQL Database.

QOF provides the framework, the new QOF XML backend (QSF) provides the off-line storage and a format for a data stream between different applications, including converting QOF objects.


What is Estron?

Estron is a fairly simple environment for quickly creating data-driven applications, that is, graphical applications that manipulate and show info from a database. This environment differs from others in that it is focused on native GTK/Gnome support through the Glade GUI designer, and thus allows you to build user interfaces as elegant as you can make them in Glade.

At this point, this system has enough features to be adequate for creating form-editing and reporting applications. Multiple SQL database vendors are supported through ODBC or libdbi drivers. There is a simple db-driver infrastructure so its easy to support for additional SQL API's. The system supports all of the basic Gtk widgets, and an additional half-dozen Gnome I/O widgets, such as GnomeDateEntry.

Estron is powered by an 'engine' (libestron0) that has some fairly generic procedures for mapping 'fields', such as SQL table columns or widget values, between each other, and also between other things, such as objects, hash tables and etc. In a certain sense, the engine can be thought of as an Object-to-Relational Mapping (ORM), mapping SQL to several object systems, including Glib GObjects and QOF. This engine has been designed so that it becomes easy to add support for all kinds of new object systems: i.e. for the engine to be a generic re-mapper between not just SQL and GTK but between many different types of object systems and data sources/sinks.

Built on top of this engine is the estron application that parses an XML-based file, the "estron file", that describes the connections between glade widgets (or objects in general) and database tables. Currently, the only way to create estron files is by hand. Unfortunately, this can be a fairly long and laborious process itself, especially when creating something a bit more sophisticated. In the future, we hope to have an extension to Glade, or possibly an extension to a database-browsing tool that will allow you to graphically make such connections. (Work has begun on such a tool, written in estron itself). QuickList is likely to become a user interface for creating estron files once it migrates to alioth from Sourceforge.


Promoting Data-Freedom.Org

Any banners, icons and other promotional material can be hosted here. All can be used freely, provided the images link back to http://www.data-freedom.org/. If you have any better images, please let me know.

banner1.png 400x119 pixels (72kb)
liberate your data from the application
<a href="http://www.data-freedom.org/">
<img src="banner1.png" style="height:119px;width:400px;border-style:none;"
alt="liberate your data from the application"></a>

banner2.png 400x120 pixels (61kb)
liberate your data from the application
<a href="http://www.data-freedom.org/">
<img src="banner2.png" style="height:119px;width:400px;border-style:none;"
alt="liberate your data from the application"></a>


The copyright licensing notice below applies to this text.

Copyright © 2005, 2008 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