What makes one word different from another one? Surely *you* know (but
*we*don't), and this must be a constraint in that rule.

If it is the rowNumber, than this condition would be logically correct:
   (rowNumber ?rowNumber2 &:(<> ?rowNumber1 ?rowNumber2))
although it were better written as
   (rowNumber ?rowNumber2 & ~?rowNumber1)
If it isn't, omit this constraint.

-W


On 23 August 2011 06:17, Cathy & Bob Crothers <crothers4...@comcast.net>wrote:

> I would like find ?word1 and ?word2 such that the absolute value of
> ?rowNumber1 minus?rowNumber2 is the minimum number and ?word1 is not equal
> to ?word2****
>
> ** **
>
> rowNumber are integers, 1, 2, 3....****
>
> ** **
>
> I have verified that there is a single minimum.****
>
> ** **
>
> I have tried ****
>
> ** **
>
> (defrule find-lines-per-block-ssn****
>
>            ?word1 <- (word (page ?page) (rowNumber ?rowNumber1) (type ssn)
> (text ?text1)  )****
>
>             ?word2 <- (word (page ?page) (rowNumber ?rowNumber2&:(<>
> ?rowNumber1 ?rowNumber2)) (type ssn) (text ?text2) )****
>
>             (not ****
>
>         (word (page ?page) (rowNumber ?rowNumberVar&:(< (abs (-
> ?rowNumberVar ?rowNumber1) ) (abs (- ?rowNumber2 ?rowNumber1) ) ) ) )****
>
>             )****
>
> =>****
>
>     ; do something****
>
> ) ****
>
> ** **
>
> This rule never fired.****
>
> ** **
>
> ** **
>
> ** **
>
> I tried  ****
>
> (defrule find-lines-per-block-ssn****
>
>            ?word1 <- (word (page ?page) (rowNumber ?rowNumber1) (type ssn)
> (text ?text1)  )****
>
>             ?word2 <- (word (page ?page) (rowNumber ?rowNumber2) (type ssn)
> (text ?text2) )****
>
>             (not ****
>
>         (word (page ?page) (rowNumber ?rowNumberVar&:(< (abs (-
> ?rowNumberVar ?rowNumber1) ) (abs (- ?rowNumber2 ?rowNumber1) ) ) ) )****
>
>             )****
>
> =>****
>
>     ; do someting****
>
> )  ****
>
> ** **
>
> This fired but ?word1 equals ?word2.****
>
> ** **
>
> Thanks****
>
> ** **
>
> Bob****
>
> ** **
>
> ** **
>

Reply via email to