Skip to content

Different extension modules #347

@inariksit

Description

@inariksit

What's the relation between gf-rgl/Extend.gf and gf-wordnet/ParseExtend.gf?

  1. ParseExtend extends Extend, except for a few excluded functions, e.g. ProDrop, AdvIsNPAP.
  2. Some functions that are excluded from Extend, are redefined in ParseExtend with a more general type signature, e.g. InOrderToVP : Ant -> Pol -> Pron -> VP -> Adv, compared to only VP -> Adv in Extend.
  3. Some functions are defined only in ParseExtend, e.g. FocusComp : Comp -> NP -> Cl for copula clauses where the complement is shifted to the front, e.g. so am I.

Category 3

I suggest we move category 3. to Extend. Since ParseExtend extends Extend, they would still be accessible for ParseExtend, so no existing grammars break.

Category 2

As for category 2, I see the following options:

  • No change: old type signatures in Extend, new type signatures in ParseExtend. If user wants to use the functions with the new type signatures, they need to import ParseExtend.

  • Add the ParseExtend versions into Extend with a new name. Thus Extend.gf would have

    InOrderToVP : VP -> Adv ;
    InOrderToVPgen :  Ant -> Pol -> Pron -> VP  -> Adv ; -- TODO better name

    If we do this, then I suggest that we define ParseExtend.InOrderToVP as Extend.InOrderToVPgen, so that there is no duplicate code.

(Third alternative, which I don't suggest, is to update the type signatures in Extend, so that InOrderToVP : VP -> Adv disappears and is replaced by InOrderToVP : Ant -> Pol -> Pron -> VP -> Adv. Downside is that this could break existing code.)

Comments

If you have other points of view or if I've missed something, let me know. Especially @krangelov who has written ParseExtend.

I can move the functions myself, if people are in favour of the move.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions