Background: I am a software dev who doesn't really know much about linguistics but I am trying to learn some of it for an application I'm making

I am trying to understand Feature Grammar syntax, and I've sorta got it (this is the best tutorial I've found: http://courses.washington.edu/ling471/lab2.html but I have read several others as well)

My main issue is not really understanding where there are certain index values.


For example, each index value seems to be made up of an alphabetic component, and a numeric component. However I'm not sure exactly what these values are implying, at all.

h0 is presumably the first header handler

But what is e2? x3 (I assume this is a "normal" variable?), i12?

I've looked everywhere for a definition of exactly what these values are. Some of them, such as x3 in the included sample, I can hover over and they highlight a word (or character, in this case), others, such as x8, I hover and they show nothing.

Could someone explain exactly what these index values are and why they're named this way, or point me towards a resource I can read about it? I've been reading about feature grammars for several days now and this concept just isn't clear to me.

From what I've read it sounds like they could be arbitrary, but that still doesn't explain the naming convention. Even if the variable can be named any arbitrary name, there still seems to be a naming convention implying something

  • What you are looking at is a specific form of Dependency Grammar. en.wikipedia.org/wiki/Dependency_grammar. You should pick an example in your native language to start with. That way you can better relate to the data format being used. The example you gave uses syntax specific to the Japanese case. When they say 'Predicate' it means the predicate in a sentence or clause. Study the basic grammar of a clause to begin that's what's being represented. en.wikipedia.org/wiki/Clause .If you look at wiki for clause you'll find the same tree structure that you included in your example.
    – bad_coder
    Commented Jan 14, 2019 at 2:18
  • From what I understood, OP's question was not about dependency grammar analysis but about the feature grammar one given in the same picture. Commented Jan 14, 2019 at 2:19
  • Yes, but the OP also said he's new to linguistics and I was hinting he should make certain to know simple clause grammar.
    – bad_coder
    Commented Jan 14, 2019 at 2:26
  • In that case, it's probably better to make your post a comment, since it doesn't constitute an actual answer to the question but a hint on further reading. Commented Jan 14, 2019 at 3:08
  • Yes, I think @bad_coder 's information is still valuable (and I've saved the links and intend to read them later) though I don't think it's an exact direct answer to what I need Commented Jan 14, 2019 at 3:20

2 Answers 2


I think the best way to understand in detail how the formalism (Minimal Recursion Semantics) works is simply to have a look at the original paper by Copestake et.al. You may want to skip the motivation and formal definitions and focus on the representation and the implementation into feature structures/HPSG.
Maybe this summary helps for an overview, although it focusses more on the semantic underspecification mechanism and not on the representation in a feature structure.

The naming of the variables follows a specific pattern. Each index is a combination of a letter and a number (continuously numbered; numbering independent between different letters). The letters are abbreviations for certain types (this is already explained in the tutorial you linked to in the answer you gave yourself):

  • x is an indivdiual argument in an elementary predication (EP). An elementary predication consists of a relation symbol with its associated arguments, e.g. see(x1, x2) ("x1 sees x2"), where see is the relation and x1 and x2 are arguments. An individual may be e.g. Peter, or the pen which lies on my desk. A difference is made between scopal and non-scopal arguments.
  • e stands for for eventuality. An eventuality may be the event see.
  • i is a generalization over eventualities and individuals.
  • h stands for handle and is used for handles and labels. A handle is a tag which links up a scopal argument position with the (conjunctions of) EPs that fills it, and a label identifies an EP as belonging to a particular tree node. E.g., we could give the EP see(x1, x2) the handle h1, written h1: see(x1, x2) and later reference that EP inside another EP by using its handle; in this usage the handle is called a label.

The actual magic about these variables happens in how they are used together (coindexation: If two slots are filled/indexed by the same variale, then this means that the same thing (which is denoted by that variable) fills in both of the roles indicated by the two different slots), and (peculiar to this particular framework, not a universal thing in feature structures) in the equality constraints listed under HCONS (HCONS = handle constraints; qeq = equality modulo quantifiers).

