- Automatische paginaopmaak
Pagina opmaak met kunstmatige intelligentie
Deze notitie belicht een mogelijke werkwijze voor het automatisch opmaken van pagina’s. Een deel hiervan werd voor de huisstijlhandboeken van Rabobank gebruikt. In de loop van 2010 wordt de functionaliteit in Xierpa verder uitgebreid.
Er bestaat op het moment geen digitaal gereedschap dat enerzijds flexibel genoeg is om in alle mogelijk technieken en soorten layouts te gebruiken, te koppelen is met een grote verscheidenheid aan informatiebronnen, en anderzijds voldoet aan de typografische eisen die aan handmatige opmaak worden gesteld.
Fasering
Het opmaken van een pagina vanuit ruwe kopij en meta-informatie is te verdelen in een aantal fasen:
- XML transformatie
- Zetten van de strokenproef
- Compositie van pagina’s
- Toevoegen van document informatie
XML transformatie
Het transformeren van XML documenten naar een informatiestructuur is met standaardgereedschappen zoals XSL makkelijk uit te voeren.
Zetten van de strokenproef
Om de software te maken die een strokenproef kan genereren is typografische kennis nodig. In vrijwel alle automatische opmaakprogramma’s is dit een onderbelicht gebied. Dat komt doordat de bouwers van dergelijke software niet of nauwelijks op de hoogte zijn van de relevante parameters en hun onderlinge samenhang.
De pagina wordt verdeeld in gebieden die een vaste of variabele functie kunnen hebben. De vast elementen worden eerst ingedeeld. Vervolgens worden de strokenproeven van verschillende informatiestromenen gewaardeerd en gesorteerd.
De weegfactoren daarvoor zijn zowel van inhoudelijke als typogafische aard. De oplossing voor het probleem uit zich in een recursieve benadering waarbij de onderdelen van een pagina als mini-pagina’s worden behandeld.
De weegfactoren daarvoor zijn zowel van inhoudelijke als typogafische aard. De oplossing voor het probleem uit zich in een recursieve benadering waarbij de onderdelen van een pagina als mini-pagina’s worden behandeld.
Daarnaast zijn met name tabellen lastige typografische bouwstenen, vooral als niet niet duidelijk is welke volume ze moeten bevatten. Veel opmaakprogramma’s lopen hierop vast. Enerzijds kan je een tabel voorstellen als een element dat meeloop in een kolom, maar als de inhoud teveel ruimte nodig heeft moet de tabel buiten de kolom worden geplaats of zelfs worden gesplitst over meerdere kolommen. In dat geval is het nodig om (automatisch) de kop te herhalen.
Als in de tabel ook colspan en rowspan instructies gevat wordt het nog ingewikkelder. Deze functionaliteit wordt in een webpagina onderteund dooe de browser die garandeert dat de inhoud altijd past, indien nodig door de maat van de gehele tabel aan te passen. Bij pagina’s met een vast formaat kan dit niet.
Bij het plaatsen van elementen met een verschillende breedte worden andere kolommen gevuld zonder dat als duidelijk is dat in de volgende kolom een splitsing in tekst mogelijk is. Dit maakt he nodig dat het systeem kan “backtracken” zodat het mogelijk is om terug te komen op eerdere slissingen in de opmaak van de pagina.
Compositie van pagina’s
De mate van complexiteit van het componeren van één of meerdere pagina’s uit een gegeven volume aan strokenproeven en beelden is direct afhankelijk van de structuur van het de informatie en het medium waarin moet worden afgebeeld.
Doel van het project is om automatisch pagina’s te kunnen opmaken met een complexiteit die in kranten en tijdschriften te vinden is, met een minimum aan toegevoegde meta-informatie.
Een tekst met grove structuur (als er beelden of tabellen in de tekst staan of veel hiërarchie in koppen) is moeilijker te plaatsen dan een homogene tekst. Er is een aantal strategieën bekend om het probleem op te lossen. Niet duidelijk is welke strategie in alle gevallen het beste is of welke strategie past op een bepaalde situatie.
De “branche-factor”, de hoek die de takken van een beslisboom maken, is maatgevend voor de complexiteit van een probleem en de grootte van de oplossingsruimte. Naar mate er per vertakking meer opties zijn is de hoek groter. De toegevoegde domeinkennis maakt het mogelijk om takken te verwijderen, zonder ze helemaal tot aan het eind te doorlopen.
Het soort van probleem is gerelateerd aan andere gebieden zoals speltheorie en kunstmatige intelligentie. In praktijk komt het er op neer dat een optimale oplossing gezocht moet worden in een snel vertakkende boom. Het aantal vertakkingen neemt exponentieel toe, waardoor het aantoonbaar onmogelijk is om ze allemaal af te lopen. Net als bij het berekenen van de beste zet in een schaakpartij moet daarom externe context informatie worden toegevoegd om te zorgen dat de waarde van takken kan worden berekend zonder dat deze in detail is geanalyseerd.
Toevoegen van document informatie
Pas als de compositie van alle kopij en beelden is afgerond kan het document worden afgemaakt het informatie die gerelateerd is aan de paginering, zoals paginanummering, inhoudsopgave, beeld- en trefwoordindexering en verwijzingen voor literatuur en citaten.

Om het probleem van eindeloze terugkoppeling tussen tekst-flow en opmaak te voorkomen wordt gebruik gemaakt van Galley’s, een digitale representant van de oude “strokenproef”. Door de breedte en daarmee de lengte van een tekst vast te leggen voordat deze wordt opgemaakt in een layout, kan veel nauwkeuriger van te voren worden worden bepaald welke element geplaats moeten worden. Elementen met een andere breedte kunnen gewoon in de stroken proef meelopen. Koppen kunnen in meerdere breedten worden gezet.
De uitdaging in dit stadium is dat het benodigde volume voor deze informatie pas aan het eind bekend is, terwijl tijdens de opmaak wel al ruimte moet worden gereserveerd. Het kan in extreme situaties nodig zijn om via backtracking de opmaak aan te passen als blijkt dat de gereserveerde ruimte niet toereikend is geweest.

Randvoorwaarden van het systeem
Er zijn veel voorbeelden van derdelijke systemen die niet goed werken of waarbij heteisenpakket zodanig is verminderd dat het eenvoudige algoritmes volstaan. De layout van een pagina met één kolom, zoals in tekstverwerkers of boeken, is betrekkelijk eenvoudig automatisch te berekenen. Het wordt expontieel complex op moment dat er meerdere tekststromen tegelijk lopen zoals bij een tijdschrift of krant het geval is. Als we de vergelijking met de ontwikkeling in schaakprogramma’s trekken, dan is veel verbetering te behalen door het toevoegen van domeinkennis aan het systeem.
Dit is een concept notitie, aanpassingen en uitbreidingen zijn nog nodig. Deze pagina wordt nu opgemaakt met HTML, maar dienen wel als voorbeeld wat met automatische opmaakt mogelijk zou moeten zijn.










