Invocation: conjectures pertaining an implementation of Node-Graph generation

To escape a possible deadlock in analysis, I resort to developing
some kind of free-wheeling presupposition how the **Builder** could
be implemented — a centrepiece of the Lumiera architecture envisioned
thus far — which ''unfortunately'' can only be planned and developed
in a more solid way ''after'' the current »Vertical Slice« is completed.

Thus I find myself in the uncomfortable situation of having to work towards
a core piece, which can not yet be built, since it relies heavily on
the very structures to be built...
This commit is contained in:
Fischlurch 2024-07-04 23:54:13 +02:00
parent 604c4b580b
commit ce9bf7f143
3 changed files with 611 additions and 44 deletions

View file

@ -1,8 +1,9 @@
/*
NODE-WIRING-BUILDER.hpp - Setup of render nodes connectivity
NODE-BUILDER.hpp - Setup of render nodes connectivity
Copyright (C) Lumiera.org
2009, Hermann Vosseler <Ichthyostega@web.de>
2024 , Hermann Vosseler <Ichthyostega@web.de>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
@ -20,7 +21,7 @@
*/
/** @file node-wiring-builder.hpp
/** @file node-builder.hpp
** Helper for defining the desired wiring and operation mode for a render node.
** During the Builder run, the render nodes network is wired up starting from the
** source (generating) nodes up to the exit nodes. As the wiring is implemented through
@ -38,8 +39,8 @@
*/
#ifndef ENGINE_NODE_WIRING_BUILDER_H
#define ENGINE_NODE_WIRING_BUILDER_H
#ifndef ENGINE_NODE_BUILDER_H
#define ENGINE_NODE_BUILDER_H
#include "steam/engine/proc-node.hpp"
@ -106,4 +107,4 @@ namespace engine {
}} // namespace steam::engine
#endif /*ENGINE_NODE_WIRING_BUILDER_H*/
#endif /*ENGINE_NODE_BUILDER_H*/

View file

@ -27,7 +27,7 @@
#include "lib/test/run.hpp"
#include "steam/engine/proc-node.hpp"
#include "steam/engine/node-wiring-builder.hpp"
#include "steam/engine/node-builder.hpp"
#include "steam/engine/test-rand-ontology.hpp"
//#include "lib/util.hpp"

View file

@ -68363,7 +68363,7 @@
<node CREATED="1719689436610" ID="ID_1674105231" MODIFIED="1719689676839" STYLE="fork" TEXT="Architektur-Design">
<node CREATED="1719689474045" ID="ID_1718547868" MODIFIED="1719689676839" TEXT="Umgang mit dem Implementierungs-Typ">
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1719689186161" ID="ID_3439776" MODIFIED="1719790237123" TEXT="Design-Frage: Opaque oder Typed?">
<linktarget COLOR="#8c4f70" DESTINATION="ID_3439776" ENDARROW="Default" ENDINCLINATION="32;187;" ID="Arrow_ID_579852970" SOURCE="ID_1037364637" STARTARROW="None" STARTINCLINATION="-630;-23;"/>
<linktarget COLOR="#8c4f70" DESTINATION="ID_3439776" ENDARROW="Default" ENDINCLINATION="32;187;" ID="Arrow_ID_579852970" SOURCE="ID_1037364637" STARTARROW="None" STARTINCLINATION="-650;-26;"/>
<icon BUILTIN="help"/>
<node CREATED="1719689711749" ID="ID_860062674" MODIFIED="1719689722983" TEXT="Frage des Umganges">
<node CREATED="1719689728721" ID="ID_219728438" MODIFIED="1719689747469" TEXT="Opaque: ein Handle f&#xfc;r die Library"/>
@ -68395,7 +68395,11 @@
<node CREATED="1719690437269" ID="ID_1422464736" MODIFIED="1719690443972" TEXT="Rolle des Stream-Type-Managers"/>
</node>
</node>
<node CREATED="1719689451088" ID="ID_1590678849" MODIFIED="1719689676839" STYLE="fork" TEXT="Integration"/>
<node CREATED="1719689451088" ID="ID_1590678849" MODIFIED="1719689676839" STYLE="fork" TEXT="Integration">
<node CREATED="1720131966251" ID="ID_789242183" MODIFIED="1720132035015" TEXT="Implementierunts-Stream-Types per Media-Handling-Library">
<linktarget COLOR="#698ace" DESTINATION="ID_789242183" ENDARROW="Default" ENDINCLINATION="-1373;68;" ID="Arrow_ID_1529340331" SOURCE="ID_681530662" STARTARROW="None" STARTINCLINATION="1458;286;"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1680567302856" ID="ID_599503027" MODIFIED="1680567686765" TEXT="Output-Management">
<linktarget COLOR="#890814" DESTINATION="ID_599503027" ENDARROW="Default" ENDINCLINATION="-447;649;" ID="Arrow_ID_1542547570" SOURCE="ID_1793577189" STARTARROW="None" STARTINCLINATION="-1299;-27;"/>
@ -71237,6 +71241,153 @@
<linktarget COLOR="#a9b4c1" DESTINATION="ID_1843874673" ENDARROW="Default" ENDINCLINATION="-398;-418;" ID="Arrow_ID_908178206" SOURCE="ID_818640049" STARTARROW="None" STARTINCLINATION="1004;0;"/>
</node>
</node>
<node CREATED="1720053707354" ID="ID_132183535" MODIFIED="1720053743636">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
&#171;<b>Domain-Ontology</b>-Mapping&#187;
</p>
</body>
</html>
</richcontent>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1720053763955" ID="ID_73622691" MODIFIED="1720053781818" TEXT="Bewu&#xdf;ter Verzicht auf eine &#xfc;bergreifende Gesamt-Systematik">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
</node>
<node CREATED="1720053807508" ID="ID_478947971" MODIFIED="1720053920259" TEXT="hinter jeder Media-handling-Library steht implizit eine Domain-Ontology">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Einfach gesagt: jede Media-handling-Library definiert, was f&#252;r Medien-Dinge es geben kann, wie diese zusammenh&#228;ngen und klassifiziert werden und wie deren Eigenschaften festgestellt werden k&#246;nnen...
</p>
</body>
</html>
</richcontent>
</node>
<node CREATED="1720053459603" ID="ID_154423823" MODIFIED="1720055356193">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<u>Feststellung</u>: Domain-Ontologies werden &#252;ber <b>Aufgaben-Callbacks</b>&#160; eingebunden
</p>
</body>
</html>
</richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
<b>Dies ist ein Beschlu&#223; auf Basis einer induktiven Grundhaltung</b>: Wir haben den bestehenden Umgang mit dem Thema &#187;Media-Processing&#171; betrachtet und auf diesem Hintergrund eine Architektur-L&#246;sung gefunden, die nicht auf einer mutwillig deduktiv gesetzten Ordnung beruht. Es wird ein Rahmen abgesteckt, was man typischerweise &#8222;mit Medien machen&#8220; m&#246;chte, und aus diesem wird ein Baukasten-System destilliert, auf dessen Basis sich diese &#252;blichen Ziele und Zwecke erreichen lassen. Dieser Rahmen bleibt jedoch offen, insofern er nicht als eine innere Systematik ausgearbeitet wird. Stattdessen gibt es &#8212; aus diesem Baukasktensystem heraus &#8212; bestimmte Aufgaben, die im Rahmen der jeweiligen Domain-Ontology zu l&#246;sen sind. Lumiera stellt daf&#252;r den Raum f&#252;r ein Modell bereit, und einen Ordnungsrahmen, wie mit den Modellbestandteilen umzugehen ist. Es obliegt dann aber dem jeweiligen Domain-Adapter (Fa&#231;ade), diese von Lumiera vorgegebenen Erwartungen <i>in der jeweiligen Dom&#228;ne zu realisieren. </i>
</p>
<p>
Zur Wirkung der aufgerufenen Aufgaben und zur Semantik m&#252;ssen gewisse Annahmen gemacht werden, wie z.B. das ein Medium <i>gerendert</i>&#160;werden kann. Es wird aber nicht versucht, dies weiter klassifikatorisch zu fassen; die Wirkung dieser Aktionen wird durchgereicht, und der Sinn liegt bei demjenigen, der Lumiera verwendet, um damit etwas zu bauen.
</p>
</body>
</html>
</richcontent>
<linktarget COLOR="#5f2a35" DESTINATION="ID_154423823" ENDARROW="Default" ENDINCLINATION="1034;37;" ID="Arrow_ID_140292863" SOURCE="ID_1065771845" STARTARROW="None" STARTINCLINATION="-1126;43;"/>
<node CREATED="1720054037983" ID="ID_998800564" MODIFIED="1720054057817" TEXT="der Schl&#xfc;ssel dazu sind Proc-Assets und Stream-Types"/>
<node CREATED="1720054101630" ID="ID_945345705" MODIFIED="1720055718797" TEXT="eine Reihe fester Aufgaben wird der jeweiligen Domain-Ontology zur L&#xf6;sung &#xfc;berlassen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
<u>Beispiele</u>:
</p>
<ul>
<li>
Feststellen, ob eine Verbindung f&#252;r einen bestimmten Medienstrom realisierbar ist
</li>
<li>
Auswahl eines Codecs f&#252;r einen &#187;Strom-Prototypen&#171;, dessen Bedeutung anderweitig festgelegt wurde
</li>
<li>
Entscheiden, in welcher Reihenfolge und in welcher Form Voraussetzungen bereitzustellen sind
</li>
<li>
&#220;bersetzen eines Medienstroms in die Repr&#228;sentation einer anderen Media-handling-Library
</li>
<li>
Bereitstelleung einer Verschaltung im Detail, damit ein Verarbeitungsschritt im Rahmen der Lumiera Render-Engine als pull-Job ausgef&#252;hrt werden kann
</li>
</ul>
</body>
</html>
</richcontent>
</node>
<node CREATED="1720054135861" HGAP="68" ID="ID_1209441678" MODIFIED="1720054245606" TEXT="die Formulierung dieser Aufgaben impliziert ihrerseits eine Domain-Ontology f&#xfc;r &#xbb;Lumiera&#xab;" VSHIFT="-18">
<edge COLOR="#6d263c"/>
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1720130539076" ID="ID_1412635142" MODIFIED="1720130541429" TEXT="Zugang">
<node CREATED="1720130547177" ID="ID_1951362007" MODIFIED="1720131367464" TEXT="Media-Handling Libraries">
<arrowlink COLOR="#4f3a5f" DESTINATION="ID_363368096" ENDARROW="Default" ENDINCLINATION="-789;-54;" ID="Arrow_ID_1565612239" STARTARROW="None" STARTINCLINATION="-783;90;"/>
<node CREATED="1720130584900" ID="ID_1070682695" MODIFIED="1720130624428" TEXT="werden &#xfc;ber ein Plug-in eingebunden"/>
<node CREATED="1720130698197" ID="ID_1902734020" MODIFIED="1720130731101" TEXT="via Discovery oder von einem Projekt angefordert"/>
<node CREATED="1720130735082" ID="ID_160478297" MODIFIED="1720132146520" TEXT="dieses Plug-in registriert Proc-Assets und Stream-Impl-Types">
<linktarget COLOR="#5d98c6" DESTINATION="ID_160478297" ENDARROW="Default" ENDINCLINATION="690;33;" ID="Arrow_ID_997282325" SOURCE="ID_201972860" STARTARROW="None" STARTINCLINATION="674;0;"/>
</node>
</node>
<node CREATED="1720130846275" ID="ID_403420396" MODIFIED="1720130863674" TEXT="im Modell verwendete Proc-Assets &#x27f6; Builder"/>
<node CREATED="1720130865542" ID="ID_951609658" MODIFIED="1720130888166" TEXT="zu einem Proc-Asset findet man eine OntologyFacade">
<node CREATED="1720130952572" ID="ID_985731220" MODIFIED="1720130980080" TEXT="Heterogene Sammlung von Aufgaben-Callbacks"/>
<node CREATED="1720130983954" ID="ID_717103380" MODIFIED="1720131022669" TEXT="die Core kann dar&#xfc;ber Medien-bezogene Aufgaben delegieren"/>
</node>
</node>
<node CREATED="1720135778805" ID="ID_1517976595" MODIFIED="1720135783535" TEXT="OntologyFacade">
<node CREATED="1720135836595" ID="ID_176172242" MODIFIED="1720136047405" TEXT="summon(Asset)">
<node CREATED="1720136139853" ID="ID_645368246" MODIFIED="1720140166340" TEXT="generischer Zugriff"/>
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1720140169464" ID="ID_468581640" MODIFIED="1720140177495" TEXT="unklar: notwendig?">
<icon BUILTIN="help"/>
<node CREATED="1720140179940" ID="ID_9303724" MODIFIED="1720140213960" TEXT="eigentlich k&#xf6;nnte das Asset einen Direkt-Link bieten"/>
<node CREATED="1720140216705" ID="ID_1968480484" MODIFIED="1720140229668" TEXT="aber dann ist das Problem mit nicht ladbaren Plug-ins"/>
<node CREATED="1720140230601" ID="ID_653394065" MODIFIED="1720140238818" TEXT="insofern k&#xf6;nnte eine Indirektion sinnvoll sein"/>
<node CREATED="1720140280792" ID="ID_68301753" MODIFIED="1720140360247" TEXT="es sei denn, Plug-ins k&#xf6;nnen geschlossen werden">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
....gehe aber nicht davon aus, da&#223; dies m&#246;glich ist, weil es den Zugriff auf Inhalte aus Plug-ins &#252;berall deutlich komplexer macht und auch zu Contention f&#252;hren k&#246;nnte
</p>
</body>
</html>
</richcontent>
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1720140248429" ID="ID_890837844" MODIFIED="1720140277438" TEXT="den gleichen Effekt k&#xf6;nnte man aber genauso gut per Initialisierung erreichen"/>
</node>
</node>
<node CREATED="1720140741456" ID="ID_1881905294" MODIFIED="1720140743838" TEXT="Methoden">
<node CREATED="1720056867428" ID="ID_276447533" MODIFIED="1720141170582" TEXT="configureNode(builder)">
<arrowlink COLOR="#736075" DESTINATION="ID_335227601" ENDARROW="Default" ENDINCLINATION="-868;69;" ID="Arrow_ID_564567687" STARTARROW="None" STARTINCLINATION="526;65;"/>
</node>
</node>
</node>
<node CREATED="1719277198122" ID="ID_1431538917" MODIFIED="1720141373210" TEXT="konkrete Instanzen">
<node CREATED="1719277214775" ID="ID_1364518400" MODIFIED="1719277219923" TEXT="Beispiel FFmpeg"/>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1719277220672" ID="ID_973384222" MODIFIED="1720141411990" TEXT="konkret: TestRandOntology">
<arrowlink COLOR="#df3950" DESTINATION="ID_594112005" ENDARROW="Default" ENDINCLINATION="666;-662;" ID="Arrow_ID_801625266" STARTARROW="None" STARTINCLINATION="-1433;133;"/>
<icon BUILTIN="pencil"/>
<node CREATED="1720141460866" ID="ID_435545323" MODIFIED="1720141491458" TEXT="stellt komplette Fake-Implementierung f&#xfc;r Media-Processing bereit"/>
</node>
</node>
</node>
</node>
<node COLOR="#990000" CREATED="1522457000411" FOLDED="true" ID="ID_736034555" MODIFIED="1563022234022" TEXT="Basis-System">
<linktarget COLOR="#af98b6" DESTINATION="ID_736034555" ENDARROW="Default" ENDINCLINATION="2208;-356;" ID="Arrow_ID_1927977085" SOURCE="ID_1228603701" STARTARROW="None" STARTINCLINATION="448;721;"/>
@ -71440,7 +71591,27 @@
<node CREATED="1481688517437" HGAP="24" ID="ID_241232196" MODIFIED="1557498707236" TEXT="Lifecycle" VSHIFT="8">
<icon BUILTIN="info"/>
<node CREATED="1481688521532" ID="ID_1825349679" MODIFIED="1557498707236" TEXT="Session startet on demand"/>
<node CREATED="1481688529539" ID="ID_1972961763" MODIFIED="1557498707236" TEXT="SessionManager ist zust&#xe4;ndig"/>
<node CREATED="1481688529539" ID="ID_1972961763" MODIFIED="1557498707236" TEXT="SessionManager ist zust&#xe4;ndig">
<node CREATED="1720131213336" ID="ID_363368096" MODIFIED="1720131367464" TEXT="Media-Handling-Library">
<linktarget COLOR="#4f3a5f" DESTINATION="ID_363368096" ENDARROW="Default" ENDINCLINATION="-789;-54;" ID="Arrow_ID_1565612239" SOURCE="ID_1951362007" STARTARROW="None" STARTINCLINATION="-783;90;"/>
<node CREATED="1720131708901" ID="ID_659381589" MODIFIED="1720131711512" TEXT="Bedeutung">
<node CREATED="1720131712765" ID="ID_698484685" MODIFIED="1720131744588" TEXT="Funktionalit&#xe4;t zum Umgang mit Medien">
<node CREATED="1720131745950" ID="ID_941979444" MODIFIED="1720131769984" TEXT="Laden / Struktur ermitteln"/>
<node CREATED="1720131770548" ID="ID_740554056" MODIFIED="1720131783582" TEXT="Codieren und Decodieren"/>
<node CREATED="1720131784714" ID="ID_1186162194" MODIFIED="1720131814851" TEXT="Systematik f&#xfc;r Formate und Eigenschaften"/>
<node CREATED="1720131815886" ID="ID_530870160" MODIFIED="1720131825969" TEXT="Verarbeitung und Transformation"/>
<node CREATED="1720131827605" ID="ID_399333708" MODIFIED="1720131831435" TEXT="Adapter und Konverter"/>
</node>
<node CREATED="1720131843591" ID="ID_181543953" MODIFIED="1720131865660" TEXT="Discovery / Zugang zu Werkzeugen">
<node CREATED="1720131918153" ID="ID_1836300139" MODIFIED="1720131924180" TEXT="Effekte / Proc-Assets"/>
<node CREATED="1720131924781" ID="ID_681530662" MODIFIED="1720132035015" TEXT="Stream-Types">
<arrowlink COLOR="#698ace" DESTINATION="ID_789242183" ENDARROW="Default" ENDINCLINATION="-1373;68;" ID="Arrow_ID_1529340331" STARTARROW="None" STARTINCLINATION="1458;286;"/>
</node>
</node>
<node CREATED="1720131872920" ID="ID_1632336549" MODIFIED="1720131883493" TEXT="implizit: eine Domain-Ontology"/>
</node>
</node>
</node>
<node CREATED="1481688544921" ID="ID_1934560784" MODIFIED="1557498707236" TEXT="wenn Session geladen, ist ProcDispatcher freigegeben"/>
<node CREATED="1481688562830" ID="ID_708961458" MODIFIED="1557498707236" TEXT="SessionSubsystem startet processing loop im ProcDispatcher"/>
<node CREATED="1481777252497" FOLDED="true" ID="ID_1789585729" MODIFIED="1557498707236" TEXT="Shutdown">
@ -71481,11 +71652,18 @@
<node CREATED="1533401481917" HGAP="31" ID="ID_1634540822" MODIFIED="1557498707237" TEXT="Struktur" VSHIFT="-19">
<icon BUILTIN="hourglass"/>
<node CREATED="1533918273704" ID="ID_1490841818" MODIFIED="1557498707237" TEXT="Modell">
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1533918279368" FOLDED="true" ID="ID_90099848" MODIFIED="1557498707237" TEXT="Assets">
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1533918279368" FOLDED="true" ID="ID_90099848" MODIFIED="1720131398331" TEXT="Assets">
<icon BUILTIN="yes"/>
<node CREATED="1533918370708" ID="ID_1044798440" MODIFIED="1557498707237" TEXT="Arten">
<node CREATED="1533918396480" ID="ID_1371207426" MODIFIED="1557498707237" TEXT="Media"/>
<node CREATED="1533918387145" ID="ID_421009475" MODIFIED="1557498707237" TEXT="Proc"/>
<node CREATED="1533918387145" ID="ID_421009475" MODIFIED="1557498707237" TEXT="Proc">
<node CREATED="1720132085518" ID="ID_869220549" MODIFIED="1720132088038" TEXT="Bedeutung">
<node CREATED="1720132093674" ID="ID_1968058210" MODIFIED="1720132114499" TEXT="abstrahiertes Handle f&#xfc;r eine Verarbeitungs-Funktionalit&#xe4;t"/>
<node CREATED="1720132115255" ID="ID_201972860" MODIFIED="1720135672129" TEXT="Zugang zu einer Domain-Ontology">
<arrowlink COLOR="#5d98c6" DESTINATION="ID_160478297" ENDARROW="Default" ENDINCLINATION="690;33;" ID="Arrow_ID_997282325" STARTARROW="None" STARTINCLINATION="674;0;"/>
</node>
</node>
</node>
<node CREATED="1533918391201" ID="ID_1099238975" MODIFIED="1557498707237" TEXT="Struct"/>
<node CREATED="1533918403071" ID="ID_277977903" MODIFIED="1557498707237" TEXT="Meta"/>
</node>
@ -72206,6 +72384,33 @@
<linktarget COLOR="#fec499" DESTINATION="ID_804147257" ENDARROW="Default" ENDINCLINATION="-696;77;" ID="Arrow_ID_521000760" SOURCE="ID_573821275" STARTARROW="None" STARTINCLINATION="-206;21;"/>
</node>
</node>
<node CREATED="1720141000407" ID="ID_301474820" MODIFIED="1720141011879" TEXT="gesammelte Pl&#xe4;ne und Skizzen">
<node CREATED="1720141066223" ID="ID_1879448068" MODIFIED="1720141072690" TEXT="Schrittweiser Aufbau des Graphen"/>
<node CREATED="1720141079653" ID="ID_973244167" MODIFIED="1720141084536" TEXT="Hilfsmittel">
<node CREATED="1720141090052" ID="ID_926335933" MODIFIED="1720141112386" TEXT="Domain-Ontology">
<node CREATED="1720141118464" ID="ID_1346694117" MODIFIED="1720141131319" TEXT="tifft Detail-Entscheidungen"/>
<node CREATED="1720141131811" ID="ID_1652703630" MODIFIED="1720141142065" TEXT="pa&#xdf;genaue Parametrisierung"/>
<node CREATED="1720141142821" ID="ID_503081572" MODIFIED="1720141145712" TEXT="Einstieg">
<node CREATED="1720056867428" ID="ID_335227601" MODIFIED="1720141199163">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Callback: <font color="#980133" face="Monospaced">configureNode(builder)</font>
</p>
</body>
</html></richcontent>
<linktarget COLOR="#736075" DESTINATION="ID_335227601" ENDARROW="Default" ENDINCLINATION="-1615;135;" ID="Arrow_ID_1074618773" SOURCE="ID_1405029324" STARTARROW="None" STARTINCLINATION="-161;-261;"/>
<linktarget COLOR="#736075" DESTINATION="ID_335227601" ENDARROW="Default" ENDINCLINATION="-868;69;" ID="Arrow_ID_564567687" SOURCE="ID_276447533" STARTARROW="None" STARTINCLINATION="526;65;"/>
<node CREATED="1720141228066" ID="ID_1022058853" MODIFIED="1720141239963" TEXT="Argument: ein Level-2-Builder"/>
<node CREATED="1720141241216" ID="ID_1290033100" MODIFIED="1720141311730" TEXT="Aufgabe: konfigurieren um korrekten Aufruf im Render-Node-Network zu erm&#xf6;glichen"/>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1448314932726" ID="ID_669869188" MODIFIED="1557498707237" POSITION="right" TEXT="Render">
@ -81357,7 +81562,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</node>
</node>
<node CREATED="1714955621585" ID="ID_1431510635" MODIFIED="1718969080504" TEXT="diese Analyse zeigt: hierf&#xfc;r ist stets irgendwo eine Spezialbehandlung notwendig">
<arrowlink COLOR="#4441d1" DESTINATION="ID_685938023" ENDARROW="Default" ENDINCLINATION="312;-9;" ID="Arrow_ID_120542506" STARTARROW="Default" STARTINCLINATION="236;32;"/>
<arrowlink COLOR="#4441d1" DESTINATION="ID_685938023" ENDARROW="Default" ENDINCLINATION="290;-16;" ID="Arrow_ID_120542506" STARTARROW="Default" STARTINCLINATION="214;25;"/>
<node CREATED="1714955711147" ID="ID_467104305" MODIFIED="1714955727685" TEXT="und zwar im Zusammenhang mit der Pull/Aufruf-Steuerung"/>
<node CREATED="1714955841766" ID="ID_790467122" MODIFIED="1714955867147" TEXT="es kann nicht vollst&#xe4;ndig auf ein einfacheres Muster zur&#xfc;ckgef&#xfc;hrt werden"/>
<node CREATED="1714955904265" ID="ID_1418095631" MODIFIED="1714955937657" TEXT="&#x27f9; daher erscheint es sinnvoll, dies in der Infrastruktur zu handhaben (TurnoutSystem)"/>
@ -81747,19 +81952,31 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</node>
</node>
<node CREATED="1719276014384" ID="ID_274182619" MODIFIED="1719276023591" TEXT="Entwurf syntaktische Struktur">
<node CREATED="1719970599748" ID="ID_1299763307" MODIFIED="1719971414858" TEXT="in mehrere Layer aufteilen">
<node CREATED="1719970599748" ID="ID_1299763307" MODIFIED="1720050731701" TEXT="in mehrere Level aufteilen">
<icon BUILTIN="yes"/>
<node CREATED="1719970637161" ID="ID_1950149667" MODIFIED="1719970684780" TEXT="Layer-1 : direkte Instruktionen f&#xfc;r den Turnout-Aufruf"/>
<node CREATED="1719970685856" ID="ID_211931717" MODIFIED="1719970790228" TEXT="Layer-2 : Regel/Einzelfall-Spec zum Aufbau dieser Instruktionen"/>
<node CREATED="1719970720107" ID="ID_1553139394" MODIFIED="1719970788551" TEXT="Layer-3 : wie diese Spec aus der Domain-Ontology gewonnen wird"/>
<node CREATED="1719970637161" ID="ID_1950149667" MODIFIED="1720050731702" TEXT="Level-1 : direkte Instruktionen f&#xfc;r den Turnout-Aufruf">
<node CREATED="1720143780134" ID="ID_543930243" MODIFIED="1720143791462" TEXT="hier wird auf Implementierungs-Details gearbeitet"/>
</node>
<node CREATED="1719970685856" ID="ID_211931717" MODIFIED="1720050731702" TEXT="Level-2 : Regel/Einzelfall-Spec zum Aufbau dieser Instruktionen">
<node CREATED="1720143793642" ID="ID_1838058439" MODIFIED="1720143808196" TEXT="hier werden direkte Verdrahtungs-Anweisungen gegeben"/>
<node CREATED="1720143808851" ID="ID_192188421" MODIFIED="1720143843751" TEXT="viele Aufrufe sind getemplated und werden auf die Domain-Ontology spezialisiert"/>
</node>
<node CREATED="1719970720107" ID="ID_1553139394" MODIFIED="1720050731702" TEXT="Level-3 : wie diese Spec aus der Domain-Ontology gewonnen wird">
<node CREATED="1720143846147" ID="ID_913414972" MODIFIED="1720143869956" TEXT="auf diesem Level wird per Proc-Assets und StreamTypes spezifiziert"/>
<node CREATED="1720143873151" ID="ID_92747719" MODIFIED="1720143899547" TEXT="es werden nur gew&#xfc;nschte Produktions-Verbindungen spezifiziert"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1719970252027" ID="ID_1241897346" MODIFIED="1719971248624" TEXT="Builder-Schema">
<linktarget COLOR="#b82d72" DESTINATION="ID_1241897346" ENDARROW="Default" ENDINCLINATION="-200;386;" ID="Arrow_ID_1194515432" SOURCE="ID_912277542" STARTARROW="None" STARTINCLINATION="-600;-89;"/>
<icon BUILTIN="flag-yellow"/>
<node CREATED="1719971327507" ID="ID_1941686244" MODIFIED="1719971330895" TEXT="Layer-2">
<node CREATED="1719971327507" ID="ID_1941686244" MODIFIED="1720050731701" TEXT="Level-2">
<node CREATED="1719970302300" ID="ID_87633601" MODIFIED="1719970332019" TEXT="Prinzip: 1:1 als Default + explizite Abweichung">
<icon BUILTIN="yes"/>
</node>
<node CREATED="1720143945014" ID="ID_1230383106" MODIFIED="1720143962663" TEXT="prepareNode()">
<node CREATED="1720143965823" ID="ID_1699834856" MODIFIED="1720144003274" TEXT="addLead(ProcNode&amp;)"/>
<node CREATED="1720146287602" ID="ID_1218472857" MODIFIED="1720146293047" TEXT="preparePort()">
<node CREATED="1720146294771" ID="ID_1809522763" MODIFIED="1720146303963" TEXT="nested Port builder"/>
<node CREATED="1719971113760" ID="ID_1114865524" MODIFIED="1719971122094" TEXT="Slot-Anzahl">
<node CREATED="1719971123638" ID="ID_62698915" MODIFIED="1719972104567" TEXT="inSlots(s)"/>
<node CREATED="1719971135344" ID="ID_800443773" MODIFIED="1719972017411" TEXT="outSlots(r)"/>
@ -81786,13 +82003,367 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<head/>
<body>
<p>
Problem: wie kommt man von <b>Layer-3</b>&#160;in <b>Layer-2</b>?
diese wird sp&#228;ter <i>irgendwo</i>&#160;instantiiert
</p>
</body>
</html>
</richcontent>
<font NAME="SansSerif" SIZE="16"/>
<icon BUILTIN="forward"/>
</node>
</node>
</node>
</node>
<node CREATED="1720179641909" ID="ID_931208358" MODIFIED="1720179644115" TEXT="Namen">
<node CREATED="1720179652998" ID="ID_748409736" MODIFIED="1720179657194" TEXT="NodeBuilder"/>
<node CREATED="1720179657996" ID="ID_444686449" MODIFIED="1720179661335" TEXT="PortBuilder"/>
</node>
</node>
<node CREATED="1719971317790" ID="ID_1077643019" MODIFIED="1720050731701" TEXT="Level-3">
<node CREATED="1719276025136" ID="ID_607906936" MODIFIED="1720141533940" TEXT="retrieve(StreamType)">
<node CREATED="1720141555165" ID="ID_719195906" MODIFIED="1720141895290" TEXT="(Port/Meta-Builder)">
<linktarget COLOR="#928896" DESTINATION="ID_719195906" ENDARROW="Default" ENDINCLINATION="570;0;" ID="Arrow_ID_234747839" SOURCE="ID_805401685" STARTARROW="None" STARTINCLINATION="326;-28;"/>
<font NAME="SansSerif" SIZE="9"/>
</node>
<node CREATED="1720141562371" ID="ID_1619759685" MODIFIED="1720141573926" TEXT="from(ProcAsset)">
<node CREATED="1720141580754" ID="ID_1907959573" MODIFIED="1720141595988" TEXT="erzeugt Level-3-Builder"/>
<node CREATED="1720141660968" ID="ID_465932510" MODIFIED="1720141680498" TEXT="requiredSources() &#x27fc; Iteration Stream-Types">
<node CREATED="1720141682604" ID="ID_537478684" MODIFIED="1720141699286" TEXT="erlaubt rekursiven Abstieg"/>
<node CREATED="1720141700752" ID="ID_805401685" MODIFIED="1720141902187" TEXT="liefert wieder den Port/Meta-Builder">
<arrowlink COLOR="#928896" DESTINATION="ID_719195906" ENDARROW="Default" ENDINCLINATION="570;0;" ID="Arrow_ID_234747839" STARTARROW="None" STARTINCLINATION="326;-28;"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1720142032180" ID="ID_1854436803" MODIFIED="1720146809835" TEXT="brauche hier M&#xf6;glichkeit zum Umordnen">
<linktarget COLOR="#fedef1" DESTINATION="ID_1854436803" ENDARROW="Default" ENDINCLINATION="454;0;" ID="Arrow_ID_1501169682" SOURCE="ID_245906119" STARTARROW="None" STARTINCLINATION="327;22;"/>
<icon BUILTIN="flag-yellow"/>
</node>
</node>
</node>
<node CREATED="1720179596269" ID="ID_849206696" MODIFIED="1720179598384" TEXT="Namen">
<node CREATED="1720179600628" ID="ID_108747409" MODIFIED="1720179623627" TEXT="LinkBuilder"/>
<node CREATED="1720179605723" ID="ID_1431673545" MODIFIED="1720179616718" TEXT="ProcBuilder"/>
</node>
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1720142049315" ID="ID_1840404622" MODIFIED="1720142067263" TEXT="zu kl&#xe4;ren: wie wird gebaut?">
<icon BUILTIN="help"/>
<node COLOR="#5b280f" CREATED="1720142114517" ID="ID_1211707471" MODIFIED="1720142134441" TEXT="explizit bauen: erfordert Terminal-Aufruf">
<icon BUILTIN="button_cancel"/>
</node>
<node CREATED="1720142071632" ID="ID_1182265017" MODIFIED="1720142136745" TEXT="man k&#xf6;nnte implizit bauen">
<icon BUILTIN="idea"/>
<node CREATED="1720142079922" ID="ID_1478345371" MODIFIED="1720142096058" TEXT="jeder Aufruf w&#xfc;rde implizit eine neue Verbindung hinzuf&#xfc;gen"/>
<node CREATED="1720142214733" ID="ID_976281051" MODIFIED="1720142232695" TEXT="es entsteht eine verzeigterte Struktur, die am top-Level h&#xe4;ngt"/>
</node>
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1720142240418" ID="ID_1500142886" MODIFIED="1720142487418" TEXT="Thema: Allokation">
<icon BUILTIN="bell"/>
<node CREATED="1720142246625" ID="ID_1961890425" MODIFIED="1720142250988" TEXT="einfachste Variante: Heap">
<node CREATED="1720142251975" ID="ID_785287551" MODIFIED="1720142269018" TEXT="w&#xfc;rde einfach mit STL-Containern funktionieren"/>
<node CREATED="1720142279304" ID="ID_279480620" MODIFIED="1720142323752" TEXT="die gesamte Struktur h&#xe4;ngt dann in einem top-Level-Handle/Container"/>
</node>
<node CREATED="1720142325190" ID="ID_1137568717" MODIFIED="1720142336373" TEXT="lie&#xdf;e sich nahtlos auf AllocationCluster umstellen">
<icon BUILTIN="idea"/>
</node>
<node CREATED="1720142353961" ID="ID_1566479288" MODIFIED="1720142444850" TEXT="nicht zu elaboriert konstruieren &#x2014; es sind trainsiente Datenstrukturen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...nach dem Level-3-Build-walk sind sie allesamt nicht mehr erforderlich &#8212; und k&#246;nnten per AllocationCluster auf einen Schlag weggeworfen werden
</p>
</body>
</html>
</richcontent>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1720142448886" ID="ID_117793588" MODIFIED="1720142471097" TEXT="&#x27f9; POD-Daten bevorzugen hier">
<icon BUILTIN="yes"/>
</node>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1719973271918" HGAP="-15" ID="ID_1012140126" MODIFIED="1720050731698" TEXT="Zusammenarbeit der Builder-Level-APIs planen" VSHIFT="41">
<font NAME="SansSerif" SIZE="13"/>
<icon BUILTIN="yes"/>
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1720021669482" ID="ID_856272280" MODIFIED="1720050731701" TEXT="Problem: Level-3 ist ohne Kenntnis des Builders schwer zu bestimmen">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1720021727803" ID="ID_1443907589" MODIFIED="1720021745383" TEXT="Mutma&#xdf;ungen zur Arbeitsweise">
<icon BUILTIN="yes"/>
<icon BUILTIN="idea"/>
<node CREATED="1720021760317" ID="ID_1457497362" MODIFIED="1720021770223" TEXT="es ist bereits eine Render-Path-Entscheidung gefallen">
<node CREATED="1720021811589" ID="ID_1187400985" MODIFIED="1720021824216" TEXT="es steht fest wer von wem gespeist wird"/>
<node CREATED="1720022375386" ID="ID_594341172" MODIFIED="1720022424031" TEXT="es liegt f&#xfc;r jede geplante Node ein Implementator (Proc-Asset) vor"/>
<node CREATED="1720022875427" ID="ID_753997343" MODIFIED="1720026538847" TEXT="ausgehend von den Model-Ports l&#xe4;&#xdf;t sich auf jeder Node ein Port belegen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...d.h. die Planung steigt f&#252;r einen Port ein, findet f&#252;r dieses in Proc-Asset in einem bereits vorliegenden Prototypen der Connectivity, und kann f&#252;r dieses Proc-Asset alle ben&#246;tigten Inputs identifizieren und jeden von diesen einem anderen, ebenfalls bereits bekannten Vorl&#228;ufer Proc-Asset zuordnen; diese Zuordnung w&#228;re dann die Belegung eines Port, und das Proc-Asset w&#252;rde zu einer geplanten Node. Im Besonderen ist durch diese Vorraussetzung festgelegt, da&#223; alle diese Belegungen bereits eindeutig und entscheidbar sind; Zweideutigeiten und Unm&#246;glichkeiten sind in den vorausgehenden Verarbeitungsschritten bereits aussortiert worden...
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1720022987880" ID="ID_489705172" MODIFIED="1720023037181" TEXT="jeder Verbindung zwischen Ports ist ein vollst&#xe4;ndiger StreamType (incl Impl) zugeordnet"/>
</node>
<node CREATED="1720023633266" ID="ID_1800473484" MODIFIED="1720023643788" TEXT="der Graph wird von oben nach unten traversierend angelegt">
<node CREATED="1720023661101" ID="ID_1167754603" MODIFIED="1720023684647" TEXT="Traversierungen propagieren &#xfc;ber geplante Ports"/>
<node CREATED="1720023685696" ID="ID_23739033" MODIFIED="1720050731700">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Leads (&#8793;Vorg&#228;nger-Nodes) werden nach Bedarf angelegt als <b>Level-3-Builder</b>
</p>
</body>
</html>
</richcontent>
</node>
<node CREATED="1720026115771" ID="ID_104849013" MODIFIED="1720026135981" TEXT="&#x27f9; es mu&#xdf; bereits einen Prototypen-Graphen geben, der aus verkn&#xfc;pften Proc-Assets besteht"/>
<node CREATED="1720026735793" ID="ID_1396481954" MODIFIED="1720026746203" TEXT="jedem der neuen Builder wird sukzessive mitgeteilt">
<node CREATED="1720026847123" ID="ID_181650965" MODIFIED="1720026851834" TEXT="das Proc-Asset"/>
<node CREATED="1720026766454" ID="ID_203063173" MODIFIED="1720026783954" TEXT="die Ausgangs-Ports mit StreamType"/>
<node CREATED="1720026785595" ID="ID_1540907767" MODIFIED="1720146804637" TEXT="f&#xfc;r jeden Port die Vorg&#xe4;nger-Builder, in Auswertungs-Reihenfolge">
<linktarget COLOR="#c6dffd" DESTINATION="ID_1540907767" ENDARROW="Default" ENDINCLINATION="79;-31;" ID="Arrow_ID_851396319" SOURCE="ID_245906119" STARTARROW="None" STARTINCLINATION="917;59;"/>
</node>
<node CREATED="1720026890125" ID="ID_949026722" MODIFIED="1720027047468" TEXT="f&#xfc;r jeden Port ggfs. noch spezielle Qualifier (Cache, in-place...)"/>
</node>
</node>
<node CREATED="1720027053175" ID="ID_1948826697" MODIFIED="1720050630863" TEXT="schlie&#xdf;lich erfolgt ein Level-3-Build-walk bottom-up">
<node CREATED="1720027094940" ID="ID_1358037329" MODIFIED="1720027105937" TEXT="rekursiv depth-first bis zum Blatt"/>
<node CREATED="1720052096281" ID="ID_653731910" MODIFIED="1720052252822" TEXT="dieser Walk navigiert Nodes, nicht Ports">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...anders als die Konfigurations-Walks auf Level-3 vor dem Triggern des Build-Walk; <i>diese</i>&#160;traversieren &#252;ber Ports und Stream-Verbindungen, folgen also einem bestimmten Berechnungspfad. Dagegen f&#252;r die Level-2-Builder sind Lead-Nodes vorrausgesetzt, und das bedeutet, ein Build erfolgt f&#252;r die ganze Nodes, f&#252;r alle Ports zusammen
</p>
</body>
</html>
</richcontent>
</node>
<node CREATED="1720027106671" ID="ID_585872128" MODIFIED="1720027137328" TEXT="f&#xfc;r das Blatt wird eine ProcNode emittiert (siehe unten)"/>
<node CREATED="1720027141761" ID="ID_636601618" MODIFIED="1720050639817">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
sodann wird f&#252;r den Vorg&#228;nger ein <b>Level-2-Builder</b>&#160;erstellt
</p>
</body>
</html>
</richcontent>
</node>
<node CREATED="1720027470575" ID="ID_169802651" MODIFIED="1720027501821" TEXT="diesem teilt man die bereits gebauten Nodes der Vorg&#xe4;nger-Ebene mit"/>
<node CREATED="1720027503298" ID="ID_723523671" MODIFIED="1720027519092" TEXT="und gibt ihm dann detaillierte Layout- und Verdrahtungs-Anweisungen"/>
<node CREATED="1720027520168" ID="ID_700553797" MODIFIED="1720027539817" TEXT="mit dem build() f&#xe4;llt dann die Node auf dieser Ebene an"/>
<node CREATED="1720027542031" ID="ID_724335679" MODIFIED="1720027554527" TEXT="am Ende kommt dieser Aufruf bei der Exit-Node raus"/>
</node>
<node CREATED="1720044840263" ID="ID_1645055205" MODIFIED="1720050620489">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
tats&#228;chlich ist jede Port-Impl &#8793; Turnout ein <b>Level-1-Builder</b>
</p>
</body>
</html>
</richcontent>
<node CREATED="1720044868896" ID="ID_1975967610" MODIFIED="1720044885241" TEXT="er bekommt konkrete Frame/Invocation-Koordinaten"/>
<node CREATED="1720044891733" ID="ID_1524283016" MODIFIED="1720044909294" TEXT="und eine konkrete Buffer / Output-Konfiguration"/>
<node CREATED="1720044952532" ID="ID_707302843" MODIFIED="1720044974468" TEXT="und baut daraus ein Turnout-System auf dem Stack"/>
<node CREATED="1720044986999" ID="ID_1458288447" MODIFIED="1720045032781" TEXT="welches dann die Processing-Function aufruft und die Daten durchreicht"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1720045073507" ID="ID_1770114651" MODIFIED="1720045126936" TEXT="Analyse: Rolle der Domain-Ontologie in diesem Build-Proze&#xdf;">
<icon BUILTIN="info"/>
<node CREATED="1720045685664" ID="ID_853315049" MODIFIED="1720045717786" TEXT="zu jedem Proc-Asset l&#xe4;&#xdf;t sich eine Domain-Ontology-Fa&#xe7;ade beschaffen"/>
<node CREATED="1720050584217" ID="ID_1109503102" MODIFIED="1720050782625" TEXT="Beobachtung: Level-3 bewegt sich komplett auf Asset / Planungs-Ebene">
<node CREATED="1720050791708" ID="ID_895132050" MODIFIED="1720050804216" TEXT="es werden Assets (Proc, StreamType) assoziiert"/>
<node CREATED="1720050806564" ID="ID_60886862" MODIFIED="1720050818270" TEXT="es werden bereits getroffene Entscheidungen markiert"/>
<node CREATED="1720050841007" ID="ID_1163813926" MODIFIED="1720050862482" TEXT="es werden Verbindungen zu anderen Buildern hergestellt"/>
<node CREATED="1720050863236" ID="ID_422946316" MODIFIED="1720050899911">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>nichts davon</i>&#160;h&#228;ngt von Strukturen aus der Domain-Ontology ab
</p>
</body>
</html>
</richcontent>
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1720050935650" ID="ID_953217530" MODIFIED="1720051429787" TEXT="Aber im Level-3-Build-walk sind Detail-Festlegungen zur Konfiguration zu treffen">
<node CREATED="1720051437951" ID="ID_229685486" MODIFIED="1720051446209" TEXT="konkreter Typ des Invocation-Adapters">
<node CREATED="1720051449169" ID="ID_941282827" MODIFIED="1720051461919" TEXT="dieser legt viele weitere Details fest"/>
<node CREATED="1720051462533" ID="ID_561764021" MODIFIED="1720051478317" TEXT="er mu&#xdf; zum konkreten API passen"/>
<node CREATED="1720051480787" ID="ID_1776896869" MODIFIED="1720051495163" TEXT="er wird m&#xf6;glicherweise selber aus Bausteinen zusammengesetzt"/>
<node CREATED="1720051495839" ID="ID_280066333" LINK="#ID_1041217509" MODIFIED="1720051669449" TEXT="aber ich m&#xf6;chte ihn komplett der Ontology &#xfc;berlassen">
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1720051751588" HGAP="29" ID="ID_1941576766" MODIFIED="1720051770060" TEXT="wichtige Richtungsentscheidung" VSHIFT="2">
<font ITALIC="true" NAME="SansSerif" SIZE="11"/>
<icon BUILTIN="yes"/>
</node>
</node>
</node>
<node CREATED="1720051819389" ID="ID_251866460" MODIFIED="1720051843049" TEXT="detailliertes Wissen &#xfc;ber Reihenfolge und Bedeutung der Parameter"/>
<node CREATED="1720052282761" ID="ID_910353867" MODIFIED="1720052306785" TEXT="Kenntniss der konkreten Buffer-Inlay-Typen, und der M&#xf6;glichkeit von Array-Bildungen">
<node CREATED="1720052331922" ID="ID_401973584" MODIFIED="1720052381439" TEXT="die Inlay-Typen sind komplett frei zur Gestaltung durch die Ontology-Fa&#xe7;ade"/>
<node CREATED="1720052632428" ID="ID_925122333" MODIFIED="1720052719118" TEXT="wo welcher Buffer verwendet wird, h&#xe4;ngt aber genau am Implementation-StreamType">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...und hinter dem liegen ebenfalls Strukturen aus der Ontologie; das ist ja sogar gradezu der Kern der Sache: jede Library bestimmt was es f&#252;r Arten von Medien und Str&#246;men geben kann
</p>
</body>
</html>
</richcontent>
</node>
<node CREATED="1720052744723" ID="ID_208313377" MODIFIED="1720053007582" TEXT="ob nebeneinander liegende Buffer inhaltlich zusammengeh&#xf6;ren, l&#xe4;&#xdf;t sich nicht schematisieren">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...das klingt vielleicht nach einer <i>steilen These,</i>&#160;beruht aber auf der Beobachtung, da&#223; eine solche Schematisierung (wiewohl denkbar), ihrerseits wieder Teil einer Domain-Ontology w&#228;re &#8212; jeder Versuch, dies zu generalisieren liefe auf eine Universal-Ontologie des ganzen Fachbereichs hinaus, und ist daher grunds&#228;tzlich zum Scheitern verurteilt, denn so etwas geh&#246;rt nicht auf die Ebene praktischer Organisation, auf der wir uns hier bewegen, bei der Konstruktion von Systemen der Informationstechnik.
</p>
</body>
</html>
</richcontent>
</node>
</node>
<node CREATED="1720053033526" ID="ID_799276435" MODIFIED="1720053088632">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Konsequenz &#10233; der Aufruf der Level-2-Parametrisierung mu&#223; <b>in einem Callback passieren</b>
</p>
</body>
</html>
</richcontent>
<node CREATED="1720053103203" ID="ID_1538806453" MODIFIED="1720053124436" TEXT="das hei&#xdf;t, der mu&#xdf; konkret f&#xfc;r jede Library erneut programmiert werden"/>
<node CREATED="1720053127440" ID="ID_1257983511" MODIFIED="1720053141961" TEXT="maximal k&#xf6;nnte man eine default-template-Method mitgeben"/>
<node CREATED="1720053143008" ID="ID_642764933" MODIFIED="1720053169357" TEXT="der Implementator einer Ontology-Fa&#xe7;ade mu&#xdf; also das Builder-API sehr gut kennen">
<icon BUILTIN="messagebox_warning"/>
</node>
<node CREATED="1720053176857" ID="ID_239650652" MODIFIED="1720053226806" TEXT="gewi&#xdf; wird es weitere Callbacks geben, die bereits auf einem h&#xf6;heren Level aktiviert werden"/>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1720053264453" ID="ID_1065771845" MODIFIED="1720053969635" TEXT="damit wurde das Grundmuster der Domain-Ontology-Integration festgestellt">
<arrowlink COLOR="#5f2a35" DESTINATION="ID_154423823" ENDARROW="Default" ENDINCLINATION="1034;37;" ID="Arrow_ID_140292863" STARTARROW="None" STARTINCLINATION="-1126;43;"/>
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
</node>
</node>
</node>
<node CREATED="1720055869531" ID="ID_1902042340" MODIFIED="1720055876262" TEXT="Praktische Schlu&#xdf;folgerungen">
<node CREATED="1720056045107" ID="ID_1321366990" MODIFIED="1720056065556" TEXT="der Level-2-Builder stellt ein inneres API dar for den Callback">
<node CREATED="1720056074278" ID="ID_1095032014" MODIFIED="1720056098810" TEXT="d.h. er stellt Informationen und Werkzeuge/Methoden bereit"/>
<node CREATED="1720056103464" ID="ID_421201772" MODIFIED="1720056121381" TEXT="im Besonderen mu&#xdf; der Builder also Discovery-Funktionen bieten"/>
<node CREATED="1720056122089" ID="ID_139764395" MODIFIED="1720056160112" TEXT="diese werden nach Bedarf und Ma&#xdf;gabe der Domain-Fa&#xe7;aden erweitert"/>
</node>
<node CREATED="1720056258318" ID="ID_53195824" MODIFIED="1720056820452" TEXT="im Default-Zustand mu&#xdf; der Builder eine wirkungslose Aktion definieren">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Das bedeutet: wenn man auf dem default-konstruierten Builder die <font face="Monospaced" color="#2a0ca1">build()</font>-Metode ausf&#252;hrt, dann entsteht eine Node, die zwar alle erwarteten Ports hat, aber alle diese Ports liefern bei Aufruf ein NULL-Handle des jeweils eingesetzten BufferProviders liefert. (Selbstverst&#228;ndlich w&#228;re es viel sch&#246;ner, an dieser Stelle einen <i>leeren Frame</i>&#160;zu liefern, aber das ist nicht m&#246;glich, ohne das Format zu kennen, welches jedoch von der Domain-Fa&#231;ade geleistet werden mu&#223;)
</p>
</body>
</html>
</richcontent>
</node>
<node CREATED="1720056867428" ID="ID_1405029324" MODIFIED="1720141199162">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
der Callback lautet: <font face="Monospaced" color="#980133">configureNode(builder)</font>
</p>
</body>
</html>
</richcontent>
<arrowlink COLOR="#736075" DESTINATION="ID_335227601" ENDARROW="Default" ENDINCLINATION="-1615;135;" ID="Arrow_ID_1074618773" STARTARROW="None" STARTINCLINATION="-161;-261;"/>
<node CREATED="1720056906583" ID="ID_703475051" MODIFIED="1720056951980" TEXT="der Implementator mu&#xdf; sich vom Builder die Informationen holen, z.B. das Proc-Asset"/>
<node CREATED="1720056964391" ID="ID_1024510676" MODIFIED="1720056973222" TEXT="auf dem Builder wurde vorher festgelegt...">
<node CREATED="1720056974568" ID="ID_1218485228" MODIFIED="1720056986424" TEXT="die Liste der Lead-Nodes (Vorl&#xe4;ufer)"/>
<node CREATED="1720056989003" ID="ID_353562541" MODIFIED="1720056999574" TEXT="die Liste der erwarteten Ports"/>
<node CREATED="1720057061954" ID="ID_865710330" MODIFIED="1720057090674" TEXT="das Proc-Asset">
<node CREATED="1720057095621" ID="ID_1600900436" MODIFIED="1720057110167" TEXT="dieses ist der Domain-Ontology bekannt"/>
<node CREATED="1720057110842" ID="ID_1574719157" MODIFIED="1720057121518" TEXT="da letztere auf Basis dieses Asset gew&#xe4;hlt wurde"/>
</node>
<node CREATED="1720057139927" ID="ID_843581345" MODIFIED="1720057274218" TEXT="ggfs weitere Modus-Festlegungen (z.B. Caching, ....)">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
Hiermit sei nur angezeigt, da&#223; es weitere solche Festlegungen zur Betriebsart geben kann, die typischerweise auf einem h&#246;heren Level bereits entschieden wurden, vermutlich ebernfalls unter Zuhilfename der Domain-Fa&#231;ade
</p>
</body>
</html>
</richcontent>
</node>
</node>
<node CREATED="1720057313834" ID="ID_1434509987" MODIFIED="1720058376686">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
Alle diese Callbacks werden auf dem Interface <font face="Monospaced" color="#1e02c8">DomainFacade</font>&#160;gesammelt
</p>
</body>
</html>
</richcontent>
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1720057355642" ID="ID_657181060" MODIFIED="1720057407671" TEXT="Problem der Code-Anordnung: Lumiera Layer-Ordnung">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1720057413361" ID="ID_1448689517" MODIFIED="1720057439211" TEXT="mu&#xdf; im Layer des Builders liegen, also im Steam-Layer"/>
<node CREATED="1720057451030" ID="ID_1281885285" MODIFIED="1720057466031" TEXT="das &#xfc;bertr&#xe4;gt sich dann auch auf die Domain-Fa&#xe7;ades"/>
<node CREATED="1720057515141" ID="ID_1995372860" MODIFIED="1720057544617" TEXT="auch der Level-2-Builder wird damit zum externen Interface"/>
<node CREATED="1720057581292" ID="ID_959409799" MODIFIED="1720057781594" TEXT="&#x27f9; Domain-Fa&#xe7;ade-Plug-ins m&#xfc;ssen gegen die liblumieracore gelinkt sein"/>
<node CREATED="1720057798998" ID="ID_395221318" MODIFIED="1720057949056" TEXT="oder alternativ entsteht eine relativ fette Interface-Library">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<body>
<p>
...diese mu&#223; die Grundz&#252;ge des Asset-Systems, die Schnittstellen-Entit&#228;gen des Builders, das Stream-Type-Framework (und vmtl.) noch Weiteres enthalten. Au&#223;erdem m&#252;ssen alle die genannten Entit&#228;ten von der Implementierungs-Ebene entkoppelt sein
</p>
</body>
</html>
</richcontent>
</node>
</node>
<node CREATED="1720058387040" ID="ID_841944627" MODIFIED="1720058413832" TEXT="dieses Interface wird eine offene heterogene Sammlung von Callbacks"/>
</node>
</node>
<node CREATED="1720058481188" ID="ID_1577091440" MODIFIED="1720058528733" TEXT="&#x27f9; der Level-3-build enth&#xe4;lt einen Call-out via DomainFacade"/>
<node CREATED="1720058625192" ID="ID_1924296035" MODIFIED="1720058641546" TEXT="dagegen auf Level-2 gibt es nur auf Typ getemplatete Methoden"/>
</node>
</node>
</node>
</node>
@ -85567,8 +86138,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
dann sind <i>unendlich viele </i>Template-Instanzen die Folge
</p>
</body>
</html>
</richcontent>
</html></richcontent>
</node>
</node>
<node BACKGROUND_COLOR="#e0d4b7" COLOR="#a50167" CREATED="1719787060712" ID="ID_1412088712" MODIFIED="1719787463871" TEXT="trotzdem: mu&#xdf; auf Kombinatorik-Treiber achten">
@ -85628,7 +86198,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<node CREATED="1713823362710" ID="ID_66967253" MODIFIED="1719277373397" TEXT="Hilfsmittel zur Entwicklung und zum Aufbau">
<node CREATED="1719277267208" HGAP="29" ID="ID_594112005" MODIFIED="1719625152303" TEXT="brauche eine komplette Test-Ontologie" VSHIFT="7">
<linktarget COLOR="#ff2400" DESTINATION="ID_594112005" ENDARROW="Default" ENDINCLINATION="-136;-44;" ID="Arrow_ID_1657525718" SOURCE="ID_1706482104" STARTARROW="None" STARTINCLINATION="101;9;"/>
<linktarget COLOR="#df3950" DESTINATION="ID_594112005" ENDARROW="Default" ENDINCLINATION="666;-662;" ID="Arrow_ID_801625266" SOURCE="ID_973384222" STARTARROW="None" STARTINCLINATION="-529;52;"/>
<linktarget COLOR="#df3950" DESTINATION="ID_594112005" ENDARROW="Default" ENDINCLINATION="666;-662;" ID="Arrow_ID_801625266" SOURCE="ID_973384222" STARTARROW="None" STARTINCLINATION="-1433;133;"/>
<node CREATED="1719277376922" ID="ID_420782384" MODIFIED="1719787483524" TEXT="das ist zugleich ein Pr&#xfc;fstein f&#xfc;r das angestrebte &#xbb;generische Design&#xab;">
<arrowlink COLOR="#a63b5a" DESTINATION="ID_1834369403" ENDARROW="Default" ENDINCLINATION="-507;-32;" ID="Arrow_ID_249989493" STARTARROW="None" STARTINCLINATION="-211;811;"/>
<linktarget COLOR="#412dcd" DESTINATION="ID_420782384" ENDARROW="Default" ENDINCLINATION="131;-411;" ID="Arrow_ID_317368901" SOURCE="ID_746946876" STARTARROW="None" STARTINCLINATION="241;1448;"/>
@ -85733,7 +86303,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</ul>
</body>
</html></richcontent>
<linktarget COLOR="#4441d1" DESTINATION="ID_685938023" ENDARROW="Default" ENDINCLINATION="312;-9;" ID="Arrow_ID_120542506" SOURCE="ID_1431510635" STARTARROW="Default" STARTINCLINATION="236;32;"/>
<linktarget COLOR="#4441d1" DESTINATION="ID_685938023" ENDARROW="Default" ENDINCLINATION="290;-16;" ID="Arrow_ID_120542506" SOURCE="ID_1431510635" STARTARROW="Default" STARTINCLINATION="214;25;"/>
<linktarget COLOR="#5840f9" DESTINATION="ID_685938023" ENDARROW="Default" ENDINCLINATION="612;30;" ID="Arrow_ID_1312114841" SOURCE="ID_306809523" STARTARROW="None" STARTINCLINATION="-108;-1205;"/>
</node>
<node CREATED="1718969510891" ID="ID_731501936" MODIFIED="1718969527622" TEXT="der konkrete pull()-Vorgang geht &#xfc;ber einen Port ein"/>
@ -85875,8 +86445,8 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<arrowlink COLOR="#4a497f" DESTINATION="ID_1464453876" ENDARROW="Default" ENDINCLINATION="-115;13;" ID="Arrow_ID_1411577361" STARTARROW="None" STARTINCLINATION="98;7;"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1719625383125" ID="ID_1834369403" MODIFIED="1719785215297" TEXT="hier mu&#xdf; die Test-Ontology eingebunden werden">
<linktarget COLOR="#bf3d87" DESTINATION="ID_1834369403" ENDARROW="Default" ENDINCLINATION="-365;21;" ID="Arrow_ID_239565642" SOURCE="ID_831247737" STARTARROW="None" STARTINCLINATION="129;-285;"/>
<linktarget COLOR="#a63b5a" DESTINATION="ID_1834369403" ENDARROW="Default" ENDINCLINATION="-507;-32;" ID="Arrow_ID_249989493" SOURCE="ID_420782384" STARTARROW="None" STARTINCLINATION="-211;811;"/>
<linktarget COLOR="#bf3d87" DESTINATION="ID_1834369403" ENDARROW="Default" ENDINCLINATION="-365;21;" ID="Arrow_ID_239565642" SOURCE="ID_831247737" STARTARROW="None" STARTINCLINATION="129;-285;"/>
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1719626914799" ID="ID_1823583408" MODIFIED="1719626995786" TEXT="Aufgabe: herausfinden wie man sie verwendet">
<richcontent TYPE="NOTE"><html>
@ -85891,7 +86461,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</node>
<node CREATED="1719671062644" ID="ID_1149892579" MODIFIED="1719967945765" TEXT="es besteht eine Verbindung zum StreamType">
<node CREATED="1719689154081" ID="ID_1037364637" MODIFIED="1719790237122" TEXT="latenter Konflikt: bisher zielt der Stream-Impl-Typ ehr auf Verbergen">
<arrowlink COLOR="#8c4f70" DESTINATION="ID_3439776" ENDARROW="Default" ENDINCLINATION="32;187;" ID="Arrow_ID_579852970" STARTARROW="None" STARTINCLINATION="-630;-23;"/>
<arrowlink COLOR="#8c4f70" DESTINATION="ID_3439776" ENDARROW="Default" ENDINCLINATION="32;187;" ID="Arrow_ID_579852970" STARTARROW="None" STARTINCLINATION="-650;-26;"/>
</node>
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#282e77" CREATED="1719703209982" ID="ID_1227172782" MODIFIED="1719704690800" TEXT="mu&#xdf; diese Verbindung hier &#xfc;berhaupt nochmal aufgegriffen werden?">
<node CREATED="1719703237589" ID="ID_65226297" MODIFIED="1719703250647" TEXT="schlie&#xdf;lich sollte der Builder doch alles bereits explizit machen"/>
@ -85962,8 +86532,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
...insofern ist das eindeutig die elegantere L&#246;sung. Auf den ersten Blick mag die komplette Trennung &#8222;sauberer&#8220; wirken, jedoch mu&#223; dazu eine Meta-Repr&#228;sentation geschaffen werden, die f&#252;r jedwede Art von Medium gilt, und es mu&#223; daf&#252;r ein Interpreter im Builder bereitstehen. Da auf der anderen Seite ohnehin ein Adapter f&#252;r jede Library geschrieben werden mu&#223;, besteht die M&#246;glichkeit, f&#252;r jede Library einen eigenst&#228;ndige Weg zu verwenden, um letztlich die Aufrufparameter auszugeben; das bedeutet, man kann in der jeweiligen Fach-Ontologie bleiben, und das Ontology-Mapping beschr&#228;nkt sich auf eine &#220;bersetzung in das sehr rudiment&#228;re Muster von Node-Aufrufen, wie von der Render-Engine gefordert
</p>
</body>
</html>
</richcontent>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
</node>
@ -86011,8 +86580,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
...aber diese Info mu&#223; aus dem Library-Adapter bezogen werden k&#246;nnen, und zwar schon viel fr&#252;her, wenn das entspr. Processing-Asset erstellt wird; das kann allerdings auch eine dynamischen R&#252;ckruf in die LIbrary implizieren
</p>
</body>
</html>
</richcontent>
</html></richcontent>
</node>
<node CREATED="1719706288722" ID="ID_587946705" MODIFIED="1719706307051" TEXT="Buffer-Format (Gr&#xf6;&#xdf;e, ggfs Layout) ausgabeseitig"/>
<node CREATED="1719706307912" ID="ID_783578660" MODIFIED="1719707576163" TEXT="Markierung f&#xfc;r Inplace-Buffer, falls n&#xf6;tig/m&#xf6;glich">
@ -86034,8 +86602,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</li>
</ul>
</body>
</html>
</richcontent>
</html></richcontent>
</node>
<node CREATED="1719707578476" ID="ID_1483652660" MODIFIED="1719708016058" TEXT="Markierung wenn Buffer von der Library gemanaged werden">
<richcontent TYPE="NOTE"><html>
@ -86045,8 +86612,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
ein ganz besonders l&#228;stiges Thema: in der C-Welt gilt es als Feature, und nicht als Bug, wenn eine Library dem Aufrufer das Memory-Management abnimmt; Libraries sind in der Hinsicht oft uns&#228;glich &#8222;kreativ&#8220;. Typischerweise bedeutet das, da&#223; man sich dann an ein ganz spezielles Protokoll halten mu&#223;; in Lumiera w&#252;rden wir so etwas als besonderen BufferProvider verkapseln, mit einem speziellen &#187;Inlay-Typ&#171;, der dann lifecycle-Events an die Library weitergibt
</p>
</body>
</html>
</richcontent>
</html></richcontent>
</node>
<node CREATED="1719709588097" ID="ID_1082507507" MODIFIED="1719709836158">
<richcontent TYPE="NODE"><html>
@ -86064,8 +86630,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
Das ist ein spezielles Konstrukt, das sich direkt aus dem Setup mit BufferProvider ergibt: man sieht einen speziellen Buffer-&#187;slot&#171; vor, in den ein Adapter-Typ inplantiert wird; dieser Adapter bekommt eine Referenz auf die FeedManifold und wird dann getriggert, was die eigentliche externe Berechnung in der Library bewirkt. Da dieser Typ ma&#223;geschneidert ist, kann er ein zus&#228;tzliches Kontroll- und Informations-API bieten
</p>
</body>
</html>
</richcontent>
</html></richcontent>
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1719711275180" HGAP="33" ID="ID_105731741" MODIFIED="1719711304124" TEXT="Vorsicht: man k&#xf6;nnte diesen auch direkt inlinen?" VSHIFT="3">
<icon BUILTIN="messagebox_warning"/>
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1719764158370" ID="ID_1459507139" MODIFIED="1719764186583" TEXT="vorerst offene Frage">
@ -86188,8 +86753,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
...man k&#246;nnte ein System von <i>nested scopes</i>&#160;aufbauen, auf Basis einer <i>persistenten Datenstruktur. </i>Es ist aber noch nicht klar, ob soetwas jemals gebraucht wird <font size="2">(YAGNI)</font>; im Besonderen br&#228;uchte man dann auch einen Propagations-Mechanismus f&#252;r Bindings, und damit wird die Sache komplex und potentiell aufwendig. Als ein anderes Modell k&#246;nnte man lediglich einen Verweis auf einen Key-Value-Store durchgeben, der dann auf dem Einstiegs-Stackframe liegen w&#252;rde. Und als minimal-Version w&#252;rden wir nur einen Koordinaten-Record per Funktionsparameter nach unten durchreichen &#8212; br&#228;uchten dann aber einen <i>offband-channel</i>&#160; um Muting und Aktivierungen (z.B. Switchboard) durchzugeben; letztere m&#252;ssen &#252;brigens auf Ebene der Job-Invocation atomar aufgegriffen werden (wie genau ist noch nicht klar)
</p>
</body>
</html>
</richcontent>
</html></richcontent>
<icon BUILTIN="hourglass"/>
</node>
</node>
@ -86338,9 +86902,9 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</node>
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1718975949293" ID="ID_8397683" MODIFIED="1719784064096" TEXT="Weaving-Patterns &#x2014; welche Basis?">
<linktarget COLOR="#ad5890" DESTINATION="ID_8397683" ENDARROW="Default" ENDINCLINATION="-1667;-180;" ID="Arrow_ID_539070296" SOURCE="ID_208065994" STARTARROW="None" STARTINCLINATION="-368;1501;"/>
<linktarget COLOR="#73464f" DESTINATION="ID_8397683" ENDARROW="Default" ENDINCLINATION="-658;-271;" ID="Arrow_ID_1227431876" SOURCE="ID_1047998990" STARTARROW="None" STARTINCLINATION="-254;17;"/>
<linktarget COLOR="#e00637" DESTINATION="ID_8397683" ENDARROW="Default" ENDINCLINATION="748;-69;" ID="Arrow_ID_1695197621" SOURCE="ID_1163433329" STARTARROW="None" STARTINCLINATION="59;422;"/>
<linktarget COLOR="#ee113c" DESTINATION="ID_8397683" ENDARROW="Default" ENDINCLINATION="-362;29;" ID="Arrow_ID_543535373" SOURCE="ID_1619627824" STARTARROW="None" STARTINCLINATION="109;8;"/>
<linktarget COLOR="#73464f" DESTINATION="ID_8397683" ENDARROW="Default" ENDINCLINATION="-658;-271;" ID="Arrow_ID_1227431876" SOURCE="ID_1047998990" STARTARROW="None" STARTINCLINATION="-254;17;"/>
<icon BUILTIN="help"/>
<node CREATED="1719790298955" HGAP="27" ID="ID_282329743" MODIFIED="1719790448961" TEXT="liefert die Spec f&#xfc;r das Anlegen der FeedManifold" VSHIFT="17">
<icon BUILTIN="info"/>
@ -86606,8 +87170,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
...und das ist ein besonders l&#228;stiger Grenzfall, der h&#246;chstwahrscheinlich sehr selten auftritt, dann aber ein knock-out sein k&#246;nnte; das bedeutet, f&#252;r diesen seltenen Fall mu&#223; die M&#246;glichkeit f&#252;r freies Mapping vorgesehen werden
</p>
</body>
</html>
</richcontent>
</html></richcontent>
</node>
<node COLOR="#5b280f" CREATED="1719878308873" ID="ID_356997601" MODIFIED="1719878794984" TEXT="Es w&#xe4;re auch denkbar, diesen Fall komplett auf den Cache abzuw&#xe4;lzen">
<richcontent TYPE="NOTE"><html>
@ -86629,7 +87192,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<node CREATED="1719961035792" ID="ID_1537523544" MODIFIED="1719961054626" TEXT="N-tes Resultat wird einmal als &#xbb;Port&#xab; gedacht"/>
<node CREATED="1719961055974" ID="ID_1173813263" MODIFIED="1719961064552" TEXT="dann wieder als &#xbb;Slot&#xab;"/>
<node CREATED="1719961065124" ID="ID_844591678" MODIFIED="1719961069789" TEXT="und dann wieder als Buffer"/>
<node CREATED="1719961086370" ID="ID_1979667669" MODIFIED="1719961271774" TEXT="Konsequenz &#x27f9; auf Spect / Meta-Ebene beschr&#xe4;nkten und Mapping nach innen nehmen">
<node CREATED="1719961086370" ID="ID_1979667669" MODIFIED="1719961271774" TEXT="Konsequenz &#x27f9; auf Spec / Meta-Ebene beschr&#xe4;nkten und Mapping nach innen nehmen">
<arrowlink COLOR="#67434d" DESTINATION="ID_1186198930" ENDARROW="Default" ENDINCLINATION="-3;-54;" ID="Arrow_ID_43760137" STARTARROW="None" STARTINCLINATION="-125;4;"/>
<icon BUILTIN="idea"/>
</node>
@ -86776,7 +87339,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<head/>
<body>
<p>
Das ist eine Entscheidung. Man k&#246;nnte ganz im Gegenteil jetzt anfangen, einen generischen Media-Function-Invoker zu schreiben, der von einer Routing-Tabelle gesteuert wird. <b>Das werde ich nicht tun</b>, da dies den<i>&#160; Schein einer Generizit&#228;t erzeugt, die gar nicht gegeben ist.</i>&#160; Vielmehr gehe ich davon aus, da&#223; die meisten F&#228;lle offensichtlich-einfach sind, und in komplexeren F&#228;llen mu&#223; man ohnehin wissen, was die jeweilige Library braucht; es w&#228;re reine Verschwendung, das in ein Meta-Routing-Format zu pressen...<i>&#160;</i>
Das ist eine Entscheidung. Man k&#246;nnte ganz im Gegenteil jetzt anfangen, einen generischen Media-Function-Invoker zu schreiben, der von einer Routing-Tabelle gesteuert wird. <b>Das werde ich nicht tun</b>, da dies den<i>&#160;Schein einer Generizit&#228;t erzeugt, die gar nicht gegeben ist.</i>&#160;Vielmehr gehe ich davon aus, da&#223; die meisten F&#228;lle offensichtlich-einfach sind, und in komplexeren F&#228;llen mu&#223; man ohnehin wissen, was die jeweilige Library braucht; es w&#228;re reine Verschwendung, das in ein Meta-Routing-Format zu pressen...<i>&#160;</i>
</p>
</body>
</html></richcontent>
@ -86795,7 +87358,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<linktarget COLOR="#961457" DESTINATION="ID_1119707110" ENDARROW="Default" ENDINCLINATION="989;-28;" ID="Arrow_ID_1007029324" SOURCE="ID_339209474" STARTARROW="None" STARTINCLINATION="894;52;"/>
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1719967803009" ID="ID_1698494454" MODIFIED="1719968250669" TEXT="&#x27f9; die Reihenfolge der Lead-Pulls mu&#xdf; vom Builder w&#xe4;hlbar sein">
<linktarget COLOR="#5e5e77" DESTINATION="ID_1698494454" ENDARROW="Default" ENDINCLINATION="-306;13;" ID="Arrow_ID_151141126" SOURCE="ID_172436088" STARTARROW="None" STARTINCLINATION="641;-12;"/>
<linktarget COLOR="#5e5e77" DESTINATION="ID_1698494454" ENDARROW="Default" ENDINCLINATION="-306;13;" ID="Arrow_ID_151141126" SOURCE="ID_172436088" STARTARROW="None" STARTINCLINATION="597;43;"/>
<icon BUILTIN="yes"/>
</node>
</node>
@ -86849,7 +87412,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<node CREATED="1719968160956" ID="ID_1900536063" MODIFIED="1719968167375" TEXT="schlie&#xdf;t Array-Auff&#xe4;cherung ein"/>
</node>
<node CREATED="1719968107352" ID="ID_172436088" MODIFIED="1719968261181" TEXT="Reihenfolge der rekursiven pull()-Aufrufe">
<arrowlink COLOR="#5e5e77" DESTINATION="ID_1698494454" ENDARROW="Default" ENDINCLINATION="-306;13;" ID="Arrow_ID_151141126" STARTARROW="None" STARTINCLINATION="641;-12;"/>
<arrowlink COLOR="#5e5e77" DESTINATION="ID_1698494454" ENDARROW="Default" ENDINCLINATION="-306;13;" ID="Arrow_ID_151141126" STARTARROW="None" STARTINCLINATION="597;43;"/>
</node>
<node CREATED="1719968185473" ID="ID_1239704157" MODIFIED="1719968217280" TEXT="ein bestimmtes Resultat-BuffHandle wird weitergegeben und nicht geschlossen"/>
</node>
@ -127643,8 +128206,11 @@ std::cout &lt;&lt; tmpl.render({&quot;what&quot;, &quot;World&quot;}) &lt;&lt; s
<node CREATED="1681085863204" ID="ID_136936235" MODIFIED="1681085881132" TEXT="isoliert system-Level Services und externe Library-Erweiterungen"/>
</node>
</node>
<node CREATED="1720131181173" ID="ID_792463857" MODIFIED="1720131194751" TEXT="Extern">
<node CREATED="1720131209154" ID="ID_218200346" MODIFIED="1720131229705" TEXT="Integration"/>
<node CREATED="1512923647255" ID="ID_1800845122" MODIFIED="1557498707237" TEXT="Plug-in"/>
</node>
</node>
<node COLOR="#435e98" CREATED="1670599468591" HGAP="175" ID="ID_1144378342" MODIFIED="1670599561156" POSITION="left" TEXT="Methoden" VSHIFT="-32">
<edge COLOR="#6164d8" STYLE="linear"/>
<font NAME="SansSerif" SIZE="16"/>