Now that Henry is a member, I would like this proposal to reflect that he has really been the primary champion, not me. I am looking forward to staying on as a mentor, but Henry has been the driving force in getting MetaModel organized and proposed. I am more than willing to champion this project and help keep it going, but Henry's passion for its success is hard to match.
On Fri, May 31, 2013 at 4:35 PM, Henry Saputra <henry.sapu...@gmail.com>wrote: > Added Noah Slater (nslater at apache dot org) as mentor and initial > committer to the proposal. > > - Henry > > > On Tue, May 28, 2013 at 11:20 AM, Henry Saputra <henry.sapu...@gmail.com > >wrote: > > > Dear ASF members, > > > > We would like to propose MetaModel for the incubator. > > > > Matt Franklin will be the Champion for this project and the proposal > draft > > is available at: > > > > https://wiki.apache.org/incubator/MetaModelProposal > > > > Looking forward to all of your suggestions and feedback. > > > > Thanks, > > > > Henry Saputra > > > > > > > > ------------------------------------------------- > > > > = MetaModel – uniform data access across datastores = > > > > Proposal for Apache Incubator > > > > == Abstract == > > > > MetaModel is a data access framework, providing a common interface for > > exploration and querying of different types of datastores. > > > > == Proposal == > > > > MetaModel provides a uniform meta-model for exploring and querying the > > structure of datastores, covering but not limited to relational > databases, > > various data file formats, NoSQL databases, Salesforce.com, SugarCRM and > > more. The scope of the project is to stay domain-agnostic, so the > > meta-model will be concerned with schemas, tables, columns, rows, > > relationships etc. > > > > On top of this meta-model a rich querying API is provided which resembles > > SQL, but built using compiler-checked Java language constructs. For > > datastores that do not have a native SQL-compatible query engine, the > > MetaModel project also includes an abstract Java-based query engine > > implementation which individual datastore-modules can adapt to fit the > > concrete datastore. > > > > === Background === > > > > The MetaModel project was initially developed by eobject.dk to service > > the DataCleaner application (http://datacleaner.org). The main > > requirement was to perform data querying and modification operations on a > > wide range of quite different datastores. Furthermore a programmatic > query > > model was needed in order to allow different components to influence the > > query plan. > > > > In 2009, Human Inference acquired the eobjects projects including > > MetaModel. Since then MetaModel has been put to extensive use in the > Human > > Inference products. The open source nature of the project was reinforced, > > leading to a significant growth in the community. > > > > MetaModel has successfully been used in a number of other open source > > projects as well as mission critical commercial software from Human > > Inference. Currently MetaModel is hosted at > http://metamodel.eobjects.org. > > > > === Rationale === > > > > Different types of datastores have different characteristics, which > always > > lead to the interfaces for these being different from one another. > > Standards like JDBC and the SQL language attempt to standardize data > > access, but for some datastore types like flat files, spreadsheets, NoSQL > > databases and more, such standards are not even implementable. > > > > Specialization in interfaces obviously has merit for optimized usage, but > > for integration tools, batch applications and or generic data > modification > > tools, this myriad of specialized interfaces is a big pain. Furthermore, > > being able to query every datastore with a basic set of SQL-like features > > can be a great productivity boost for a wide range of applications. > > > > === Initial goals === > > > > MetaModel is already a stable project, so initial goals are more oriented > > towards an adaption to the Apache ecosystem than about functional > changes. > > > > We are constantly adding more datastore types to the portfolio, but the > > core modules have not had drastic changes for some time. > > > > Our focus will be on making ties with other Apache projects (such as POI, > > Gora, HBase and CouchDB) and potentially renaming the ‘MetaModel’ project > > to something more rememberable. > > This includes comply with Apache Software Foundation license for third > > party dependencies. > > > > == Current status == > > > > === Meritocracy === > > > > We intend to do everything we can to encourage a meritocracy in the > > development of MetaModel. Currently most important development and design > > decisions have been made at Human Inference, but with an open window for > > anyone to participate on mailing lists and discussion forums. We believe > > that the approach going forward should be more encouraging by sharing all > > the design ideas and discussions in the open, not only just the topics > that > > have been “dragged” into the open by third parties. We believe that > > meritocracy will be further stimulated by granting the control of the > > project to an independent committee. > > > > === Community === > > > > The community around MetaModel already exists, but we believe it will > grow > > substantially by becoming an Apache project. With MetaModel used in a > wide > > range of both open and closed source application, both at Human Inference > > (HIquality MDM), it’s open source projects DataCleaner, SassyReader and > > AnalyzerBeans and by other parties (such as the Quipo data warehouse > > automation project), we believe that the critical mass to sustain a > > community is there. > > > > === Core developers === > > > > MetaModel was founded by Kasper Sørensen in 2009. Later it was > > incorporated as a core library by Human Inference, meaning that more than > > 20 developers have been involved in its making in this commercial > setting. > > Furthermore a smaller number of contributors have submitted patches for > the > > library. Others have started building other interesting data-oriented > > libraries on top of MetaModel, for instance the ‘vasc’ open source > project > > by Willem Cazander, which is an implementation of the Java Persistence > API > > (JPA) for all the datastores supported by MetaModel. > > > > === Alignment === > > > > MetaModel already makes good usage of existing Apache projects such as > > POI, CouchDB and OpenOffice. Furthermore developers from the Apache Gora > > project have indicated a need for a project like MetaModel to solve > > specific uniform datastore access needs. > > > > == Known risks == > > > > === Orphaned products === > > > > The contributors and the contributing organization (Human Inference) have > > a very strong dependence on MetaModel already and will continue to have > > that for a long time. The continued need for this vendor to support new > > types of datastores and maintain existing functionality will ensure that > > MetaModel is not in the risk of being orphaned. > > > > === Inexperience with Open Source === > > > > MetaModel is already open source, and has been so for many years. Main > > contributors of the project have also contributed to other open source > > projects such as DataCleaner and Apache Mahout. The openness of Apache is > > arguably more extensive, but we are only encouraged and delighted to be > > handling the project in a more open manner. > > > > === Homogenous Developers === > > > > Frequent committers are currently located in Denmark, The Netherlands and > > India. They are used to working in a distributed environment. > > > > === Reliance on Salaried Developers === > > > > Initial committers for MetaModel will depends on salaried based > developers > > to contribute to this project, but given the dependence on MetaModel from > > both commercial and open source projects, the project would continue > > without issue if no salaried developers contributed to the project. > > > > The goal is build diverse community to contribute back to MetaModel > > project. > > > > === Relationship with Other Apache Products === > > > > MetaModel depends on several Apache products including: commons-lang, > > commons-io, commons-codec, http-components, POI, CouchDB, OpenOffice and > > XMLBeans. > > > > Furthermore MetaModel is built by Apache Maven. > > > > === An Excessive Fascination with the Apache Brand === > > > > The ASF has a strong brand, and that brand is in itself very attractive. > > > > We are interested in joining the ASF in order to increase our contacts > and > > visibility in the open source world. > > Furthermore, we have been enthusiastic users of Apache Software > Foundation > > projects, and would feel honored by getting the opportunity to join and > > contribute back to the community. > > > > == Documentation == > > > > Information on MetaModel can be found at: http://metamodel.eobjects.org > > > > === Initial source === > > > > MetaModel has been developed since 2009 and have undergone a couple of > > major changes (indicated by the 2.x and 3.x versions). > > > > The code is used in mission critical systems and is considered very > stable > > and high performing. > > > > The source includes a fork of the xBaseJ project’s code, which will be > > removed upon incubation. This code was originally GPL licensed, but > granted > > with a special license to MetaModel to be forked and relicensed using the > > current LPGL license of MetaModel. > > > > Removal of the xBaseJ code will effectively mean that the Apache variant > > of MetaModel will not have support for dBase database files. We imagine > > that the dBase module could live on as a separate pluggable module under > > the LGPL license, outside of Apache. > > > > === External dependencies === > > > > The dependencies all have Apache compatible licenses. These include BSD > > and MIT licensed dependencies. > > > > == Required resources == > > > > === Mailing lists === > > > > * metamodel-private (with moderated subscription) > > * metamodel-dev > > * metamodel-commits > > > > === Subversion directory === > > A subversion (http://svn.apache.org/repos/asf/incubator/metamodel/trunk/ > ) > > or git (https://git-wip-us.apache.org/repos/asf/incubator-metamodel.git) > > repository is needed. > > > > Currently MetaModel’s code is hosted at > http://eobjects.org/svn/MetaModelbut will be moved to an Apache > repository. > > > > === Issue tracking === > > > > JIRA MetaModel (METAMODEL) > > > > === Other resources === > > > > We would like to have wiki page located at: > > http://wiki.apache.org/MetaModel > > > > In later development phase a set of database servers (specifically > > MongoDB, CouchDB, MySQL, PostgreSQL, MS SQL Server (Express), Firebird) > > should be made available for integration testing. > > Currently this is done internally at Human Inference. > > > > === Initial committers === > > > > Kasper Sørensen (i.am.kasper.sorensen [at] gmail.com), Project Founder, > > works at Human Inference > > > > Ankit Kumar (ak.ankitkumar [at] gmail.com), works at Human Inference > > > > Sameer Arora (sameer11sep [at] gmail.com) > > > > Henry Saputra (hsaputra [at] apache.org) > > > > Juan José van der Linden (delostilos [at] gmail.com), works for Quipu > > > > Arvind Prabhakar (arvind at apache dot org) > > > > Matt Franklin (mfranklin at apache dot org) > > > > > > == Sponsors == > > > > === Champion === > > > > Matt Franklin (mfranklin at apache dot org) > > > > === Nominated mentors === > > > > Henry Saputra (hsaputra at apache dot org) > > > > Arvind Prabhakar (arvind at apache dot org) > > > > Matt Franklin (mfranklin at apache dot org) > > > > === Sponsoring entity === > > > > The Apache Incubator. > > > > >