(* Regelsamling för granska, reglerna talar om huruvida räkneord är årtal eller ej (det är syftet med reglerna i alla fall). Granska är ett grammatikkontrollprogram, på : http://www.nada.kth.se/theory/projects/granska/scrutinizer-rules-demo.html kan man testa gransak med sina egna regler. *) (* test url:er http://home.swipnet.se/~w-63293/F-eft-Kr.html http://www.hotel.wineasy.se/werbeka/bibliote/500tal/600bc.htm http://www.skolinternet.telia.se/TIS/indien/his.htm *) (************* Regler ***************) category taltagg { info("Taltaggning") link("http://www.nada.kth.se/~jsh/taltagg.html" "Jonas taltaggningstest") } datum@taltagg { X (wordcl=rg & token=TOKEN_DATE) --> mark(X) info("Datum") jump(endlabel) action(scrutinizing) } nnrg1@taltagg { Y (wordcl=nn & real_text.length > 5 & (real_text.substr(real_text.length-4, 4)="-tal" | real_text.substr(real_text.length-5, 5)="-tals")) --> mark(Y) info("Årtal") jump(endlabel) action(scrutinizing) } nnrg2@taltagg { Y (wordcl=nn & real_text.length > 6 & (real_text.substr(real_text.length-6, 5)="-tale" | real_text.substr(real_text.length-7, 5)="-tale")) --> mark(Y) info("Årtal") jump(endlabel) action(scrutinizing) } efkr@taltagg { X (wordcl=rg), Y (tolower(text)="f.kr" | tolower(text)="e.kr" | tolower(text)="f. kr" | tolower(text)="e. kr" | tolower(text)="f.kr." | tolower(text)="e.kr." | tolower(text)="f. kr." | tolower(text)="e. kr." | tolower(text)="f kr." | tolower(text)="e kr." | tolower(text)="f kr" | tolower(text)="e kr") --> mark(X) info("Årtal") jump(endlabel, 1) action(scrutinizing) } talet1@taltagg { Y (wordcl=rg & real_text.length > 5 & (real_text.substr(real_text.length-5, 4)="tale" | real_text.substr(real_text.length-3, 3)="tal" | real_text.substr(real_text.length-4, 4)="tals" | real_text.substr(real_text.length-6, 4)="tale")) --> mark(Y) info("Årtal") jump(endlabel) action(scrutinizing) } talet2@taltagg { Y (wordcl=rg), X (text="talet") --> mark(Y) info("Årtal") jump(endlabel, 1) action(scrutinizing) } år1@taltagg { Y (wordcl=rg & real_text.substr(0,2)="år") --> mark(Y) info("Årtal") jump(endlabel) action(scrutinizing) } år2@taltagg { X (text="år" | text="året" | text="åren"), Y (wordcl=rg) --> mark(Y) info("Årtal") jump(endlabel, 1) action(scrutinizing) } nnplu@taltagg { X (wordcl=rg), Z (wordcl=jj)*, Y (wordcl=nn & (num=plu | num=undef)) --> mark(X) info("Tal") jump(endlabel, 2) action(scrutinizing) } nyckelord@taltagg { Y (text="januari" | text="februari" | text="mars" | text="april" | text="maj" | text="juni" | text="juli" | text="augusti" | text="september" | text="oktober" | text="november" | text="december" | text="hösten" | text="sommaren" | text="vintern" | text="våren" | text="halvåret" | text="kvartalet"), X (wordcl=rg) --> mark(X) info("Årtal") jump(endlabel, 1) action(scrutinizing) } fyrsiffrig@taltagg { X (wordcl=rg & real_text.length=4 & real_text.substr(real_text.length-1, 1)!="a" & real_text.substr(real_text.length-1, 1)!="v" & real_text.substr(real_text.length-2, 1)!="," & real_text.substr(real_text.length-3, 1)!="," & real_text.substr(real_text.length-2, 1)!=":" & real_text.substr(real_text.length-3, 1)!=":" & real_text.substr(real_text.length-2, 1)!="." & real_text.substr(real_text.length-3, 1)!=".") --> mark(X) info("Årtal") jump(endlabel) action(scrutinizing) } basregel@taltagg { X (wordcl=rg) --> mark(X) info("Tal") action(scrutinizing) } ordningstal@taltagg { X (wordcl=ro) --> mark(X) info("Tal") action(scrutinizing) }