Table of Contents "Algorithmic Art & A.I."       IAAA       




Course "Algorithmic Art & A.I."  –  Jos de Bruin

Het structurele perspectief: tekst en grammatica's

 

Introductie

Deze colleges gaan over de algoritmisering van kunst, d.w.z. over het opstellen van systematische procedures die eenduidig voorschrijven hoe kunstwerken gegenereerd kunnen worden. De fundamentele vooronderstelling hierbij is dat hoe oneindig groot de verzameling bestaande, alweer verdwenen en nog te maken kunstwerken ook is, het toch mogelijk is daar je armen omheen te krijgen, d.w.z. een recept te schrijven dat deze hele verzameling in principe produceert – dat wil zeggen, als daarvoor voldoende en dus zonodig onbeperkte tijd en ruimte ter beschikking is.

Bij het bedenken van een algoritme voor de productie van een verzameling van het een of ander zijn de fundamentele vragen:

  •   wat is het uitgangsmateriaal?
  •   wat zijn de operaties waarover je beschikt?
  •   hoe kun je de gewenste eindproducten beschrijven?

In de vorige colleges hebben we een paar eerste suggesties bekeken. Essentie hiervan was dat die laatste vraag (Wat willen we eigenlijk maken?) gewoon niet beantwoord werd.

  1. Ga er gewoon vanuit dat alle mogelijke kunstwerken er al zijn, analyseer die verder niet maar bedenk een simpele manier om ze te kunnen kiezen: pak zo maar iets, gooi een pijltje op de landkaart etc.; eigenlijk zeg je dan dus niets over het basismateriaal (alles is basismateriaal) en niets over de verzameling (alles is OK) en dan ben je dus vrij om iedere willekeurige verzameling van operaties te kiezen en deze in iedere willekeurige volgorde en combinatie toe te passen.
  2. Beschouw een verzameling kunstwerken vanuit een simpel basisnivo: zo zijn plaatjes op een bepaald nivo van analyse te beschouwen als bestaand uit een regelmatig grid van punten (pixels) die ieder een kleur uit een eindige verzameling kleuren kunnen hebben; aldus opgevat kunnen we de plaatjes vrij eenvoudig systematisch enumeren of samplen; hier zeg je dus eigenlijk niets over de gewenste verzameling, en alleen iets over het basismateriaal (pixels met een positie in een bepaalde ruimte en met een bepaalde kleur en vorm).

In  variant 1 wordt het probleem eigenlijk gewoon ontkend. Er is geen echte afbakening van de eenheden, en systematische enumeratie (of mathematisch exacte random sampling) is dus niet mogelijk. Variant 2 daarentegen is eigenlijk al een hele simpele versie van wat we in dit college willen bespreken: het genereren van kunstwerken op basis van een notie van structuur, dus een karakterisering van de gewenste verzameling in andere termen dan een simpele enumeratie van de individuele elementen, of een simpel procedé.

Computationele linguistiek

We gaan het idee van structuur-gebaseerde generatie in eerste instantie bekijken aan de hand van enkele elementaire noties uit de computationele linguistiek. Daar zijn twee redenen voor:

  1. Computerlinguïstiek is op zichzelf relevant in de context van de Nieuwe Media: tekst is een belangrijk medium, zo niet het dominante medium, en speelt ook in de kunst dus een enorme rol.
  2. De door Computerlinguïstiek gebruikte formalismen en technieken vormen een inspiratiebron voor soortgelijke benaderingen in andere domeinen (beeld, muziek, dans).

In de Computerlinguïstiek houdt men zich vanuit een computationeel perspectief bezig met de vraag hoe taal in elkaar zit en gebruikt wordt, d.w.z. men streeft naar algoritmes om taaluitingen te interpreteren of te produceren. Dergelijke algoritmes spelen ook in de informatica als geheel een cruciale rol: programma's worden uitgedrukt in programmeertalen, geanalyseerd op hun correctheid, vertaald in expressies in wat machinetaal wordt genoemd en vervolgens uitgevoerd. Het gaat dan om vragen als: hoe specificeer je een taal, hoe weet je of een bepaalde uiting inderdaad tot die taal behoort, hoe geef je de relatie tussen twee talen weer zodat je de betekenis van een expressie in de ene taal kunt omzetten in een equivalente expressie in de andere taal.

Text & Nieuwe Media

¥ konkrete po‘zie --> dynamische hyper-po‘zie? (opzoeken: Paul van Ostayen en andere "Album"-projecten)
¥ rol van taal in theater en film
¥ interactiviteit: speech interfaces
¥ internet. cf. Kluitenberg on "Visual Culture"


Talen

Expressies in een taal (zinnen, commando's, programma's) bestaan uit een reeks van symbolen (termen, woorden) uit een eindig, niet-leeg alfabet; een taal is een deelverzameling van alle mogelijke reeksen van symbolen.

Text-generatie 

Als een taal geen echte deelverzameling is van alle symbool-reeksen (anything goes) dan is generatie simpel: 

  1. start met lege reeks
  2. stop of ga verder
  3. kies een willekeurig symbool en plak dat achter de huidige reeks
  4. ga verder vanaf 2

Alternatief: ga uit van een bestaande tekst (= reeks), knip deze in stukken, schud ze door elkaar en plak ze weer aan elkaar

Voorlopers in deze techniek: Burroughs, Tzara

Een uitgebreide lijst van sites die deze techniek centraal stellen is te vinden in dit overzicht van cut-up technieken

M. Ross: Dada, 2002.

Als een taal wel een deelverzameling is, hoe is deze deelverzameling dan gedefinieerd?

  •  Simpelweg als de verzameling van alle zinnen: Readymade teksten
  •  Woorden aaneenrijgen op basis van de frequentie van voorkomen in corpus
  •  Woorden aaneenrijgen op basis van overgangswaarschijnlijkheden: Markov ketens. 
Spraakherkenning: voorspellen wat er gezegd wordt. (Cf. taal-generatie!) Spraakherkenning m.b.v. regel van Bayes gebruikt kans dat een woord gezegd wordt.
Q: Hoe schat je dat? A.: Frequentie. Q: Hoe schat je dat nog beter? A: Bigram-frequentie (Markov-model)
Voorbeelden uit Informatie-theorie-inleidingen. Generatieprocessen laten zien. (ProgrammaÕs op internet?) Finite-state-model van taal. Trigram-frequenties (IBM).
Muziek: Fuchs, Illiac-suite, Geurts & Meertens, e.d.

Markov ketens

Beschrijven proces in termen van toestanden en hun mogelijke overgangen. Waarschijnlijkheden hangen af van de toestand van dat moment, niet van de volledige voorgeschiedenis. Als we de kans laten bepalen door de twee laatste woorden, krijgen we dus te maken met meer toestanden.

Hidden Markov Models worden bijv. gebruikt bij spraakherkenning. Zij heten Hidden omdat de toestanden waarin deze modellen verkeren alleen indirect ingeschat kunnen worden. In het geval van spraakherkenning bijvoorbeeld is de relatie tussen een woord en het acoustische signaal probabilistisch. Uitgangspunt is de Bayesiaanse kansberekening: 

P(H|E) = P(E|H)*P(H) / P(E) die is gebaseerd op de regel dat P(E & H) = P(H|E)*P(E) = P(E|H)*P(H)

Patronen (Eliza)

Omdat elke zin is opgebouwd uit een (eindige?) reeks woorden, kun je de zinnen gaan groeperen aan de hand van "patronen" (een soort "zinnen" waarin naast woorden ook een speciaal soort symbolen staan die aangeven dat op de betreffende plek een willekeurig woord mag staan):

Ik ga naar _

Waarom voel je je _ ?

Je kunt zo'n patroon gebruiken om zinnen te classificeren, maar ook om ze te genereren. Probleem: hoe geef je aan wat er dan op zo'n open plek mag staan?

Optie 1: woordklassen onderscheiden en bij open plek aangeven welke woordklasse toegestaan is

Optie 2: combineren met tweede patroon, en dat patroon gebruiken om aan te geven hoe je een geschikte klasse herkent:

Ik voel me _         Waarom voel je je _ ?

Dit is de basis-truc in allerlei ChatBots, gebaseerd op het Eliza programma van Joseph Weizenbaum.

Een simpele Eliza (on-line); je kunt ook een uitgebreidere versie downloaden die je zelf kunt aanpassen.
Een uitvoerige verzameling ChatBots en info daarover.  
Google Web-directory: Chatterbots.


Reguliere expressies

Formele notatie voor het beschrijven van patronen:

Voorbeelden

(0 | 1)* 111
0* 1 (0 | 1)*
0* | 0* 1 0*
<letter> = A | B | ... | Z | a | b | ... | z
<letter>* main <letter>*
<letter>* x <letter>* x <letter>* x <letter>*
Identifiers in Pascal:
<letter> = A | B | ... | Z | a | b | ... | z
<digit> = 0 | 1 | 2 | 3 ... | 9

<letter> (<letter> | <digit>)*

Contextvrije grammatica's 

Krachtiger, kunnen bijvoorbeeld ook talen genereren als: willekeurig aantal a's, gevolgd door evenveel b's:

S  a X b 
X  a X b 
X  

