simple-ps
Version:
A Simple Implementation of Production System.
43 lines (42 loc) • 1.69 kB
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>