【发布时间】:2013-06-13 14:59:11
【问题描述】:
在对描述对话表达式语义的谓词执行引用解析时,由于在开放世界中工作,我需要能够允许部分统一。
例如,考虑以下场景:
你面前有一个蓝色的盒子。
我们使用 id 3 来引用这个蓝色框。
一组谓词box(x)^blue(x) 可以轻松解析为您所知道的蓝色框。进行此查询将返回3
一组谓词ball(x)^yellow(x) 不会解决任何问题。这很好。
但现在考虑ball(x)^yellow(x)^box(y)^blue(y)^behind(x,y) 也就是蓝色盒子后面的黄色球。
我们不知道黄色球,但我们知道蓝色盒子!当然,有可能已知盒子后面没有球,而另一个盒子正在被提及。但我们很确定我们知道正在谈论什么盒子。
我在一个概率框架内工作,在这个框架中我计算每组绑定满足一组命题的概率;然后,引用解析过程返回最可能的统一器/绑定集。不幸的是,当考虑behind(x,y) 时,我的系统消除了3 绑定到y 的可能性,因为它不知道ID 为3 的框后面有任何黄球。
有没有办法对谓词进行部分统一,让系统判断语句最可能的解析是y/3 x/?,即y绑定为3,x的标识为未知?
【问题讨论】:
-
注意:我考虑过添加通配符标识符
?来表示未知地点。在这种情况下,系统不仅会考虑例如绑定 (1,1),(1,2),(2,1) 和 (2,2),还会考虑 (1,?), ( 2,?),(?,1),(?,2) 和 (?,?)。不幸的是,我认为这不是一个可行的解决方案,因为我无法想象如何计算这些概率;计算具有相关属性的已知实体的概率很容易,但我不知道如何计算具有这些属性的未知实体存在的概率。 -
这里的分辨率到底是什么意思?在自动定理证明中,resolution 通常指的是采用两个 disjunctive 子句并产生新的 disjunctive 子句的规则。不过,你有连词。如果您有一个像“每个黄色球都在每个蓝色盒子后面”这样的句子,则该子句将是 1:{-yellow(x),-ball(x),-blue(y),-box(y),behind( x,y)}。然后,您对蓝色框的观察是两个子句:2:{box(3)} 和 3:{blue(3)}。解析 1 和 2 产生 4:{-yellow(x),-ball(x),-blue(3),behind(x,3)}。然后,解决 3 和 4……
-
…产生 5:{-yellow(x),-ball(x),behind(x,3)}。如果你后来发现个人是一个黄球,你将有 6:{yellow(y)} 和 7:{ball(7)}。再经过两个决议后,您将拥有 {behind(3,7)}。这是你想做的事情吗?
-
这里的解析不是在你使用它的意义上使用的,而是在共指解析的语言意义上使用(参见:en.wikipedia.org/wiki/Coreference)。
-
啊,好的。然后,您可能希望从问题中删除统一标签。它在标签 wiki 中的描述是“统一,在计算机科学和逻辑中,是一种算法过程,人们试图通过它来解决可满足性问题。统一的目标是找到一个替代,证明两个看似不同的术语实际上是相同的或只是相等的。”我不认为这正是你想要做的。
标签: logic artificial-intelligence robotics unification uncertainty