Not sure whether this meets all the possibly undisclosed requirements, not
sure about the relation of row numbers and words, but this is firing one,
even when there is words from more than one page:

(defrule find-lines-per-block-ssn
  ?w1 <- (word (page ?page)
               (rowNumber ?rowNumber1)
               (type ssn)
               (text ?text1))
  ?w2 <- (word (page ?page)
               (rowNumber ?rowNumber2 &:(< ?rowNumber1 ?rowNumber2))
               (type ssn)
               (text ?text2))
  (not (and (word (page ?px)
                  (rowNumber ?rn1)
                  (type ssn))
            (word (page ?px)
                  (rowNumber ?rn2 &:(< ?rn1 ?rn2))
                  (type ssn))
            (test (< (- ?rn2 ?rn1) (- ?rowNumber2 ?rowNumber1)))))
=>
  (printout t (fact-slot-value ?w1 text) " - " (fact-slot-value ?w2 text)
crlf)
)

-W

Reply via email to