0

I am trying to load some rules in XSB in order to query. My rule file consists of some facts extracted from ontology after translation and some reasoning mentioned below. The problem is xsb read the facts but does not use the given rules that were supposed to do the reasoning.

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).

if I query disjoint('iri#f','iri#d') xsb return "no/false" and if I disjoint('iri#d','iri#f') xsb return true. I do not understand why disjoint is not reading in both direction.

I am giving file in xsb like this:

| ?- [myfile].
[myfile loaded]

yes
| ?- disjoint(X, Y).
fairyjee
  • 75
  • 1
  • 5
  • `c1` is a constant, `C1` is a variable. – false May 11 '21 at 19:45
  • @false if i change `c1` constant to a variable then I get `++Error[XSB/Runtime/P]: [Resource (memory)] Query exhausted system memory (currently expanding trail/choice point stack space)`. – fairyjee May 12 '21 at 07:36

0 Answers0