网络化沟通及协作的人机交互编程语言-机器人语言

    最近受一些特别的语言启发,结合微薄,MD,以及有个任务管理的快速创建标记,加上量子最近正在做的任务管理软件,以及最近量子认识到的时间就是计算的本质,刚才突然灵感爆发,产生了发明一种人机交互语言,用于完成直接通过语言模式和机器交流这一重磅伟大思想。后来量子决定把这种语言命名为“机器人语言”,原因见机器人语言2.

    时间不早了,该到了计算运行到睡觉状态的时候了。先切入一下这个”机器人语言“进程,记录下来。

    大体上是这样的,比如Html,一种界面描述语言,MD,一种更简化的界面描述语言,JSON,Entity,一种对象描述语言,微博的@,#等符号,一种新型的标记语言。

    那么,量子从事了多年的“管理系统”软件研发,曾经写不过少的CRUD,差点思维给固化到,用户界面显示一些字段,然后代码:Task.Name = "发明时间编程语言";Task.Type = 1; Task.CreateTime = DateTime.Now; TaskManager.Create(Task);这样的状态了。这种糟糕的习惯思维,几乎让量子忘记了,这其实是一种很初级级别的编程方式。

    最近量子也在研究一些动态绑定技术,从底层代码上看,的确可以去掉赋值这种老土模式,但用户的录入界面,和工作模式,却没想过有更灵活的方式。

    这里,我们首先要问,为什么需要一个表单,才能和用户交互?量子认为,中文输入,最终只有三种方式,笔画(五笔),拼音,和语音输入,比如这一篇,就是用自然语言写我想写的东西。

    但是,如果我们需要做一些任务,工作,计划,和别人交互,为什么到了信息系统,却需要表单这种东西呢?为什么不能象老板安排工作一样,语言式的口头表达呢?比如:

    王秘书,给我定一张明天下午到上海的机票,下午前给我反馈,告诉我预定的航班及行程。

    看,语言表达的很清楚,自然,但如果用传统的管理软件,生生一个任务,那可能会是这个样子。

    创建人:王秘书

    任务名称:预定量总出差机票

    任务内容:给量总定一张明天下午到上海的机票,下午前给我反馈,告诉我预定的航班及行程。

    截止时间:当天下午3点

    任务类型:预定

    ...

    一个非常不直观,复杂的界面,死板,如果任务有变化,多些或少些字段,那么更难于适用,而且这样的东西需要培训。

    但是如果我们发明一种任务的DSL领域语言,让它尽可能接近自然语言,但是又标准化,是不是可行呢?完全可以。

    象微博,已经有了一些特定的表达方式,虽然很有限,但就这有限的一丁点语法,就能带来革命性的变革,如果能把工作任务,这种人类每天都要干的事情,计算机语言化,那带来的变化难于估量。

    我们试着把上面最简单的东西模式化一下看看:

    利用已有的微博语言#及@

    #表示关键字,@表示给谁

    那么对于工作任务,协作这样的东西,我们还需要更多语法,这里试着列下:

    时间:一般有三个时间,某时间激发, 开始时间,结束时间, 我们使用-来表示,时间放在括号里,

    比如(2012/1/1),(2012/1/1-), (2012/1/1-2012-2-2), (-2012/2/2),看,三种类型的时间都可以解析出来。

    超连接:比如这个任务连接到别的任务,可以这样@#其它任务#, @缺省是人,但如果@#任务#,那就是变成另一个调用。

    任务逻辑:比如A任务,需要接着B任务, 或者任务A,不能再有任务B,或者A,B或选,这里直接引入逻辑表达式, && , || , !

    任务优先级别:直接引入级别数量,1,2,3,4,5这样子,比如#1订票#, 或者#订票1#

    任务转移:使用Mail关键字:TO:及CC: To就把任务所有人转移,CC就是抄送。或者参与者

    任务回执自身,@我, @me,ToMe,To我, CC我,这样子。

    任务层级关系:比如这样的一个层次:

    A:Task任务研发

    A1:Task任务需求调研

    A2:Task设计

    A21:Task总体设计

    A22:UML建模

。。。

    那么,可以通过#任务#这里面做拆分,比如这样的语法:#任务-需求调研#,#任务-设计-总体设计#,这样就可以表示层次结构

    把任务通过其它通讯工具分享或分发

    一样:@, 比如@QQ:12345, 那就是把任务发给QQ号为12345的。@WX:, @WB:, @Mail:abc@def.com等。

    扩展:

    所谓扩展,就是更多的操作,类似于编程调用库函数操作,比如JQuery这么干$('xxx').xxxx什么的。但是这种表达方式不太符合自然语法,我们增加一个命令:?

    ?开始的,就进行执行状态,比如可以这样:

    ?delete:#任务A#,  执行一个删除任务名为任务A的操作

    ?Complete:#任务A#, 完成任务A

。。。

    这样就把很多操作命令化了,命令可以连接起来

    任务的通配符,我们引入标装的*和?,主要用于匹配关键字及人,比如@王??, #任务*#, 这样子。

    更多内容,回头再完善。

    

    

原文地址:https://www.cnblogs.com/DSharp/p/3481335.html