node package manager
Loosely couple your services. Use Orgs to version and reuse your code. Create a free org »



ECTOR is a learning chatterbot. This is its Node.js version. Build Status NPM version NPM

Getting Started

Install the module with: npm install ector

var Ector = require('ector');
var ector = new Ector();
ector.addEntry("Hello ECTOR!");
var response = ector.generateResponse();


Class Ector

Use it to instanciate one bot.

Warning: username and botname should be at least 3 characters long.



string name of the bot (default: ECTOR) ### username string name of the user (default: Guy)



string new user's name

return the user's name or an Error.



string new bot's name

return string|Error the name of the bot, or an Error.


Add an entry into the ECTOR's Concept Network ### entry string One or several sentences. ### cns conceptNetworkState see [ConceptNetworkState].

return Array|Error array of token nodes used in the entry.


Generate a response from the Concept Network and a network state.

return Object { response, nodes } The response is a string, and nodes is an array of nodes (see [linkNodesToLastSentence]).


Link nodes to the previous sentence node id (this is automatically set by addEntry, it is the node id of the first sentence of the entry).

Used with the nodes returned by addEntry.


Array Array of nodes ids.


Inject a new [ConceptNetwork] constructor. Useful when one wants to use specialized ConceptNetwork (e.g. FileConceptNetwork).

WARNING: reinitialize and[this.username].cns


ConceptNetwork derivated class of ConceptNetwork.

(Coming soon)


The browser-ector is an example of how this library can be used.

You can talk to ECTOR in the browser. Take a chat.

Or you add the hubot-ector script to a Hubot.


In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using mocha.

Release History

  • 2014/08/07: version 0.1.7: fix bug: injector did not always work.
  • 2013/01/27: version 0.1.6: add a ConceptNetwork injector.
  • 2013/01/25: version 0.1.5: fix bug: replace all names in a response.
  • 2013/01/17: version 0.1.4: fix bug: beg value for second sentence.
  • 2013/01/17: version 0.1.3: fix bug: create node for second sentence.
  • 2013/01/06: version 0.1.2: add linkNodesToLastSentence()
  • 2013/01/05: version 0.1.1: fix github URL (to install)
  • 2013/01/05: version 0.1.0: first release

Warning: this is a work in progress.


Copyright (c) 2012 François Parmentier Licensed under the MIT license.