The what, why and how of wh-words
There is a class of words called wh-words, or interrogative words that is very important for asking questions. These are words like who, which, why, where, and how. They can be used to query all aspects of a subject under study. Let me say something about their parts-of-speech and semantics.
Disclaimer: these are just my thoughts on the subject, it is not a professional view, and it is subject to change.
Wh-words do not form a part-of-speech category in themselves, but they belong to several parts-of-speech. So what is it that they have in common, semantically?
They express that which the person who asks the sentence wants to know. When? How? Which one? But it is important to know that the words are also used to express relationships between clauses. For example in "I will come down when I'm ready". So, while wh-words are grouped because of their question-like nature, they are also used to express relationships. This is important to remember when you model the words.
The largest group of wh-words belong to the part-of-speech of adverbs. These are words like where (location), when (time), how (manner), and why (reason).
These words function to link an adjunct to a sentence. For example, the sentence is "we will have dinner". If you want to question the time this will take place, you can add an adjunct for time: "when will we have dinner".
For this reason, the semantics of these words can be represented as a predication that binds the sentence's event to the adjunct.
where: location(this.event, this.adjunct)
when: time(this.event, this.adjunct)
why: reason(this.event, this.adjunct)
how: manner(this.event, this.adjunct)
The part-of-speech can best be restricted as wh-adverb when parsing. This way it is clear that the word is an adverb, but also that it is a special kind of adverb. In production rules this helps to specify the words that are allowed at a certain position in the sentence.
Wh-words abstract into WhADVP phrases (Wh-word Adverbial Phrase)
WhADVP => wh-adverb
Note that how can be used together with a NP, as in "how many years". Because this is the only word that accepts a NP, it can be given another specification: wh-adverb-np.
WhADVP => wh-adverb-np NP
The semantics of WhADVP expresses the fact that the wh-word is used to make an enquiry.
WhADVP.request = wh-adverb.adjunct
This means: the request attribute at the WhADVP node is formed by taking the adjunct attribute of the wh-adverb node. WhADVP is definitely an enquiry node, while the wh-adverb is not necessarily so. An example of a structure in which a wh-adverb is not meant as a query:
S => S SBar
SBar => wh-adverb S
For example: "She found her true love when she met Jim." and "The boy found out how he could get his bike repaired."
Here the wh-adverb is used as a complementizer that links the main clause to the secondary clause. There is no sense of asking in it.
Words like who, whom, what, and which that represent an object or a person. "Who has broken the vase?" "What are we going to do?" "Which do you prefer?"
They are different because they specify an object, not an adjunct, and this is relevant for the semantics of the sentence.
who: subject(this.event, this.object) and person(this.object)
whom: object(this.event, this.object) and person(this.object)
WhADVP => wh-pronoun (semantics: WhADVP.request = wh-pronoun.object; WhADVP.object = wh-pronoun.object)
The semantics of "what" is rather arbitrary. The word can be used both as a subject and an object in a sentence. So this is not something we can predicate. "who" is a subject pronoun, while "whom" is an object pronoun. With "WhADVP.request = wh-pronoun.object" I mean that the "object" attribute of the wh-pronoun serves as that which is requested (hence "request") at the WhADVP node. So this is where the question aspect of the sentence is formed and where "that which we want to know" is specified.
Words like ''which'', ''what'', and ''whose''. "Which cow walked through the fence?" "Whose trousers are in the washing machine?"
which: selection(this.object, this.determinant)
what: selection(this.object, this.determinant)
whose: owner(this.object, this.determinant)
WhADVP => wh-determiner NP (semantics: WhADVP.request = wh-determiner.determinant)