- 🎯用以表示CIN常用的输入方式
- 📄如「输入Narsese」「推理器步进」等
- 🎯便于架设一个「前后端」解析执行架构
- 📌可统一各CIN实现的输入形式
- 前端:处理各类输入(例如终端、脚本)数据,将其翻译成中间语(NAVM指令)
- 后端:处理中间语对象,将其翻译成对应CIN命令
- 📌可统一各CIN实现的输入形式
📍最后更新:【2024-04-10 15:12:04】
NAVM指令具有多种不同类型,其设计遵循以下原则:
- 📌普遍:在多种主要CIN版本中(以某种语义共通的形式)普遍存在
- 📌完备:能无损对应原CIN的各类输入(一般用于已构建的现有CIN)
- 📌易用:能以统一格式表示其中所涉及的Narsese、循环步进
- 目前最常用的几种指令
- NSE 输入Narsese
- CYC 推理循环步进
- VOL 设置输出音量
- REM 注释
- 其它指令有待建立足以跨CIN的使用规范
基于以上原则,NAVM指令分类如下:
(用「✏️」表示字段名,「📄」表示CIN输入用例)
Save
| 保存当前数据到文件
- ✏️目标:字符串 | 被保存的对象(记忆区、经验历史、缓冲区等)
- ✏️路径:字符串 | 对象将被保存到的路径(文件路径等)
Load
| 从文件加载数据
- ✏️目标:字符串 | 要加载到的对象(记忆区、经验历史等)
- ✏️路径:字符串 | 对象将从何许路径加载(文件路径等)
Reset
| 重置CIN数据
-
✏️目标:字符串 | 要重置的对象(记忆区、经验历史等)
-
重置路径
Narsese
| 输入Narsese语句
- ✏️词法Narsese任务 | 要输入进CIN中的Narsese任务(对「语句」可使用空预算以模拟)
New
| 创建新推理器
- ✏️目标:字符串 | 推理器名称
📄自PyNARS迁移而来:ConsolePlus中的/new
指令
Delete
| 删除(停止)推理器
- ✏️目标:字符串 | 推理器名称
📄自PyNARS迁移而来:ConsolePlus中的/delete
指令
Cycle
| 控制推理器步进
- ✏️正整数 | CIN步进的推理循环步长
- 📄OpenNARS:
5
- 📄OpenJunars:
:c 5
Volume
| 控制CIN输出音量,用以屏蔽
- ✏️正整数 | 输出音量,通常为0~100,0=静音(仅回答、操作等),100=最大音量(允许所有次要结论展示)
- 📄OpenNARS:
*volume=0
- 📄ONA:
*volume=0
Register
| 向CIN注册操作符(NAL-8),用以定制CIN的操作机制
-
📄ONA:
*setopname 1 ^left
-
📄PyNARS:
/register left
-
✏️名称:字符串 | 要被注册的操作符名称
Information
| 让CIN输出某类信息
- ✏️来源:字符串 | 要从中获取信息的来源(推理器、记忆区、缓冲区等)
Help
| 打印(CIN的)帮助文档
- ✏️名称:字符串 | 要查询的条目名称
Remark
| 注释,一般不会被CIN执行;即便执行了也不会对推理过程产生影响
- ✏️注释:字符串 | 注释中所含内容
- 📄OpenNARS:
'the detective claims that tim lives in graz
Custom
| 自定义,可用于对接一些CIN特别存在的「魔法输入」
- ✏️指令头:字符串 | 自定义指令的指令头(纯大写)
- ✏️指令内容:字符串 | 自定义指令的内容
📍最后更新:【2024-04-10 15:11:54】
NAVM指令采用类似汇编语言【指令头】 【指令内容】…
的语法格式
- 🎯旨在平衡可读性与性能
所有类型指令的语法:
指令类型 | 语法 |
---|---|
SAV | SAV <目标> [路径] |
LOA | LOA <目标> [路径] |
RES | RES [目标] |
NSE | NSE <CommonNarsese 语句/任务> |
NEW | NEW <名称> |
DEL | DEL <名称> |
CYC | CYC <步数> |
VOL | VOL <音量> |
REG | REG <操作符名> |
INF | INF <来源> |
HLP | HLP [名称] |
REM | REM [单行注释] |
Custom | <任何表外指令头> [任何单行内容] |