New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

aiml-high

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

aiml-high

Interpret AIML files using node.

latest
Source
npmnpm
Version
0.0.8
Version published
Weekly downloads
11
-38.89%
Maintainers
1
Weekly downloads
 
Created
Source

aiml-high

npm version

AIML Interpreter written in node.js. Built on aimlinterpreter.

aiml-high is a module that allows you to parse AIML files and to find the correct answer to a given message.

Installation

npm install aiml-high

Dependencies

fs
xmldom

Description

With new aimlHigh(botAttributes) one can create a new interpreter object. botAttributes is an JSON-Object that can contain attributes of the bot one wants to use in AIML files, e.g. {name: "Bot", age:"42"}. While continued messaging will store the previous answer for use with <that>, you can pass a previous answer like so: new aimlHigh({}, 'last answer').

This object has a function called loadFiles(fileArray) which receives an array of AIML files. This function loads the AIML file into memory. There is also a loadFromString(stringContent) that can also be passed if AIML file has been saved into a string.

Furthermore, the object has a function called findAnswer(clientInput, cb) which receives a message and a callback. The callback is called when an answer was found. The callback of findAnswer should look like this: callback(result, wildCardArray, input). Result is the answer from the AIML file and wildCardArray stores the values of all wildcardInputs passed previously from the client. The original input which triggered the answer is given back via input.

Example
aimlHigh = require('./aiml-high');
var interpreter = new aimlHigh({name:'Bot', age:'42'}, 'Goodbye');
interpreter.loadFiles(['./test.aiml.xml']);

var callback = function(answer, wildCardArray, input){
    console.log(answer + ' | ' + wildCardArray + ' | ' + input);
};

interpreter.findAnswer('What is your name?', callback);
interpreter.findAnswer('My name is Ben.', callback);
interpreter.findAnswer('What is my name?', callback);
Supported AIML v1.1 tags:
<bot name="NAME"/>
<get name="NAME"/>
<set name="NAME">TEXT</set>
<random><li>A</li><li>B</li><li>C</li></random>
<srai>PATTERN TEXT</srai>
<sr/>
<star/>
<that>TEXT</that>
<uppercase>TEXT</uppercase>
<lowercase>TEXT</lowercase>
<formal>PROPER NOUN</formal>
<sentence>THIS IS A SENTENCE</sentence>
<condition name="NAME" value="VALUE">TEXT</condition>
<condition><li name="NAME" value="VALUE">TEXT</li><li name="NAME" value="VALUE">TEXT</li><li>TEXT</li></condition>
<condition name="NAME"><li value="VALUE">TEXT</li><li value="VALUE">TEXT</li><li>TEXT</li></condition>
<think><set name="NAME">TEXT</set></think>
<anyElement/><random><li>A</li><li>B</li><li>C</li></random><anyElement/>
<random><li><think><set name="NAME">TEXT</set></think></li><li>B</li></random>
<random><li><srai>PATTERN TEXT</srai></li><li>B</li></random>
<condition name="NAME" value="VALUE"><srai>PATTERN TEXT</srai></condition>
<condition><li name="NAME" value="VALUE"><srai>PATTERN TEXT</srai></li><li name="NAME" value="VALUE">TEXT</li></condition>
<condition name="NAME"><li value="VALUE"><srai>PATTERN TEXT</srai></li><li value="VALUE">TEXT</li></condition>

Based on previous work by b3nra.

Copyright 2016 Greg Leuch & betaworks. Released under MIT License.

Keywords

aiml

FAQs

Package last updated on 19 Feb 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts