From: Paul F. <fod...@gm...> - 2008-08-15 21:03:24
|
Dear Sir, We tested the recursive same generation test for smaller tests (500 nodes) than our initial tests and it is working. For 1000 nodes it stops working with the error "Implementation error: Recursive error" Do you know any option that could make it run for bigger tests (such as, the one that I put online for you: http://www.lmc.cs.sunysb.edu/~tests/cyc_paul/sg_cyc_without_cycle_01.cyc ) ? For 500 node, we get: CYC(1): (load "sg_cyc_500nodes.cyc") T CYC(2): (new-cyc-query (LIST #$sg-predicate '?X '?Y) #$BaseKB (LIST :MAX-TRANSFORMATION-DEPTH nil :metrics (LIST :total-time :complete-total-time :time-per-answer :time-to-first-answer :answer-count)) ) (((?X . #$node-190) (?Y . #$node-190)) ((?X . #$node-374) (?Y . #$node-374)) ((?X . #$node-491) ...) :EXHAUST-TOTAL NIL (7.90625 7.921875 0.007743633692458374 0.015625 1021) CYC(3): Please tell me if there is any option to make it work for bigger examples. Regards, thank you, Paul. On Thu, Aug 14, 2008 at 9:36 PM, Paul Fodor <fod...@gm...> wrote: > Dear Sir, > > Our performance tests failed to execute in the OpenCyc system. They work > for small tests (a couple of constants), but they fail to work for large > number of constants: 50K,100K, 250K, 500K, 1 million. For instance, our > smallest test: > > http://www.lmc.cs.sunysb.edu/~tests/cyc_paul/sg_cyc_without_cycle_01.cycwith the query for all the tuples sg-predicate: > > (new-cyc-query > (LIST #$sg-predicate '?X '?Y) #$BaseKB > (LIST :MAX-TRANSFORMATION-DEPTH nil :metrics (LIST :total-time > :complete-total-time :time-per-answer :time-to-first-answer :answer-count)) > ) > > fails after a few minutes with the message: "Implementation error: > Recursive error". > > On OpenCyc: > $ run-cyc.sh > CYC(1): (load "sg_cyc_without_cycle_01.cyc") > T > > CYC(2): (new-cyc-query (LIST #$sg-predicate '?X '?Y) #$BaseKB (LIST > :MAX-TRANSFORMATION-DEPTH nil :metrics (LIST :total-time > :complete-total-time :time-per-answer :time-to-first-answer :answer-count))) > > Implementation error: Recursive error > > This test does the following: we have two kinds of facts: par/2 and sib/2, > where par(X,Y) means that the parent of X is Y and sib(X,Y) means that the X > is sibling of Y. The rules are the following: > - every node X in the graph is in the same generation sg/2 with itself: > sg(X,X) :- par(X,_);par(_,X);sib(X,_);sib(_,X), > - if two nodes are siblings then they are in the same generation: sg(X,Y) > :- sib(X,Y). > - if two nodes are in hte same generation then their parents are in the > same generation: sg(X,Y) :- par(X,Z), sg(Z,Z1), par(Y,Z1). > > The "sg_cyc_without_cycle_01.cyc" example doesn't have any cycles in the > data structure and other systems that we tested (XSB, Yap, dlv, ontobroker) > solve it (finds all solutions) in about a second. > > Please tell us if there is anything that we can do. > > Regards, > Paul Fodor > > |