分布式人工智能标记语言(DAIML)示例

      DAIML(Distributed Artificial Intelligence Markup Language)是用于分布式人工智能系统中智能语言的标记库。DAIML主要分为Pattern和Template两部分,Pattern用于模式匹配,Template用于回答模板,下面将分别介绍两者的示例。

      Pattern示例:

      (1) 直接完全匹配模式。

          

     (2) Set匹配模式。

          

     (3) 带*匹配。

          

    (4) 带约束的*匹配。

         

   (5) Set与*的混合匹配。

         

   (6) Set与带约束的*混合匹配。

        

   备注:上述过程中的带约束的*除了NUMBER之外,还可以是DATETIME(时间类型)、EN_WORD(英文单词)、EMAIL(邮箱)、TELEPHONE(手机号和座机号)、IPADDRESS(ip地址)、URL(链接)。

   完整的示例:

   (1)  直接模式。

<category>
        <pattern>你好</pattern>
        <template>
            你好!
        </template>
</category>

        此种模式将会在命中“你好”之后直接返回“你好!”。

   (2) 随机模式。

<category>
        <pattern>今天天气真好</pattern>
        <template>
            <random>
                <li>是呀,天气不错。</li>
                <li>要不出去走走?</li>
                <li>希望每天天气都这么好!</li>
            </random>
        </template>
</category>

       随机模式在命中Pattern之后,将会从template中的li元素中随机选择一条返回。

   (3) 上下文替代模式。

<category>
        <pattern>你好,我是*</pattern>
        <template>
            你好,很高兴认识<star index="1" />。
        </template>
</category>

      上下文替代模式,将会在template中替换star,例如在问“你好,我是刘凡平”的时候,则“*”指向的内容是“刘凡平”,则返回结果为“你好,很高兴认识刘凡平“。<star index=”1”/>表示取用户模糊匹配的第一个*号的内容。

  (4) 递归模式。

<category>
        <pattern>您好,我是*</pattern>
        <template>
            <srai>
               你好,我是<star index="1" />。
            </srai>
        </template>
</category>

      递归模式采用”srai“标识,表示不直接返回答案,而是将问题替换为另外一个问题继续寻找。例如用户问”您好,我是刘凡平”的时候,template中将会替换为”你好,我是刘凡平“的问题,这个问题将会再次在DAIML中进行匹配,直至直接返回结果”你好,跟高兴认识刘凡平“。

  (5) 带约束的pattern匹配。

<category>
        <pattern that="你好">你好啊</pattern>
        <template>
            <random>
                <li>
                    你好,我们刚刚说过一遍了。
                </li>
                <li>
                    你好,客气啥!
                </li>
            </random>
        </template>
</category>

       上述示例中,并不会直接命中”你好啊“,而是在上一次是匹配的”你好“,当又匹配了”你好啊“才会命中上述category,即上次和当前次的连续匹配。

  (6) 单请求模式。

<category>
        <pattern>*身高</pattern>
        <template>
            <request node="example"><star index="1" />身高</request>
            <ret>
                <node index="1" />
            </ret>
            <script>return "<star index=‘1‘ />的身高是<ret/>" </script>
        </template>
</category>

      但请求模式在DAIML中最简单的网络请求标记,例如当提问”马云身高“的时候,将会命中上述示例的pattern。在template中并没有直接返回的结果,而是网络请求。其中request标签中的node属性中则为请求的服务器,request标签的值则为请求的内容。ret表示返回结果的表达式,<node index=”1”/>表示第一个请求节点返回的值内容。<script>标签是对返回结果的一次组装,允许简单的表达式,<ret/>表示使用ret的值。例如:命中“马云身高”之后,会请求example服务器,内容为”马云身高“,返回结果为”166cm“,即ret的值为”166cm“,最终通过script返回的结果是”马云的身高是166cm“。

   (7) 多请求模式。

<category>
        <pattern>*比*高吗</pattern>
        <template>
            <request node="example" >
                <star index="1" />身高
            </request>
           <request node="example" >
                <star index="2" />身高
            </request>
            <ret>
                <srai>
                    <node index="1" />-<node index="2" />
                </srai>
            </ret>
            <script>
                if("<ret/>".contains("-")) return "<star index=‘2‘ />的身高较高,<star index=‘2‘ />的身高是<node index="2" />。"; else if("<ret/>"=="0") return "<star index=‘1‘ />与<star index=‘2‘ />一样高。"; else return "<star index=‘1‘ />的身高较高,<star index=‘1‘ />的身高是<node index="1" />。";
            </script>
        </template>
</category>
<category>
        <pattern>*[NUMBER]cm-*[NUMBER]cm</pattern>
        <template>1</template>
</category>

      多请求模式和单请求模式类似,但是会相对更加复杂,尤其是在对请求结果处理的结果上,在ret的表达中,可能存在采用srai递归再次对结果进行分析,但是最终都会采用script输出结果。

