Skip to content

Elisions not performed correctly by latin HexameterScanner and VerseScanner #1124

Open
@bblumenfelder

Description

Describe the bug
In two cases elisions are not performed correctly:

  1. Whenever em at the end of the word meets a vowel in the next word.
  2. Whenever an elision should take place, h at the beginning of a word is treated as ordinary consonant.

To Reproduce Bug 1
Steps to reproduce the behavior:

from cltk.prosody.lat.hexameter_scanner import HexameterScanner
hexameter_scanner = HexameterScanner()

verse1 = "quem quidem ego actutum (modo vos absistite) cogam"
print(hexameter_scanner.scan(verse1).working_line)
# Out:          quēm quidem eg  āctutūm  modo vos ābsīstite  cogam
# Should be:    quēm quid eg  āctutūm  modo vos ābsīstite  cogam

verse2 = "Qui potis est, inquis? Quod amantem iniuria talis"
print(hexameter_scanner.scan(verse2).working_line)
# Out:          Qui potis ēst  īnquīs  Quod amāntem īnjuria talis
# Should be:    Qui potis ēst  īnquīs  Quod amānt īnjuria talis

verse3 = "ille, datis vadibus qui rure extractus in urbem est"
print(hexameter_scanner.scan(verse3).working_line)
# Out:          īlle  datīs vadibūs qui rur  ēxtrāctus in ūrbem ēst
# Should be:    īlle  datīs vadibūs qui rur  ēxtrāctus in ūrb ēst

To Reproduce Bug 2

verse4 = "non potuisse, tuaque animam hanc effundere dextra"
print(hexameter_scanner.scan(verse4).working_line)
# Out:          nōn potuisse  tuaqu  animam hānc ēffūndere dēxtra
# Should be:    nōn potuisse  tuaqu  anim ānc ēffūndere dēxtra

verse5 = "perque hiemes aestusque et inaequalis autumnos"
print(hexameter_scanner.scan(verse5).working_line)
# Out:          pērque hiemes aestūsqu  et inaequalis autūmnos
# Should be:    pērqu iemes aestūsqu  et inaequalis autūmnos

verse6 = "monstrum horrendum, informe, ingens, cui lumen ademptum"
print(hexameter_scanner.scan(verse6).working_line)
# Out:          mōnstr   hōrrēnd    īnfōrm   īngēns  cui lumen adēmptum
# Should be:    mōnstr   ōrrēnd    īnfōrm   īngēns  cui lumen adēmptum

The same bugs occur with VerseScanner:

from cltk.prosody.lat.verse_scanner import VerseScanner
verse_scanner = VerseScanner()
print(verse_scanner.elide_all(verse1))
# Out:   quem quidem eg  actutum modo vos absistite cogam
print(verse_scanner.elide_all(verse2))
# Out:   Qui potis est inquis Quod amantem iniuria talis
print(verse_scanner.elide_all(verse3))
# Out:   ille datis vadibus qui rur  extractus in urbem est

Environment:

  • CLTK 1.0.17 in different environments

Additional context
Elision rules are specified here (unfortunately in german) and here

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions