Disclaimer
We are fully aware that Google translation is not flawless for every text or language. Still it is better than nothing. Google keeps on improving on the translation, faster than we can do that. Over time we will add manual translations for English to the pages.
  • 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 huisstijl­handboeken van Rabobank gebruikt. In de loop van 2010 wordt de functionaliteit in Xierpa verder uitgebreid.

Waar in de traditionele manier van werken met opmaak­programma­tuur zoals Quark XPress en InDesign altijd een menselijke beslissing de definitieve opmaak van een pagina bepaalt, doen steeds vaker situaties zich voor waar dat geen optie is. Doordat pagina’s worden gegenereerd met inhoud die direct wordt bepaald door de context en eigenschappen van de lezer, moet de layout van pagina’s automatisch worden berekend.

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 informatie­bronnen, 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 informatie­structuur is met standaard­gereed­schappen 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 opmaak­programma’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.

Daarnaast zijn met name tabellen lastige typografische bouwstenen, vooral als niet niet duidelijk is welke volume ze moeten bevatten. Veel opmaak­programma’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 stroken­proeven 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 tijd­schriften te vinden is, met een minimum aan toe­ge­voegde 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 beslis­boom maken, is maat­gevend voor de complexiteit van een probleem en de grootte van de oplossings­ruimte. Naar mate er per vertakking meer opties zijn is de hoek groter. De toegevoegde domein­kennis 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 pagina­nummering, inhouds­opgave, beeld- en trefwoord­indexering 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 back­tracking de opmaak aan te passen als blijkt dat de gereserveerde ruimte niet toereikend is geweest.


Randvoorwaarden van het systeem

Er zijn veel voor­beelden 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 tekst­verwerkers 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 schaak­programma’s trekken, dan is veel verbetering te behalen door het toevoegen van domein­kennis 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.