packages feed

GenI-0.17.3: examples/xmg-example/grammar/Arguments.mg

class  VerbalArgument
export
        ?xS ?xV
declare
        ?xS ?xV
{
        <syn>{
                node ?xS(color=white)[cat = s]{
                        node ?xV(color=white)[cat = v]
                }
        }
}

class  SubjectAgreement
export
        ?xSubjAgr ?xVAgr
declare
        ?xSubjAgr ?xVAgr ?fX ?fY ?fZ
{
        <syn>{
                node ?xSubjAgr[top=[num = ?fX, gen = ?fY, pers = ?fZ]];
                node ?xVAgr[top=[num = ?fX, gen = ?fY, pers = ?fZ]]
        }
}

class  CanSubject
import
        VerbalArgument[]
        SubjectAgreement[]
export
        ?xSubj
declare
        ?xSubj
{
        <syn>{
                node ?xS[cat = s]{
                        node ?xSubj(color=red)[cat = @{cl,n}]
                        node ?xV[cat = v]
                };
                ?xSubj = ?xSubjAgr;
                ?xV = ?xVAgr
        }
}

class  CanonicalSubject
import
        CanSubject[]
	SubjectSem[]
{
        <syn>{
             node ?xSubj(color=red,mark=subst)[cat = n]
        };
	?xSubj = ?xSem
}

class  CliticSubject
import
        CanSubject[]
	SubjectSem[]
{
        <syn>{
             node ?xSubj(color=red,mark=subst)[cat = cl]
        };
	?xSubj = ?xSem
}

class  RelativeSubject
import
        VerbalArgument[]
        SubjectAgreement[]
	SubjectSem[]
declare
        ?xSubj ?xfoot ?xRel ?fU ?fY ?fZ ?xQui
{
        <syn>{
                node ?xRel(color=red)[cat = n,bot=[num = ?fY,gen = ?fZ,pers = ?fU]]{
                        node ?xfoot(color=red,mark=foot)[cat=n,top=[num = ?fY,gen = ?fZ,pers = ?fU]]
                        node ?xS(mark=nadj){
                                node ?xSubj(color=red,extracted = +)[cat=c]{
                                        node ?xQui(color=red,mark=flex)[cat=qui]
                                }
                                node ?xV
                        }
                }
        };
        ?xfoot = ?xSubjAgr;
        ?xV = ?xVAgr;
	?xfoot = ?xSem
}

class  CanonicalObject
import
        VerbalArgument[]
	ObjectSem[]
export
        ?xObj
declare
        ?xObj
{
        <syn>{
                node ?xS{
                        node ?xV
                        node ?xObj(mark=subst, color=red)[cat = n]
                }
        };
	?xObj = ?xSem
}

class  CanonicalCAgent
import
        VerbalArgument[]
	CAgentSem[]
export
        ?xtop ?xArg ?xX
declare
        ?xtop ?xArg ?xX ?xPrep
{
        <syn>{
                node ?xtop[cat = pp](color=red){
                        node ?xX (color=red)[cat = p] {
				node ?xPrep(mark=flex,color=red)[cat=par]
			}
                        node ?xArg(mark=subst,color=red)[cat = n]
                }
        } ;
	?xArg = ?xSem ;
	<syn>{ ?xS -> ?xtop ; ?xV >> ?xtop }
}


class Subject[I,L]
{
	CanonicalSubject[]*=[subjectI = I, subjectL = L]
	| RelativeSubject[]*=[subjectI = I, subjectL = L]
	| CliticSubject[]*=[subjectI = I, subjectL = L]
}

class Object[I,L]
{
	CanonicalObject[]*=[objectI = I, objectL = L]
}

class CAgent[I,L]
{
	CanonicalCAgent[]*=[cagentI = I, cagentL = L]
}