Ook wel herschrijfregels of producties genoemd. Grammatica bestaat uit vier onderdelen:

  1. V, verzameling niet-terminale symbolen (variabelen)
  2. S, een startknoop
  3. T, verzameling terminale symbolen (de symbolen uit de taal)
  4. R, verzameling regels, in geval CFG: X Y, waarbij X een variabele, en Y nul of meer variabelen en/of terminalen

Voorbeeld voor Nederlands:

S  ZNG WW ZNG VZG
S  ZNG WW ZNG 
ZNG  LW ZN 
ZNG  LW BN ZN 
ZNG  LW ZN VZG
ZNG  LW BN ZN VZG
VZG  VZ ZNG 
LW   het
BN  kleine 
ZN  kind
WW  duwt 
VZ  op

Dergelijke grammatica's worden gebruikt om:

  •   zinnen te accepteren 

  •   zinnen een structuur te geven (bijv. om betekenis te kunnen afleiden)

  •   zinnen te genereren

Wordt snel complex. Problemen:

  •   te krap (zinnen missen, of sommige structuren van zinnen missen)
  •   overgeneralisatie (teveel zinnen, of teveel structuren voor zinnen)

Jan kijkt naar de man met de kijker op de berg

Het gaat er om goede structurele bouwstenen (frasen) te vinden:

ZNG  (LW) (BNG)* ZN VZG
BNG  (BW)* BN
BNG  BNG VW BNG

een vrij koude maar droge en gelukkig zonnige dag in november

 

BNF  ("Backus Normal Form" or "Backus-Naur Form") 

Een notatie voor het specificeren van CFG's , met name de syntax van programmeertalen

<loop statement> ::= <while loop> | <for loop>
<while loop> ::= while ( <condition> ) <statement>
<for loop> ::= for ( <expression> ; <expression>; <expression> ) <statement>
<assignment statement> ::= <variable> = <expression>

Zie ook: Drie manieren om een grammatica weer te geven

 

Een CFG voor taal kan op 3 manieren beschouwd worden:

mathematisch
nondeterministische automaat
stochastische automaat

 

Chomsky: transformationele grammatica's 

Noam Chomsky betoogde dat contextvrije grammatica's niet krachtig genoeg waren om natuurlijke taal op een adequate manier te beschrijven. Hij stelde dat er ook transformaties nodig waren, regels die een hele structuur kunnen omzetten in een andere structuur, daarbij eventueel elementen verwijderend of nieuwe elementen introducerend.

Contextgevoelige grammatica's staan herschrijfregels toe wier toepassing afhangt van de context:

NP1 V NP2 NP2 word(t) (ge-)V NP1

Zie onder meer:

S. Dik and J. Kooij: "Noam Chomsky en het transformationalisme." In: Algemene Taalwetenschap. Utrecht: Het Spectrum, 1988.

Remko Scha: "Taaltheorie en taaltechnologie; competence en performance." In: R. de Kort and G.L.J. Leerdam (eds.): Computertoepassingen in de Neerlandistiek. Almere: LVVN, 1990, pp. 7-22. [English translation: "Language Theory and Language Technology; Competence and Performance."] [In Reader 1991]

 

Semantiek en Pragmatiek

Taal wordt meestal gebruikt om iets uit te drukken, een feit te vermelden, een opdracht te geven, een vraag te stellen. Dat een tekst uit grammaticale zinnen bestaat, is daarvoor niet eens nodig. Het zuiver syntactische perspectief op het verschijnsel taal kan daarom wel ter discussie gesteld worden.

Discourse-grammatica. Scripts & Frames.

Plot-grammatica: Propp.


Computational Linguistics

Informatie over Natural Language Processing (NLP) op de site van de American Association for Artificial Intelligence (AAAI). [Computerlingu•stiek: Computer-programmaÕs die tekst genereren of verwerken ("begrijpen").]

Syllabus van een cursus in de Theory of Computation - nadere introductie van verschillende soorten grammatica's 


Procedural and constraint-based literature

Brisset. Duchamp.

Roussel: Comment j'ai écrit certains de mes livres.

Lewis Carroll, Tristan Tzara.

Lewis Carroll: Gedichtje over toevalspoëzie. [Zie Citaten Chance. (of Hoos Blotkamp in RUU Toevalscatalogus)]

Tristan Tzara: Gedichtje over toevalspoëzie. [Zie Citaten Chance. (of Hoos Blotkamp in RUU Toevalscatalogus)]

Oulipo

Raymond Queneau: Cent mille milliards de poèmes.

William Burroughs and Brion Gysin: Cut-up.

Chance Poetry: Jackson Mac Low

