Hmm, thanks.It was very explanatory that Jess does not work like prolog. So, now I would ask what do Jess-people do, when they have to define nodes with 2 coordinates or an employee with id,name,surname,wage?
It would be very confusing to flatten all the data. I guess there should be a way to do it. Should we use java classes for that purpose or are there different ways to do it? Thanks for all replies, all were very understandable for me :) On Mon, Sep 29, 2008 at 9:14 PM, Gary Hallmark <[EMAIL PROTECTED]>wrote: > Jess and most other production rule languages do not have Herbrand terms > that prolog-like languages use to model tree-structured facts. In your case > you can simply flatten your data model to a single fact with 2 x and 2 y > coordinates, as Hal suggests. > In more complex cases you may want to assert several linked facts -- but > your rules may need several patterns and tests to put th pieces back > together again. > > > Levent Kent wrote: > >> Hi, >> >> I am a new user fo Jess and try to get some understanding for the engine. >> I cant understand why the code below does not work. >> >> (deffacts graph-links3 >> (link3 (gnode3 0 0) (gnode3 2 1)) >> ) >> >> Here, I am trying to describe links of nodes with 2 coordinates. >> How should I do that? >> >> I also tried this version: >> (deftemplate gnode (slot x) (slot y)) >> (deftemplate link (slot start) (slot end)) >> >> (deffacts graph-links >> (link (start (gnode (x 0) (y 0))) (end (gnode (x 2) (y 1)))) >> (link (start (gnode (x 2) (y 1))) (end (gnode (x 1) (y 2)))) >> (link (start (gnode (x 2) (y 1))) (end (gnode (x 2) (y 0)))) >> (link (start (gnode (x 2) (y 0))) (end (gnode (x 1) (y 1)))) >> (link (start (gnode (x 1) (y 1))) (end (gnode (x 0) (y 2)))) >> (link (start (gnode (x 0) (y 2))) (end (gnode (x 2) (y 3)))) >> (link (start (gnode (x 1) (y 2))) (end (gnode (x 1) (y 3)))) >> ) >> >> I am always geetıng the error message: >> Jess reported an error in routine Funcall.execute >> while executing (gnode3 0 0) >> while executing assert from deffacts MAIN::graph-links3 >> while executing (reset). >> Message: Undefined function gnode3. >> >> or >> >> Jess reported an error in routine Funcall.execute >> while executing (gnode (x 0) (y 0)) >> while executing assert from deffacts MAIN::graph-links >> while executing (reset). >> Message: Undefined function gnode. >> >> Some little help would save me from confusion. >> >> I hope this message will be accepted by the mailing list, because I am not >> sure if my messages are delivered successfully. >> >> Thanks, >> >> Levent >> >> > > > -------------------------------------------------------------------- > 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] > -------------------------------------------------------------------- > > -- Levent Kent
