Ordinal number plus superlative adjective

25 Views Asked by At

In the RGL, Ord is a type which represents either an ordinal number (in words or digits):

mkOrd : Numeral -> Ord --“twenty-second”
mkOrd : Digits -> Ord  --“22nd”

Or a superlative adjective:

mkOrd : A -> Ord       --“smallest”

But not both.

What if I do want both though, like “(Tampere is the) second largest (city in Finland)”?

Or is there a way somewhere further up the tree that I can combine two Ord into a single Det?

1

There are 1 best solutions below

0
inariksit On BEST ANSWER

Yes there is, it's just not in the API. There's a function in Noun.gf called OrdNumeralSuperl : Numeral -> A -> Ord, and you can use it by opening NounXxx in your concrete syntax, as follows:

resource Test = open SyntaxEng, ParadigmsEng, (N=NounEng) in {
  oper

    myTest : NP = mkNP (mkDet the_Quant second_largest_Ord) (mkN "city") ;

    second_largest_Ord : Ord = N.OrdNumeralSuperl (mkNumeral "2") (mkA "large") ;
}

And you can see the result as follows:

$ gf
> i -retain Test.gf
- compiling Test.gf...   write file Test.gfo
> cc -one myTest
the second largest city