Procedures and challenges (formalism against writer's block).

Bernadette Mayer / Jonathan Mayhew / Charles Bernstein

Interactive narrative: Liquid Narrative.


Automatic Text Generation

Een site met uiteenlopende links naar varianten van algorithmic text
Een voorbeeld van tekst-evolutie 
Markov-based: Ray Kurzweil’s Cyber Poet
A.C. Bulhak's Postmodernism Generator. Built by means of the Dada Engine, using Recursive Transition Networks.

A. C. Bulhak: On the simulation of postmodernism and mental debility using recursive transition networks, Technical report CS 96/264, 12 pp., 1996. Department of Computer Science, Monash University, Melbourne, Australia. [Abstract.]

Matthew J. Koehler & Punya Mishra: Art from Randomness: How Inverso Uses Chance to Create Haiku. Interactive Multimedia Electronic Journal of Enhanced Learning. Volume 4, Number 1, April, 2002.



Muziekgrammatica.


Ray Jackendoff and Fred Lerdahl: "Generative Music Theory and its Relation to Psychology." Journal of Music Theory 25, 1 (1981). [In Reader 1991]



Toepassing op beeldende kunst:
 

     Die 5 Dinge, die [. . .] ein Šsthetisches Programm bestimmen, sind: das "Zeichenrepertoire" Z, die "Transformationsmenge" T, die "Ablauffunktion" a, die "Bewertungsfunktion" b und "Zielmenge" K. [. . .] Wir haben es demnach bei dem Šsthetischen Programm mit einem Modell folgender Art zu tun: ein KŸnstler ist sich seiner Mittel (Z, T) und Ziele (K) bewu§t: er kennt operationale Definitionen seiner Kriterien (b) und wei§ a priori auf welche Art er sein Ziel erreichen will oder welche Konstruktionsschritte er sich selbst zugesteht (a). [. . .]
     Wir machen einen Unterschied zwischen den von einem Šsthetischen Programm P erzeugbaren Šsthetischen Objekten und den bezŸglich P akzeptablen Objekten, die eine Untermenge der erzeugbaren sind. Ein vorliegendes Šsthetisches Objekt ist also nicht notwendig "akzeptabel" (der Begriff "akzeptabel" ist rein operational, obwohl er natŸrlich auf das traditionelle "schšn" reflektiert). [. . .]
      HŠtten wir aber vielleicht besser getan, eine generative Grammatik fŸr die Beschreibung des Šsthetischen Programms zu wŠhlen? Der Generationsproze§ formaler Grammatiken lŠuft in der Regel "blind", "zufŠllig", nicht zielgerichtet ab. Das soll hei§en, das nicht versucht wird, ein vorgegebenes Ziel zu erreichen [. . .]. Da wir aber ausdrŸcklich die Zielgerichtetheit des Šsthetischen Realisationsprozesses im Auge behalten wollen, scheint der eingeschlagene Weg der bessere zu sein.
     Allerdings sei angemerkt, da§ der Begriff der Grammatik explizit in einigen Veršffentlichungen Ÿber Computerkunst auftritt (z. B. Lansdown 1970ab, Stiny & Gips 1971, Camarero 1972). Allerdings erscheinen an diesen Stellen keine Definitionen von Grammatiken im Sinne des formalen Begriffs, oder doch nur vage Andeutungen.
Frieder Nake: €sthetik als Informationsverarbeitung. (Vienna/New York: Springer Verlag, 1974), pp. 34-40.
The articles referred to are:
Ernesto Garcia Camarero: "Computer Art." In: G. Mazzotta (ed.): La Scienzia e l'Arte (Milano: Edition Mazzotta, 1972).
R. John Lansdown: "Would you believe 'Woaagang Amazeus Mezart'?" In: Computers in the creative arts (Manchester: The National Computing Centre Ltd, 1970), pp. 12-32.
R. John Lansdown: "The use of computers in art." Proc. Int. Symp. Computer Graphics 70, Brunel University, Uxbridge, England, 1970.
George Stiny and James Gips: "Shape grammars and the generative specification of painting and sculpture." Proc. IFIP Congress 1971. TA-7, pp. 62-67.

Stiny & Gips (Shape Grammar; komt later aan de orde)

Max B. Clowes: "Pictorial Relationships — a Syntactic Approach." In: B. Meltzer and D. Michie (eds.): Machine Intelligence 4. Edinburgh: Edinburgh University Press, 1969. [In Reader 1991]



Opdracht:

Experimenteer met een voorbeeld van algoritmische tekstgeneratie. Je kunt dit doen door een Eliza of andere ChatBot aan te passen, door te experimenteren met een van de andere programma's die je via bovenstaande links (of elders natuurlijk) vindt of door zelf een recept te implementeren. Analyseer een en ander (half A4-tje), toesturen via email voor het volgende college; voeg daarbij een copie van of link naar de gebruikte of ontwikkelde programmatuur.



Acknowledgments

Text by Jos de Bruin. Additional links suggested by René Glas and Gabrielle Rozing.