From a8a1f91e46963a7fb64d97c38b17e67ad16a98a8 Mon Sep 17 00:00:00 2001 From: aarne Date: Thu, 5 Jan 2006 22:20:35 +0000 Subject: [PATCH] HOWTO update --- lib/resource-1.0/doc/German.png | Bin 0 -> 11508 bytes lib/resource-1.0/doc/Resource-HOWTO.html | 135 ++++++++++++----------- lib/resource-1.0/doc/Resource-HOWTO.txt | 25 ++--- 3 files changed, 83 insertions(+), 77 deletions(-) create mode 100644 lib/resource-1.0/doc/German.png diff --git a/lib/resource-1.0/doc/German.png b/lib/resource-1.0/doc/German.png new file mode 100644 index 0000000000000000000000000000000000000000..ab16ef27e3221bafa3ceb3048e1c1664731b7ecd GIT binary patch literal 11508 zcmeAS@N?(olHy`uVBq!ia0y~yU@2o@VEW9&%)r3F`6kDkAZ>V|Ns9t zX0-ffU|?V@3GxeOaCmkjje$Xd!PCVtq+-t7xp(`v=m;JEuJ$&?X1?#TcgOwaS>6)1 zzPLKZv6ZQdN#xD3hx=zgfBTX7WBSLxf&XXD{`2d8{XN;{{;MTDu% z8Y#IjUjEf>?V;F(ueLvEtbAqleg5&?kG~pLc!>9Kw|6o6*eWKgj&P zufd&{e|7&sE2^DMs#vP0G|HKxBgp7%z~Ci(xH zClA}wMLBHFKQCrVv_1d)2lJzX!<)HS=GE1lI`Z|!aowe+Hme;TyqvZ~^@GiH`PU%T z9KgE`}f9=vIRXUy74GZJz)*Od=7Ri}*%;!1Y_cgl9 zH>Uqtz-JIVzaf1g^E~6}$C@v&KM>r;Jg@lfR6)frbv8z+jql&g{<%l?{H*s4-~Uwq z+#`K{nl^K7n2DCv`JLWh(rkV&;JvUsb$0fLIeVPmA6=}&{Ni)=S! ze#V*jlX>D@v*z?*7w>|S%Y_6}6&wupU%qCFsly~eGHM{qRgu`X_ zmPCKGt-057eAOABZ(i#P|9+kEwWMYHhf03A-CBDbXIx?Y%I)h>!9IWcgN-lWcy=6U zKJ#3*=3Ya3(X7DV*^3)F1Hzl_Ds1P!{m^>)kZADs-C{#`4sFFj@2`KEs> zc{yjFfBJU)>W>94lNZ(V|CrVNGp48gtZk2B;062MYMzLrrMhx<`ClIzR?pFYE5BRB zf5DTVU;ifFD^s1X{c%FciA$$`9hTa#qaeS9`{RU?f}JcsS|(odQ4oJ8TPQ1MmAWwM zY|0#ie@0y2wSUI6wZA)X;QiSLGuL*0x*U4-`RWf9ue5(`UAxoo81J;7G1vC&;OKAf z`*>~tGt1BZ)pL)!)~q}Dc=hXFSytyP%`IaOKNqqoRIa?{8WvTYrW|wVIhRf0*BzQ4 zwmU!OvJ-#Mx#p?W=758LF3&wv#5n&`Mbd4C{R^4(dOp>7JuckMR?GEB@zLY8?Bdceb(%1*S(+{t#FOqqC7Y@G4-d&k;CcM z+cYgA`Aa*T0;l*}+BD`IKj(2^?-5gtq9uz|<|kD!1@q)QF5E2lNn+=by$?S4Y1%9- zYxz5GV#SI(JD+@TRkS&Hi!Y*nvi9~j-D&+lr#ud3^RLRcoM=3mJ@d1s*`8pQ^Nkx> z7VrhBJ!K5c__2s#-j6aCp#b)iBF|5LI$dJ_{CM$-`EyRqv~{;V9dN3|KK*!c2Vcdt zE0d1f%5;gm-}zBSI{D?vIh7}8ue?yRdWKiZ`I#SGwqBU~eYO?@yOM4ca9jA%B_*j71(!o^QZLlmLFa8bc^mMeoFWt z_uW>b`r90S|D4kH6Om7K(q09fFI@jK<@~(O4?FcXb+8!xTFd@I_+H2q%ikwk)fWcO z+;MaIcbT)Xzt+jBFu^Z$6JeyN|VcmLI8o{B}UKk0uk zQJ?wdN_EzYKjpSkr;=Uo?LeI%d!tEy)IOZ}ePjM-nWo&WZF|3dcn|4Tm2&s;4O z@qbUsf*cKpqsEf`{v7@*6k?NZz5V(6eg1)Gi;J&#KC!*qZ$4#R^@c>pH_d*JI77>? zeZCzku8Udjzw>3mw)M!@GVRv?%{?8>&{Y<^8&`(dapNjSv);c{ft2_ zOyKu|=89>LY?7YH_uLoI@y~Bgf1&h3!q)n{=S9Znr#>jZ<#o<_InKeJqNyTuRV0>{(;9lZY%fPv`c*1|6n8k ziX&`)dMiIX;an;sr(XApLFL|z=O5dTJbL;4(z6p9(>mrG3N$O(H0oS)+qC{~tK6Q~ zFFOyG$zDv=tg4mU@xjIxNe>J^ zNclfKVy3mLFpB5J>uSdRe=hL86R~0D=`WqZfB)+DL+sZr64GPX<~@J)@yY7=f1CeQ z%rZPs!8So+*UR0<7w*{>&~kmsL&bZ}EZbEBzp5#2tk}2jc;Ugz-~Zb51+U+iz%}pb zvx^(&MOq#D`SagT$8$S)Y??o4T>0Mryf{klm3$hHft=u#;(2um=QBm-y)*2n{*`Xu z^*v&pjG1)P3~>Rj2bF&JKa1P^PV8LDXUy3DWxC5lLAxDdUrtC)&$OMre(6yIH*+?Q z^FK}h!b0hQh%t^B##d`ry9Nl<&_N4Eum?D02;hTyU-c#H~>UxI0Pc}Y~ zln*XHQZ!RCjEK0lg=-`{q6gciyPPd znDMXI{!a9ZSmmbFc&2^A(_S4ve0FQ-ugl7!iOf~kEy7E_DmbZcde*?G+neD$y?0U_ zhupn}W%o|aUc7tt>X%*oU4{$VZJm|>M{U_$`kX^n`^H!O`HY>N3D5q_<8ZJ4KGSBo zi}ZzA8wzw3lq&BE@aH=4e_21pV6JZEPvM)g9|PF7oZEP0vH#v5mamFe_AgO-aM+mj zFw;AguxWg}w;RlK_E*GhKC@i@Pt>BA&$C+hoc3*mHWwhjgf0T9WHHtlv*&k zTrmE{L>Cq}y~5uAPv5oQU{8I`=e+pkVm^oUDnYX9vguHJg&!(N^Yfz{Jqn8r$em?3Yh<&f!M-S_w1$v^su-=ZzI z*dMx^cO*a5h3!u_m-|;8Yom=_YfYW+q|TMgx_v+BXomFr&uQGZdtEL*JL>#iY@w6F ztCyX+v(Hpac=+yrXvMebUqs(VKl9zwAkJUu)ILE-WbK`bXX|_We-%yse0cj8mp!~Q zS6aO{$vM6vx4wj9Vzpw?sb2T9?ZJlE-!D7#;e%lKq^*|H{Tu8*&P%y<>y%skRs-GA z)MLu_b9MG!<+TdGVz^9NEXj=Vrwn)hCVs7@DbdDiqKBBT)idAnde8T?OTUy$((JC> zkFPbir$6^s%3Y|d^n!Q$rJ!&I|D>SMYkjXSytwP|U*%`dJUvB!oqvthYpzchPM>*r z%O^hORaPIDOy8ws^P_rFP0j9A7uq{ZnkG$K|GhVN^{rF8%V+%hdMUW~`t%=H?ac*i z=Da*J+opo!I`e}1|5XkusvQh+=i4f`1UM?ayY2O3Dx=SJ>gO#Q zSzYsXhnG!0`H$7gXM3B>Eo;&1QonB+iO<dEy^lsomJw>Mey^UVN>CpkSn z`fIt0wr80O?K>5qX5%(7%g*~qbh_b}^h38#3NUP+r=ZLi*21KF@#Kq{eg3hPA7;$I z^JBwdsp)(Boa>fx1}L}0T~Avs_gZUTh1%inAUT_5sgJYOZ`fUpYx~U=!h522N{y_s zX`;0BQBwy{KeaAZVAmezM;NU?rqw+ch|SAIqDUaH}%A?*#r!IFgX-GE*qPo33i@WePgmD{?mIUy-%4m*O-0bHt=G0Q zi*QNgD|Ktk(0$mV$SCN``@4Ad^axLFC1tMojatrYZ+7weWj->VwO8W7u0Naqy^-^K z_U4R^vHiT*EY~kDj+FgMIgo72wRay&dfktO&v_H4JwCV1@`mO5NVBF=u{9Y2UA{8U zKi*iD^Y`VJOUm1fYki-+3-VjaX73!T}t#d`L?z2ADlv2NS z8(do6 ze!tw`8~WWt|8DQA-(R#ob+hi3u{ky=?fJbEV$3Y-1+1d8x82tdagEf!Ia}gh+t#W% zIxp8c6oww`4Nr;BypyW_(L(;buHoJFH{bj6)LRF!E0@jK@Zp8|;cMIP3f=zIWo*R8 zU-3Vn$bMe+TxtG7my`?7?mm?=LZ~}aWD3E z)mh_;JKxn7xjYp7@ML*l!F0=4{$FsAXHb)es08VkM;+~Z{D$n9r8^SEvSeAhZ4t{IWwVD~YCiL7ZgwuVbC&!1 zi_x*`XmV)vikiw=+2d;#eK_;mXMykjwzt_*j~=|3{r8Qj?5~!5_wt$vN1S<8-b^G_DI3;!j+f*0N&B{(T#(k8%3M zI4!B(&Tx4;gO$n4*h6nLW=-UIemPM;o&8s}n)b{5U|P zv(#>c7c|D5-YRFjXz`=OnHK%eU4Or0db~)(X6}``#~d0j`9EFx_L|lImD`kK^EbTR zr`@0UJofe1M=JLX8Wz5;zUnmB>gylP!c&{rNLT4ZZw z{J3lGFIH;@L-kVy_gW7>W{LeSQNQiOw@zoJto2*D1m`k7J+wGJ=w8?D8Cv}{C(c@) zJ)b^>`?dV!Rji#ob5=31o1gn9HrM`ki}Bo8-Gl$~9x{}QFZ8Kkd;Q$ws=Hd^d;Pr7 zh9{p~?xyT=>^r^frFwwm#LP@>wh1dcZ54h>=RQ4{ToWy*86xi(ANA(i=Wh9zdzL#pWhGL)AzQ_Mg zoNRY*v+kI4cTIq5|Fn6B7K_!*YM;O8%*!kC9*?(`REb*hDQweOS}rhozx?lD*F}-{ zrX5tCbK5fb#L3fh-8Bs>zG%wNvlZW%-gjWZhZ}NJ>H=-2pGi3Gw|J}hcfqT3DsQ;u zO#4$=;M{Ts+_Bq2of!`A=5HUs#p;K#}wO^dsdKhoesHzZtZy zchgJHjQz*9p6}qQKH_P7gF$ZjqSi+bB&K~ADeQc`hr7qwTeoZd!5s!3={)M9CuYr6 zf2I5{R`>7C1DDG?Z&;l^u<_TIRF|GPE`95kcN}-#^Zau4JI_C#+R~T%e9UX$gXJOP@*!)<~Z_syXp)t5L(1Jl-%Hx%VvpX3i4k zxXu4eTWeXu+#lOyj`2bP&1jYW$g%s| zo(i|x?ShKuBf57Kn0)&6b(xCImN++_E8k?F>FUX4pYLYv|I)COeeRc?FWFnpul_rS z@!f0bX=MkKWuC2*|D9PcTw}iGp3jFu?;`UBep|jw{k`_)7M^unswJ%00_n6AEi7I~Q>%HJmyJwLix;^L?M?N&0k#s5cDuiwVurmm+V*?BVG zc5^}1k*NMNiFY?;-D|(d6_On{0Nz2Xr#HXew>iD%TAx7kwvA*i{ zA8!vU*Te~`PT#Ql`IaeKi#Oc;=r}Fr5le7Ur?YH{k;L1&?7cO*JFgx2`t|bL#TGAB zuge`=TyY}e^79pExpEd(@t5X5xX|<3_TJ=w`!}BJ33(BJV-|sR99>32%x5{5~<%1;0llDOqOuT)nI2Ud6oFKwDbJhO>C>@>})M$64lMlOMDfl+?uv* z5i|d1qh=LLW6|#0+b3VFx}IQL_ft7He_wJ%NA;V^voCBv?s<08j43P5ShnCx8k^Gs zX5;6k%cs4b`QgUqN4>XB%iZ{;=&P-ec62tE4)@aK_Kdp@&k&s-)iXURxN$OTRIs6S zCCA2PhXgh*W4izLJ>TV!3$wbe-1Oi1;f8imPfY0g6M~zJ1=C&oBpuUT`7S+~KeMY^ z%=*ipEmul~`YU%Aitn7~-J#WV;J0hMU(SSim$J&A$J&1qUsFHJq4dGG%iZgqKU#BT zcbCn|tYfvguQ`Qx9gJ^^?&plYtX*>R;NHVEt-Z_Hm^t0Uzy9;I{5QL!O?SR1YqrSC z+OstWz7*!UXnZ^wqpOf8{XT)`+GNGoAHSOXm?Zu;E=7gESNp?k=O-(FG-f7O#j zEhY93EVJi&J` z&o-@Hky25%Kh5Y`%g-H!h5ah_?Nbs>&p0<-Q+;RK!d|OTHCwBI@93FnlNWW*>yVY0 z*)Bhs#_Nuj*J;;kRrg7p|9ZnL)5dM0pUt_h zfEP^feopIq9LTZ4|Mi~KC!g%QUvJB7DKyBD5!j=oC85}(zOy~CT2d*w;Oucb2lw-* z8dH0O%=jY<-LB4g`{Tl)ioP!f9(*nvAGuuY>-)Q1#B!x(;*a7~xz96|eHFXYJs^dr)BoZ+}BU64sSbiyvtohE_BKAhacD8@d(pfzfGw!^7fjh%GRIi zg2hVlc6+pq1^Rhx=J6=cz8t@O{V5}PW48xw4o}{f$Vn$wF5EP?!lu$UZT^WXx8C?V z+VrLLP1`j~;nyUM)GsUco_7y)KjWWK^LfP!`#HBCP0ehov9r<8e4{;`VZPt7$yfNc zPR;yeeyG^W{3%{HVV3toBD8r`I35ytm7|WlzPMKZg#qDzh4|f0DUl^W^zI z>9b>`vq8F9Q{xefHS7O>xpkuZkEfQoTy>iCt^czRCNEdH%u&B~ zw{ul)f8YMYtM632+4ubUn&}T-DQdiqeOuF{wPnW2zHMfkEoWA{`qq0*k9?AIKj7WB zCEF+eU0>P#RY}m*>gmUm*G_hMDcXdc3g~zMbuiFYQ49x$k(Fq>z1Lt>P(?x8?%DlC zTNLAZD`rnIlomh#%W=)Wyycf)q|OL2SUB}ivWV*Wuaj3gZ>itEL{Rti_G?+b`p;Vr zo;wqlSzO)y@ZizwTmCI9o2fkeF{72f!T)U^JM7ujjq7e@zBAvoHgMIoJ>1omk-Y9H zP6<<-t=1h}7i{p~B>P_W&UZp?|N5@|u3y}{+(hn3dd%jzxj*lJ>)f8RX#2X}sTKJX z75kMU*X~<>=Tf%*!z+ti`_nDvdp&X#ySOlQ@$d5MSAYNWxW3X*Nh!YS%cGm&hY$Uk z`)$IaiY;5$Z#0=E=Wm}e^YO%U?Bz@MMDJK1xh+m;-YxfNvHmJn?P-tZPhThPTN`qJ z>d!1TSxJ%J<;OYAOZOe`Q(yg?X^E-brfX?WPwcOf_x)Maxwks4WohUNGkq)bGXBL} zWf!VG<=@)o`C(?t+OxMzoO7cWoc<~NcfNPi)mWxur%SH+X?SYQ+41b^)C~PSR~fB1 z9&zUf-{s@+njn>VT>gxk*E314ryq4{TK2C!cWcA*owX_5eEAMqR|DJ@{4zOH$CD~dHuefYBPc`JO<@`SL-V|5CThC3u z%=N-D1|7h}VW-&c6E4}b< zS4~o`&Un)?!JlEaw#D_G?tgY^6qfRrKgzq#dP?V$wQ#Au?2_p9iDmnGFNRjkc_#2< z&r#_jPQi7j%sY8bX3j16UFP;e$i{f$%y0K{YjrHE)e5&;GK;ZvPnq?wZF$ISr<0Wj z_D9%k{^_K&u72Djx}t}MLsPIJ3}vd!|fzgEijmuy$%m(k&IS${N`?JB=P$NW>p z;-(>1>;Cur{k(8*h3b?y;g1F1ZCi5b;|Yajx!U_x-wWm)-tb)Sluq31fOX|jmDo_6#rea`D=Sr^znq%EuX%KIZfM9uxb8;e@8Bat6z?p zw=YfW$(|y2tsv1O!j&H$yJ@w|Sop5w=kc8~jz{DVO4|nmL&uowJNeJ3`{Kitf!-uV(c!e^>F8IHV|MD(A{?`*;ha~K=nJL%uZugdJ zHu7aBO2gcPzh13av$M7Gs87$oH#=Ls*ky|luBPPd;(>w|}~9 ze*Szm+rL#lMrlWvpI*gtZ2zl|?~4*2ZMq(!a{9Uyhkp3QY%QTu&3QA6Pn5bOHQl`6 zx@Ml~-HxNLqil-5rRX$wzlyT{^5FEx6tRx_Q@;0B$)4Bp*sHir`+NVR&KI9|?z$Ee zAZflMAgkigF7|mz#_sPMmq%PI&0M@_hS%ejPCP6cUrx+^pgGn2dP{rY$~`-aY<4@E z+AL9fy}z)lJu1?+2U>&(A^5TaLtGM}Bhc`Y6wUl$%zkG+}`atowyM*T{rUj)( z{fxJibGCfG=ia)&#NF#GR_}iJ@qK$`jQJtqJ1Jip@>O+LqyV@sW6txPr<#peDy!Z3=%#Z@zHIJ)z z+-2iWS5%Lg%XOELU&c=I3h##xTW1&F{1z)E+FHVIBP?Zax5rd+=_#S<>WaQ6);~9X zK5ydJ#}ogV3C>&dSwQP>vgecC((^ukeDmzx^PAs4f04KtSG)Yvv)K<`{(5fl@6Unj z-#3fjo4)1#oc%rS8C&HZPRjbJ_<_g&Wo_nl`QyqfbSm2NVtPCtNVfAmw!F1whv(v? z&GYIu&I^p{|Ioqy>yP|)ImO2Ghz~y8^PXEw>U=G*?Dhl6ebbM8jrh>hzjE;!_Kx38 zyH34)|GQ+BTuHr6!Lw)8D(g68PcO_q?7Sy6<|J>sTsgDN&%0t7SKE$@EU52(!B-I# zZ@k(_S=31KJ|q9~$6M#^Z+M=wt+v=EeK+6x#^pcCu9a@r3bJK(eJxjEv-xntkEzS5 zRn}d&bLjBpBdZQGUkq=vUZ~sM1(%xX!2s^{ha}KIr}e^ ze`k#h^IbQs(%dFR^r^?%r~D5s*MZm5csd zC}VSYb(YPO0|lGGi*cAxe&#{81} z`D%rNeGe7uvi=s@csR)BR7A|Ico36de!O_krXG_`lxa6 zc}Q z@%fK?(-`kE`)^zr%XeOuYyIS;we0J?mYS-q)73mG@jd>Iap~%Z1kIY1XS5bF3CyKM+()vM_MAeapPu?u=-WvAgj!WdE+r1xV*lgPI ze3$S%A--LcKGqa{Tl_}-a?|AM$o_!qw$BVt8wIW0{m^o=Bkzv(z6YAuEz7;qUt3=J zYrbio(7g2gmgOyck1C6QHT_())3h{-{|xVW^%oZN_;vSxdS!MkSZ(dxL!UiwZVE!AvILY(&YwBUf2!d*@5|Sw@gaIwGHn-4y8PkD>JagK zIh*ae`}2}))sKAhPCp!+SN6jC>YDaYKbr~qEBpifZ028S=nvi?{zR^clHFmwp@GS&K?mt z4dFLewOXGa(n_jYt6n$h2d_~0$-0eA6(nU!avA?gU5_+3bHCGx znPJ11H4<4w#iKhpa`H>} z2>H7)M}0VPKxxjFc~S@W-l!__oiNAYVWW@Zq+M2pj`I@KB76;>9A3LmH}$j6vWBaC z?T2*NZ%;WZ$&p)eqe=U4@++O4E$P-X*A?w*U-m`MrgD-*u-LQ81JY}szu->jZshs+ z;LE)ur7aTzFMc%Hx#{fE)q3wY-rLg=uD5pkW6PflJFC*ph26OQ@r?Z5;sfdrW?t9u{d2`QEXnf3d81#^Lm2o7ScU`d6O+39M*R`gxK?UGnLBsoy3x zdl(zvzlc~-`Z2TO8S~%p{Yh80oSE^J{n5W>}Y=J|bkF^?hs^F~h2#9F&~kwQ_I_&ZkJ-|=wM zhbcj#6=JoecbzXNeB844k?T9{2^{JcNiAFAEqHftUQiVMGo)p?_}Y)E?<+av9hv<9 z-vAG;}#M{Q(aNnbwr#>eYORPS)IeY88%I)*MCTyM; zD|EitGv;#tiR!3FmnKDSK45G&&FhQvl$dOLx5LU$a+hwa>YuQ^=uXyIr+kSID>=_g z$Go}L@|-vO#i~Qad*3xIf3T~|`hn&SgU@^w3t}#mKK$4}Nh~O~;!pCM))4V|r@x1< z;PIC`Z~k!=&-tsShi`qjG3%7ypLKlwS3m6fedbEa(KFfSmi_v0ruA62XK06e>iMT^ z8dI{4Y(DqAGuo{xsPxgy^;!?5<-)E$+UbU|GBmWCU9ZyX@ZnWaHrH2RTSdCH;=!cl zCN^tU9WCyKuC_!hEnOwXAM)qKoSrrji zyV=)O_#8gGD$M4wsW&^sps0@`anH7`ewY}lJ1_g1in-02tfQB!xGN8;`mYr3zfr$^ z%X#0GQXk*^{u;AE)v2}O7`OSQ75x2<&!=3z$Z@s(_zkYrCBIhj_pjXM$)c|zRh3)e zm2Ngo>u~YGeFAM-hl{^%TRHV1XI1&>HK#r>6s}3p-DqSp#p~HM^8=T+m8OIiNk3op zAtrXs^|t4q)Wcfcs}|gH>u*(^`u^4m{`2q7^Gq{ZT_L^~cCDXH?DhvQf8DKGaO3i;BbUz~ zs*1Xo>{YoSYSX-r?7!NM3zS{hIweLo+wAE|RMb?%I@NU|y{l|RSljZm7aoLO@KsuR>qE?%TOYUVY@OCK z)hjn`m9C9RR844jZG~Rx{0K$4rQB*#*E-W*$X$Qa9H2h$^py|9Ef9vR8~(cgKl7^R XDGK|_&xbKEFfe$!`njxgN@xNAQ^+8M literal 0 HcmV?d00001 diff --git a/lib/resource-1.0/doc/Resource-HOWTO.html b/lib/resource-1.0/doc/Resource-HOWTO.html index 9a68e4788..f515c5d41 100644 --- a/lib/resource-1.0/doc/Resource-HOWTO.html +++ b/lib/resource-1.0/doc/Resource-HOWTO.html @@ -2,66 +2,54 @@ +Resource grammar writing HOWTO +

Resource grammar writing HOWTO

+Author: Aarne Ranta <aarne (at) cs.chalmers.se>
+Last update: Thu Jan 5 23:19:40 2006


-


-Resource grammar HOWTO -Author: Aarne Ranta <aarne (at) cs.chalmers.se> -Last update: Wed Jan 4 11:29:41 2006 -

- -

HOW TO WRITE A RESOURCE GRAMMAR

-

- Aarne Ranta -

-

- 20060104 -

-

The purpose of this document is to tell how to implement the GF resource grammar API for a new language. We will not cover how to use the resource grammar, nor how to change the API. But we @@ -74,7 +62,7 @@ in GF/lib/resource-1.0/. See the resource-1.0/README for details on how this differs from previous versions.

- +

The resource grammar API

The API is divided into a bunch of abstract modules. @@ -97,7 +85,7 @@ parent of the top module (Lang or Test). The idea is that you can concentrate on one linguistic aspect at a time, or also distribute the work among several authors.

- +

Phrase category modules

The direct parents of the top could be called phrase category modules, @@ -120,7 +108,7 @@ one of a small number of different types). Thus we have

  • Phrase: construction of the major units of text and speech - +

    Infrastructure modules

    Expressions of each phrase category are constructed in the corresponding @@ -163,7 +151,7 @@ modules: The full resource API (Lang) uses Tensed, whereas the restricted Test API uses Untensed.

    - +

    Lexical modules

    What is lexical and what is syntactic is not as clearcut in GF as in @@ -205,9 +193,9 @@ different languages on the level of a resource grammar. In other words, application grammars are likely to use the resource in different ways for different languages.

    - +

    Phases of the work

    - +

    Putting up a directory

    Unless you are writing an instance of a parametrized implementation @@ -260,21 +248,33 @@ of resource v. 1.0. This will give you a set of templates out of which the grammar will grow as you uncomment and modify the files rule by rule.

    -
  • In the file TestGer.gf, uncomment all lines except the list - of inherited modules. Now you can open the grammar in GF: +
  • In all .gf files, uncomment the module headers and brackets, + leaving the module bodies commented. Unfortunately, there is no + simple way to do this automatically (or to avoid commenting these + lines in the previous step) - but you uncommenting the first + and the last lines will actually do the job for many of the files. +

    +
  • Now you can open the grammar TestGer in GF:
              gf TestGer.gf
     
    + You will get lots of warnings on missing rules, but the grammar will compile.

    -
  • Now you will at all following steps have a valid, but incomplete +
  • At all following steps you will now have a valid, but incomplete GF grammar. The GF command
              pg -printer=missing
     
    tells you what exactly is missing. +

    +Here is the module structure of TestGer. It has been simplified by leaving out +the majority of the phrase category modules. Each of them has the same dependencies +as e.g. VerbGer. +

    + - +

    The develop-test cycle

    The real work starts now. The order in which the Phrase modules @@ -330,7 +330,14 @@ with the next one. Actually, a suitable subset of Noun, Verb, and Adjective will lead to a reasonable coverage very soon, keep you motivated, and reveal errors.

    - +

    +Here is a live log of the actual process of +building the German implementation of resource API v. 1.0. +It is the basis of the more detailed explanations, which will +follow soon. (You will found out that these explanations involve +a rational reconstruction of the live process!) +

    +

    Resource modules used

    These modules will be written by you. @@ -354,7 +361,7 @@ package.

  • Predefined: general-purpose operations with hard-coded definitions - +

    Morphology and lexicon

    When the implementation of Test is complete, it is time to @@ -434,7 +441,7 @@ These constants are defined in terms of parameter types and constructors in ResGer and MorphoGer, which modules are are not accessible to the application grammarian.

    - +

    Lock fields

    An important difference between MorphoGer and @@ -481,7 +488,7 @@ in her hidden definitions of constants in Paradigms. For instance, -- mkAdv s = {s = s ; lock_Adv = <>} ;

    - +

    Lexicon construction

    The lexicon belonging to LangGer consists of two modules: @@ -501,17 +508,17 @@ the coverage of the paradigms gets thereby tested and that the use of the paradigms in BasicGer gives a good set of examples for those who want to build new lexica.

    - +

    Inside phrase category modules

    - +

    Noun

    - +

    Verb

    - +

    Adjective

    - +

    Lexicon extension

    - +

    The irregularity lexicon

    It may be handy to provide a separate module of irregular @@ -521,7 +528,7 @@ few hundred perhaps. Building such a lexicon separately also makes it less important to cover everything by the worst-case paradigms (mkV etc).

    - +

    Lexicon extraction from a word list

    You can often find resources such as lists of @@ -556,7 +563,7 @@ When using ready-made word lists, you should think about coyright issues. Ideally, all resource grammar material should be provided under GNU General Public License.

    - +

    Lexicon extraction from raw text data

    This is a cheap technique to build a lexicon of thousands @@ -564,7 +571,7 @@ of words, if text data is available in digital format. See the Functional Morphology homepage for details.

    - +

    Extending the resource grammar API

    Sooner or later it will happen that the resource grammar API @@ -573,7 +580,7 @@ that it does not include idiomatic expressions in a given language. The solution then is in the first place to build language-specific extension modules. This chapter will deal with this issue.

    - +

    Writing an instance of parametrized resource grammar implementation

    Above we have looked at how a resource implementation is built by @@ -591,7 +598,7 @@ use parametrized modules. The advantages are In this chapter, we will look at an example: adding Portuguese to the Romance family.

    - +

    Parametrizing a resource grammar implementation

    This is the most demanding form of resource grammar writing. @@ -607,6 +614,6 @@ This chapter will work out an example of how an Estonian grammar is constructed from the Finnish grammar through parametrization.

    - + diff --git a/lib/resource-1.0/doc/Resource-HOWTO.txt b/lib/resource-1.0/doc/Resource-HOWTO.txt index 93af780da..72d9acbb5 100644 --- a/lib/resource-1.0/doc/Resource-HOWTO.txt +++ b/lib/resource-1.0/doc/Resource-HOWTO.txt @@ -1,5 +1,4 @@ - -Resource grammar HOWTO +Resource grammar writing HOWTO Author: Aarne Ranta Last update: %%date(%c) @@ -10,23 +9,12 @@ Last update: %%date(%c) %!target:html - =HOW TO WRITE A RESOURCE GRAMMAR= - - - - [Aarne Ranta http://www.cs.chalmers.se/~aarne/] - - %%Date - - - The purpose of this document is to tell how to implement the GF resource grammar API for a new language. We will //not// cover how to use the resource grammar, nor how to change the API. But we will give some hints how to extend the API. - **Notice**. This document concerns the API v. 1.0 which has not yet been released. You can find the beginnings of it in [``GF/lib/resource-1.0/`` ..]. See the @@ -240,7 +228,11 @@ of resource v. 1.0. ``` tells you what exactly is missing. +Here is the module structure of ``TestGer``. It has been simplified by leaving out +the majority of the phrase category modules. Each of them has the same dependencies +as e.g. ``VerbGer``. +[German.png] ===The develop-test cycle=== @@ -298,6 +290,13 @@ with the next one. Actually, a suitable subset of ``Noun``, very soon, keep you motivated, and reveal errors. +Here is a [live log ../german/log.txt] of the actual process of +building the German implementation of resource API v. 1.0. +It is the basis of the more detailed explanations, which will +follow soon. (You will found out that these explanations involve +a rational reconstruction of the live process!) + + ===Resource modules used=== These modules will be written by you.