A generator of Lexical Database Applications from a compliant Lexical Markup Framwork schema
Ruby JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



ColDic is a tool for helping lexicographers with his work. The application generates itself from a DTD compliant with the Lexical Markup Framework (LMF) en.wikipedia.org/wiki/Lexical_markup_framework

The functionalities provided by ColDic are:

* Automatic generation of a web application from a DTD file with a schema.
* User creation of queries to the given schema. This queries can be saved and used later. The queries are 
  parametrizables. A graphical representation of the schema is provided while during the query
  building process.
* User creation of forms for inserting data into de database. This forms can have hidden values, default
  values and can be customized by the user.
* Import and export of raw XML data that is compliant with the schema.
* A data categories browser that mantains a local data category registry and that is
  imported from a external DCR. Is possible to search local and external data categories.
* The platform provides the users with web services for inserting and consulting all the models and
   data that is in ColDic.
* A Content Management System (CMS) for making the coldic instalation more customizable.

The main menu of ColDic has the following items:

- Home
- Querier
- Forms
- Import/Export XML data
- Data Categories browser
- External WS queries
- Test provided WS API
- CMS Admin


Please read INSTALL file.

How it works (Technical Documentation)

The coldic gem installs a script called “coldic” that generates the application from a valid LMF DTD. The params of the script are the DTD and the desired target directory:

coldic my-lmf.dtd new_coldicapp_subdir

This code generation is done in 4 steps:

1. Copy the base Coldic Ruby on Rails application.
2. Asks for a valid database name, user and password (the database must be created before

executing the script).

3. Use the meta_scaffold generator (new_coldicapp_subdir/vendor/generators/meta_scaffold) to generate

all the clases and migrations required by the given DTD.

4. Use the meta_web_services generator (new_coldicapp_subdir/vendor/generators/meta_web_services) to generate

all the web_services provided by coldic for accessing the resources described in the given DTD.

Rake Tasks (Technical Documentation)

* data_categories.rake
   - coldic:data_categories:update --> Update local data categories repository with remote DCR.
* meta_forms_tasks.rake
   - meta_forms:insert_example_data:form_new_lexicon --> Populates DB with sample data for testing meta_forms.
* scm.rake
   - scm:push:all --> Push all (git and subversion).
   - scm:push:git --> Commit changes into the remote git repository.
   - scm:push:svn --> Commit changes into the remote subversion repository.


Once generated the coldic application provides 3 generators:

* meta_scaffold generator --> generate classes and migrations (database tables) according to the given DTD.
* meta_web_services generator --> generate web services for the classes infered from the given DTD.
* db_model_to_yml_generator --> generate the file db/actual_db_model.yml with the yaml representation of the actual database and models.


This work is done in the Institut Universitari de Llingüística Aplicada (www.iula.upf.edu), mainly by Sergio Espeja (www.sergioespeja.com) under the supervision of Núria Bel (www.upf.edu/pdi/iula/nuria.bel/).

It is free software, and may be redistributed under GPL license

Used plugins:

* aaile_ws_querier_plugin, plugin developed in IULA for accesing AAILE data.
* cqp_ws_querier, http://cqp-ws-querier.rubyforge.org/
* comatose, http://github.com/darthapo/comatose/tree/master
* fam_fam_icons_on_rails, http://code.google.com/p/fam-fam-icons-on-rails/
* rspec, http://rspec.info/
* rspec_on_rails, http://rspec.info/
* will_paginate, http://github.com/mislav/will_paginate/tree/master