6同第7章儿种结构化知识表示及其推理 框架名:〈教师-1》 姓名:李明 性别:男 年龄:25 职称: 助教 专业:计算机应用 部门:计算机系软件教研室 外语水平: 显然,原框架“教师-1”中无“外语水平”槽,但它的父 框架是“大学教师”,该框架内有“外语水平”槽,并且侧面 “语种”(范围”)缺省值是“英”,侧面“水平”的缺省值 是“良”。于是通过继承,便知道了“教师-1"懂英语,且水 平还良好。那么,这两个值也就可以填到“教师”的槽中
第 7 章 几种结构化知识表示及其推理 框架名: 〈教师-1 姓名: 性别: 年龄: 25 职称: 专业: 部门: 外语水平: 显然, 原框架“教师-1”中无“外语水平”槽, 但它的父 框架是“大学教师” , 该框架内有“外语水平”槽, 并且侧面 “语种”(“范围”)缺省值是“英” , 侧面“水平”的缺省值 是“良” 。 于是通过继承, 便知道了“教师-1”懂英语, 且水 平还良好。 那么, 这两个值也就可以填到“教师-1”的槽中
6同第7章儿种结构化知识表示及其推理 7.1.4框架的程序语言实现 有一种名为FRL(Frame Representation Language)的程 序设计语言,就是专门基于框架的程序设计语言。用它就可 以方便地实现框架知识表示。不过,用PROLOG也可方便地 实现框架表示。用PROLOG实现框架表示,一般采用含结构 或表的谓词来实现。因为框架实际上就是树,而PROLOG的 结构也是树,表又是特殊的结构,它的元素个数和层数都不 限定,可动态变化,因此,更适于表示一般的框架
第 7 章 几种结构化知识表示及其推理 7.1.4 框架的程序语言实现 有一种名为FRL(Frame Representation Language)的程 序设计语言,就是专门基于框架的程序设计语言。用它就可 以方便地实现框架知识表示。不过,用PROLOG也可方便地 实现框架表示。用PROLOG实现框架表示,一般采用含结构 或表的谓词来实现。因为框架实际上就是树,而PROLOG的 结构也是树,表又是特殊的结构,它的元素个数和层数都不 限定,可动态变化,因此,更适于表示一般的框架
第7章儿种结构化知识表示及其推理 例如,前面的“教师”框架用PROLOG可表示如下: frame(name("教师"), kind-of"<知识分子>"), work(scope("教学","科研"),default("教学"), sex("男","女"), reco-of-f-s("中师","高师"), yp(<小学教师>”,“<中学教师>”,“<大学教师>) 如果要给出框架的一个通用表示形式,则下面的表示方式 可供参考
第 7 章 几种结构化知识表示及其推理 例如,前面的“教师”框架用PROLOG可表示如下: frame(name("教师"), kind--of("<知识分子>"), work(scope("教学" , "科研"),default("教学")), sex("男" , "女"), reco--of--f--s("中师" , "高师"), type(“<小学教师>”,“<中学教师>”,“<大学教师>”)). 如果要给出框架的一个通用表示形式,则下面的表示方式 可供参考
⑥第7章几种结构化知识表示及其推理 fame(name("教师"), body([st("类属",[st("<知识分子>",[])门), st("工作",[st("范围",[st("教学",[门),=st("科研",[])门), st("缺省",[st("教学",[])门)门), st("性别",[st("男",[]),st("女",[门)门), st("学历",[st("中师",[]),st("高师",[])门), st("类型",[st("<小学教师>",[]),st("<中学教师>",[]),= s("<大学教师>"[])门)门)
第 7 章 几种结构化知识表示及其推理 frame(name("教师"), body([st("类属" ,[st("<知识分子>",[])]), st("工作" ,[st("范围" ,[st("教学" ,[]),=st("科研" ,[])]), st("缺省" ,[st("教学" ,[])])]), st("性别" ,[st("男" ,[]),st("女" ,[])]), st("学历" ,[st("中师" ,[]),st("高师" ,[])]), st("类型" ,[st("<小学教师>",[]),st("<中学教师>",[]),= st("<大学教师>"[])])]))
第7章儿神种结构化知识表示及其推理 这是一个PROLOG的“事实”,其谓词及领域说明如下: domains name=name(string) body=body(subtree list) subtreelist=subtree* subtree=st(string,subtreelist) database fame(name,body) 其中的subtreelist是递归定义的。按此定义所有框架 都取统一的表示形式
第 7 章 几种结构化知识表示及其推理 这是一个PROLOG的“事实” ,其谓词及领域说明如下: domains name=name(string) body=body(subtree list) subtreelist=subtree* subtree=st(string,subtreelist) database frame(name,body) 其中的subtreelist是递归定义的。按此定义所有框架 都取统一的表示形式