Sidney,
Check your parens in the deffunction...
I believe your third if statement closes too soon.
As for the defrule... check the syntax on your predicate constraints.
I believe you need an ampersand ('&') between each variable and ':'.
Al
On Fri, 28 Aug 1998 [EMAIL PROTECTED] wrote:
> I'm only just making the move from 4.0 to 4.1 so I don't know where
> this crept in, but the following parse fine in 4.0. I hope the solution
> (on either my end or Jess's) is simple, because I have a lot of these,
> and life in 4.0 finally became difficult enough for me to make the leap,
> so I'd rather not go back!!
>
> --Sidney Bailin
>
>
>
> (deffunction extract-pegs
> (?string)
> (bind ?pegs (create$))
> (if (pegged-p ?string)
> then
> (bind ?tail (sub-stringX (+ (str-indexX "?=" ?string) 2)
> (str-lengthX ?string)
> ?string)
> )
> (while (pegged-p ?tail) do
> (bind ?next-peg (sub-stringX 1
> (- (str-indexX "?=" ?tail) 1)
> ?tail
> ))
> (if (not (eq (sub-stringX 1 1 ?next-peg) "?"))
> then (bind ?next-peg (str-cat "?" ?next-peg))
> )
> (bind ?pegs (create$ ?pegs ?next-peg))
> (bind ?tail (str-cat (sub-stringX (+ (str-indexX "?=" ?tail) 2)
> (str-lengthX ?tail)
> ?tail
> )))
> )
> (if (> (str-lengthX ?tail) 0)
> then
> (if (not (eq (sub-stringX 1 1 ?tail) "?"))
> then
> (bind ?tail (str-cat "?" ?tail))
> )
> (bind $?result (create$ ?pegs ?tail))
> else
> (bind ?result ?pegs)
> )
> else
> (bind ?result ?pegs))
> )
> ?result
> )
>
> Rete Exception in routine JessToken::tokenToValue.
> Message: Unbound variable: result at line 334: ?result .
> at jess.JessToken.tokenToValue(JessToken.java:39)
> at jess.Jesp.parseSexp(Jesp.java:125)
> at jess.Jesp.parse(Jesp.java:59)
> at jess.Rete.executeCommand(Rete.java:1116)
> at com.kevol.fam.rulebase.RuleLoadUtil.loadRuleFile(RuleLoadUtil.java:99)
> at com.kevol.fam.rulebase.RuleLoad.loadCoreRules(RuleLoad.java:165)
> at com.kevol.fam.rulebase.RuleLoad.<init>(RuleLoad.java:77)
> at com.kevol.fam.Fam.main(Fam.java:195)
>
>
> (defrule retract-concept-justified-by-obsolete-negation-2
> (declare (salience 98))
> (assert-this diagram-fact ?bad-fact ?diagram ?concept
> ?arg1-name ?arg1-id ?arg2-name ?arg2-id)
> (negative-justif-2 ?tag diagram-fact ?bad-fact
> ?d:(or (eq ?d ?diagram) (eq ?d .))
> ?c:(or (eq ?c ?concept) (eq ?c .))
> ?a1:(or (eq ?a1 ?arg1-name) (eq ?a1 .))
> ?i1:(or (eq ?i1 ?arg1-id) (eq ?a1 .))
> ?a2:(or (eq ?a2 ?arg2-name) (eq ?a2 .))
> ?i2:(or (eq ?i2 ?arg2-id) (eq ?i2 .)))
> (justified ?tag diagram-fact $?fact)
> ?fact-addr <- (diagram-fact $?fact)
> =>
> (assert (retract-this diagram-fact ?fact))
> (assert (retract-justifications-too ?fact-addr))
> )
>
> Rete Exception in routine Jesp::parsePattern.
> Message: Bad slot value at line 538: ( defrule
>retract-concept-justified-by-obsolete-negation-2 ( declare ( salience 98 ) ) (
>assert-this diagram-fact ?bad-fact ?diagram ?concept ?arg1-name ?arg1-id ?arg2-name
>?arg2-id ) ( negative-justif-2 ?tag diagram-fact ?bad-fact ?d: ( .
> at jess.Jesp.parseError(Jesp.java:1481)
> at jess.Jesp.parsePattern(Jesp.java:1337)
> at jess.Jesp.doParseDefrule(Jesp.java:982)
> at jess.Jesp.parseDefrule(Jesp.java:867)
> at jess.Jesp.parseSexp(Jesp.java:142)
> at jess.Jesp.parse(Jesp.java:59)
> at jess.Rete.executeCommand(Rete.java:1116)
> at com.kevol.fam.rulebase.RuleLoadUtil.loadRuleFile(RuleLoadUtil.java:99)
> at com.kevol.fam.rulebase.RuleLoad.loadCoreRules(RuleLoad.java:165)
> at com.kevol.fam.rulebase.RuleLoad.<init>(RuleLoad.java:77)
> at com.kevol.fam.Fam.main(Fam.java:195)
>
> ---------------------------------------------------------------------
> 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]
> ---------------------------------------------------------------------
>
>
Alan Davis
CAD Research Center
California Polytechnic State University
San Luis Obispo, CA 93407
---------------------------------------------------------------------
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]
---------------------------------------------------------------------