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