Skriftur og keyrslur í BÍN 1.0

Beygingardæmin í BÍN 1.0 voru búin til með því að setja upp matrixur fyrir beygingarflokkana og keyra upplýsingar úr listum um einstök orð inn í þær. Keyrslur byggðust á einföldum Unix-skriftum, grep, sed og awk, sem fundu færslur, skiptu út strengjum og endurröðuðu sviðum. Bæði inntak og úttak voru hreinar sviðskiptar textaskrár en úttakinu síðan varpað yfir í viðeigandi form, t.d. XML- eða HTML-skrár.

Gögnin

Matrixa eða rammi fyrir beygingarflokk var textaskrá með endingum þar sem númeraðir stofnar voru settir inn (X1-4 í dæminu hér). Rofar voru notaðir til að sýna hvaða hluta rammans átti að fylla og voru þeir táknaðir með Z; Z1 = eintala, Z2 = fleirtala, Z3 = greinir. Texti sem flyst óbreyttur úr inntakslínu er merktur með Y, t.d. uppflettimynd (Y1), kyn nafnorða (Y7), beygingarflokkur (Y2) o.s.frv.

Hér er ramminn fyrir orð sem beygjast eins og köttur (rammi.X.ur.-ar-ir.-i-inum):

#FL: Y1 |KYN: Y7 |B-FL: Y2 |STOFN: Y3 |NFET: Z1+X1+ur |NFETgr: Z1+Z3+X1+urinn |ÞFET: Z1+X1+ |ÞFETgr: Z1+Z3+X1+inn |ÞGFET: Z1+X3+i |ÞGFETgr: Z1+Z3+X3+inum |EFET: Z1+X4+ar |EFETgr: Z1+Z3+X4+arins |NFFT: Z2+X3+ir |NFFTgr: Z2+Z3+X3+irnir |ÞFFT: Z2+X3+i |ÞFFTgr: Z2+Z3+X3+ina |ÞGFFT: Z2+X2+um |ÞGFFTgr: Z2+Z3+X2+unum |EFFT: Z2+X4+a |EFFTgr: Z2+Z3+X4+anna |HEIM: Y4 |A: Y5 |ATHNOT: Y6

Upplýsingar um einstök orð voru geymd í orðalistum og þær síðan keyrðar inn í rammana. Hér eru færslan fyrir orðið köttur (úr skránni glisti.kk.X.ur.-ar-ir.-i-inum):

#FL:|köttur|KYN:|kk|B-FL:|kk+ar+ir.X.ur|NF-END:|.ur|X1:|kött|X2: |kött|X3:|kett|X4:|katt|ET:|+|FT:|+|GR:|+|HEIM:|ÍO|A:|

Skriftur

Skrifturnar eru tvær. Fyrri skriftan, BEYGJA*, sækir uppflettiorð í listann og beinir þeim í seinni skriftuna, AWK*, sem býr til sed-skriftu sem raðar stofnunum inn í rammann og eyðir mínusmerktum sviðum. ("ET:-'' eyðir t.d. gildinu "Z1'' þannig að eintalan birtist ekki.) Síðan er sed-skriftan keyrð en útkoman úr henni er ein skrá fyrir hvert beygingardæmi (*.beyg.X.*), sjá beygingardæmið fyrir köttur hér á eftir. Síðan eru öll beygingardæmi fyrir orð úr þessum beygingarflokki sameinuð í eina skrá til frekari úrvinnslu, t.d. til vörpunar í XML- eða HTML-skár.

BEYGJA.kk.X.ur.-ar-ir.-i-inum:
#!/bin/sh
grep "#FL:|$*" ../../listar/grunn/glisti.kk.X.ur.-ar-ir.-i-inum \|
grep -v "A:|sleppa" | AWK.X.ur.-ar-ir.-i-inum $* > beygja.sed
chmod +x beygja.sed
beygja.sed
cat ../../beygt/grunn/*.beyg.X.ur.-ar-ir.-i-inum > ../../beygt/grunn/kk.X.ur.-ar-ir.-i-inum.beygt
rm ../../beygt/grunn/*.beyg.X.ur.-ar-ir.-i-inum

AWK.kk.X.ur.-ar-ir.-i-inum:
#!/bin/sh
awk -F"|" '{ print "sed \047s/Z1/"$18"/g\012s/Z2/"$20"/g\012s/Z3/"$22" /g\012s/-+X[1|2|3|4|5]+/=/g\012s/-+Z[1|2|3|4|5]+/=/g\012s/X1+/"$10" /g\012s/X2+/"$12"/g\012s/X3+/"$14"/g\012s/X4+/"$16"/g\012s/Y1/"$2" /g\012s/Y2/"$6"/g\012s/Y3/"$10$8"/g\012s/Y4/"$24"/g\012s/Y5/"$26" /g\012s/Y6/"$28"/g\012s/Y7/"$4"/g\012s/-++/=/g\012s/==/=/g\012s /=.*/--/g\012s/-+--/--/g\012s/++//g\047 ../../rammar /rammi.X.ur.-ar-ir.-i-inum > ../../beygt/grunn/"$2".beyg.X.ur.-ar-ir.-i-inum" }'

Beygingardæmið

#FL: köttur |KYN: kk |B-FL: kk+ar+ir.X.ur |STOFN: kött.ur |NFET: köttur |NFETgr: kötturinn |ÞFET: kött |ÞFETgr: köttinn |ÞGFET: ketti |ÞGFETgr: kettinum |EFET: kattar |EFETgr: kattarins |NFFT: kettir |NFFTgr: kettirnir |ÞFFT: ketti |ÞFFTgr: kettina |ÞGFFT: köttum |ÞGFFTgr: köttunum |EFFT: katta |EFFTgr: kattanna |HEIM: ÍO |A: |ATHNOT:

Öll Beygingarlýsingin var unnin á þennan hátt þar til Veflæg orðmyndabók varð til. Hér er aðeins sýnt hvernig nafnorðabeygingin var unnin; uppsetning á skriftum fyrir aðra orðflokka var talsvert umfangsmeiri, enda eru beygingarmyndir sagna og lýsingarorða mjög margar. Þetta efni er haft hér með til þess að sýna hvernig Beygingarlýsingin hefur þróast.

 

KB 1.10.2013