Un outil oulipien
Greg Lessard, Études françaises
Michael Levison, Computing and Information Science
Stéfan Sinclair, Études françaises
Queens University
Atelier: La littérature à contraintes
APFUCC, 2001
Introduction
pourquoi oulipien?
contraintes + créativité
les contraintes
planification ou modification?
la générativité
machine et/ou être humain?
raconter une histoire
cadre général versus individualité
la prévisibilité
déterminisme ou non?
Contexte théorique
lanalyse fonctionnelle de Propp
personnages et fonctions
la structure des paragraphes
Rhetorical Structure Theory
noyaux et satellites (ex. affirmation + exemples)
Le logiciel (VINCI)
système de génération (métalangages + interpreteur)
sémantique
classes et valeurs
ordre partiel
attributs composés
syntaxe
arbres syntaxiques
noeuds attribués
développement conditionnel
transformations
lexique
traits sémantiques
relations sémantiques (synonymes, contraires, etc.)
créativité lexicale
orthographe et phonologie
morphologie
flexion
Un texte simple
Il était une fois un roi. Il était faible, et il avait les cheveux roux.
Il était une fois une princesse. Elle était belle, intelligente, et
bonne, et elle avait les cheveux blonds.
Le roi ordonna à la princesse de rester.
Elle était obéissante mais elle n'obéit pas.
La princesse partit.
Un sorcier enleva la princesse.
Le roi demanda l'aide du prince.
Un lutin recommanda une tasse magique au prince.
Le prince utilisa la tasse pour tuer le sorcier.
Le prince épousa la princesse et ils eurent beaucoup d'enfants.
Attributs
Personnages (
roi, héros, victime, scélérat, adjuvant, objet_magique)
Intelligence (
stupide, intelligent, intelligence0)
Force (
fort, faible, force0)
Apparence (
beau, laid, apparence0)
Moralité (
bon, méchant, moralité0)
Cheveux (
roux, blonds, châtains)
Obéissance (
obéissant, désobéissant)
Personnages
\r"prince"|N|masc, Nombre, Déterm, >humain, Cheveux, Obéissance, mâle, beau, bon, fort, intelligent, phon, anglais||$3||||||||||||"prince"||"pRês"|||$phon0|||||||
\r"lutin"|N|masc, Nombre, Déterm, >humain, Cheveux, Obéissance, mâle, laid, bon, intelligent, Force, phon, anglais||$3||||||||||||"fairy"||"lytê"|||$phon0|||||||
\r"roi"|N|masc, Nombre, Déterm, >humain, Cheveux, Obéissance, mâle, Apparence, Force, Moralité, Intelligence, phon, anglais||$3||||||||||||"king"||"Rwa"|||$phon0|||||||
\r"princesse"|N|fém, Nombre, Déterm, >humain, Cheveux, Obéissance, femelle, beau, bon, intelligent, Force, phon, anglais||$3||||||||||||"princess"||"pRêsEs"|||$phon0|||||||
\r"sorcier"|N|masc, Nombre, Déterm, >humain, Cheveux, Obéissance, mâle, laid, méchant, fort, intelligent, phon, anglais||$3||||||||||||"sorcerer"||"sORsje"|||$phon0|||||||
\r"sorcière"|N|fém, Nombre, Déterm, >humain, Cheveux, Obéissance, femelle, laid, méchant, intelligent, Force, phon, anglais||$3||||||||||||"witch"||"sORsjER"|||$phon0|||||||
Choisir un personnage et une fonction
PRESELECT =
victime : N[sing]/"princesse"
%
ROOT = DECRIRE[victime]
%
Une liste de fonctions
DECRIRE - décrire un personnage x
INTERDIRE - x défend à y de faire z
DÉSOBÉIR - x désobéit
PARTIR - x quitte un endroit
ENLEVER - x enlève y
APPELER - x demande de laide à y
AIDER - x aide y par le don de z
TUER - x tue y
ÉPOUSER - x épouse y
La syntaxe qui sous-tend une fonction
DECRIRE =
INHERIT Ps : Personnages;
SELECT Fo : Force _in_ Ps ,
Ap : Apparence _in_ Ps,
In : Intelligence _in_ Ps,
Mo : Moralité _in_ Ps,
Ch : Cheveux _in_ Ps;
P1[Ps]
P2[Ps, Ap]
P3[Ps, In]
P4[Ps, Fo]
P5[Ps, Mo]
P6[Ps, Ch]
%
P1 =
INHERIT Ps : Personnages;
SELECT
Ge1 : Genre _in_ Ps,
No1 : Nombre _in_ Ps;
PONCT[maj]
V[ilétaitunefois]
DET[indéf, Ge1, No1]
N[Ge1, No1]/_pre_ Ps
PONCT[pt]
%
P2 =
INHERIT Ps : Personnages;
SELECT Ge1 : Genre _in_ Ps,
No1 : Nombre _in_ Ps,
Ap1 : Apparence _in_ Ps;
< apparence0 :
> PONCT[maj]
PRON[pronper, clit, suj, p3, Ge1, No1]
V[vcop, imparf, p3, No1, indic]
ADJ[Ap1, Ge1, No1]
PONCT[virg]
%
P3 =
INHERIT Ps : Personnages;
SELECT Ge1 : Genre _in_ Ps,
No1 : Nombre _in_ Ps,
In1 : Intelligence _in_ Ps;
< intelligence0 :
>
ADJ[In1, Ge1, No1]
PONCT[virg]
%
P4 =
INHERIT Ps : Personnages;
SELECT Ge1 : Genre _in_ Ps,
No1 : Nombre _in_ Ps,
Fo1 : Force _in_ Ps;
< force0 :
>
ADJ[Fo1, Ge1, No1]
PONCT[virg]
%
P5 =
INHERIT Ps : Personnages;
SELECT Ge1 : Genre _in_ Ps,
No1 : Nombre _in_ Ps,
Mo1 : Moralité _in_ Ps;
< moralité0 :
> CONJ[et]
ADJ[Mo1, Ge1, No1]
PONCT[virg]
%
P6 =
INHERIT Ps : Personnages,
Ch : Cheveux;
SELECT Ge1 : Genre _in_ Ps,
No1 : Nombre _in_ Ps;
> CONJ[et]
PRON[pronper, clit, suj, p3, Ge1, No1]
V[imparf, p3, No1, indic]/"avoir"
DET[déf, masc, plur]
N[masc, plur]/"cheveu"
ADJ[Ch, masc, plur]
PONCT[pt]
%
Les transformations
Point de départ:
Elle était belle, elle était intelligente, elle était bonne, et elle avait les cheveux blonds.
Négation:
Elle nétait pas laide, elle nétait pas stupide, elle nétait pas méchante, et elle avait les cheveux blonds.
Exclamation:
Ce quelle était belle, ce quelle était intelligente, ce quelle était bonne, et elle avait les cheveux blonds.
Nominalisation:
Elle était dune beauté, elle était dune intelligence, elle était dune bonté, et elle avait les cheveux blonds.
Exemple dune transformation
NOMINALISER = TRANSFORMATION
* PRON V ADJ[force0] * : 1 2 3 4 5;
* PRON V ADJ[moralité0] * : 1 2 3 4 5;
* PRON V ADJ[intelligence0] * : 1 2 3 4 5;
* PRON V ADJ[apparence0] * : 1 2 3 4 5;
* PRON V ADJ * : 1 2 3 PREP[de] DET[indéf, fém, sing] 4/@14:nom[fém, sing] PONCT[ptexcl] ;
%
Conclusions
interface
ouverture vers dautres ontologies, etc.
hypertextualisation
création de dialogues (questions, réponses, etc.)
utilisation pédagogique