Developement of BDIC was sponsored by Beuth-University Berlin, the German Federal Ministry for Education and Research and European Social fund.
We have developed BDIC as a news module from the scratch. BDIC is built around a fault tolerant customized search algorithm based on both lexical and phonological search.
Phonological classification was built on the free Soundex-algorithm.
This search provides useful results even for orthografically insecure users. BDICS drupal permissions support roles such as admin, user and teacher. Teacher role allows definition and export of specific lists from the lexical body for each subscribing teacher.
BDIC was developed in close cooperation with mediencommunity.de. Developement was provided within a commercial service contract by Karlheinz Schuler, Arlmedia, Stuttgart (www.arlmedia.eu)
BDIC provides these features:
1. Phonological search based on the soundex algorithm: even for typographical errors or inaccurate entries at least phonologically similar references will be displayed.
2. "AutoComplete" feature for entering the search into the search
3. Role "Guest" can use the dictionary
4. Role "BDIC admin" can manage the dictionary and create new fields and lemmata
5. Role "BDIC teacher" can select and export word lists.
6. A list of "fields" should be able to disambiguate identical lemmata or lexical translations.
7. Translations will be displayed as Drupal nodes. Comments allow community review for translations.
8. The bdic module interacts properly with Durpal Core (Content, content type, blocks, menus, breadcrumb etc)
Special emphasis is on scalability of the algorithm. With thousands of community members, the search algorithms have to economize processor load. Tiered phonological search has been optimized for that purpose.The phonological search is enabled only if no other matches are available.
BDIC hosted and made available for demonstrations or download with a set of test-data on http://beuth.arlmedia.com/bdic
The sponsors want to donate the project to the Drupal community. Integration of maintenance efforts within the Drupal Developement framework was a requirement. Drupal coding Standards have been observed. It is specifically designed to interact properly with a standard Drupal 6.x environment. BDIC will support Dictionary developement in teaching environments.
BDIC will be published as a Drupal E-learning project during the DeLFI-meeting in Duisburg both by Beuth-University in berlin and arlmedia:
http://interaktive-kulturen.de
The paper has been submitted to the conference.
Please address further questions about the project to
Dipl. Biol. Karlheinz Schuler
Libanonstraße 85
D-70186 Stuttgart
fon: 0711-50 622 624
fax: 0711-96 99 26 94
Comments
Comment #1
arlmedia commentedComment #2
avpadernoHello, and thanks for applying for a CVS account.
May you report the difference between the proposed module, and http://drupal.org/project/dictionary, http://drupal.org/node/43612?
Comment #3
sunsubscribing
Comment #4
arlmedia commentedThe most important differences to the dictionary module are:
1. Phonetic search based on the soundex algorithm: even for typographical errors or inaccurate entries at least phonologically similar references will be displayed.
2. "AutoComplete" feature for entering the search into the search
3. Teacher function allows personalized lists and list-export for users with teachert permission
4. A list of "fields" should be able to disambiguate identical lemmata or identical lexical translations (homonyms).
5. Tiered search algorithm: The phonological search is enabled only if no other matches are available. This should economize processor load.
6. List import function: Dictionaries can be imported using a cvs -import file
7. Ajax features increase usability e.g. while selecting the individual teachers list from the BDIC.
The combination of features 1, 3, 5, 6 made a new developement necessary. The phonetic search was not yet available for Drupal. But it was specifically required in a teaching environment because it allows a retrieval of a requested word that is tolerant against typos.
Comment #5
avpadernoThanks for your reply.
Comment #6
avpadernorequire_once()would try to load the module file from the current directory, which the Drupal root directory, not the directory containing the module. There is a Drupal function that should be used to load a module, in cases like this.For the same reason,
require_once('bdic.admin.inc');doesn't work too. Also in this case, there is a specific Drupal function to use.It's then bad design to split code in two different files, when the second file is always included from the first. In such cases, it is better to merge files, or change which functions are including in the first file, and in the second file.
To include the module file from bdic.admin.inc is useless; the module file is already loaded, when bdic.admin.inc will be loaded.
SQL reserved words must be written in uppercase letters.
If you are checking if an entry exists, then the code should be like the following:
MENU_DEFAULT_LOCAL_TASK, andMENU_LOCAL_TASKare mutually exclusive, as areMENU_DEFAULT_LOCAL_TASK, andMENU_CALLBACK.MENU_VISIBLE_IN_BREADCRUMBis never used in menu callbacks definition; the fact the constant is not explained makes me think it's internally used by Drupal, but it should not be used by third-party modules.MENU_LOCAL_TASKrequire a menu callback of typeMENU_DEFAULT_LOCAL_TASK.To understand better how menu callbacks are defined, see each implementation of
hook_menu.The code is not using the correct permissions. Permission to update a content type is given to users who has permission to update the content type of that node, not to whom has permission to administer that content type.
See hook_access(), and forum_access().
DISTINCT, there is a Drupal function (db_distinct_field()).Drupal has the function
drupal_set_header().The correct comment is
Comment #7
avpadernoI am closing this application due to lack of replies.
Comment #8
arlmedia commentedHello Kiamlaluno, thank you very much for your very instructive detailed review of our code. You have provided very valuable advice. We appreciate your input and will evaluate and fix that as soon as possible. BDIC is already in use on a production environment on http://mediencommunity.de/bdic. An updated version of BDIC should follow soon.
Comment #9
brianV commentedWhen a fixed version of your module is ready, please re-apply fresh.
Re-closing.
Comment #10
avpadernoPlease read the following links as this is very important information about CVS applications.