UNPKG

simple-ps

Version:

A Simple Implementation of Production System.

43 lines (42 loc) 1.69 kB
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>test</title> </head> <body> <h1>test</h1> <p>推論結果はブラウザのコンソールに出ます。</p> <!-- <script src="https://cdn.jsdelivr.net/npm/simple-ps@latest/dist/simple-ps.js"></script> --> <script src="../dist/simple-ps.js"></script> <script> const ruleStr = `/* 動物システムのルール */ 1: s(体毛) > st(哺乳動物) ; 1: s(授乳) > st(哺乳動物) ; 1: s(飛ぶ), s(産卵) > st(鳥) ; 1: s(羽), no(ペンギン) > st(飛ぶ) ; 1: s(哺乳動物), s(肉食) > st(肉食動物) ; 1: s(哺乳動物), s(鋭い歯), s(鋭い爪) > st(肉食動物) ; 1: s(哺乳動物), s(蹄) > st(有蹄動物) ; 1: s(肉食動物), s(黄褐色), s(黒い縞) > st(トラ), st2(名前,"トラ") ; 1: s(肉食動物), s(黄褐色), s(黒い斑点) > st(チータ), st2(名前,"チータ") ; 1: s(有蹄動物), s(黄褐色), s(黒い斑点) > st(キリン), st2(名前,"キリン") ; 1: s(名前) > log("その動物は",名前,"ですね!") stop() ; `; // ルールを指定して推論エンジンを生成 const engine = new SimplePS.Engine(ruleStr); // 以下はWMに5つの項目をワーキングメモリに // 登録するだけなんだけど色々な方法でやってみる engine.addOneInfoToWM("体毛"); engine.addOneInfoToWM("鋭い歯",null); engine.addInfoToWM({"鋭い爪":null}); const kv = {}; kv["黄褐色"] = null; kv["黒い斑点"] = null; engine.addInfoToWM(kv); //推論をスタートさせる。結果はコンソールに出る。 engine.start(); </script> </body> </html>