|
让K= (
,
,
,
)是一个知识领域Rela-Ops模型,Obj = (Attrs、事实、EqObj RulObj)是一个对象的一个概念
,F是一组事实。该算法推导出集的闭包FObj, Obj.Closure (F)。 |
|
输入:对象Obj = (Attrs、事实、EqObj RulObj),F是一组事实。 |
|
输出:Obj.Closure (F) |
|
步骤0:初始化变量 |
|
国旗:= true; |
|
KnownFacts:=F∪Obj。事实; |
|
步骤1。分类的事实KnownFacts |
|
步骤2。确定新事实求是KnownFacts通过使用推理规则。 |
|
步骤3。搜索事实为对象的闭包KnownFacts。 |
|
为事实在KnownFacts做 |
|
如果(事实是一个对象)然后 |
|
KnownFacts:=KnownFacts∪fact.Attrs; |
|
如果; |
|
最后做; |
|
步骤4。搜索规则在Obj。EqObj可以应用基于哪一个KnownFacts。 |
|
国旗:= true; |
|
而(国旗! = false)做 |
|
4.1。如果(一个规则r在Obj。EqObj可以找到)然后 |
|
r形式:=h(y1、…y米),
,h有专家,x我,yj⊆Obj。Attrs (1≤我≤n1≤j≤米) |
|
结合事实在Knowfacts解决方程=h(y1、…y米)来确定新属性。 |
|
更新KnownFacts。 |
|
如果;# 4.1 |
|
4.2。如果(无法找到一个规则r∈Obj。EqObj)然后 |
|
国旗:= false; |
|
如果; |
|
最后做; |
|
步骤5。搜索规则在Obj.RulObj可以应用基于哪一个KnownFacts |
|
而(国旗! = false) |
|
5.1。如果(一个规则r在Obj。RulObj可以找到)然后 |
|
r形式:哪一个u(r)⊆Obj。Attrs和 |
|
为e在做 |
|
KnownFacts:=KnownFacts∪{e}; |
|
如果(可以确定新的事实KnownFacts)然后 |
|
确定新事实求是KnownFacts通过使用演绎规则; |
|
如果; |
|
如果(e是一个新的对象)然后 |
|
KnownFacts:=KnownFacts∪e.Closure(
); |
|
如果(可以确定新的事实KnownFacts)然后 |
|
确定新事实求是KnownFacts通过使用演绎规则; |
|
如果; |
|
如果; |
|
最后做; |
|
如果;# 5.1 |
|
5.2。如果(无法找到一个规则r∈Obj。RulObj)然后 |
|
国旗:= false; |
|
如果; |
|
最后做;#, |
|
步骤6。Obj.Closure(F):=KnownFacts |