I'm trying to output the following sentence in Italian un anno e mezzo
where the sentence is a noun-phrase-list. My code:
lin
Sentence = mkUtt(mkNP
(and_Conj)
(mkNP (aSg_Det) (mkN("anno")))
(mkNP (mkN("mezzo")))
);
But the output of the above code is un anno ed il mezzo
. Why I have the il
determiner in my output? I couldn't find the reason behind this problem. Thank you!
You're getting the output with il, because the N -> NP
instance of mkNP
makes mass nouns. The canonical example is "I drink water", where water is constructed with mkNP water_N
.
In some resource grammars, this mkNP
instance creates NPs without any article: like English "I drink water". In other languages like French, it creates a NP in partitive: "je bois de l'eau". Italian gives, not the bare form like English, nor a partitive like French, but a normal definite article: "bevo l'acqua".
Why would the RGL creators do this? When writing an application grammar, the mkNP : N -> NP
instance is a higher-level construct for mass noun, rather than a lower-level question of "do I put an article or not".
The downsides are that it's almost impossible to ever output a bare form in the languages where mkN : N -> NP
adds an article. As far as I understand, it's possible only as a standalone utterance, see e.g. this answer on the GF mailing list.
Lang> p "king John" | l -treebank
Lang: UttCN (ApposCN (UseN king_N) (UsePN john_PN))
LangEng: king John
LangSpa: rey Juan
Lang: UttNP (MassNP (ApposCN (UseN king_N) (UsePN john_PN)))
LangEng: king John
LangSpa: el rey Juan
If you want true articleless NPs on the NP level, you can add such a function (CN -> NP
) to the Extend module, or create an issue on RGL's github asking that someone else creates such a function.
So what to do if you want to output un anno e mezzo? I would just be lazy and make "e mezzo" into an adverbial, and then attach it to anno. Like this:
Sentence =
mkUtt (mkNP
aSg_Det
(mkCN
(mkN "anno")
(ParadigmsIta.mkAdv "e mezzo")
)
) ;
You can do this safely, because e mezzo doesn't inflect. Anno is the head of the noun phrase, and only it needs to inflect.