I was not able to reproduce the problem in a simple example, however, something 
appears to be happening that I don't understand. The Java and rule files used 
in the trial below are attached. (Note the java files should be Thing1.java and 
Thing2.java, cc-mail does not like long file names). 
     
The problem is that the modification to the (definstance... created facts does 
not seem to be permanent. The ShowMe rule clearly show that the source and 
record field have been set in Java, but the last (facts) output show that those 
slots are nil in Jess. This is a similar problem, perhaps they are related.
     
Jess, the Java Expert System Shell
Copyright (C) 1998 E.J. Friedman Hill and the Sandia Corporation 
Jess Version 4.1b3 7/1/98
     
Jess> (batch "rules.clp")
TRUE
Jess> (reset)
TRUE
Jess> (facts)
f-0   (initial-fact)
f-1   (Thing2 (source nil) (class <External-Address:java.lang.Class>) (OBJECT 
<External-Address:Thing2>))
f-2   (Thing1 (source nil) (class <External-Address:java.lang.Class>) (record 
nil) (OBJECT <External-Address:Thing1>))
For a total of 3 facts.
TRUE
Jess> (run)
(Query (Source Thing1) (Record (Query (Source Thing2) )) ) 
(Query (Source Thing2) )TRUE
Jess> (facts)
f-0   (initial-fact)
f-4   (Thing2 (source nil) (class <External-Address:java.lang.Class>) (OBJECT 
<External-Address:Thing2>))
f-5   (Thing1 (source nil) (class <External-Address:java.lang.Class>) (record 
nil) (OBJECT <External-Address:Thing1>))
For a total of 3 facts.
TRUE
Jess>
     
Opinions are strictly those of the author and 
do not necessarily reflect those of GRCI. 
______________________________________________ 
Lewis Hart                   GRC International 
703-506-5938                 1900 Gallows Rd 
[EMAIL PROTECTED]               Vienna, VA 22182
     
______________________________ Reply Separator _________________________________
Subject: Re: JESS: Java objects and Jess facts.
Author:  Ernest Friedman-Hill <[EMAIL PROTECTED]> at GRC_INET 
Date:    7/6/98 10:47 AM
     
     
I think [EMAIL PROTECTED] wrote: 
> 
> ... When an instance of a fact, created using definstance, is modified, 
> the old fact is retracted, _but_ the modified fact is never asserted. 
> In the excerpt below, when the modify is executed the DM_Query fact 
> is lost. 
> 
     
Hi Lewis,
     
As the following excerpt shows, a trivial test case works for me: 
---------------------------------------------------------------------- 
Jess, the Java Expert System Shell
Copyright (C) 1998 E.J. Friedman Hill and the Sandia Corporation 
Jess Version 4.1b3 7/1/98
     
Jess> (defclass simple jess.examples.simple.Simple) 
jess.examples.simple.Simple
Jess> (definstance simple (new jess.examples.simple.Simple "Foo")) 
TRUE
Jess> (defrule test-rule
      ?f <- (simple)
      =>
      (modify ?f (truth TRUE)))
TRUE
Jess> (reset)
TRUE
Jess> (facts)
f-0   (initial-fact)
f-1   (simple (truth FALSE) (class <External-Address:java.lang.Class>)
      (name "Foo") (fraction 0.0) (serial 0)
      (OBJECT <External-Address:jess.examples.simple.Simple>))
For a total of 2 facts.
TRUE
Jess> (run)
TRUE
Jess> (facts)
f-0   (initial-fact)
f-2   (simple (truth TRUE) (class <External-Address:java.lang.Class>)
      (name "Foo") (fraction 0.0) (serial 0)
      (OBJECT <External-Address:jess.examples.simple.Simple>))
For a total of 2 facts.
TRUE
Jess>
----------------------------------------------------------------------
     
> The same thing happens regardless of how the fact is modified, as 
> above using (set ?qfr record ?srr), or calling setRecord() in Java.
     
4.1b3 fixed a bug whereby modifying a definstance fact using a bogus 
property name could cause the fact to be retracted without the new 
version being asserted... are you using 4.1b3? If you are not, 
download it and give it a try. In any case, make sure that there 
really is a public method named getRecord() with no arguments that 
returns non-void in the class you're matching, and make sure Jess 
knows about it (run the 'facts' command and look at all the slots in 
the definstance facts.) Let me know what you find out.
     
> 
> The RHS of some rules call user functions which use 
> 
> aReteEngine.executeCommand(theCommand); 
> 
> to assert new facts. Could this be causing problems in the rete code 
> or data structures?
> 
     
This should be OK; it's equivalent to calling (assert) on the RHS of a 
rule, which is perfectly legal. Now if you're doing it on the -LHS- of 
a rule, or if you're calling functions that modify a matched object on 
the LHS of a rule, well, I think the README warns about that...
     
--------------------------------------------------------- 
Ernest Friedman-Hill  
Distributed Systems Research        Phone: (510) 294-2154 
Sandia National Labs                FAX:   (510) 294-2234 
Org. 8920, MS 9214                  [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. List problems? Notify [EMAIL PROTECTED] 
---------------------------------------------------------------------

begin 666 thing2.jav
M+RHC(V)E9VEN($-L87-S(%1H:6YG,B`J+PHO+W!A8VMA9V4@:F5S<U]T97-T
M.PH@"FEM<&]R="!J879A+F)E86YS+BH[("`O+R!.965D960@9F]R(%!R;W!E
M<G1Y($-H86YG92!3=7!P;W)T"B`*+R\@1$1?3V)J96-T(%8Q+C`@5'5E($IU
M;B`P,B`Q-3HT.#HU-"`Q.3DX"G!U8FQI8R!C;&%S<R!4:&EN9S(@>PH@"B\O
M(%-O=7)C92!6,2XP(%1U92!*=6X@,#(@,34Z-#,Z-3$@,3DY.`HO+R!I<R!D
M871A('1Y<&4@:VEN9"!#2$%204-415(*("`@<')I=F%T92`@4W1R:6YG(%-O
M=7)C93L*("`@<'5B;&EC("!3=')I;F<@9V5T4V]U<F-E*"D@>W)E='5R;B!3
M;W5R8V4[('T*("`@<'5B;&EC("!V;VED('-E=%-O=7)C92@@4W1R:6YG(&YE
M=U-O=7)C92D@>PH@("`@("`@<&-S+F9I<F50<F]P97)T>4-H86YG92@B<V]U
M<F-E(BQ3;W5R8V4L(&YE=U-O=7)C92D["B`@("`@("!3;W5R8V4@/2!N97=3
M;W5R8V4["B`@("`@("!]"B`*+R\@4')O=FED97,@82!B96%N<R!C:&%N9V4@
M;'-I=&5N97(@9F]R('5S92!B>2!*97-S+@H@("!P<FEV871E(%!R;W!E<G1Y
M0VAA;F=E4W5P<&]R="!P8W,@/2!N97<@4')O<&5R='E#:&%N9V53=7!P;W)T
M*'1H:7,I.PH@("!P=6)L:6,@=F]I9"!A9&10<F]P97)T>4-H86YG94QI<W1E
M;F5R*%!R;W!E<G1Y0VAA;F=E3&ES=&5N97(@<&-L*7L*("`@("!P8W,N861D
M4')O<&5R='E#:&%N9V5,:7-T96YE<BAP8VPI.PH@("`@('T*("`@<'5B;&EC
M('9O:60@<F5M;W9E4')O<&5R='E#:&%N9V5,:7-T96YE<BA0<F]P97)T>4-H
M86YG94QI<W1E;F5R('!C;"E["B`@("`@<&-S+G)E;6]V95!R;W!E<G1Y0VAA
M;F=E3&ES=&5N97(H<&-L*3L*("`@("!]"B`*+RHC(V5N9"!'96YE<F%T960@
M0V]D92!4:&EN9S(@*B\*+R]\/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/0HO+WP@0F5G:6X@;F]N+6=E;F5R871E9"!C;V1E+@HO+WP]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]"G!U8FQI8R!3=')I;F<@=&]3=')I;F<H*2![
M"B`@4W1R:6YG('9A;'5E(#T@(BA1=65R>2`B.PH@(&EF("A3;W5R8V4@(3T@
M;G5L;"D@=F%L=64@/2!V86QU92`K("(H4V]U<F-E("(@*R!3;W5R8V4@*R`B
M*2`B.PH@('9A;'5E(#T@=F%L=64@*R(I(CL*("!R971U<FX@=F%L=64["B`@
-?0I]("\O($-,05-3"CT@
`
end

begin 666 thing1.jav
M+RHC(V)E9VEN($-L87-S(%1H:6YG,2`J+PHO+W!A8VMA9V4@:F5S<U]T97-T
M.PH@"FEM<&]R="!J879A+F)E86YS+BH[("`O+R!.965D960@9F]R(%!R;W!E
M<G1Y($-H86YG92!3=7!P;W)T"B`*+R\@1$1?3V)J96-T(%8Q+C`@5'5E($IU
M;B`P,B`Q-3HT.#HU-"`Q.3DX"G!U8FQI8R!C;&%S<R!4:&EN9S$@>PH@"B\O
M(%-O=7)C92!6,2XP(%1U92!*=6X@,#(@,34Z-#,Z-3$@,3DY.`HO+R!I<R!D
M871A('1Y<&4@:VEN9"!#2$%204-415(*("`@<')I=F%T92`@4W1R:6YG(%-O
M=7)C93L*("`@<'5B;&EC("!3=')I;F<@9V5T4V]U<F-E*"D@>W)E='5R;B!3
M;W5R8V4[('T*("`@<'5B;&EC("!V;VED('-E=%-O=7)C92@@4W1R:6YG(&YE
M=U-O=7)C92D@>PH@("`@("`@<&-S+F9I<F50<F]P97)T>4-H86YG92@B<V]U
M<F-E(BQ3;W5R8V4L(&YE=U-O=7)C92D["B`@("`@("!3;W5R8V4@/2!N97=3
M;W5R8V4["B`@("`@("!]"B`*("`@<')O=&5C=&5D(%1H:6YG,B`@4F5C;W)D
M.PH@("!P=6)L:6,@5&AI;F<R(&=E=%)E8V]R9"@I('MR971U<FX@4F5C;W)D
M.R!]"B`@('!U8FQI8R`@=F]I9"!S971296-O<F0H5&AI;F<R(&YE=U)E8V]R
M9"D@>PH@("`@("`@<&-S+F9I<F50<F]P97)T>4-H86YG92@B<F5C;W)D(BQ2
M96-O<F0L(&YE=U)E8V]R9"D["B`@("`@("!296-O<F0@/2!N97=296-O<F0[
M"B`@("`@("!]"B`*(`HO+R!0<F]V:61E<R!A(&)E86YS(&-H86YG92!L<VET
M96YE<B!F;W(@=7-E(&)Y($IE<W,N"B`@('!R:79A=&4@4')O<&5R='E#:&%N
M9V53=7!P;W)T('!C<R`](&YE=R!0<F]P97)T>4-H86YG95-U<'!O<G0H=&AI
M<RD["B`@('!U8FQI8R!V;VED(&%D9%!R;W!E<G1Y0VAA;F=E3&ES=&5N97(H
M4')O<&5R='E#:&%N9V5,:7-T96YE<B!P8VPI>PH@("`@('!C<RYA9&10<F]P
M97)T>4-H86YG94QI<W1E;F5R*'!C;"D["B`@("`@?0H@("!P=6)L:6,@=F]I
M9"!R96UO=F50<F]P97)T>4-H86YG94QI<W1E;F5R*%!R;W!E<G1Y0VAA;F=E
M3&ES=&5N97(@<&-L*7L*("`@("!P8W,N<F5M;W9E4')O<&5R='E#:&%N9V5,
M:7-T96YE<BAP8VPI.PH@("`@('T*(`HO*B,C96YD($=E;F5R871E9"!#;V1E
M(%1H:6YG,2`J+PHO+WP]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]"B\O
M?"!"96=I;B!N;VXM9V5N97)A=&5D(&-O9&4N"B\O?#T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T*<'5B;&EC(%-T<FEN9R!T;U-T<FEN9R@I('L*("!3
M=')I;F<@=F%L=64@/2`B*%%U97)Y("(["B`@:68@*%-O=7)C92`A/2!N=6QL
M*2!V86QU92`]('9A;'5E("L@(BA3;W5R8V4@(B`K(%-O=7)C92YT;U-T<FEN
M9R@I("L@(BD@(CL*("!I9B`H4F5C;W)D("$](&YU;&PI('9A;'5E(#T@=F%L
M=64@*R`B*%)E8V]R9"`B("L@4F5C;W)D+G1O4W1R:6YG*"D@*R`B*2`B.PH@
M('9A;'5E(#T@=F%L=64@*R(I(CL*("!R971U<FX@=F%L=64["B`@?0I]("\O
'($-,05-3"CT@
`
end

begin 666 rules.clp
M*&1E9F-L87-S(%1H:6YG,2!4:&EN9S$I"BAD969C;&%S<R!4:&EN9S(@5&AI
M;F<R*0H**&1E9FEN<W1A;F-E(%1H:6YG,2`H;F5W(%1H:6YG,2DI"BAD969I
M;G-T86YC92!4:&EN9S(@*&YE=R!4:&EN9S(I*0H**&1E9G)U;&4@4W1A<G0*
M("`H9&5C;&%R92`H<V%L:65N8V4@-2DI"B`@/V9T,2`\+2A4:&EN9S$@*'-O
M=7)C92!N:6PI*0H@(#]F=#(@/"TH5&AI;F<R("AS;W5R8V4@;FEL*2D*("`]
M/@H@("AM;V1I9GD@/V9T,2`H<V]U<F-E(")4:&EN9S$B*2D*("`H;6]D:69Y
M(#]F=#(@*'-O=7)C92`B5&AI;F<R(BDI"B`@*0H**&1E9G)U;&4@3&EN:PH@
M("A4:&EN9S(@*$]"2D5#5"`_;W0R*2D*("`_9G0Q(#PM("A4:&EN9S$@*$]"
M2D5#5"`_;W0Q*2`H<F5C;W)D(&YI;"DI"B`@/3X*("`H;6]D:69Y(#]F=#$@
M*')E8V]R9"`_;W0R*2D*("`I"@HH9&5F<G5L92!3:&]W364*("`H9&5C;&%R
M92`H<V%L:65N8V4@+34I*0H@("A4:&EN9S$@*$]"2D5#5"`_;W0Q*2D*("`H
M5&AI;F<R("A/0DI%0U0@/V]T,BDI"B`@/3X*("`H8FEN9"`_<W0Q("AC86QL
M(#]O=#$@=&]3=')I;F<I*0H@("AB:6YD(#]S=#(@*&-A;&P@/V]T,B!T;U-T
J<FEN9RDI"B`@*'!R:6YT;W5T('0@/W-T,2!C<FQF(#]S=#(I"B`@*2`*
`
end
---------------------------------------------------------------------
To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]'
in the BODY of a message to [EMAIL PROTECTED], NOT to the
list. List problems? Notify [EMAIL PROTECTED]
---------------------------------------------------------------------

Reply via email to