Syntactic Functions

In the previous level of diathesis alternations we identified the predicate-arguments necessary for generating a fully saturated verb family. However, at the phrase structure level the verbal arguments might be surface realised in various positions: at their canonical place or at an unbounded distance before the verb. The variety in the surface realisations motivates the specification of the possible distributions of predicate-arguments into syntactic functions. A syntactic function comprises a finite set of variant linear orders of a verbal dependent. The XMG language does not impose any priority of the operations for deriving a syntactic function, and therefore a syntactic function is defined as a disjunction of alternative surface realisations, all of them being of equal rank. The XMG-based TAG contains 30 syntactic functions:

Subject

The syntactic function whose canonical position is before the VP. It can be surface-realised as follows:

<Subject>=
class Subject
{
        CanSubject[] 
        | WhSubject[] 
        | RelativeOvertSubject[] 
        | RelativeCovertSubject[] 
        | ImperativeSubject[]
        | ProSubject[] 
        | NPGerundSubject[] 
        | DeterminerGerundSubject[]
}

class NPGerundSubject
{
         NPGerundSubjectCan[] 
         | NPGerundSubjectPro[]
}


Sentential Subject

This syntactic function is used in cases when the subject position is filled with a complete sentence. The sentential subject can be realised as follows:

<SententialSubject>=
class SententialSubject
{
        CanSententialSubject[] 
        | WhSententialSubject[]
}

Outer Subject

The so called 'outer' subject is used in outer passive diathesis in n0VDAN1Pn2, n0VAN1Pn2, n0VNlPn2, n0VDN1Pn2 verb families. The subject is said to be 'outer' in the sense that the argument has been moved out of the prepositional phrase and has taken the subject position in the passive diathesis. The outer passive can be realised as follows:

<SubjectOuter>=
class SubjectOuter
{
        SubjectOuterCan[] 
        | SubjectOuterPro[] 
        | RelativeOvertSubjectOuter[] 
        | RelativeCovertSubjectOuter[]
}

Object

The syntactic function whose canonical position is after the VP. It is defined as a disjunction of the following surface realisations:

<Object>=
class Object
{
        CanObject[] 
        | WhObject[] 
        | RelativeOvertObject[] 
        | RelativeCovertObject[] 
        | DeterminerGerundObject[]
}

Indirect Object

The syntactic function of the indirect object expresses the semantic role of the beneficient. It can be surface-realised as follows:

<IObject>=
class IObject
{
        CanIObject[]  
        | WhIObject[] 
        | RelativeOvertIObject[] 
        | RelativeCovertIObject[] 
        | DeterminerIObject[] 
}

PP Object with a Prep subst node

This syntactic function is used in the n0Vn1pn2 and n0Vpn1 families. The Prep node is marked for substitution. The PP complement projects a VP node to allow for adjunction of adverbs. The PP complement can be realised as follows:

<PPIObjectSubst>=
class PPIObjectSubst
{
        CanPPSubst[] 
        | WhPPSubst[] 
        | WhPObjectSubst[] 
        | RelativeOvertPPSubst[] 
        | RelativeCovertPPSubst[] 
        | RelativePPSubst[] 
        | DeterminerGerundPPSubst[]
}

PP Complement with a Prep coanchor

This syntactic function is used in the n0Vn1Pn2 and n0VPn1 families where the beneficient is realised as a prepositional phrase with a Prep coanchor. The PP complement projects a VP node to allow for adjunction of adverbs. The definition of the PP complement with Prep coanchor is in parallel to the definition of PP complement with Prep subst. This PP can be realised as follows:

<PPIObjectAnchor>=
class PPIObjectAnchor
{
        CanPPCoanchor[] 
        | WhPPCoanchor[] 
        | WhPObjectCoanchor[] 
        | RelativeOvertPPAnchor[]
        | RelativeCovertPPAnchor[] 
        | RelativePPAnchor[] 
        | DeterminerGerundPPAnchor[]
}

PP complement with a Prep coanchor without VP projection

