node package manager
Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org ยป



A powerful solution for lexicon-data

Welcome to the repository

  • Dexicon is a fast, easy-to-use module for retrieval of lexicon-data. Includes simple Rest API for javascript clients. :Access to words, definitions, synonyms, antonyms, and related data :Relational data on linked-words(wn-semlinks), such as hypernyms, hyponyms, holonyms, and meronyms.

    Reasons to use dexicon:

    1.Speed:an in-mem lexicon means fast results with extensive data 2.Convenience:works right out of the box, with documented examples 3.Versatility:use dexicon on node.js server, or simply run the module and access the rest-api with a javascript client

    Heads-up on the size and memory:

    1. heavy package of several-hundred MB or more.
    2. uses mucho ram (the same) in running an in-memory lexicon
    3. the module will download 97MB database from on installation

Our goal with dexicon is to provide an easy-to-use kit for access of word-related-data.



  • Version 1.1.5

How do I get set up?

  • nodejs


  • npm install node-dexicon

  • copy / paste the sqlite wordwiz.db file from our bitbucket project -put this in the root directory of your project, aka replace the 0byte file from npm with the full database (several 100 MB). -npm start the module and node-dexicon should then initialize.

  • Database:module uses lokijs database, assembled at runtime from a the wordwiz.db (a modified Wordnet)

  • note: loki: in-mem database requires high ram/runtime-memory of ~1GB

Example Usage

* Instantiate the dexicon module:

    var dexicon_module = require('node-dexicon')(8082 /*port number*/); //default port is 80

    //module will take several seconds to instantiate an in-mem lexicon, requires mucho ram on node

Rest-Api usage: word request examples

* request all data for words: cat and dog

    $.getJSON('<#app_url>/dexicon/api/deep?words=cat,dog', function(data){

     console.log("Got json data:" + JSON.stringify(data));


* request statistics data for synsetids from existing word request

    $.getJSON('<#app_url>/dexicon/api/statistics?synsetids=<id-value-1>,<id-value-2>', function(data){

    console.log("Got json data:" + JSON.stringify(data));



/dexicon/api/basic  : get only the basic word-data

/dexicon/api/deep   : deep response of all data pertaining to a word- This option will retrieve deep results

/*searching the word 'lama' brings results for lama >> mammal >> quadriped >> animal >> animate-being */

/dexicon/api/statistics : get bnc word-usage statistics for words

/dexicon/api/samples : samples of word-usage

/dexicon/api/semlinks : get semlinks of a word, such as hypernyms, hyponyms


'words', as in 'http://my_url?words=word1,word2,word3'

'synsetids', as in 'http://my_url?synsetids=s1,s2,s3' //synsetids would usually come from an existing data request

Who is the owner/creator of project?

* Jordan E. Blake  ::