Jednostki wielowyrazowe w starym kodzie

Obecnie (JOSKIPI w C++ i kod opakowujący w XML-e) jednostki wielowyrazowe są obsługiwane "na około". Mamy plik XML z osadzonymi wyrażeniami JOSKIPI. Składa się on z dwóch części: makr, które definiują ogólne ograniczenia dla zbioru jednostek wielowyrazowych i konkretnych realizacji. Przykładowe makro:

    <m>
      <name>SubstAdjPlFix</name>
      <var>$A,$S</var>
      <con>
       and(
           equal(base[1],{$A}),
           equal(flex[1],{adj}),
           equal(base[0],$S),
       equal(nmb[0], {pl}),
          in(flex[0],{subst,ger,depr}),
          agrpp(0,1,{nmb,gnd,cas},3)
       )
      </con>

Pod zmienne $A, $S zostają podstawione konkretne słowa z jednostki. Definicja przykładowej jednostki dla tego makra:

    <LU>
      <LUbase>inwalida wojenny</LUbase>
      <t>fix</t>
      <pat>#SubstAdjPlFix("inwalida","wojenny")</pat>
      <h>in(flex[$H],{subst,ger,depr})</h>
      <f>subst</f>
    </LU>

Oznacza ono to, że mamy jednostkę o formie hasłowej "inwalida wojenny", który używa makra SubstAdjPlFix. Typ jednostki to "fix" (stały szyk elementów w jednostce, może być też fleks: dowolny szyk). Głowa jednostki jest znajdowana poprzez operator w ramach tagu h. Cała jednostka jest substem (tag f).

Problemy

  • generowanie takich plików (trzeba je ręcznie stworzyć lub przetłumaczyć z innego formalizmu)
  • obsługa (trzeba np. samemu zdanie przerobić tak, żeby usunąć elementy poza głową, a głowę zmodyfikować tak, żeby miała nową formę hasłową)
  • samo JOSKIPI jest nieświadome jednostek wielowyrazowych, dlatego operatory muszą być odpalane na zdaniu po transformacji, która nie jest trywialna w zrobieniu
  • problem jest gdy np. mamy dwie jednostki zawierające się w sobie, np. "transporter opancerzony" i "gąsienicowy transporter opancerzony"
  • każdy program używający jednostek wielowyrazowych musi zadbać o to, by je porządnie obsłużyć (a brak dokumentacji powoduje, że nie jest to trywialne zadanie)
  • brak dokumentacji: problem w przyjętych założeniach, konwencjach, itp.

Wymagania

Wymagania opisane w głównym dokumencie.