时间: 2024-10-19 06:21:36

分布式人工智能标记语言(DAIML)示例的相关文章

Github中的README.md使用的标记语言---Markdown语言

github上的README.md文件就是使用的Markdown语言编写的.它是一种易读易写的标记语言. 1.来龙去脉和语法特点 Markdown 是一种轻量级标记语言,创始人为约翰·格鲁伯(John Gruber).它允许人们"使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档".这种语言吸收了很多在电子邮件中已有的纯文本标记的特性. Markdown 的目标是实现「易读易写」.可读性,无论如何,都是最重要的.一份使用 Markdown 格式撰写的文件应

超文本标记语言HTML

介绍html文档的基本结构,html常用标签的使用,理解html语言制作网页基本原理. html概述和基本结构 html概述 HTML是 HyperText Mark-up Language 的首字母简写,意思是超文本标记语言,超文本指的是超链接,标记指的是标签,是一种用来制作网页的语言,这种语言由一个个的标签组成,用这种语言制作的文件保存的是一个文本文件,文件的扩展名为html或者htm,一个html文件就是一个网页,html文件用编辑器打开显示的是文本,可以用文本的方式编辑它,如果用浏览器打

JIRA中的标记语言的语法参考

前言 看到网上有的文章说JIRA是使用Textile这门标记语言,有些语法和Wikitext和Markdown相像.JIRA在2017年进行了一次大更新,某些语法可能和以前不大一样,这里纪录一下常用的一些语法. 标题 h1.一级标题 h2.二级标题 h3.三级标题 h4.四级标题 h5.五级标题 用法示例: h1.ddd 一共有h1到h5这五种大小的标题,但是h6也是有效果的,不过h6起到的作用是将小写字母变成大写字母,示例如下: h6.ddd 以上会得到DDD的输出. 字体 用法 效果 *黑体

标记语言

标记语言(也称置标语言.标记语言.标志语言.标识语言)是一种将文本(Text)以及文本相关的其他信息结合起来,展现出关于文档结构和数据处理细节的计算机文字编码.与文本相关的其他信息(包括例如文本的结构和表示信息等)与原来的文本结合在一起,但是使用标记(markup)进行标识.当今广泛使用的标记语言是超文本标记语言(HyperText Markup Language,HTML)和可扩展标记语言(eXtensible Markup Language,XML).标记语言广泛应用于网页和网络应用程序.标

html 超文本标记语言

1.html超文本标记语言 2.在html中存在着大量的标签,我们用html中存在的标签将要显示在网页的内容包含起来. 3.css 控制网页显示内容的效果. 4.html+css 只能是静态网页. 5.js+jquery动态的效果. 开始动手 1.首先在桌面上随便的建一个文件. 2.将创建的文件改成.html/或.htm

html(HyperText Markup Language)--超文本标记语言

1.html的简介? * 什么是html? ** HyperText Markup Language:超文本标记语言,网页语言 ** 超文本:超出文本的范畴,使用html可以轻松实现这样操作: ** 标记:html所有的操作都是通过标记实现的,标记就是标签,<标签名称>: ** 网页语言. * 第一个html程序. - 创建java文件.java ** 先编译,然后再运行(jvm) - html后缀是 .html .htm ** 直接通过浏览器就可以运行 - 代码 ** 这是我的<fon

超文本标记语言

这是我第一次在博客园写东西,通过这两天的学习,初步了解了什么是html,之前浏览网站时也查看过网页的源代码,给人的印象就是杂乱无章,什么也看不懂,现在看起来不那么乱了,知道它也是有头有尾的,也是有相应的结构在里面,head表示它的头,body表示身体部分,当有了身体内容后就需要给它定义样布局的css,最后还需要用js来输入行为命令,才能成为一个完整的网页.当了解了这些东西之后才能更好地学习下去,接下来会更进一步的探索超文本标记语言.

HTML超文本标记语言(一)

一.什么是HTML(Hyper Text Markup Language) 1.是一种标记语言,用一套标签标记来描述网页,除了文字还可以有图片.视频.音频.动画特效等其他内容: 2.基本格式是: <html> <head>头标签:放一些控制性的东西</head> <body>主体标签,放可见的网页内容</body> </html> 3.HTML标签由尖括号包围的关键词组成,通常成对出现,比如<p></p>; 4

Markdown标记语言

Markdown 是一种轻量级标记语言,创始人为约翰·格鲁伯(John Gruber).它允许人们"使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档".这种语言吸收了很多在电子邮件中已有的纯文本标记的特性. Markdown可以做什么? 文本编辑:引言部分已经提到,Markdown可以作为标记语言用来写论文.小说.甚至简历.大家可不要被所谓的"标记语言"吓到了,Markdown没有编程语言的复杂,毕竟常用的语法10个都不到(下面会详细