Prolog XSB未读取所有规则

Prolog XSB未读取所有规则,prolog,owl,xsb,Prolog,Owl,Xsb,我试图在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)

我试图在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).
如果我查询不相交('iri#f','iri#d')xsb返回“否/假”,如果我不相交('iri#d','iri#f')xsb返回真。我不明白为什么“不相交”不是双向阅读

我在xsb中提供的文件如下:

| ?- [myfile].
[myfile loaded]

yes
| ?- disjoint(X, Y).

c1
是一个常量,
c1
是一个变量。@如果我将
c1
常量更改为一个变量,则会得到
++Error[XSB/Runtime/P]:[Resource(memory)]查询耗尽的系统内存(当前正在扩展跟踪/选择点堆栈空间)