The syntactic function of the PP complement with Prep coanchor node is used in idiom verb families subcategorising for a PP (this includes n0VDAN1Pn2, n0VAN1Pn2, n0VN1Pn2, n0VDN1Pn2, Rn0Vn1Pn2 and REn1VPn2). Unlike PPIObjectSubst, here the corresponding tree description does not project a VP node. The PP complement can be realised in the following positions:

<PPIObject>=
class PPIObject
{
        CanPPIObject[] 
        | WhPPCoanchor[] 
        | WhPObjectCoanchor[] 
        | RelativeOvertPObject[] 
        | RelativeCovertPObject[] 
        | RelativePPObject[]
}

Adjective Complement

The adjective complement is used in n0Va1 family where the Adj node is marked for substitution. It can be realised as follows:

<AdjComplement>=
class AdjComplement
{
        CanAdjComplement[] 
        | WhAdjective[] 
}

Adjective Complement with Adj Anchor

This syntactic function is used in families of small clauses with Adj anchor (as n0A1). The adjective anchor can be realised as follows:

<AdjComplementAnchor>=
class AdjComplementAnchor
{
        CanAdjAnchor[] 
        | WhAnchorAdjective[]
}

Adjective Complement with Adj Coanchor

The syntactic function of the adjective complement with an Adj coanchor is used in resultative families anchored by a verb and coanchored by an adjective (Rn0Vn1A2 and REn1VA2). The adjective node can be realised as follows:

<AdjComplementCoanchor>=
class AdjComplementCoanchor
{
        AdjCoanchorCanR[] 
        | WhAdjCoanchorR[]
}


By-Agent

This syntactic function is used in passive forms where the agent has been realised as an object of a by-phrase. It can take the following position:

<ByAgent>=
class ByAgent
{
        CanByAgent[] 
        | WhByAgent[] 
        | WhAgentBy[] 
        | RelativeOvertByAgent[] 
        | RelativeCovertByAgent[] 
        | RelativeByAgent[]
}


To-Object

This syntactic function is used in families subcategorising for an object headed by the to-preposition. This includes n0lVN1Pn2 and s0Vton1. The to-object can be realised in the following manners:

<ToObject>=
class ToObject
{
        CanToObject[] 
        | WhToObject[] 
        | WhObjectTo[] 
        | RelativeOvertToObject[] 
        | RelativeCovertToObject[] 
        | RelativeToObject[] 
        | DeterminerGerundToObject[]
}

Locative

This syntactic function is used in families of small clauses anchored by an adverb (as n0n1ARB). The adverb can be realised as follows:

<Locative>=
class Locative
{
        CanLocative[] 
        | WhLocative1[] 
        | WhLocative2[]
}

Sentential Complement

The sentential complement is defined as a disjunction of the following surface realisations:

<SentComplement>=
class SentComplement
{       
        CanSentComplementFoot[] 
        | CanSentComplementSubst[] 
        | WhSentComplement[] 
        | DeterminerSentComplement[]
}

Sentential Complement for Exceptional Case Marking (ECM) Verbs

The sentential complement subcategorised by the so called exceptional case marking verbs can be realised as follows:

<SentComplementECM>=
class SentComplementECM
{       
        CanSentComplementFootECM[] 
        | CanSentComplementSubstECM[] 
}

Relative Adjunct

Relative adjuncts are of the following two types:

<RelativeAdjunct>=
class RelativeAdjunct
{
        RelativeAdjunctPied-Piping[] 
        | RelativeAdjunctCovert[]
}

Nominal Clefts

Nominal clefts are used in ItVn1s2 family with a noun clefted element. It is realised as follows:

<NominalCleft>=
class NominalCleft
{
        CanonicalNominalCleft[] 
        | WhNominalCleft[] 
}

PP Clefts

PP cleft elements are used in ItVpn1s2 family where the cleft element is a prepositional phrase. It can be realised as follows:

<PPCleft>=
class PPCleft
{
        CanonicalPPCleft[] 
        | WhPPCleft[] 
}

Cleft Adverb

Cleft adverbs are used in ItVad1s2 family where the cleft element is an adverb. It can be realised as follows:

