Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1797955
  • 博文数量: 438
  • 博客积分: 9799
  • 博客等级: 中将
  • 技术积分: 6092
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-25 17:25
文章分类

全部博文(438)

文章存档

2019年(1)

2013年(8)

2012年(429)

分类: 信息化

2013-04-10 22:27:45

1975年Minsky提出了框架,它基本上等同于C语言里的结构体,是专家系统的面向对象编程的应用。

框架被定义为槽(slot)的集合,槽等同于对象的属性。一般说来,槽可以包含下列信息:
1、框架名;
2、和其它框架的关系;
3、槽值;
4、默认槽值;
5、槽的取值范围;
6、处理过程。通常有两种处理过程被附加到槽上:WHEN CHANGED和WHEN NEEDED。这样的处理过程被称为demon。
基于框架的专家系统还通过facet的应用对槽-值结构体进行扩展。facet是提供关于框架属性的扩展知识的一种方法。一般来说,基于框架的专家系统允许我们向属性附加"值"、"提示"、和"推理"等facet。值facet指定属性的默认和初始值。提示facet让终端用户可以在和专家系统的会话里在线输入属性值,推理facet让我们可以在特定属性的值改变时停止推理过程。

根据问题的本质将其分解成框架,进而分解成槽和facet。框架既可以表示类,也可以表示对象。通常对象直接有三种关系:泛化(a-kind-of或is-a)、聚合和关联。

继承的缺点在于,基于框架的系统不能区分本质属性(该类必须具备的属性)和偶然属性(该类所有实例刚好都具有的属性)。由于在继承层次的任何地方都可以覆写属性,在多重继承时并不能表示把几个类组合在一起的概念。

多数基于框架的专家系统里,也会使用规则,这些规则通常使用模式匹配语句。规则在方法调用时触发,比如WHEN CHANGED。
阅读(6075) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~