This is my all-time favorite bad error message, and one that is
specifically fixed in Jess 7. What it's telling you (or not telling
you!) is that need-allocation-entity, like allocation-entity, is an
unordered template, but you've forgotten the slot names and have
written the need-allocation-entity pattern as if it were an ordered
template. 


I think Mitch Christensen wrote:
[Charset iso-8859-1 unsupported, filtering to ASCII...]
> Hey,
> 
> I'm getting the following error message in my log file:
> 
> Jess reported an error in routine Jesp.parseLHS
>       while executing (batch-local recognizers/Columnar.clp).
>   Message: Expected '<-' .
>   Program text: ( defrule load-allocation-entities "Load all allocation
> entities associated with the parameters" ( need-allocation-entity ?row
> ?particid ?firstName  at line 56.
> 
> I can't figure why the parser wants to see a '<-'.
> 
> Much of my code is provided below, but I obviously have some local functions
> define in Java that I can't provide, (batch-local) being one, which parses a
> file retrieved from a URL (rather than disk).
> 
> Any suggestions on the interpretation of this error message given the .clp
> file below?
> 
> Thanks.
> -Mitch
> 
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> ;; Declare the fact types generated by the OCR engine
> (deftemplate page (slot w) (slot h) (slot x-res) (slot y-res) (slot skew))
> (deftemplate region (slot id) (slot type) (slot x) (slot y) (slot width)
> (slot height))
> (deftemplate word (slot id) (slot region) (slot x) (slot y) (slot
> width)(slot height)
>       (slot certainty) (slot confidence)(slot text)
>     (slot type (default TEXT)) )
> (deftemplate ncp-row (slot row)(slot firstname)(slot mi)(slot lastname)
>                  (slot ssn)(slot partic)(slot caseno)(slot county)(slot
> amount))
> 
> ;; Positive File records
> (deftemplate allocation-entity (slot row)(slot firstName)(slot
> middleInitial)
>     (slot lastName)(slot suffixName)(slot ssn)(slot caseNo)(slot county)
>     (slot particid)(slot docketState)(slot docketNumber)(slot docketCounty))
> 
> ;; Allocation of an amount to an allocation entity
> (deftemplate allocation (slot row))
> 
> ;; determine proximity
> (deffunction same-row (?p0 ?p1) (and (< ?p1 (+ ?p0 10) )
>                                   (> ?p1 (- ?p0 10) ) ) )
> 
> 
> ;; recognizes money
> (deffunction is-money (?t)
>     (regex-match ?t
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> "^\\$?[\\* ]*([1-9]{1}[0-9]{0,2}(\\,[0-9]{3})*(\\.[0-9]{2})|[1-9]{1}[0-9]{0,
> }(\\.[0-9]{2})|0(\\.[0-9]{0,2})?|(\\.[0-9]{2}))$"))
> 
> 
> ;; recognizes SSN
> (deffunction is-ssn (?t)
>     (regex-match ?t "[0-9]{3}-?[0-9]{2}-?[0-9]{4}"))
> 
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> ;; Module for recognizing columnar formatted remittance pages
> (defmodule RECOGNIZE_COLUMNAR)
> 
> (import com.informatixinc.rapid.model.core.remittance.DetailRow)
> (import com.informatixinc.rapid.model.core.remittance.Element)
> 
> 
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> ;; specify which facts support backward chaining
> (do-backward-chaining allocation-entity)
> 
> 
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> ;; try to identify all NCP Name rows (first mi last caseno amnt)
> (defrule find-ncp-row
> "Find all NCP records"
> ?name1 <- (word (text ?tName1)
>                 (x ?xName1)
>                 (y ?rowName1)
>                 (type FIRSTNAME|LASTNAME|TEXT) )
> ?name2 <- (word (text ?tName2)
>                 (x ?xName2&:(< ?xName1 ?xName2))
>                 (y ?rowName2&:(same-row ?rowName1 ?rowName2))
>                 (type FIRSTNAME|LASTNAME|TEXT) )
> ?partic <- (word (text ?tPartic&:(regex-match ?tPartic "[0-9]{3,9}"))
>                  (x ?xPartic&:(< ?xName2 ?xPartic))
>                  (y ?rowPartic&:(same-row ?rowName2 ?rowPartic)) )
> ?amt <- (word (text ?tAmt&:(is-money ?tAmt))
>                  (x ?xAmt&:(< ?xPartic ?xAmt))
>                  (y ?rowAmt&:(same-row ?rowPartic ?rowAmt)) )
> (not (ncp-row (row ?rowNcp&:(same-row ?rowName1 ?rowNcp) ) ) )
> =>
> (printout t "Potential detail row sequence found: '" ?tName1 " " ?tName2 " "
>     ?tPartic " " ?tAmt " at row " ?rowAmt crlf)
> (assert (ncp-row (row ?rowAmt)(firstname ?tName2)(lastname ?tName1)
>                  (partic ?tPartic)(amount ?tAmt)) )
> )
> 
> 
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> ;; backward chain to load the Positive File record(s)
> (defrule find-allocation-entity
> "Find all allocation entities associated with each row"
> ?ncp-row <- (ncp-row (row ?row)
>                      (partic ?tPartic)
>                      (firstname ?tFirstName)
>                      (lastname ?tLastName))
> (allocation-entity (row ?row)
>                                          (particid ?tPartic)
>                                          (firstName ?tFirstName)
>                                          (lastName ?tLastName))
> (not (allocation (row ?rowAllocation&:(same-row ?row ?rowAllocation))))
> =>
> (printout t "Allocation found: " crlf)
> )
> 
> 
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> ;; perform backward chaining to load a Positive File record
> (defrule load-allocation-entities
> "Load all allocation entities associated with the parameters"
> (need-allocation-entity ?row ?particid ?firstName ?lastName)
> =>
> (printout t "Loading Positive File for " crlf)
> (assert (allocation-entry (row 1)(particid 123456)
>         (firstName fibber)(lastName McGee)))
> )
> 
> --------------------------------------------------------------------
> 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]
> --------------------------------------------------------------------
> 



---------------------------------------------------------
Ernest Friedman-Hill  
Science and Engineering PSEs        Phone: (925) 294-2154
Sandia National Labs                FAX:   (925) 294-2234
PO Box 969, MS 9012                 [EMAIL PROTECTED]
Livermore, CA 94550         http://herzberg.ca.sandia.gov

--------------------------------------------------------------------
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]
--------------------------------------------------------------------

Reply via email to