Let's go through the example you linked step by step:
The top handle, i.e. the head of the entire thing is h0. The first equality constraint in the HCONS list states that h0 is qeq-equal to h1. So the top of the entire sentence that is denoted by the variable h0 is equal to the thing denoted by the label h1. Now what is the thing denoted by h1? It's precisely the element which has the value h1 in its LBL (label) feature. This is the relation 是_v_cop⟨2:3⟩, i.e., via conindexation between the two uses of the variable h1 together with the equality between the variables h0 and h1, the top of the entire tree is the verb - an observation which matches up with the dependency analysis (the thing with the arrows) given in the lower picture (here, the concepts top/head/root are roughly the same).
The verb, which we briefly reference by its handle h1, has three arguments: An eventuality argument e2, and two individual arguments x3 and x8. So let's track these variables:
The variable e2 is used as the index (more precisely:e2 is the value to the attribute INDEX in the feature structure) of the whole thing. The index corresponds to a distinguished normal (non-handle) variable. So the variable for the eventuality which is denoted by the verb serves as the variable for the eventuality denoted by the entire structure, which makes sense because the core meaning of the sentence lies in the event that the verb expresses.
The variable x3 is also used (coindexed) as the ARG0 of pron and pronoun_q. So coindexation of variables tells us that whichever individual is the first argument (presumably the subject) of the verb is the same that is referred to by the ordinary pronoun and the question pronoun (I suppose that's what the abbreviations mean).
A similar reasoning applies to the variable x8 which is referenced in the relations card⟨4:5⟩, _个_x⟨6:7⟩ and _兵_n_1⟨8:9⟩ and exist_q⟨-1:-1⟩.
Let's now look at the existential quantification, i.e. the relation exist_q⟨-1:-1⟩. In the elementary predication There is a pig which snores (or A pig snores or Some pig snores, all treated equivalently), the scopal argument pig is the restriction and the scopal argument snore is the body (or nuclear scope) of the quantifier there exists. In the predication All happy children laugh, happy children is the restriction and laugh the body of the quantifier all. The restriction of this particular existential quantifier in use has the label h14. This variable serves as a placeholder for whatever is to be inserted as the restriction of the quantication. The handle constraints in HCONS tell us that the variable h14 is quantifier-equal to the relation denoted by the label h9. If we now search for this label among the list of relations, we find that it is the handle to the predication card⟨4:5⟩. So the predication card⟨4:5⟩ fills in the role of being the restriction of the existential quantification predication exist_q⟨-1:-1⟩ .

Unfortunately I don't speak any Chinese so I can't give an explanation with reference to the precise meaning, but I hope you get the idea. It's pretty much like a paper chase: You start tracking where else the variable you are interested in is being used, in addition (particular to the MRS framework) follow the path through the equalities that link different variables together, and the semantics of each variable is precisely the combination of places where it is used to fill a particular position in the feature structure. This is the crucial point of coindexation, which is one of the key ideas of feature-based grammars.

  • Your answer is way better and more detailed than mine so I am accepting it. Thank you for fleshing everything out. Commented Jan 14, 2019 at 2:27
  • Also your first link doesn't work, but I think you mean this paper - lingo.stanford.edu/sag/papers/copestake.pdf (I have been studying this paper for most of the day, though I found it a bit hard to follow at times, as I don't have formal training in linguistics) Commented Jan 14, 2019 at 2:29
  • Also, I really want to thank you, you made this far more accessible than I've previously seen it written. I've been banging my head on this for the past few days. Commented Jan 14, 2019 at 2:31
  • You're welcome; glad I could help. Yes, that's the correct paper (I changed the link in my answer to yours). And I agree the paper is not too easy to understand without any prior training - after all, it's an academic formal semantics paper. The best is probably to closely study the examples and try to match what's going on there up with your intuitions about what the single parts of the sentence should mean. Commented Jan 14, 2019 at 2:33
  • Yep, that's what I was trying to do (and understanding the variable types was a part of that). Thank you again for your further clarification. It is already looking to be incredibly helpful. Commented Jan 14, 2019 at 2:40

Here's a quote of the syntax for what I was asking about:


There are three types of variables in MRS, event(ualitie)s (of type e), instances (of type x) and labels or handles (of type h). Of these, the latter serve a formalism-internal role, i.e. assuming a suitable variant of predicate logic as the object language, MRS labels do not map onto logical variables. Eventualities and instances, on the other hand, prototypically correspond to verbal and nominal expressions, respectively. In addition to these most specific variable types, there are underspecifications as follows: i (for individual) is a generalization over eventualities and instances; p (the half-way mark in the alphabet between h and x) is a generalization over labels and instances; and u (for unspecific or maybe unbound) generalizes over all of the above. Note that Copestake et al. (2001) use individual for what is called instance here.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.