User Tools

Site Tools


This is an old revision of the document!

Back to G2 main

Choosing a glossary-type module

G2 is not intended as a direct replacement for the glossary module already available with drupal for quite some time now. It was designed for slightly different needs, and this page is here to help you choose which module you should probably be using, or if you should really write your own. Lexicon has been evolved from glossary to accomodate yet another set of requirements, and glossify started with needs similar to glossary, but evolved to a much more diverse set of features; only those relevant to glossaries should be listed here.

Left-to-right order by date of creation. Empty cells means info not yet available. Please contribute !

TODO: import “features discussion” from the 2008 glossary comparison table, which updated the very obsolete, currently unavailable for edit except to members of the Drupal doc team due to the Full HTML format, but has now become partly obsolete itself. The 2008 chart is now imported.

Feature Glossary G2 Glossify Lexicon Refactoring
Drupal 7.x No No(t yet) No(t yet) Yes Yes
Drupal 6.x Yes Yes Yes Yes No
Drupal 5.x Yes Yes Yes No No
Drupal 4.7.x Yes Yes No No No
Drupal 4.6.x Yes No No No No
Earlier Drupal versions Yes No No No No
AJAX No Some autocompletion
Storage terms nodes, 1 content type nodes (types ?) any entity
Revision support No core core
Simpletest No A few Yes
Services provided
multiple glossaries on one site Yes No No Yes
RSS feeds on entries core No core (?)
RSS feeds on additional vocabularies No core core core
classify entries No core taxonomy core taxonomy core fields
commenting on entries No core core core, only on node storage
private editorial information No Builtin Use CCK core fields
alphabar maintenance automatic manual defaults + override
remote glossaries No Yes, limited Yes
Translation template supplied Yes Yes
Multilingual blocks No
Feature blocks
Alphabar No Yes Use Views Default View
Daily Yes Yes Use Views Default View
Latest No Yes Use Views Default View
Random Yes Yes Use Views Default View
Search glossary Yes No No Yes
Content filtering
automatic Yes No Yes
automatic, stop list Single language No i18n support
explicit No Yes, dfn element Yes, custom element
auto “title” on links No No Teaser / Disambiguation
Disambiguation pages n.a. Yes, limited default + override
Disambiguation targeting in links n.a. No Yes, on explicit
3rd party integration
Quality Agent No No Yes
Views: basic core core + specific core + specific
Views: default views No No Yes
Wikipedia No No Yes, with i18n
Zeitgeist No No Yes
memory needs/number of entries O(n) O(1) O(n) (?)
speed on small glossaries faster slower slower
speed on large glossaries slower with size remains constant slower with size
- home page core
- search form Yes core core
- node overview Yes core core
- definition fields n.a. Yes Use CCK core fields
- each feature block n.a. Yes Use Views
Specific class on glossary links Yes Yes
Implementation Templates Theme functions Templates
Developer features
XML-RPC API No alphabar
word of the day
Web services security n.a. IP-based access control
UI module separate from Data API No No Yes

Obviously, in all cases, a “No” actually means: “roll your own ”, as in all Open Source software.


Drupal 4.x to 6: Rationale for G2 specificities

  • Optimization for large glossaries: this is the need expressed by OSInet, which funded development, to support its 5000+ term glossary of computing, for which glossary.module, even when coupled with flexinode to bind blob content to terms, is not really efficient enough.
  • Single glossary: multiple glossaries were not necessary to OSInet, which funded development
  • Explicit linking to terms with dfn elements:
    • limits system workload
    • allows invisible marking of entries made of other entries. Think: XML-RPC, points to XML and to RPC with glossary.module and various wiki filters, but can point to 'XML-RPC' with G2. Wrapping XML-RPC in quotes is necessary to allow linking to this entry in glossary, but the quotes remain visible, degrading the UI.
    • allows redactor-level choice of
      • whether to link to an entry: glossary always links if the term matches, which is not always meaningful (“and” can be present in a glossary and you don't want “and” to be linked from in all nodes on the site).
      • where to link to an entry: glossary allows only a predefined set of positions (first, last or all matches)
  • nodes vs terms: this is the most salient difference.
    • Using custom nodes (g2_entry in g2.module) allows large definitions, with the complete drupal feature set for nodes,
    • Using terms (glossary.module) allows definitions to be bound to custom nodes instead of being nodes on their own
  • Alphabar maintenance: large glossaries will most of the time use all available initials, so the processing cost of maintaining it is not justifiable
g2/choosing.1294839598.txt.gz · Last modified: 2011/01/12 14:39 by fgm