code: WHQU
biber_number: D13
xiao_number: I84
mfte_code: WHQU
name: Direct WH-questions
definition: >-
Direct questions introduced by a WH-word (who, what, where, when, why, how).
normalization: finite_verbs
detection:
- requires:
- word
- pos
cql: '[pos="WRB|WP|WP\\$|WDT"] []{0,14} [word="?"]'
description: >-
WH-word followed by a question mark within 15 tokens. Approximates
MFTE's approach. The window limit prevents crossing sentence boundaries
in most cases.
- source: mfte
requires:
- word
- pos
cql: '[word="[Ww]hat|[Ww]here|[Ww]hen|[Hh]ow|[Ww]hy|[Ww]ho|[Ww]hom|[Ww]hose|[Ww]hich"] []{0,8} [word="?"]'
sentence_scope: true
description: >-
MFTE checks for ? within 16 tokens of a WH-word (lines 842-857),
but QUTAG runs first and "claims" question marks in tag questions,
preventing WHQU from matching them. Since we cannot replicate this
sequential claiming, we use a tighter window (9 tokens) to avoid
matching WH-words in matrix clauses followed by tag questions
(e.g., "That is what he would tell me anyhow, is n't it?").
All direct WH-questions in English fit within 9 tokens.
- source: pybiber
requires:
- pos
- upos
cql: '[pos="W.*" & upos!="DET" & sent_has_q="true"]'
s_attrs:
sent_has_q: '[word="?"]'
description: >-
pybiber condition (a): W-tagged non-DET token in a sentence containing
"?". Uses s-attribute for sentence-level property check.
- source: pybiber
requires:
- pos
- upos
- dep
cql: '[pos="W.*" & upos!="DET"] [dep="aux"]'
description: >-
pybiber condition (b): W-tagged non-DET token immediately followed by
a token with dep=aux.
- source: pybiber
requires:
- pos
- upos
- dep
cql: '[dep!="ccomp|advcl"] [pos="W.*" & upos!="DET" & sent_has_aux="true"]'
anchor: last
s_attrs:
sent_has_aux: '[upos="AUX"]'
description: >-
pybiber condition (d): W-tagged non-DET token in an AUX-containing
sentence, preceded by a token whose dep is not ccomp or advcl.
Uses document-level adjacency (no sentence_scope) to match pybiber's
lag behavior — sentence-initial tokens see the previous sentence's
period, trivially passing the dep filter. Uses s-attribute for the
sentence-level AUX check.
examples:
- text: _What_'s happening?
source: le_foll_2024
- text: _Why_ don't we call the game off?
source: le_foll_2024
- text: And _who_ is Dinah, if I might venture to ask the question?
source: le_foll_2024
sources:
- biber_1988
- mfte
- xiao_2009
notes: >-
pybiber counts W-tagged non-DET tokens satisfying any of four conditions:
(a) in a sentence containing "?", (b) next token has dep=aux, (c) near
sentence start with preceding AUX, (d) sentence contains AUX and previous
token dep not ccomp/advcl. The pybiber-source rules replicate this using
s-attributes for sentence-level containment checks and document-level
adjacency (no sentence_scope) to match pybiber's lag column behavior.