Tony Wright Computational Linguistics I Grammar Engineering Project April 26, 2007

Romanian Grammar Fragment

This project implements a small fragment of Romanian in a Combinatory Categorial Grammar using OpenCCG. The grammar handles basic syntactic structures of Romanian including simple intransitives and transitives, ditransitive constructions, and subject and object relative NPs.

1. Romanian

Romanian is an Eastern Romance language spoken in primarily in Romania and Moldova. It is unique among modern romance languages in preserving the three genders (masculine, feminine and neuter) of Latin. Romanian has undergone intensive contact influence from neighboring Slavic languages and from Turkish (Cojocaru, 1999).

2. Syntactic structures

2.1 Intransitives

Intransitives in Romanian are of the form Subj Verb. The category s\ n was used for verbs like a lucra (to work) and a somna (to sleep):

(1) Baiatul lucreaza.

The boy works.	
Baiatul 		lucreaza.
      --------               ----------
         n     		  s\n
      -----------------------------------------------<
                          s

2.2 Transitives

Romanian transitives are predominantly SVO. The category (s\ n)/ n was used for verbs like a vede (to see):

(2) Fata vede baiatul.

The girl sees the boy.
Fata		vede  		baiatul.
         -------               ------                 -------
            n                   (s\n)/n		     n
		----------------------->
                                                s\n
           --------------------------------<
                               s

2.3 Ditransitives

Ditransitives in Romanian are of the form Subject Indirect Object Direct Object. The indirect object must be in the genitive/dative case. The category ((s \ n)/ n)/ n[gen_dat] was used for verbs like a da (to give):

(3) Fata da baiatului floarea.

The girl gives the boy a flower.

Fata 		da 			baiatului 		floarea.
          -----                 ---                   		 ----------           	--------
  n              ((s \ n)/ n)/ n[gen_dat]            n[gen_dat]		     n
                            ------------------------------------------------->
                                                       (s \ n)/ n
                                                        --------------------------------------------->
                                                                                 s\n
          ---------------------------------------------------------<

2.4 Subject relative NPs

Subject relative NPs use the relativizer care. The category (n\ n) / s \ n[PERS NUM] was used for care:

(3) Baiatul care vede fata The boy who saw the girl

Baiatul care vede fata ——— —————————— —– ——

   n                (n\ n) / s \ n[PERS NUM]        (s\n)/n		n
                                                                       ------------------>
                                                                                 s\n
                      ------------------------------------------------>
                                                   n\n

——————————————–<

                         n

2.5 Object relative NPs

Object relative NPs use the relativizer pe care. The category n\ n/ (s / n) was used for pe care:

(4) Baiatul pe care fata vede.

The boy whom the girl saw.
Baiatul 	pe_care 	fata 		vede
          --------             ---------            -----                  -----
              n                 n\ n/ (s/n)	  n		(s\n)/n
                                                 --->T
                                                          s/(s\n)
                                                          ------------------------>B
                                                                    s/n
                                 ------------------------------>
                                               n\n
           -------------------------------<
                             n

References:

Cojocaru, D. (1999) Romanian Grammar. Durham, N.C: Duke University Slavic and East European Language Center.

Seiver, G. (1953). Introduction to Romanian. New York: Hafner.

Appendix: romanian_grammar.ccg

##### romanian grammar ####
##
## Tony Wright
## Computational Linguistics I
## April 25, 2007


## features ##


feature {
  CASE<2>: nom_acc gen_dat;
  NUM<2>: sg pl;
  PERS<2>: 1st 2nd 3rd;
  GEN<2>: masc fem neut;

  TENSE<E>: past pres;
  SEM-NUM<X:NUM>: sg-X pl-X;

  ontology: sem-obj {
              phys-obj {
                animate-being {
                  person
                }
                thing
              }
              situation {
                change {
                  action
                }
                state
              }
            };
}


#####words#######

word care:RelSubj;
word pe_care: RelObj;
## morph ##

## The nominative and accusative cases, and the genetive and dative cases, 
## respectively, are morphologically identical; hence, I classify each 
## as one case: nom_acc and gen_dat. 

def noun(Sing_Nom_Acc, Sing_Gen_Dat, Plur_Nom_Acc, Plur_Gen_Dat, Pred) {
    word Sing:N (pred=Pred){
    Sing_Nom_Acc: sg nom_acc 3rd sg-X;    Sing_Gen_Dat: sg gen_dat 3rd sg-X;
    Plur_Nom_Acc: pl nom_acc 3rd pl-X;
    Plur_Gen_Dat: pl gen_dat 3rd pl-X;
  }
}

noun(baiatul, baiatului, baietii, baietilor, boy)
noun(fata, fetei, fetele, fetelor, girl)
noun(lupul, lupului, lupii, lupilor, wolf)
noun(floarea, floarei, floarele, floarelor, flower)
noun(dejunul, dejunului, dejunele, dejunelor, lunch)


def irr-verb(Family,Stem,Pred,FirstSg,SecSg,ThirdSg,FirstPl,SecPl,ThirdPl){
    word Stem:Family (pred=Pred){
       FirstSg: 1st sg pres;
       SecSg: 2nd sg pres;
       ThirdSg: 3rd sg pres;
       FirstPl: 1st pl pres;
       SecPl: 2nd pl pres;
       ThirdPl: 3rd pl pres;
    }
   }

irr-verb(DitransV, da, give, dau, dai, da, dam, dati, dau)
irr-verb(TransV, vede, see, ved, vedi, vede, vedem, vedeti, vede)


def a-verb(Stem,Pred) {
   word Stem:IntransV (pred=Pred) {
     Stem . ez: 1st sg pres;
     Stem . ezi: 2nd sg pres;
     Stem . eaza: 3rd sg pres;
     Stem . am: 1st pl pres;
     Stem . ati: 2nd pl pres;
     Stem . eaza: 3rd pl pres;
   }
}

a-verb(lucr, work)
a-verb(somn, sleep)



## lexicon ##

family N {
  entry : n<2> [X]: X:sem-obj(*);
}

family IntransV(V) {
  entry: s<1> [E]\ n<2> [X nom_acc]: E:action(* <Actor>X:animate-being);
}

family TransV(V) {
  entry: s<1>[E] \ n<2>[X PERS NUM nom_acc] / n<3>[Y nom_acc]:
         E:action(* <Actor>X:animate-being <Patient>Y:sem-obj);
}

family DitransV(V) {
  entry: s<1>[E] \ n<2>[X PERS NUM nom_acc] / n<3>[Y nom_acc] / n<4>[Z gen_dat]:
         E:action(* <Actor>X:animate-being <Patient>Y:sem-obj <Recipient>Z:sem-obj);
}

family RelSubj(Rel) {
  entry: (n<2> \ n<2>) / (s \ n<2>[PERS NUM]);
}

family RelObj(Rel) {
  entry: n<2> \ n<2> / (s / n<2>);
}


## rules ##


## testbed ##

testbed {
baiatul lucreaza: 1;
fata somneaza: 1;
fata somneaza baiatul: 0;
fata vede baiatul: 1;
baiatul da fetei floarea: 1;
fata da baiatului floarea: 1;
fata da baiatul floarea: 0;
baiatul care vede fata: 1;
baiatul pe_care fata vede: 1;

}
 
openccg/grammars/romanian.txt · Last modified: 2007/04/30 14:59 (external edit)
 
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki