Asset-Herausgeber

Fehler bei der Verarbeitung der Vorlage.
Failed to "?eval" string with this error:
---begin-message---
Syntax error in ?eval-ed string in line 1, column 2:
Encountered ")", but was expecting one of these patterns:
<STRING_LITERAL>
<RAW_STRING>
"false"
"true"
<INTEGER>
<DECIMAL>
"."
"+"
"-"
"!"
"["
"("
"{"
<ID>
---end-message---
The failing expression:
==> coverDMTKASDEMEDIUM.data?eval [in template "252001#252047#WCD_DEBATTENBLOG_ARTIKELDETAIL_INTRO" at line 65, column 23]
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign mediumData = coverDMTKASDEMED... [in template "252001#252047#WCD_DEBATTENBLOG_ARTIKELDETAIL_INTRO" at line 65, column 1]
----
1<#-- bezieht sich auf WCS Publikation --> 
2<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
3<#assign AssetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
4<#assign version = .vars['reserved-article-version'].data?number /> 
5<#assign articleId = .vars['reserved-article-id'].data /> 
6<#assign article = JournalArticleLocalService.fetchArticle( articleGroupId, articleId , version ) /> 
7<#assign articleTitle = .vars['reserved-article-title'].data/> 
8 
9<#if requestMap??>  
10 <#assign 
11 renderUrl = requestMap['render-url'] 
12 control_panel = renderUrl?contains('control_panel')  
13
14</#if> 
15  
16<#if control_panel?? && control_panel> 
17 <#if FrontendService.user.isPrivilegedUser(permissionChecker.getUser())> 
18 <pre> 
19 articleId = ${.vars['reserved-article-id'].data} 
20 version = ${.vars['reserved-article-version'].data} 
21 groupId = ${articleGroupId} 
22 structurekey = ${article.getDDMStructureKey()} 
23 </pre> 
24 <pre> 
25 ${FrontendService.json.transformToJson( article, true )} 
26 </pre> 
27 </#if> 
28<#else>  
29 <#include "${fullTemplatesPath}/macros/page-modules/PMShare.ftl" /> 
30  
31 <#-- Function for related Content for PERSON --> 
32 <#function getSaxReaderDocument dataObj > 
33 <#local document = "" > 
34  
35 <#attempt> 
36 <#local data = dataObj.getData()?eval > 
37 <#local classPK = data.classPK > 
38 <#local className = data.className > 
39 <#local entry = AssetEntryLocalService.getEntry(className, classPK?number)! > 
40  
41 <#if entry??> 
42 <#local assetRenderer = entry.getAssetRenderer() /> 
43 <#local journalArticle = (assetRenderer.getArticle())! /> 
44 <#local document = (saxReaderUtil.read(journalArticle.getContentByLocale(locale.toString())))!"" /> 
45 </#if> 
46 <#recover> 
47 <#-- catch block --> 
48 </#attempt> 
49  
50 <#return document > 
51  
52 </#function> 
53  
54<#macro mediaReference groupId uuid > 
55 <#local mediaObj = FrontendService.media.getDMTJsonObject(groupId, uuid, locale)!"" > 
56 
57 <#if mediaObj?has_content && (mediaObj.quelle)?has_content > 
58 <#local source = mediaObj.quelle?substring(1, (mediaObj.quelle?length - 1))> 
59 <#if source?has_content> 
60 <span>${source}</span> 
61 </#if> 
62 </#if> 
63</#macro> 
64 
65<#assign mediumData = coverDMTKASDEMEDIUM.data?eval /> 
66<#if mediumData?has_content> 
67 <#assign linkToDMT = FrontendService.media.getImageURLForAMConfiguration('hd-resolution', mediumData["groupId"]?number, mediumData["uuid"]) /> 
68</#if> 
69 
70<#if !isDPMColorSchemeNEW()> 
71 <div class="c-page-intro c-page-intro--article"> 
72 <div class="o-page-module"> 
73 <div class="c-page-intro__wrapper"> 
74  
75 <#if coverDMTKASDEMEDIUM.getData()?has_content> 
76 <#if linkToDMT?has_content> 
77 <div class="c-page-intro__image" style="background-image:url('${linkToDMT}');"> 
78 <span class="o-imagesource"><@mediaReference mediumData["groupId"]?number mediumData["uuid"] /></span> 
79 </div> 
80 </#if> 
81 </#if> 
82  
83 <div class="c-page-intro__meta"> 
84  
85 <#-- Erscheinungsdatum --> 
86 <#assign erscheinungsdatum_Data = getterUtil.getString(erscheinungsdatum.getData())> 
87  
88 <#if validator.isNotNull(erscheinungsdatum_Data)> 
89 <#assign erscheinungsdatum_DateObj = dateUtil.parseDate("yyyy-MM-dd", erscheinungsdatum_Data, locale)> 
90 <span class="o-metadata o-metadata--date"> 
91 ${dateUtil.getDate(erscheinungsdatum_DateObj, "dd. MMMM yyyy", locale)} 
92 </span> 
93 </#if> 
94  
95 <#-- laufende nummer --> 
96 <#assign article = JournalArticleLocalService.getArticle(groupId, articleId) /> 
97 <#assign verbundJournalArticle = FrontendService.publication.getVerbundToPublikation(article)!"" > 
98  
99 <#if verbundJournalArticle?has_content> 
100 <#assign document = (saxReaderUtil.read(verbundJournalArticle.getContentByLocale(locale.toString())))!"" /> 
101 <#if document?has_content> 
102  
103 <#if document.selectSingleNode("/root/dynamic-element[@name='laufendenummer']/dynamic-content")??> 
104 <#assign node = document.selectSingleNode("/root/dynamic-element[@name='laufendenummer']/dynamic-content") /> 
105 <#assign laufendenummer = node.getText() /> 
106 <#if laufendenummer?has_content > 
107 <span class="o-metadata o-metadata--hash"><@liferay.language key="ausgabe" /> ${laufendenummer}</span> 
108 </#if> 
109 </#if> 
110 </#if> 
111 </#if> 
112  
113 </div> 
114  
115 <#-- Titel --> 
116 <div class="o-page-headline__wrapper"> 
117  
118 <div class="c-share"> 
119 <div class="c-share__wrapper--aside"> 
120 <div class="c-share c-share--aside c-share--aside-new"> 
121 <ul class="c-share__list"> 
122 <@ShareLink "print" /> 
123 <@ShareLink "mail" /> 
124 <@ShareLink "share" /> 
125 </ul> 
126 </div> 
127 </div> 
128 <@ShareOverlay /> 
129 </div> 
130  
131 <h2 class="o-page-headline"> 
132 ${articleTitle} 
133 </h2> 
134 </div> 
135  
136 <#-- Autoren --> 
137 <#if autorenWCSKASDEPERSON.getSiblings()?has_content> 
138 <#list autorenWCSKASDEPERSON.getSiblings() as cur_autorenWCSKASDEPERSON> 
139 <#assign document = getSaxReaderDocument(cur_autorenWCSKASDEPERSON) > 
140  
141 <#if document?has_content> 
142  
143 <div class="c-page-intro__author"> 
144 <@liferay.language key="von" /> 
145  
146 <#if document.selectSingleNode("/root/dynamic-element[@name='vorname']/dynamic-content")??> 
147 <#assign node = document.selectSingleNode("/root/dynamic-element[@name='vorname']/dynamic-content") /> 
148 <#assign vorname = node.getText() /> 
149 <#if vorname?has_content > 
150 ${vorname} 
151 </#if> 
152 </#if> 
153  
154 <#if document.selectSingleNode("/root/dynamic-element[@name='nachname']/dynamic-content")??> 
155 <#assign node = document.selectSingleNode("/root/dynamic-element[@name='nachname']/dynamic-content") /> 
156 <#assign nachname = node.getText() /> 
157 <#if nachname?has_content > 
158 ${nachname} 
159 </#if> 
160 </#if> 
161 </div> 
162 </#if> 
163  
164 </#list> 
165 </#if> 
166  
167 <#-- Untertitel --> 
168 <h2 class="c-page-intro__subheadline"> 
169 ${untertitel.getData()} 
170 </h2> 
171  
172 <#-- Kurzbeschreibung --> 
173 <p class="c-page-intro__copy"> 
174 ${beschreibung.getData()} 
175 </p> 
176  
177 </div> 
178  
179 </div> 
180  
181 </div> 
182<#elseif isDPMColorSchemeNEW()> 
183 <div class="c-page-intro c-page-intro--article"> 
184 <div class="o-page-module"> 
185 <div class="c-page-intro__wrapper"> 
186 
187 <#-- Titel --> 
188 <div class="o-page-headline__wrapper"> 
189  
190 <div class="c-share"> 
191 <div class="c-share__wrapper--aside"> 
192 <div class="c-share c-share--aside c-share--aside-new"> 
193 <ul class="c-share__list"> 
194 <@ShareLink "print" /> 
195 <@ShareLink "mail" /> 
196 <@ShareLink "share" /> 
197 </ul> 
198 </div> 
199 </div> 
200 <@ShareOverlay /> 
201 </div> 
202  
203 <h1 class="o-page-headline"> 
204 ${articleTitle} 
205 </h1> 
206 </div> 
207  
208 <div class="c-page-subheadline__wrapper"> 
209 <div class="c-page-intro__meta"> 
210 
211 <#-- Autoren --> 
212 <#if autorenWCSKASDEPERSON.getSiblings()?has_content> 
213 <#list autorenWCSKASDEPERSON.getSiblings() as cur_autorenWCSKASDEPERSON> 
214 <#assign document = getSaxReaderDocument(cur_autorenWCSKASDEPERSON) > 
215  
216 <#if document?has_content> 
217  
218 <div class="o-metadata o-metadata--author"> 
219  
220 <#if document.selectSingleNode("/root/dynamic-element[@name='vorname']/dynamic-content")??> 
221 <#assign node = document.selectSingleNode("/root/dynamic-element[@name='vorname']/dynamic-content") /> 
222 <#assign vorname = node.getText() /> 
223 <#if vorname?has_content > 
224 ${vorname} 
225 </#if> 
226 </#if> 
227  
228 <#if document.selectSingleNode("/root/dynamic-element[@name='nachname']/dynamic-content")??> 
229 <#assign node = document.selectSingleNode("/root/dynamic-element[@name='nachname']/dynamic-content") /> 
230 <#assign nachname = node.getText() /> 
231 <#if nachname?has_content > 
232 ${nachname} 
233 </#if> 
234 </#if> 
235 </div> 
236 </#if> 
237  
238 </#list> 
239 </#if> 
240  
241 <#-- Erscheinungsdatum --> 
242 <#assign erscheinungsdatum_Data = getterUtil.getString(erscheinungsdatum.getData())> 
243  
244 <#if validator.isNotNull(erscheinungsdatum_Data)> 
245 <#assign erscheinungsdatum_DateObj = dateUtil.parseDate("yyyy-MM-dd", erscheinungsdatum_Data, locale)> 
246 <span class="o-metadata o-metadata--date"> 
247 ${dateUtil.getDate(erscheinungsdatum_DateObj, "dd. MMMM yyyy", locale)} 
248 </span> 
249 </#if> 
250  
251 </div> 
252 <#-- Untertitel --> 
253 <h2 class="c-page-intro__subheadline"> 
254 ${untertitel.getData()} 
255 </h2> 
256 </div> 
257  
258 <#-- Kurzbeschreibung --> 
259 <p class="c-page-intro__copy"> 
260 ${beschreibung.getData()} 
261 </p> 
262  
263 </div> 
264  
265 </div> 
266  
267 </div> 
268 </#if> 
269</#if> 

Asset-Herausgeber

Moderne Politik ist durch das Problem der Unplanbarkeit definiert. Ideologie, das grand design der Politik, wird nur noch von Außenseitern formuliert. Dass niemand das Patentrezept hat, ist heute politische Selbstverständlichkeit. Unplanbarkeit ist ein wesentliches Charakteristikum komplexer Systeme. Doch was bedeutet das? Zunächst einmal besteht Einigkeit darüber, dass unsere Welt hochkomplex ist. Doch das bedeutet mehr als nur „nicht einfach“. Einfachheit ist nicht der Gegensatz von Komplexität – das wäre ein zu simples Verständnis des Begriffs. Das Problem der Komplexität taucht also bereits in ihrer Bedeutung auf.

„Komplex“ heißt für uns meist zu komplex – für unser vertrautes lineares Denken. Wenn sich dieses lineare Denken eine Vorstellung von Komplexität macht, ergeben sich zwei Grundformen: das Chaos und die Blackbox. Unfassbare Komplexität erscheint als Unordnung, erzeugt den Anschein von Chaos – man spricht dann gern von der „neuen Unübersichtlichkeit“. Das betrifft zum einen vor allem Großsysteme, die „irgendwie“ funktionieren – die Börse etwa. Zum anderen treffen wir immer wieder auf komplexe Sachverhalte, die wir zwar „beherrschen“, aber nicht verstehen – zum Beispiel Computer. Hier sprechen wir von Blackboxes, deren Magie darin besteht, dass sie auf einfache Weise funktionieren, aber über eine hochkomplexe Struktur verfügen. Je komplexer unsere Welt wird, desto dringlicher wird die Gestaltung der Schnittstelle zwischen Menschen und Systemen, das sogenannte Interfacedesign, das sich mit der Gestaltung von Benutzeroberflächen zwischen Mensch und Maschine beschäftigt und dessen Heilsversprechen lautet: Orientierung im Unübersichtlichen, Mustererkennung im Regellosen, Sinn im kaleidoskopischen Wechsel.

Komplexität ist unser postmodernes Schicksal. Und gerade deshalb haben die Verheißungen von Einfachheit, Echtheit und Glaubwürdigkeit heute Hochkonjunktur. Unser Problem ist nämlich, dass wir nur simplifizierend auf die Komplexität unserer Welt antworten können. Politiker haben längst von der Illusion eingreifenden, geplanten Handelns Abschied genommen und rechnen „stattdessen“ mit dem Geschehen. Das Provisorische wird zum Dauerzustand, und nichts ist heute stabiler als die Funktion „bis auf Weiteres“. Aus Überkomplexität folgt für die Politik ein Vorrang der Praxis. Jeder Politiker entscheidet nämlich unter dem Zwang zur Verkürzung. Deshalb darf er es „so genau“ gar nicht wissen wollen. „Als ob“, „stattdessen“, „bis auf Weiteres“ – das soll besagen: Man hat nie genug Eigenkomplexität, um auf die Umwelt angemessen zu reagieren; deshalb braucht man Reduktionen und Kompensationen.

Komplexe Komplexität

Offenbar handelt es sich bei Komplexität um einen autologischen Begriff, das heißt einen Begriff, den man sinnvollerweise auf sich selbst anwenden kann. Und das bedeutet: Der Begriff Komplexität ist selbst komplex. Das zeigt sich, wie schon gesagt, daran, dass Komplexität nicht einfach das Gegenteil von Einfachheit ist. Und Komplexität bedeutet auch nicht Kompliziertheit. Wenn man ein System komplex nennt, ist immer mitgemeint, dass wir es mit Verknüpfungen von Fall zu Fall zu tun haben. Das kann man sich gut an Netzwerken wie dem Internet verdeutlichen. Diese Verknüpfungen von Fall zu Fall schließen aber jede strukturelle Eindeutigkeit aus; es gibt kein Flussdiagramm des Komplexen. Komplexität heißt demnach: Es fehlen Informationen, um sicher zu rechnen. Auf organisatorischer Ebene – also etwa für Firmen oder Regierungen – bedeutet das jedoch: Je komplexer ein System ist, desto wahrscheinlicher werden Fehlentscheidungen getroffen. Und auf der Steuerebene der Algorithmen – zum Beispiel im Softwaredesign – bedeutet es: Kein komplexes Programm ist fehlerfrei; es gibt kein Ende des Debuggings, der Fehlerbeseitigung.

So kommt der Zufall ins Spiel. Man könnte geradezu sagen: Komplexität ist ein Maß für den Zufall; sie zwingt Systeme, sich auf Zufälle einzustellen. In unserer sozialen Erfahrung zeigt sich das im Schwinden des Konformismus, in der Unverbindlichkeit der Tradition und an der Unvorhersehbarkeit der Karriere. Konstant ist nur der Eindruck: Das war nicht zu erwarten. Je komplexer eine Gesellschaft ist, desto wahrscheinlicher wird abweichendes Verhalten. Daher können wir komplexe Gesellschaften als Zufallsgeneratoren modellieren. Die Börsenkurse, die Karrierechancen, die Prognosen der Wissenschaftler – wahrscheinlich ist nur: Morgen ist es anders! Und niemand kann bei der Informationsflut und der Fülle von Optionen auf dem Markt auf die Frage antworten: Was ist wichtig? Weil alles auch anders möglich wäre und niemand verbindlich sagen kann, was wichtig ist, ist alles Handeln eine Verkettung zufälliger und deshalb riskanter Entscheidungen.

Kein Mensch und kein System könnte unter dem Trommelfeuer der Daten und Optionen existieren. Es geht nicht ohne Reizschutz beziehungsweise Ignoranz. Ein Filter reduziert Komplexität, indem er eine gewisse Informationsmenge als „Noise“, als Rauschen, ausblendet. Damit funktioniert das Bewusstsein als Reizschutz; so funktioniert auch das Ohr als – mit den unnachahmlich präzisen Worten des US-amerikanischen Mathematikers Norbert Wiener – frequenzbandbeschneidender Empfänger. Auf diese Weise funktionieren die Massenmedien mit ihrem Filter der Sensation. Das Problem ist nur: Die Reduktion der Komplexität von innen steigert die Komplexität von außen. Das klingt kompliziert, ist aber ganz einfach zu verstehen: Die Politik etwa bezieht sich auf eine Umwelt, die aus extrem unterschiedlichen Individuen besteht: unterschiedlich in Begabung, Einkommen, Risikobereitschaft und Initiative. Um nun diese Individuen „gleich“ zu behandeln, die Unterschiede also zu reduzieren, bedarf es einer ungeheuer komplexen Sozial- und Steuerpolitik. Aber jeder, der einmal an einer Universität war, weiß: Mehr Demokratie – im Sinne von Gleichheit aller – wagen heißt, die Bürokratie zu vermehren.

Krise als Normalzustand

Komplexe Systeme sind ein Skandal für den Humanismus und ein Ärgernis für die Aufklärung, denn sie lassen wenig Raum für planende Vernunft, souveräne Subjekte und progressive Ideen. Je komplexer ein System nämlich ist, desto weniger ist es durch Befehle steuerbar; es lässt sich nicht einmal zentral überwachen. Die Patentrezepte der Gurus sind deshalb ebenso sinnlos wie die Reformprogramme der Meisterdenker. Komplexität schließt Rezepte aus. Sie bürdet alle Beweislast den Veränderern auf. Mit dem Wort „Krise“ simplifiziert und politisiert man hohe Komplexität. Im Klartext: Die Krise ist nicht Ausnahmezustand, sondern Normalform unserer modernen Existenz.

Auch der Humanismus verdeckt das Komplexitätsproblem. Seine Menschenfreundlichkeit besteht ja darin, die Welt am Maß des Menschen zu messen, also den Menschen für das, was geschieht, verantwortlich zu machen. Komplexität beschreibt aber gerade nicht Zurechnungsfähigkeit oder Zurechenbarkeit. Wenn ein Manager wegen spektakulärer Fehlinvestitionen entlassen wird oder ein Innenminister etwa wegen polizeilichen Fehlverhaltens den Hut nimmt, dann wird auf Einzelne zugerechnet, was sich „systemisch“ ergeben hat. Dass Einzelne in dieser Form „die Verantwortung übernehmen“, ist zwar nicht mehr als ein großes Als-ob, erfüllt aber das Bedürfnis nach Reduktion der Komplexität – man personalisiert das Problem.

Genau das tun auch die „Warner und Mahner“. Sie reduzieren Komplexität, indem sie Theorie- in Moralprobleme verwandeln. Wer in Diskussionen mit ihnen etwa auf Komplexität verweist, muss erfahren, dass er die ganze Last der Komplexität zu tragen hat und deshalb von jedem „Betroffenen“ zum Schweigen gebracht werden kann. Nicht nur, weil sie mediengerecht sind, setzen sich die Moralisierer in der Öffentlichkeit durch, sondern auch, weil sie die Psychologie auf ihrer Seite haben. Denn ein neues Denken hat gerade dann keine Realisierungschancen, wenn man es am dringendsten braucht. Unter Stressbedingungen greift man auf altvertraute Praktiken zurück – deshalb bleiben komplexe Ideen zumeist folgenlos.

Apokalypse und Statistik

Im Allgemeinen will der gesunde Menschenverstand also nichts von Komplexität hören. Umso beliebter ist die Statistik. Man muss einmal fragen: Warum? Statistiken sind deshalb so beliebt, weil sie suggerieren, man könne komplexe Zusammenhänge ohne strukturelle Einsicht einfach durch Zahlenvergleiche verstehen. Jede Statistik „entorganisiert“ Komplexität und neutralisiert gegenseitige Abhängigkeiten. Damit ist Statistik ein ideales Werkzeug für den öffentlichen Umgang mit der Zukunft. Man könnte auch sagen: Die Statistik ist die wissenschaftliche Rhetorik des Vertrauens. Als Grundlage der Risikokommunikation tritt die Statistik gleichwertig neben die Angstrhetorik der „Warner und Mahner“. Auf die Frage „Wie geht man öffentlich mit Zukunft um?“ müssten wir also antworten: apokalyptisch und zugleich statistisch.

Nicht nur die Existenz von Zukunftsforschern und die ungebrochene Faszination für Science-Fiction, sondern auch der Sehnsuchtsruf jedes Managerseminars „Visionen für das nächste Jahrhundert“ macht deutlich, dass sich die Zukunft schon längst nicht mehr von selbst versteht. Der Fortschritt ist veraltet. Die Zukunft ereilt deshalb ein doppeltes Schicksal: Zum einen verschwindet sie in der Gegenwart, zum anderen verwandelt sich die Zukunft in das Risiko schlechthin. Mit anderen Worten: In einer riskanten Welt ist die Zukunft das ganz andere.

-----

Norbert Bolz, geboren 1953 in Ludwigshafen am Rhein, Medien- und Kommunikationstheoretiker sowie Designwissenschaftler, Professor für Medienwissenschaft an der Technischen Universität Berlin.

comment-portlet