PEAS YAML source

code: PEAS
biber_number: A2
xiao_number: B27
mfte_code: PEAS
bohmann_number: 51
name: Perfect aspect
definition: >-
  Perfect aspect constructions (have/has/had + past participle).
normalization: finite_verbs
detection:
- requires:
  - lemma
  - pos
  cql: '[lemma="have" & pos="VBP|VBZ|VBD"] [pos="VBN"]'
- requires:
  - lemma
  - pos
  - dep
  semgrex: '{pos:/VBN/}=main >aux {lemma:have}=aux'
- source: pybiber
  requires:
  - lemma
  - pos
  - dep
  cql: '[lemma="have" & dep="aux"]'
  description: >-
    Have as auxiliary (dep=aux). Trusts the dependency parser to identify
    perfect auxiliaries regardless of intervening adverbs or negation.
- source: mfte
  requires:
  - word
  - lemma
  - pos
  parts:
    p1:
      cql: '[lemma="have" & pos="VB|VBP|VBZ|VBD"] [pos="VBN" & word!="got"]'
      anchor: last
    p2:
      cql: '[lemma="have" & pos="VB|VBP|VBZ|VBD"] [pos="RB.*|PRP|CC|UH"] [pos="VBN" & word!="got"]'
      anchor: last
    p3:
      cql: '[lemma="have" & pos="VB|VBP|VBZ|VBD"] [pos="RB.*|PRP|CC|UH"] [pos="RB.*|PRP|CC|UH"] [pos="VBN" & word!="got"]'
      anchor: last
    p4:
      cql: '[lemma="have" & pos="VB|VBP|VBZ|VBD"] [pos="NN.*|PRP"] [pos="VBN" & word!="got"]'
      anchor: last
    p5:
      cql: '[lemma="have" & pos="VB|VBP|VBZ|VBD"] [word=".*ed" & pos="VBD"]'
      anchor: last
    p6:
      cql: '[lemma="have" & pos="VB|VBP|VBZ|VBD"] [pos="RB.*|PRP|CC|UH"] [word=".*ed" & pos="VBD"]'
      anchor: last
    p7:
      cql: '[lemma="have" & pos="VBG"] [pos="VBN" & word!="got"]'
      anchor: last
    p8:
      cql: '[lemma="have" & pos="VBG"] [pos="RB.*"] [pos="VBN" & word!="got"]'
      anchor: last
  combine: "p1 | p2 | p3 | p4 | p5 | p6 | p7 | p8"
  refines: VBN
  description: >-
    MFTE uses positional heuristics to detect perfect aspect: have/has/had
    followed by a past participle (VBN or mistagged VBD ending in -ed),
    allowing 0-2 intervening tokens (adverbs, negation, pronouns for
    inversion). Does not use dependency parsing. VB included for bare
    infinitive "have" after modals (e.g., "shouldn't have done").
    "got" excluded because MFTE tags "have got" as HGOT (not PEAS)
    unless followed by another participle (PGET, handled separately).
examples:
- text: He _has been_ told before.
  source: le_foll_2024
- text: _Have_ you _been_ on a student exchange?
  source: le_foll_2024
- text: _She'd_ already _seen_ it.
  source: le_foll_2024
sources:
- biber_1988
- mfte
- pybiber
- xiao_2009
- bohmann_2019