about.html (27597B)
1 {% extends "page.html" %} 2 3 {% block body %} 4 {% if lang == 'fr' %} 5 <p>Bienvenue sur <strong>plint</strong>!</p> 6 <h2 id="info">De quoi s'agit-il au juste ?</h2> 7 <p>C'est une tentative d'<a href="https://a3nm.net">a3nm</a> pour lutter contre la 8 poésie de mauvaise qualité (celle qui veut suivre des règles classiques sans y 9 parvenir). Plint vérifie qu'un poème respecte des contraintes 10 de métrique, de rime et de genre de rime. Il utilise <a 11 href="https://a3nm.net/git/frhyme">frhyme</a> pour les rimes (qui utilise 12 lui-même la base de données <a href="http://lexique.org">Lexique</a>), <a 13 href="https://a3nm.net/git/haspirater">haspirater</a> pour la détection des 14 'h' aspirés, et un système écrit à la main avec amour pour la métrique et le 15 genre. Il est construit avec <a href="http://python.org">Python</a> et <a 16 href="http://bottlepy.org">Bottle</a>. Vous pouvez récupérer le code sur le <a 17 href="https://a3nm.net/git/plint">dépôt plint</a> pour le faire tourner 18 localement.</p> 19 <p>Publicité gratuite : si vous aimez plint, peut-être serez-vous 20 intéressé par le dictionnaire de rimes <a 21 href="https://drime.a3nm.net/">drime</a>.</p> 22 23 <h2 id="help">Comment s'en servir ?</h2> 24 <p>Entrez votre poème dans la zone de texte et choisissez le modèle de poème. Si 25 aucun des modèles ne vous convient, vous pouvez <a href="#template">écrire le 26 vôtre</a>.</p> 27 28 <h2 id="whatcheck">Qu'est-ce qui est vérifié par plint ?</h2> 29 <p>Les erreurs suivantes sont signalées par défaut. Des options de configuration 30 dans le modèle permettent de rendre plint plus tolérant sur la plupart de ces 31 erreurs : cela est documenté <a href="#template">plus bas</a>.</p> 32 <dl> 33 <dt id="whatcheck_syllable">Métrique</dt> 34 <dd>Le nombre de syllabes par vers est habituellement fixé (12 pour les 35 alexandrins, par exemple). Les syllabes sont comptées en scandant sans 36 élision des <em>e</em> muets sauf quand un mot se termine par un <em>e</em> 37 muet et le mot suivant commence par une voyelle ou un <em>h</em> non aspiré 38 (ou si c'est le dernier mot du vers). Le nombre de syllabes n'est <em>pas</em> 39 ce que vous obtenez en lisant le poème comme vous parlez tous les jours. 40 Certains groupes de voyelles peuvent prendre deux syllabes soit 41 systématiquement (par exemple "Léon") soit par une <em>diérèse</em> facultative 42 ou obligatoire ("passion") ; plint utilise une approximation permissive 43 des diérèses effectivement autorisées déduite à partir d'un corpus de textes 44 classiques.</dd> 45 <dt id="whatcheck_hemistiche">Hémistiche</dt> 46 <dd>Les alexandrins classiques sont divisés en deux <em>hémistiches</em> de 47 6 syllabes. La césure ne doit pas couper un mot et le premier hémistiche ne 48 doit pas se finir par un son faible (ie. une fin féminine non élidée).</dd> 49 <dt id="whatcheck_rhyme">Rime</dt> 50 <dd>La contrainte poétique la plus connue est que les vers doivent rimer. Les 51 phonèmes communs dans une rime doivent inclure un son vocalique (par exemple 52 "tâte" et "bête" ne riment pas parce que leur suffixe commun est [t] qui ne 53 contient pas de son vocalique). Les rimes sont vérifiées par plint avec une 54 approximation permissive de la prononciation de la fin des vers. Plint confond 55 [ɛ] et [ɛː] ("mettre" et "maître") et [a] et [ɑ] ("patte" et "pâte") mais pas 56 [ɛ̃] et [œ̃] ("brin" et "brun") ou [ɔ] et [o] ("cotte" et "côte"). Quand toutes 57 les règles classiques sont suivies, certaines rimes comme la rime normande ou 58 la rime avec liaison supposée sont acceptées.</dd> 59 <dt id="whatcheck_eye">Rime pour l'œil</dt> 60 <dd>En poésie classique, un degré minimal de rime "pour l'œil" est exigé 61 (ainsi "-é" et "-er" ne riment pas), avec une certaine tolérance (pour "-é" et 62 "-ai" notamment).</dd> 63 <dt id="whatcheck_genre">Genre des rimes.</dt> 64 <dd>En poésie classique, les rimes doivent être <em>féminines</em> ou 65 <em>masculines</em>. Une rime est féminine si elle se termine par un "e", "es" 66 ou "ent" silencieux, et est masculine dans le cas contraire. Les rimes doivent 67 faire rimer alternativement deux terminaisons féminines et deux terminaisons 68 masculines. plint vérifie cela, avec une approximation permissive pour 69 déterminer si une terminaison est féminine ou non.</dd> 70 <dt id="whatcheck_ambiguous">Motifs ambigus</dt> 71 <dd>Certains motifs comme "-ies" et "-ées", ou "-ie" ou "-ée" suivis 72 d'une consonne ou d'un 'h' aspiré, sont interdits en poésie classique. 73 La raison est que ces motifs sont ambigus car ils pouvaient être prononcés ou 74 élidés suivant les règles classiques de prosodie à l'époque, ce qui empêchait 75 de compter correctement les syllabes. Selon la prosodie moderne, ils sont 76 toujours élidés, mais ils sont toujours interdits suivant les règles 77 classiques : plint les signale.</dd> 78 <dt id="whatcheck_hiatus">Hiatus</dt> 79 <dd>Le hiatus (juxtaposition de sons vocaliques sans 'e' muet intercalaire) 80 est interdit en poésie classique et signalé. Plus précisément, il y a hiatus 81 lorsqu'un mot se termine par une voyelle (sauf 'e' muet) et que le mot suivant 82 commence par une voyelle ou par un <em>h</em> non-aspiré. Les consonnes 83 muettes en fin de mot évitent l'hiatus, sauf dans le cas particulier du mot 84 "et" (dont on considère qu'il se termine par un son vocalique).</dd> 85 <dt id="whatcheck_repeated">Mots répétés</dt> 86 <dd>On ne doit pas faire rimer un mot avec lui-même (mais on peut faire rimer 87 un mot avec des homographes de nature grammaticale différente), ainsi, plint 88 signale une erreur si le nombre d'occurrences d'un mot connu dans un motif de 89 rimes est plus grand par son nombre de natures grammaticales possibles.</dd> 90 <dt id="whatcheck_illegal">Caractères interdits</dt> 91 <dd>Les caractères que plint ne reconnaît pas (notamment les chiffres arabes) 92 sont signalés comme des erreurs, d'une part parce qu'ils sont sans doute 93 irréguliers en poésie classique, d'autre part parce que cela signifie sans 94 doute que plint va mal interpréter le vers.</dd> 95 <dt id="whatcheck_length">Longueur</dt> 96 <dd>Pour certains types de poèmes (par exemple les sonnets), le nombre de vers 97 est fixé, et une erreur est levée si le modèle n'est pas complet ou s'il a été 98 répété.</dd> 99 </dl> 100 101 <h2>Qu'est-ce qui n'est pas vérifié par plint ?</h2> 102 103 <p>Le comptage des syllabes est effectué par une approximation permissive qui 104 peut autoriser certaines diérèses ou synérèses non autorisées. Aucune 105 vérification n'est faite pour s'assurer que la césure à l'hémistiche se fait à 106 une position grammaticale raisonnable. Les rimes sont calculées par une 107 approximation permissive, et il en va de même pour les genres. Il est interdit 108 de faire rimer des mots dérivés l'un de l'autre (par exemple "justice" et 109 "injustice") mais plint, faute de données, ne peut vérifier pas cette 110 contrainte. Plint ne vérifie pas que les mots sont correctement orthographiés ou 111 s'ils existent effectivement en français, ou si le poème a un sens de façon 112 générale : par exemple, <q>Tatata tatati tatati tatata</q> est reconnu 113 comme un alexandrin classique parfaitement valide.</p> 114 115 <h2 id="log">Vie privée : Est-ce que des logs sont conservés ?</h2> 116 117 <p>Oui, des logs peuvent être conservés, afin de pouvoir identifier, quand le 118 programme plante, pourquoi le poème d'entrée l'a fait planter. Je conserve donc 119 des informations sur les requêtes entrantes (poème, adresse IP). Aussi, ne 120 soumettez pas de données confidentielles ou personnelles ; récupérez le <a 121 href="https://a3nm.net/git/plint">code source</a> et faites tourner plint 122 localement pour de tels usages.</p> 123 124 <h2 id="template">Comment faire pour définir ses propres modèles ?</h2> 125 126 <p> 127 Chaque ligne du format correspond à un vers (ie. une ligne non-vide). Une ligne 128 peut indiquer trois éléments séparés par une espace : la métrique, l'identifiant 129 de rime et l'identifiant de genre. Le premier est obligatoire, les deux derniers 130 sont facultatifs. 131 </p> 132 <p> 133 La métrique indique le nombre de syllabes du vers, et la position des 134 hémistiches éventuelles. Il s'agit de totaux de syllabes, séparés par '/' pour 135 indiquer les hémistiches. Par exemple, "6/6" est un alexandrin classique, "12" 136 est un alexandrin non nécessairement pourvu de césure à l'hémistiche. 137 </p> 138 <p> 139 L'identifiant de rime sert à regrouper les vers qui doivent rimer ensemble. Les 140 vers ayant le même identifiant doivent rimer. Pour préciser le type de rime 141 attendue, il est possible de terminer l'identifiant par ':' suivie d'une liste 142 de valeurs séparées par '|'. La première valeur est soit "no" pour désactiver 143 les contraintes classiques sur la rime (et n'exiger que la rime phonétique), 144 soit n'importe quoi d'autre pour activer les règles classiques (ce qui est fait 145 par défaut). La seconde valeur est un nombre minimal de phonèmes communs 146 nécessaires pour qu'une rime soit acceptée (1 par défaut). 147 </p> 148 <p> 149 L'identifiant de genre de rime sert à regrouper les vers qui doivent avoir une 150 rime de même genre. Les conventions supplémentaires sont que deux identifiants 151 de casse inversée (tels que "ex" et "EX") ont des genres opposés 152 obligatoirement, et que "m" et "f" sont obligatoirement masculin et féminin 153 respectivement. 154 </p> 155 <p> 156 Si des identifiants ne sont pas spécifiés, alors la contrainte correspondante 157 n'est pas spécifiée. 158 </p> 159 <p> 160 Une fois le format épuisé, il est lu à nouveau à partir du début, jusqu'à la fin 161 du poème. Les identifiants de rime et de genre sont réinitialisés (ie. peuvent 162 prendre n'importe quelle valeur), sauf ceux qui commencent par '!'. Il n'est pas 163 interdit que le poème et le format ne terminent pas simultanément. 164 </p> 165 166 <p>Des options globales peuvent être définies sur une ligne commençant par 167 "! ", elles doivent être de la forme clé:valeur et séparées par des espaces, les 168 options suivantes sont reconnues :</p> 169 <dl> 170 <dt>merge</dt> 171 <dd>La valeur doit être une liste de phonèmes X-SAMPA (avec la conversion 172 maison de plint pour représenter par un caractère les phonèmes de deux 173 caractères) à fusionner. Les rimes seront vérifiées à ces fusions près.</dd> 174 <dt>normande_ok</dt> 175 <dd>La valeur doit être true ou false pour accepter ou refuser les rimes 176 normandes. Par défaut, elles sont acceptées.</dd> 177 <dt>hiatus_ok</dt> 178 <dd>La valeur doit être true ou false pour accepter ou refuser les hiatus (au 179 sens classique). Par défaut, ils sont refusés.</dd> 180 <dt>diaeresis</dt> 181 <dd>La valeur doit être soit "classical" pour imposer les règles de la 182 métrique classique (approximées au mieux) ou "permissive" pour des 183 approximations plus permissives qui accepteront à peu près n'importe quelle 184 diérèse ou synérèse phonétiquement plausible. La valeur par défaut est 185 "classical".</dd> 186 <dt>forbidden_ok</dt> 187 <dd>La valeur doit être true ou false pour accepter ou refuser les motifs 188 ambigus comme "ées", "ies". Par défaut, ils sont refusés. Si vous acceptez ces 189 motifs, vous devriez mettre "diaeresis" à "classical" pour qu'ils aient une 190 longueur calculée de façon raisonnable.</dd> 191 <dt>repeat_ok</dt> 192 <dd>Si cette valeur est false, le modèle ne se répétera pas, un poème plus 193 long que le modèle provoquera une erreur. Par défaut, la valeur est true.</dd> 194 <dt>incomplete_ok</dt> 195 <dd>Si cette valeur est false, le poème devrait avoir exactement la longueur 196 du modèle (ou un multiple, si repeat_ok est true), ne pas aller jusqu'à la fin 197 du modèle provoquera une erreur. Par défaut, la valeur est true.</dd> 198 <dt>phon_supposed_ok</dt> 199 <dd>Autoriser la liaison supposée pour les rimes (vrai par défaut).</dd> 200 <dt>eye_supposed_ok</dt> 201 <dd>Autoriser la liaison supposée pour les rimes pour l'œil (vrai par défaut).</dd> 202 <dt>eye_tolerance_ok</dt> 203 <dd>Autoriser les tolérances pour les rimes pour l'œil telles que "-é"/"-ai" 204 (vrai par défaut).</dd> 205 <dt>poor_eye_required</dt> 206 <dd>Imposer des rimes pour l'œil d'au moins 2 caractères dans le cas d'une 207 rime pauvre (un seul phonème) qui ne comporte pas de mots monosyllabiques 208 (vrai par défaut, n'a de sens que pour les rimes classiques).</dd> 209 <dt>poor_eye_supposed_ok</dt> 210 <dd>Autoriser la liaison supposée pour la rime pour l'œil pour 211 poor_eye_required (faux par défaut).</dd> 212 <dt>poor_eye_vocalic_ok</dt> 213 <dd>Ne pas imposer la rime de poor_eye_required pour des successions de deux 214 sons vocaliques (par exemple Noé/avoué).</dd> 215 </dl> 216 217 <p>Désolé si tout cela semble un peu obscur. Vous pouvez regarder les modèles 218 prédéfinis pour comprendre comment ils fonctionnent :</p> 219 <ul> 220 <li><span class="template"><a 221 href="static/tpl/classical.tpl">classical</a></span></li> 222 <li><span class="template"><a 223 href="static/tpl/french_abab.tpl">french_abab</a></span></li> 224 <li><span class="template"><a 225 href="static/tpl/french_abba.tpl">french_abba</a></span></li> 226 <li><span class="template"><a 227 href="static/tpl/italian_abab.tpl">italian_abab</a></span></li> 228 <li><span class="template"><a 229 href="static/tpl/italian_abba.tpl">italian_abba</a></span></li> 230 <li><span class="template"><a 231 href="static/tpl/alexandrin.tpl">alexandrin</a></span></li> 232 </ul> 233 234 <h2>Problèmes fréquents</h2> 235 <ul> 236 <li>Les chiffres arabes ne sont pas acceptés. Écrivez toujours les nombres en 237 toutes lettres.</li> 238 <li>Si le compte de syllabes dans le vers est correct mais qu'une erreur de 239 métrique est signalée, vérifiez les hémistiches. Les césures incorrectes (qui 240 coupent un mot ou se terminent par un son féminin) sont signalées.</li> 241 </ul> 242 243 <h2 id="pron">Comment la prononciation est-elle indiquée ?</h2> 244 <p>Avec <a href="http://en.wikipedia.org/wiki/X-SAMPA">X-SAMPA</a>. Voyez aussi <a 245 href="https://fr.wiktionary.org/wiki/Annexe:Prononciation/fran%C3%A7ais">l'annexe 246 de Wiktionnaire sur la prononciation du français</a>. Notez qu'en raison de 247 limitations diverses, la prononciation indiquée peut être complètement fausse 248 pour les premiers phonèmes. Les derniers devraient être bons, cependant.</p> 249 250 <h2>Est-ce qu'il y a une API ?</h2> 251 <p>Pas encore. Si vous voulez faire quelque chose d'original, <a 252 href="https://a3nm.net/git/plint">allez récupérer une copie du code</a>.</p> 253 254 <h2>Et le nom ?</h2> 255 256 <p>C'est "plint" comme "poem lint" (comme l'outil "<a 257 href="https://en.wikipedia.org/wiki/Lint_(software)">lint</a>" pour les 258 programmes), mais aussi pour l'homophonie avec "plainte".</p> 259 260 {% else %} 261 262 <p>Welcome to <strong>plint</strong>!</p> 263 <h2 id="info">Wait, what is this?</h2> 264 <p>This is <a href="https://a3nm.net">a3nm</a>'s attempt to make a better world 265 by eradicating that species of bad French poetry that tries to follow classical 266 constraints but fails. It checks the validity of a poem with 267 respect to metric, rhyme and rhyme genre constraints. It uses <a 268 href="https://a3nm.net/git/frhyme">frhyme</a> for rhymes (itself built on the 269 <a href="http://lexique.org">Lexique</a> database), <a 270 href="https://a3nm.net/git/haspirater">haspirater</a> for aspirated 'h' 271 detection, and a carefully handwritten system for metric and genre. It is 272 powered by <a href="http://python.org">Python</a> and <a 273 href="http://bottlepy.org">Bottle</a>. You can get the code on the <a 274 href="https://a3nm.net/git/plint">plint repository</a> to run it locally.</p> 275 <p>Ad: if you like plint, you might enjoy the French rhyme dictionary <a 276 href="https://drime.a3nm.net">drime</a>.</p> 277 278 <h2 id="help">How do I use it?</h2> 279 <p>Enter your poem in the text area and select the poem template. If none of the 280 predefined templates suit you, you can <a href="#template">write your 281 own</a>.</p> 282 283 <h2 id="whatcheck">What does plint check?</h2> 284 <p>Here are some simplified explanations. To know all the details, go read the 285 source code.</p> 286 <dl> 287 <dt id="whatcheck_syllable">Syllable count</dt> 288 <dd>The number of syllables in each verse is usually fixed (12 in 289 alexandrines, for instance). Syllables are counted in a reading with no 290 elision of mute <em>e</em>'s except at the end of a word <em>and</em> when 291 the following word starts with a vowel or non-aspirated <em>h</em> (or if it 292 is the last word). The syllable count is <em>not</em> what you get with a 293 colloquial everyday reading. Some vowels clusters can count for two 294 syllables either naturally ("Léon") or through <em>diérèse</em> ("passion"); 295 plint uses a tolerant approximation of allowed <em>diérèses</em> trained on a 296 corpus of classical texts.</dd> 297 <dt id="whatcheck_hemistiche">Hemistiche</dt> 298 <dd>For classical alexandrines, the 12 syllables are separated in two groups 299 of 6 with an intermediate cesura (the <em>hémistiche</em>). The cesura must 300 not split a word and must not end in a weak sound (essentially, a non-elided 301 feminine ending).</dd> 302 <dt id="whatcheck_rhyme">Rhyme.</dt> 303 <dd>The fact that verses must rhyme is the most well-known poetic constraint. 304 The rhyming phonemes must include a vowel (eg. "tâte" and "bête" do not rhyme 305 because their common phoneme suffix is [t] which does not include a vowel 306 sound). plint enforces rhymes trough a liberal approximation of the 307 pronunciation of verse endings. Plint merges [ɛ] et [ɛː] ("mettre" and 308 "maître") and [a] and [ɑ] ("patte" and "pâte") but distinguishes [ɛ̃] and [œ̃] 309 ("brin" and "brun") and [ɔ] and [o] ("cotte" and "côte"). When all classical 310 rules are enforced, some rhymes such as <em>rime normande</em> and rhymes for 311 a <em>liaison supposée</em> are accepted though they do not rhyme 312 phonetically.</dd> 313 <dt id="whatcheck_eye">Eye rhyme.</dt> 314 <dd>Classical rules require a minimal degree of <em>rime pour l'œil</em> (end 315 letter similarity); thus "-é" and "-er" do not rhyme, although common 316 tolerances exist, such as allowing "-é" and "-ai".</dd> 317 <dt id="whatcheck_genre">Rhyme genre.</dt> 318 <dd>In classical verse, rhymes must be made between feminine verse endings, or 319 masculine verse endings. A verse ending is feminine if it ends with a silent 320 "e", "es" or "ent", and masculine otherwise. plint enforces this, with a 321 liberal approximation to try to guess if an ending is indeed silent. Besides, 322 feminine and masculine rhymes must alternate.</dd> 323 <dt id="whatcheck_ambiguous">Ambiguous patterns</dt> 324 <dd>Some patterns such as "-ées" or "-ies", or "-ée" and "-ie" followed by an 325 aspirated 'h' or a consonant, are forbidden by classical rules. They are 326 called "ambiguous" because, according to classical prosody rules at the time, 327 they could be either pronounced or elided, so it was unclear how to count 328 syllables. In modern French, they are always elided, but classical poetry 329 still prohibits them. They are 330 reported by plint.</dd> 331 <dt id="whatcheck_hiatus">Hiatus</dt> 332 <dd>Juxtaposition of vowel sounds in two adjacent words with no mute 'e' in 333 the middle is forbidden and reported. Specifically, it is forbidden to end a 334 word with a vowel (except mute 'e') and have the next word start with a vowel 335 or a non-aspirated <em>h</em>. Mute consonants at the end of the word avoid 336 hiatus, except in the specific case of the word "et" (which is considered to 337 end by a vowel sound).</dd> 338 <dt id="whatcheck_repeated">Repeated words</dt> 339 <dd>A word may not rhyme with itself, but may rhyme with a homograph of a 340 different grammatical nature, so plint will report as error any multiple 341 occurrences of a known word in a rhyme pattern if the number of occurrences is 342 more than the number of grammatical natures for the word.</dd> 343 <dt id="whatcheck_illegal">Illegal characters</dt> 344 <dd>Characters that are not understood by plint, such as arabic numerals, are 345 reported as errors: on the one hand, they are probably best avoided in 346 classical poetry; on the second hand plint will probably misinterpret the 347 verse if it does not understand some of the characters.</dd> 348 <dt id="whatcheck_length">Poem length</dt> 349 <dd>For some poetic forms such as the <em>sonnet</em>, the number of verses is 350 fixed, so an error is raised if the pattern was not completed to the end or 351 was repeated.</dd> 352 </dl> 353 354 <h2>What isn't checked by plint?</h2> 355 356 <p>Syllable count is performed by a liberal estimate which may allow some 357 invalid <em>diérèses</em> and <em>synérèses</em> to make the count match. It is 358 not checked if <em>hémistiches</em> occur at a sensible grammatical position. 359 Rhyme is computed by a liberal heuristic, as well as rhyme genre. Rhymes between 360 words derived from one another, such as <em>justice</em> and <em>injustice</em>, 361 are usually not allowed, 362 but this is not checked by plint for lack of adequate data. More importantly, 363 plint will not check if the words you use exist in French, or are correctly 364 spelt, and if your poem makes any sense, does not contain spelling mistakes or 365 has any poetic value; it only enforces formal constraints. For instance, 366 <q>Tatata tatati tatati tatata</q> is recognized as a perfectly correct 367 classical alexandrine.</p> 368 369 <h2 id="log">Privacy: Do you keep logs?</h2> 370 371 <p>Yes, I do, because whenever the program chokes on a poem I need to figure out 372 what happened, and I need the input poem for that, so I keep a trace of incoming 373 requests (poem, IP address, etc.). Hence, if you want to run plint on confidential or 374 personal poems, do not submit them to the online version; instead, retrieve the 375 <a href="https://a3nm.net/git/plint">source code</a> and run plint locally.</p> 376 377 <h2 id="template">How can I define my own templates?</h2> 378 379 <p>Each template line will be checked against a non-blank poem line. When the 380 template is finished, it starts over from the beginning, and the rhyme and rhyme 381 genre identifiers (see below) are reinitialized unless they start with a '!'. 382 Each line contains one to three space-separated fields. The fields will be 383 interpreted in the following order:</p> 384 <ol> 385 <li>The first field is the <strong>metric indication</strong>. It is a list of 386 syllable counts separated by '/'s to indicate <em>hémistiches</em>. For 387 instance, "6/6" is a classical alexandrine, "12" is an alexandrine without 388 <em>hémistiche</em>. For technical reasons, the total number of syllables in a 389 verse is limited to 16.</li> 390 <li>The second field is the <strong>rhyme identifier</strong>. Verses with the 391 same rhyme identifier must rhyme. You can suffix the pattern with ":" followed 392 by a rhyme constraint. The rhyme constraint is up to two '|'-separated 393 values. The first value is either "no" to disable classical constraints and only 394 enforce phonetic rhyming, or anything else (default) to enable classical 395 constrains. The second value is a number of required common phonemes (default 396 1).</li> 397 <li>The third field is the <strong>rhyme genre</strong>. Verses with the same 398 rhyme genre identifier must have the same rhyme genre. Identifiers with opposite 399 case (like "ex" and "EX") must represent opposite genres, "m" must represent 400 masculine, "f" must represent feminine.</li> 401 </ol> 402 <p>Global options can be stated in lines starting with "! ", they are of the 403 form option:value and separated by spaces, with the following possibilities:</p> 404 <dl> 405 <dt>merge</dt> 406 <dd>The value should be a list of X-SAMPA phonemes (with plint's custom 407 mapping of multi-character to single-character phonemes) to merge (for 408 instance "oO"). Rhymes will be computed up to these merges.</dd> 409 <dt>normande_ok</dt> 410 <dd>The value should be true or false to allow or refuse rimes normandes. 411 Default is true.</dd> 412 <dt>hiatus_ok</dt> 413 <dd>The value should be true or false to allow or refuse hiatus (in the sense 414 of classical poetry). Default is false.</dd> 415 <dt>diaeresis</dt> 416 <dd>The value should be either "classical" to enforce an approximation of the 417 rules of classical verse or "permissive" to enforce a more permissive 418 approximations which will allow mostly all phonetically reasonable diérèses 419 and synérèses. Default is "classical".</dd> 420 <dt>forbidden_ok</dt> 421 <dd>The value should be true or false to allow or refuse patterns such as 422 "ées", "ies". Default is false. If you set this, it may be preferable to set 423 "diaeresis" to "permissive" so that the ambiguous patterns are counted 424 reasonably.</dd> 425 <dt>repeat_ok</dt> 426 <dd>If the value is false, the template will not repeat, and going beyond its 427 end will be an error. Default is true.</dd> 428 <dt>incomplete_ok</dt> 429 <dd>If the value is false, the poem should match the length of the template 430 (or a multiple thereof is repeat_ok was set), and not completing a template 431 run will be an error. Default is true.</dd> 432 <dt>phon_supposed_ok</dt> 433 <dd>Allow <em>liaison supposée</em> for rhymes (default is true).</dd> 434 <dt>eye_supposed_ok</dt> 435 <dd>Allow <em>liaison supposée</em> for <em>rimes pour l'œil</em> (default is 436 true).</dd> 437 <dt>eye_tolerance_ok</dt> 438 <dd>Allow tolerances for <em>rimes pour l'œil</em> such as "-é"/"-ai" (default 439 is true).</dd> 440 <dt>poor_eye_required</dt> 441 <dd>Require at least 2 characters in <em>rimes pour l'œil</em> when the sound 442 rhyme is poor (only one phoneme) and there are no monosyllabic words in the 443 rhyme (default is true, only applies to classical rhymes).</dd> 444 <dt>poor_eye_supposed_ok</dt> 445 <dd>Allow <em>liaison supposée</em> for the <em>rime pour l'œil</em> for 446 poor_eye_required (default is false).</dd> 447 <dt>poor_eye_vocalic_ok</dt> 448 <dd>Do not require the rhyme of poor_eye_required for successions of two 449 vocalic sounds (such as Noé/avoué).</dd> 450 </dl> 451 452 <p>Sorry if all of this is a bit obscure. You can have a look to the predefined 453 templates to understand how this works:</p> 454 <ul> 455 <li><span class="template"><a 456 href="static/tpl/classical.tpl">classical</a></span></li> 457 <li><span class="template"><a 458 href="static/tpl/french_abab.tpl">french_abab</a></span></li> 459 <li><span class="template"><a 460 href="static/tpl/french_abba.tpl">french_abba</a></span></li> 461 <li><span class="template"><a 462 href="static/tpl/italian_abab.tpl">italian_abab</a></span></li> 463 <li><span class="template"><a 464 href="static/tpl/italian_abba.tpl">italian_abba</a></span></li> 465 <li><span class="template"><a 466 href="static/tpl/alexandrin.tpl">alexandrin</a></span></li> 467 </ul> 468 469 <h2>Common issues</h2> 470 <ul> 471 <li>There is no support for arabic numerals. Always spell out numbers in 472 full.</li> 473 <li>If the verse total is correct but a metric error is reported, check the 474 <em>hémistiche</em>. Wrong <em>hémistiches</em> (which cut a word or end in a 475 feminine sound) are reported.</li> 476 </ul> 477 478 <h2 id="pron">How is pronunciation written?</h2> 479 <p>It is <a href="http://en.wikipedia.org/wiki/X-SAMPA">X-SAMPA</a>. Information 480 about French pronunciation can be found on the <a 481 href="https://fr.wiktionary.org/wiki/Annexe:Prononciation/fran%C3%A7ais">French 482 Wiktionary</a>. Be aware that because of various limitations, the leading 483 phonemes might be completely wrong. The last few ones should match, however.</p> 484 485 <h2>Is there an API?</h2> 486 <p>Not yet. If you want to do something creative, <a 487 href="https://a3nm.net/git/plint">grab a copy of the code</a>.</p> 488 489 <h2>What about the name?</h2> 490 491 <p>It's "plint" for "poem lint" (like the "<a 492 href="https://en.wikipedia.org/wiki/Lint_(software)">lint</a>" tool for 493 programs), but also because "plint" in French would be read like "plainte", 494 meaning "complaint".</p> 495 496 {% endif %} 497 {% endblock %} 498