0

我正在尝试在 XSB 中加载一些规则以进行查询。我的规则文件由翻译后从本体中提取的一些事实和下面提到的一些推理组成。问题是 xsb 读取了事实,但没有使用应该进行推理的给定规则。

subclass('iri#a','iri#b').
subclass('iri#b','iri#c').
disjoint('iri#d','iri#f').
subclass(c1,c2) :- subclass(c1,c3),subclass(c3,c2).
disjoint(c1,c2) :- disjoint(c2,c1).

如果我查询disjoint('iri#f','iri#d') xsb 返回“no/false”,如果我disjoint('iri#d','iri#f') xsb 返回 true。我不明白为什么不相交不是双向阅读。

我在 xsb 中提供文件,如下所示:

| ?- [myfile].
[myfile loaded]

yes
| ?- disjoint(X, Y).
4

0 回答 0