<AdverbCleft>=
class AdverbCleft
{
        CanonicalAdverbCleft[] 
        | WhAdverbCleft[] 
}

Object with an N coanchor node

This object has an N coanchor node. The syntactic function can be surface realised in the following manners:

<ObjectNCoanchor>=
class ObjectNCoanchor
{
        ObjectNCoanchorCan[] 
        |  DeterminerGerundObjectNCoanchor[]
}

Subject with an N coanchor node

This subject has an N coanchor node. The syntactic function can be surface realised in the following manners:

<SubjectNCoanchor>=
class SubjectNCoanchor
{
        SubjectNCoanchorCan[] 
        | SubjectNCoanchorNPGerund[]
}

Object with N anchor node

The object is anchored by an N node. It can be realised as follows:

<ObjectAnchor>=
class ObjectAnchor
{
        CanObjectAnchor[] 
        | WhObjectAnchor[]
}

PP Small Clause with Prep anchor with two NP arguments

The argument headed by a Prep anchor can be realised in the following manners:

<PPAnchorArgumentNP>=
class PPAnchorArgumentNP
{
        PPAnchorArgumentNPCan [] 
        | WhAnchorPP[] 
        | WhAnchorP[] 
        | RelativeOvertPPAnchorPied-Piping[] 
        | RelativeOvertPPAnchor-P[] 
        | RelativeCovertPPAnchor-P[]
}

PP Small Clause with an exhaustive Prep anchor

The Prep anchor can be realised as follows:

<PPAnchorExhaustive>=
class PPAnchorExhaustive
{
        PPAnchorExhaustiveCan[] 
        | WhAnchorPPExhaustive[]
}

PP Small Clause with Adv and Prep anchors

The argument headed by a Prep and Adv anchors can be realised as follows:

<PPAnchorArgumentAdv>=
class PPAnchorArgumentAdv
{
        PPAnchorArgumentAdvCan[] 
        | RelativeOvertPPAnchorArgumentAdv[]
        | RelativeCovertPPAnchorArgumentAdv[] 
        | WhAnchorPPAdv[]
        | WhAnchorPPArgumentAdv[]
}

PP Small Clause with Adj and Prep anchors

The argument headed by a Prep and Adj anchor can be realised in the following manners:

<PPAnchorArgumentAdj>=
class PPAnchorArgumentAdj
{
        PPAnchorArgumentAdjCan[] 
        | RelativeOvertPPAnchorArgumentAdj[]
        | RelativeCovertPPAnchorArgumentAdj[] 
        | WhAnchorPPAdj[]
}

PP Small Clause with N and Prep anchors

The argument headed by N and Prep anchors can be realised in the following manners:

<PPAnchorArgumentN>=
class PPAnchorArgumentN
{
        PPAnchorArgumentNCan[] 
        | RelativeOvertPPAnchorArgumentN[]
        | RelativeCovertPPAnchorArgumentN[] 
        | RelativeOvertPPAnchorPied-Piping-N[]
        | WhAnchorPPN[]
        | WhAnchorPPArgumentN[]
}

PP Small Clause with Prep anchors

The argument headed by Prep anchors can be realised in the following manners:

<PPAnchorArgumentP>=
class PPAnchorArgumentP
{
        PPAnchorArgumentPCan[] 
        | RelativeOvertPPAnchorArgumentP[]
        | RelativeCovertPPAnchorArgumentP[] 
        | RelativeOvertPPAnchorPied-Piping-P[]
        | WhAnchorPPP[]
        | WhAnchorPPArgumentP[]
}

PP Small Clause with Prep, N and Prep anchors

The argument headed by Prep, N and Prep anchors can be realised in the following manners:

<PPAnchorArgumentPNP>=
class PPAnchorArgumentPNP
{
        PPAnchorArgumentPNPCan[]
        | RelativeOvertPPAnchorArgumentPNP[]
        | RelativeCovertPPAnchorArgumentPNP[]
        | RelativeOvertPPAnchorPied-Piping-PNP[]
        | WhAnchorPNP[]
        | WhAnchorPPArgumentPNP[]
}