Open Schema

From Jonathan Gardner's Tech Wiki
Jump to: navigation, search


A proposal for an open schema to be re-used by the database community.


Open source development is proven to work for software. I say that because it meets the goals of software development---producing high-quality software within the constraints of reality.

I believe we should use the same principles that allow software development to thrive with our database schema. That's why I propose an open-source schema or free schema. This will be a repository of a variety of data models that others can use, adopt, and adapt in their own programs and businesses.


I propose that the GPL be used. The GPL has the benefit of being infectuous and remaining free despite all efforts to the contrary. Like the ancient library of Alexandria, if you want to gain the knowledge available here, you must accordingly share what knowledge you have. Despite the initially revulsion to this concept, I believe you will find, as I have, that certain kinds of knowledge serve their discoverer better if it is shared in this way.

We may need to develop an independent license, one which has certain properties of the GPL but is adapted to the database world. Comments and ideas are welcome. My initial thoughts are:

  1. The schema that people use should be extensible, as long as the extensions are just as freely shared as the originals.
  2. Schemas can be used as a module without requiring other schemas be open-sourced.
  3. The licensing of the data that the schema organizes is independent of the licensing of the schema. That is, the data can remain as open or as closed as the owner wishes while using our schemas.

Common Library

My real hope is that we can develop a common library of open schemas. These libraries will be generally useful and will be well-known. These will also allow data from multiple programs to be accessible to one another. Perhaps by having a common set of useful schemas, there will be incentives for the producers of relational database software to make software that is truly interoperabls.

More Information