The message "Message: Bad index 1 in call to get() on this vector: (MAIN::__query-trigger-equivs-of-type segment-side). "
looks as though it means that there's a mismatch between the number of arguments you supply to a run-query call and the number of external variables the query "equivs-of-type" is declared to accept; in particular, your query may have been declared to take at least two variables, and you're calling it with only one argument, whose value is "segment-side". It also looks as though you're executing the same query many times recursively, which won't work. I've spoken up several times on this mailing list regarding the evils of using queries on rule LHSs; because it appears to have some genuine utility, I haven't done anything to prevent it. But the awe-inspiring stack trace below suggests that you've got a query which, when run on a LHS, causes a few more rules to fire, which assert facts, which cause the query to fire again, etc. This is simply not going to work. Use queries on rule LHS very sparingly, and then only in situations where this kind of cascade isn't going to happen. It's quite possible that the error you're seeing is occurring just because the Rete network is getting all fouled up by this recursive querying. I think Mark Nahabedian wrote: > > My problems persist in Jess 6.0, though now it appears that many more > details are provided. > > > FIRE 4 MAIN::equiv-equiv-merge f-230, f-205,, > ==> f-233 (MAIN::equiv (type segment-side) (set side-48 side-16 side-47 side-15 >side-44 side-43 side-59 side-56 side-24 side-55 side-23 side-68 side-8 side-36 >side-67 side-7 side-35 side-64 side-63 side-32 side-31 side-60)) > ==> Activation: MAIN::equiv-equiv-merge : f-233, f-205,, > ==> Activation: MAIN::equiv-equiv-merge : f-233, f-230,, > ==> Activation: MAIN::equiv-equiv-merge : f-205, f-233,, > ==> Activation: MAIN::equiv-equiv-merge : f-230, f-233,, > <== f-230 (MAIN::equiv (type segment-side) (set side-68 side-67)) > <== Activation: MAIN::equiv-equiv-merge : f-230, f-233,, > <== Activation: MAIN::equiv-equiv-merge : f-205, f-230,, > <== Activation: MAIN::equiv-equiv-merge : f-233, f-230,, > <== f-205 (MAIN::equiv (type segment-side) (set side-48 side-16 side-47 side-15 >side-44 side-43 side-59 side-56 side-24 side-55 side-23 side-8 side-36 side-7 side-35 >side-64 side-32 side-63 side-31 side-60)) > <== Activation: MAIN::equiv-equiv-merge : f-205, f-233,, > <== Activation: MAIN::equiv-equiv-merge : f-233, f-205,, > <== f-229 (MAIN::__query-trigger-equivs-of-type segment-direction) > returning false > ==> f-234 (MAIN::segment-face (face face-52) (edge "cord-2[4]") (edge-side side-67)) > ==> f-235 (MAIN::__query-trigger-equivs-of-type segment-side) > <== f-235 (MAIN::__query-trigger-equivs-of-type segment-side) > > ***** side-67 side-44 <External-Address:jess.Token> > > 0 name MAIN::__query-trigger-equivs-of-type > name didn't match > > 1 name MAIN::equiv > got name > set = ((side-48 side-16 side-47 side-15 side-44 side-43 > side-59 side-56 side-24 side-55 side-23 side-68 > side-8 side-36 side-67 side-7 side-35 side-64 > side-63 side-32 side-31 side-60)) > FALSE FALSE > returning false > Jess exception: Jess reported an error in routine ValueVector.get > while executing rule LHS (Node2) > while executing rule LHS (TECT) > while executing (assert (MAIN::opposites circular-direction ?circ7 ?circ8) > (MAIN::opposites segment-side ?side7 ?side8) > (MAIN::cp-circular (crosspoint ?cp) > (segment ?seg-d) > (segment-direction out) > (circular-direction ?circ7) > (face ?face4)) > (MAIN::segment-face (face ?face4) > (edge ?seg-d) > (edge-side ?side7)) > (MAIN::cp-circular (crosspoint ?cp) > (segment ?seg-a) > (segment-direction in) > (circular-direction ?circ8) > (face ?face4)) > (MAIN::segment-face (face ?face4) > (edge ?seg-a) > (edge-side ?side8))) > while executing defrule MAIN::faces-and-segments-at-crosspoint > while executing (run-query equivs-of-type ?type) > while executing (bind ?e (run-query equivs-of-type ?type)) > while executing deffunction test-equiv > while executing (test-equiv segment-direction ?in/out1 ?in/out2) > while executing 'test' CE > while executing rule LHS (Node2) > while executing rule LHS (TECT) > while executing (assert (MAIN::crosspoint-segment (crosspoint ?cp) > (in/out in) > (segment ?l1in) > (other-segment ?l1out))) > while executing defrule MAIN::crosspoint-to-links > while executing (run-query equivs-of-type ?type) > while executing (bind ?e (run-query equivs-of-type ?type)) > while executing deffunction test-equiv > while executing (test-equiv face ?face1 ?face2) > while executing 'test' CE > while executing rule LHS (Node2) > while executing rule LHS (TECT) > while executing (assert (MAIN::opposites circular-direction ?circ3 ?circ4) > (MAIN::opposites segment-side ?side3 ?side4) > (MAIN::cp-circular (crosspoint ?cp) > (segment ?seg-c) > (segment-direction in) > (circular-direction ?circ3) > (face ?face2)) > (MAIN::segment-face (face ?face2) > (edge ?seg-c) > (edge-side ?side3)) > (MAIN::cp-circular (crosspoint ?cp) > (segment ?seg-b) > (segment-direction out) > (circular-direction ?circ4) > (face ?face2)) > (MAIN::segment-face (face ?face2) > (edge ?seg-b) > (edge-side ?side4))) > while executing defrule MAIN::faces-and-segments-at-crosspoint > while executing (run-query equivs-of-type ?type) > while executing (bind ?e (run-query equivs-of-type ?type)) > while executing deffunction test-equiv > while executing (test-equiv segment-direction ?in/out1 ?in/out2) > while executing 'test' CE > while executing rule LHS (Node2) > while executing rule LHS (TECT) > while executing (assert (MAIN::crosspoint-segment (crosspoint ?cp) > (in/out in) > (segment ?l1in) > (other-segment ?l1out))) > while executing defrule MAIN::crosspoint-to-links > while executing (run-query equivs-of-type ?type) > while executing (bind ?e (run-query equivs-of-type ?type)) > while executing deffunction test-equiv > while executing (test-equiv face ?face1 ?face2) > while executing 'test' CE > while executing rule LHS (Node2) > while executing rule LHS (TECT) > while executing (assert (MAIN::opposites circular-direction ?circ3 ?circ4) > (MAIN::opposites segment-side ?side3 ?side4) > (MAIN::cp-circular (crosspoint ?cp) > (segment ?seg-c) > (segment-direction in) > (circular-direction ?circ3) > (face ?face2)) > (MAIN::segment-face (face ?face2) > (edge ?seg-c) > (edge-side ?side3)) > (MAIN::cp-circular (crosspoint ?cp) > (segment ?seg-b) > (segment-direction out) > (circular-direction ?circ4) > (face ?face2)) > (MAIN::segment-face (face ?face2) > (edge ?seg-b) > (edge-side ?side4))) > while executing defrule MAIN::faces-and-segments-at-crosspoint > while executing (run-query equivs-of-type ?type) > while executing (bind ?e (run-query equivs-of-type ?type)) > while executing deffunction test-equiv > while executing (test-equiv segment-direction ?in/out1 ?in/out2) > while executing 'test' CE > while executing rule LHS (Node2) > while executing rule LHS (TECT) > while executing (assert (MAIN::opposites circular-direction ?circ1 ?circ2) > (MAIN::opposites segment-side ?side1 ?side2) > (MAIN::cp-circular (crosspoint ?cp) > (segment ?seg-a) > (segment-direction in) > (circular-direction ?circ1) > (face ?face1)) > (MAIN::segment-face (face ?face1) > (edge ?seg-a) > (edge-side ?side1)) > (MAIN::cp-circular (crosspoint ?cp) > (segment ?seg-c) > (segment-direction in) > (circular-direction ?circ2) > (face ?face1)) > (MAIN::segment-face (face ?face1) > (edge ?seg-c) > (edge-side ?side2))) > while executing defrule MAIN::faces-and-segments-at-crosspoint > while executing (run-query equivs-of-type ?type) > while executing (bind ?e (run-query equivs-of-type ?type)) > while executing deffunction test-equiv > while executing (test-equiv segment-direction ?in/out1 ?in/out2) > while executing 'test' CE > while executing rule LHS (Node2) > while executing rule LHS (TECT) > while executing (assert (MAIN::opposites circular-direction ?circ1 ?circ2) > (MAIN::opposites segment-side ?side1 ?side2) > (MAIN::cp-circular (crosspoint ?cp) > (segment ?seg-a) > (segment-direction in) > (circular-direction ?circ1) > (face ?face1)) > (MAIN::segment-face (face ?face1) > (edge ?seg-a) > (edge-side ?side1)) > (MAIN::cp-circular (crosspoint ?cp) > (segment ?seg-c) > (segment-direction in) > (circular-direction ?circ2) > (face ?face1)) > (MAIN::segment-face (face ?face1) > (edge ?seg-c) > (edge-side ?side2))) > while executing defrule MAIN::faces-and-segments-at-crosspoint > while executing (run-query equivs-of-type ?type) > while executing (bind ?e (run-query equivs-of-type ?type)) > while executing deffunction test-equiv > while executing (test-equiv segment-direction ?in/out1 ?in/out2) > while executing 'test' CE > while executing rule LHS (Node2) > while executing rule LHS (TECT) > while executing (assert (MAIN::opposites circular-direction ?circ1 ?circ2) > (MAIN::opposites segment-side ?side1 ?side2) > (MAIN::cp-circular (crosspoint ?cp) > (segment ?seg-a) > (segment-direction in) > (circular-direction ?circ1) > (face ?face1)) > (MAIN::segment-face (face ?face1) > (edge ?seg-a) > (edge-side ?side1)) > (MAIN::cp-circular (crosspoint ?cp) > (segment ?seg-c) > (segment-direction in) > (circular-direction ?circ2) > (face ?face1)) > (MAIN::segment-face (face ?face1) > (edge ?seg-c) > (edge-side ?side2))) > while executing defrule MAIN::faces-and-segments-at-crosspoint. > Message: Bad index 1 in call to get() on this vector: >(MAIN::__query-trigger-equivs-of-type segment-side). > > C:\Projects\Knots\java> > > > -------------------------------------------------------------------- > To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]' > in the BODY of a message to [EMAIL PROTECTED], NOT to the list > (use your own address!) List problems? Notify [EMAIL PROTECTED] > -------------------------------------------------------------------- > --------------------------------------------------------- Ernest Friedman-Hill Distributed Systems Research Phone: (925) 294-2154 Sandia National Labs FAX: (925) 294-2234 Org. 8920, MS 9012 [EMAIL PROTECTED] PO Box 969 http://herzberg.ca.sandia.gov Livermore, CA 94550 -------------------------------------------------------------------- To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]' in the BODY of a message to [EMAIL PROTECTED], NOT to the list (use your own address!) List problems? Notify [EMAIL PROTECTED] --------------------------------------------------------------------
