node package manager


ECTOR is a learning chatterbot.


ECTOR is a learning chatterbot. This is its Node.js version.

Install the module with: npm install ector

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

Use it to instanciate one bot.

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

string name of the bot (default: ECTOR)

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


string One or several sentences.

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.

  • 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.