Invocation: draft possible syntactic structure based on these conjectures

The Builder will have to perform several passes, gradually refining
the model into the low-level Render Node network. Right now, some
guesses regarding the last steps of this process are possible,
thus defining the lowest level of a model builder structure
 * Level-3 : mapping data flow paths
 * Level-2 : detailed configuration of data buffer passing
 * Level-1 : build the actual parameter structures for invocation

In the current »Vertical Slice« we're able to fully define Level-1
and maybe Level-2
This commit is contained in:
Fischlurch 2024-07-05 13:41:01 +02:00
parent ce9bf7f143
commit 1f7ddbe5ec
2 changed files with 274 additions and 198 deletions

View file

@ -56,19 +56,19 @@ namespace engine {
/////////////////////////////////////////////////////////////////////////////////////////////////////////////TICKET #1367 : Rebuild the Node Invocation
class NodeWiringBuilder
class PortBuilder
: util::MoveOnly
{
public:
NodeWiringBuilder
PortBuilder
inSlots (uint s)
{
UNIMPLEMENTED ("define number of predecessor-source slots");
return move(*this);
}
NodeWiringBuilder
PortBuilder
outSlots (uint r)
{
UNIMPLEMENTED ("define number of result slots");
@ -76,13 +76,51 @@ namespace engine {
}
template<class ILA, typename...ARGS>
NodeWiringBuilder
PortBuilder
createBuffers (ARGS&& ...args)
{
UNIMPLEMENTED ("define builder for all buffers to use");
return move(*this);
}
/****************************************************//**
* Terminal: complete the Port wiring and return to the node level.
*/
void //////////////////////////////////////////////////////////OOO return type
completePort()
{
UNIMPLEMENTED("finish and link-in port definition");
}
};
class NodeBuilder
: util::MoveOnly
{
public:
NodeBuilder
inSlots (uint s)
{
UNIMPLEMENTED ("define number of predecessor-source slots");
return move(*this);
}
NodeBuilder
outSlots (uint r)
{
UNIMPLEMENTED ("define number of result slots");
return move(*this);
}
void //////////////////////////////////////////////////////////OOO return type
preparePort ()
{
UNIMPLEMENTED ("recursively enter detailed setup of a single processing port");
// return move(*this);
}
/****************************************************//**
* Terminal: complete the Connectivity defined thus far.
*/
@ -94,6 +132,50 @@ namespace engine {
};
class ProcBuilder
: util::MoveOnly
{
public:
void //////////////////////////////////////////////////////////OOO return type
requiredSources ()
{
UNIMPLEMENTED ("enumerate all source feeds required");
// return move(*this);
}
void //////////////////////////////////////////////////////////OOO return type
retrieve (void* streamType)
{
UNIMPLEMENTED ("recursively define a predecessor feed");
// return move(*this);
}
/****************************************************//**
* Terminal: trigger the Level-3 build walk to produce a ProcNode network.
*/
void //////////////////////////////////////////////////////////OOO return type
build()
{
UNIMPLEMENTED("Level-3 build-walk");
}
};
class LinkBuilder
: util::MoveOnly
{
public:
void //////////////////////////////////////////////////////////OOO return type
from (void* procAsset)
{
UNIMPLEMENTED ("recursively enter definition of processor node to produce this feed link");
// return move(*this);
}
};
/**
* Entrance point for building node Connectivity
*/
@ -102,7 +184,7 @@ namespace engine {
buildPatternFor()
{
UNIMPLEMENTED("instantiate Domain Ontology Facade and outfit the NodeWiringBuilder");
return NodeWiringBuilder{};
return NodeBuilder{};
}

View file

@ -869,9 +869,7 @@
<node CREATED="1484802752728" ID="ID_634426848" MODIFIED="1518487921046" TEXT="passiert beim Aufruf des TerminationHandle"/>
<node CREATED="1484802766966" ID="ID_370736554" MODIFIED="1518487921046">
<richcontent TYPE="NODE"><html>
<head>
</head>
<head/>
<body>
<p>
wenn ich per Value capture, dann gibts schon
@ -1523,9 +1521,7 @@
</node>
<node COLOR="#435e98" CREATED="1531584775498" ID="ID_1901801971" MODIFIED="1576282358155" TEXT="7/2018 notification-Display fehlt noch">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<head/>
<body>
<p>
...und insofern ist auch die Behandlung einer <b>Folge-Exception</b>&#160;noch offen
@ -2655,9 +2651,7 @@
<icon BUILTIN="help"/>
<node CREATED="1533768892227" ID="ID_1131924142" MODIFIED="1538263469670" TEXT="ja, macht Sinn">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<head/>
<body>
<p>
weil so sichergestellt ist, da&#223; er stets existiert,
@ -3597,9 +3591,7 @@
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1538365422252" FOLDED="true" ID="ID_1782663880" MODIFIED="1561827464646" TEXT="Offender = ClassLock&lt;gui::interact::LocationQuery&gt;">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<head/>
<body>
<p>
0000001180: INFO: subsystem-runner.hpp:208: worker_3: sigTerm: Subsystem 'Lumiera GTK GUI' terminated.
@ -4798,9 +4790,7 @@
<icon BUILTIN="button_ok"/>
<node CREATED="1481777054755" ID="ID_1551225439" MODIFIED="1518487921057">
<richcontent TYPE="NODE"><html>
<head>
</head>
<head/>
<body>
<p>
mu&#223; SessionCommandService schlie&#223;en
@ -5764,9 +5754,7 @@
</node>
<node CREATED="1665800503910" ID="ID_1120591972" MODIFIED="1665801294931" TEXT="Gruppen aufl&#xf6;sen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<head/>
<body>
<p>
wenn man die Gruppe aufl&#246;st, wendet Inkscape die Transformation auf jedes Einzelelement an, und schiebt eine inverse Transformation in alle referenzierten Gradienten
@ -6776,9 +6764,7 @@
</node>
<node CREATED="1485902627783" HGAP="42" ID="ID_88029282" MODIFIED="1561827464724" VSHIFT="-13">
<richcontent TYPE="NODE"><html>
<head>
</head>
<head/>
<body>
<p>
L&#246;sung: <i><font color="#27754d">schwebende Bindung</font></i>
@ -7824,9 +7810,7 @@
<icon BUILTIN="help"/>
<node CREATED="1507940000057" ID="ID_1526112208" MODIFIED="1518487921064">
<richcontent TYPE="NODE"><html>
<head>
</head>
<head/>
<body>
<p>
eine <i>reverse resolution</i>
@ -8747,9 +8731,7 @@
<node CREATED="1510266845712" FOLDED="true" ID="ID_1058798631" MODIFIED="1561827469126" TEXT="depthFirstExpandable">
<node CREATED="1510340746785" ID="ID_1049791542" MODIFIED="1510340774700">
<richcontent TYPE="NODE"><html>
<head>
</head>
<head/>
<body>
<p>
<i>echte</i>&#160;Expand-Funktion notwendig
@ -23181,9 +23163,7 @@
<icon BUILTIN="button_ok"/>
<node CREATED="1575833555676" ID="ID_737726791" MODIFIED="1576282358089" TEXT="keine zwingende Verkn&#xfc;pfung mehr m&#xf6;glich">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<head/>
<body>
<p>
weil nun ViewHooked schon als ctor-Parameter einen ViewHook bekommen mu&#223;...
@ -23935,9 +23915,7 @@
<node CREATED="1480725247115" ID="ID_1533101483" MODIFIED="1557498707225" TEXT="Konstruktion erfordert...">
<node CREATED="1480796814716" ID="ID_1742743432" MODIFIED="1576282358083" TEXT="ID einer Timeline">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<head/>
<body>
<p>
wir lassen es offen, welche Art von ID das ist.
@ -24586,9 +24564,7 @@
<node CREATED="1666481508537" ID="ID_767490652" MODIFIED="1666481512449" TEXT="Analyse..."/>
<node CREATED="1666481268601" ID="ID_224528667" MODIFIED="1666481473064" TEXT="CanvasHooked?">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<head/>
<body>
<p>
&#8623; Nein!
@ -32845,9 +32821,7 @@
</node>
<node CREATED="1566395532950" ID="ID_9111832" MODIFIED="1576282358051" TEXT="die CSS-Effekten spielen daher nur eine begrenzte Rolle">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<head/>
<body>
<p>
und zwar im Wesentliche zur Schattierung der Flanken.
@ -33657,9 +33631,7 @@
<node CREATED="1566517643320" ID="ID_30150585" MODIFIED="1566517660194" TEXT="fragt den TrackBody"/>
<node CREATED="1566517661707" ID="ID_1225415802" MODIFIED="1576282358047" TEXT="dieser summiert im Moment einfach nochmal">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<head/>
<body>
<p>
ist ineffizient, aber der Code ist so klarer
@ -34588,9 +34560,7 @@
</node>
<node CREATED="1564928700616" ID="ID_835151696" MODIFIED="1564928815890">
<richcontent TYPE="NODE"><html>
<head>
</head>
<head/>
<body>
<p>
box-shadow (inset) innerhalb des Rechteckss, <i>und innerhalb</i>&#160;der (gedachten) border
@ -35632,9 +35602,7 @@
</node>
<node CREATED="1612438613382" ID="ID_167120458" MODIFIED="1612438705315" TEXT="DisplayFrame bleibt als einzige Alternative &#xfc;brig">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<head/>
<body>
<p>
...f&#252;r eine zentrale Schaltstelle und Verteiler.<br />Denn nur der DisplayFrame ist hinreichend loka und dennoch erreichbar
@ -43729,9 +43697,7 @@
<node CREATED="1670513174117" ID="ID_1899476162" MODIFIED="1670513185583" TEXT="und zwar in Bildschirm-Pixel ausdr&#xfc;cken"/>
<node CREATED="1670513186435" ID="ID_1680999319" MODIFIED="1670513314716" TEXT="dazu m&#xfc;ssen wir r&#xfc;ckw&#xe4;rts vorgehen">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<head/>
<body>
<p>
...damit meine ich: ausrechnen wie viele Pixel die jetzt eingestelle Fenstergr&#246;&#223;e in der urspr&#252;nglich geforderten Metrik einnehmen w&#252;rde.....
@ -44644,9 +44610,7 @@
<icon BUILTIN="button_ok"/>
<node CREATED="1670816109718" ID="ID_619043266" MODIFIED="1670889738713" TEXT="Fehler: 1 digit im Z&#xe4;hler &#x27f9; 1&#x2030;">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<head/>
<body>
<p>
kommt dadurch zustande, da&#223; ich nach dem Hochskalieren i.d.R doch noch einen Rest habe, den ich f&#252;r Integer-Arithmetik abrunde; damit dann trotzdem die gew&#252;nschte (i.d.R. um einen Pixel h&#246;here) Pixelzahl rauskommt, inkrementiere ich die letzte Stelle, und das ist zugleich meine maximale Fehlerschranke. In Extremf&#228;llen haben wir im Z&#228;hler noch eine 4-stellige Zahl (1000/LIM_HAZARD) und damit etwa 1&#8240; Fehler maximal. Das ist nicht sch&#246;n, aber akzeptabel &#8212; gemessen daran, da&#223; ich dadruch eine &#187;ungiftige&#171; Metrik sicherstellen kann. Sobald man etwas weg ist von der Unterschranke der Metrik 1000/LIM_HAZARD, wirkt das Nach-Skalieren und Mitnehmen des gebrochenen Anteils viel besser, und der Fehler sinkt drastisch
@ -45635,9 +45599,7 @@
<icon BUILTIN="button_ok"/>
<node CREATED="1669933273591" ID="ID_1754745072" MODIFIED="1669933393067" TEXT="Darstellung von 1/250s">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<head/>
<body>
<p>
...das sind 4ms
@ -46418,9 +46380,7 @@
<node CREATED="1672952339119" ID="ID_27417257" MODIFIED="1672952344269" TEXT="Art der Einbindung">
<node CREATED="1672952358471" ID="ID_577116696" MODIFIED="1672952449076" TEXT="spezieller Twist hier: Aktuatoren arbeiten pixel-basiert">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<head/>
<body>
<p>
alle Steuersignale aus dem GUI kommen in Pixel-Einheiten, entweder absolut oder relativ; das ZoomWindow selber aber arbeitet in Zeit-Einheiten (und das ist auch seine Aufgabe).
@ -47287,9 +47247,7 @@
<node CREATED="1612027392040" ID="ID_319683499" MODIFIED="1612027448852" TEXT="&quot;timing&quot; &#x2254; TimeSpan{start, len}">
<node CREATED="1612027460343" ID="ID_1526970445" MODIFIED="1612027635585" TEXT="Attribut soll bereits bei Konstruktion mitgegeben werden">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<head/>
<body>
<p>
aus Performance-Gr&#252;nden.
@ -47820,9 +47778,7 @@
</node>
<node CREATED="1451093994135" ID="ID_1002329025" MODIFIED="1518487921085">
<richcontent TYPE="NODE"><html>
<head>
</head>
<head/>
<body>
<p>
...wird sinnvoll im Rahmen von <font color="#8e11a1">InteractionControl</font>
@ -51181,9 +51137,7 @@
</node>
<node CREATED="1453638973049" ID="ID_1350801390" LINK="https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63723" MODIFIED="1453639023645">
<richcontent TYPE="NODE"><html>
<head>
</head>
<head/>
<body>
<p>
Compiler-Bug <font color="#c80219">Gcc-#63723</font>
@ -51880,9 +51834,7 @@
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1614379298743" ID="ID_1608963281" MODIFIED="1614379434193" TEXT="Frage: mu&#xdf; das UI-Bus-Protokoll erweitert werden?">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<head/>
<body>
<p>
...und das hei&#223;t auch, wo werden die Aussage-S&#228;tze gebildet?<br />wird das Formen von kontextbezogenen Anweisungen im UI-Bus-Protokoll eigens verankert, oder erfolgt dies komplett intern im Stage-Layer?
@ -52548,9 +52500,7 @@
<node CREATED="1492293984170" ID="ID_1495091918" MODIFIED="1492293990949" TEXT="fire-and-forget">
<node CREATED="1492294004119" ID="ID_1322819026" MODIFIED="1492294029307">
<richcontent TYPE="NODE"><html>
<head>
</head>
<head/>
<body>
<p>
CommandID <i>und</i>&#160;Argumente gegeben
@ -71243,49 +71193,38 @@
</node>
<node CREATED="1720053707354" ID="ID_132183535" MODIFIED="1720053743636">
<richcontent TYPE="NODE"><html>
<head>
</head>
<head/>
<body>
<p>
&#171;<b>Domain-Ontology</b>-Mapping&#187;
</p>
</body>
</html>
</richcontent>
</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>
<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>
</html></richcontent>
</node>
<node CREATED="1720053459603" ID="ID_154423823" MODIFIED="1720055356193">
<richcontent TYPE="NODE"><html>
<head>
</head>
<head/>
<body>
<p>
<u>Feststellung</u>: Domain-Ontologies werden &#252;ber <b>Aufgaben-Callbacks</b>&#160; eingebunden
</p>
</body>
</html>
</richcontent>
</html></richcontent>
<richcontent TYPE="NOTE"><html>
<head>
</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>
@ -71294,15 +71233,12 @@
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>
</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>
<head/>
<body>
<p>
<u>Beispiele</u>:
@ -71325,8 +71261,7 @@
</li>
</ul>
</body>
</html>
</richcontent>
</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"/>
@ -71358,16 +71293,13 @@
<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>
<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>
</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"/>
@ -72393,17 +72325,15 @@
<node CREATED="1720141142821" ID="ID_503081572" MODIFIED="1720141145712" TEXT="Einstieg">
<node CREATED="1720056867428" ID="ID_335227601" MODIFIED="1720141199163">
<richcontent TYPE="NODE"><html>
<head>
</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;"/>
<linktarget COLOR="#736075" DESTINATION="ID_335227601" ENDARROW="Default" ENDINCLINATION="-1615;135;" ID="Arrow_ID_1074618773" SOURCE="ID_1405029324" STARTARROW="None" STARTINCLINATION="-161;-261;"/>
<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>
@ -81987,18 +81917,94 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<node CREATED="1719970948270" ID="ID_1769935423" MODIFIED="1719970970119" TEXT="createInBuffers..."/>
<node CREATED="1719970957989" ID="ID_1864258437" MODIFIED="1719970999711" TEXT="createOutBuffers...."/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1720146340213" ID="ID_1871545026" MODIFIED="1720146347108" TEXT="TODO: API f&#xfc;r Mapping">
<icon BUILTIN="flag-yellow"/>
<node CREATED="1720146352115" ID="ID_989391502" MODIFIED="1720146395401" TEXT="ausgangsseitig: einfach">
<richcontent TYPE="NOTE"><html>
<head/>
<body>
<ul>
<li>
orientiert sich an der Reihenfolge der Outputs aus der Proc-Function
</li>
<li>
lediglich der Result-Slot mu&#223; spezifiziert werden
</li>
</ul>
</body>
</html></richcontent>
</node>
<node CREATED="1719971317790" ID="ID_1077643019" MODIFIED="1719971444143" TEXT="Layer-3">
<node CREATED="1719276025136" ID="ID_607906936" MODIFIED="1719276042313" TEXT="buildPatternFor&lt;ONT&gt;()">
<node CREATED="1719277198122" ID="ID_1431538917" MODIFIED="1719277212004" TEXT="ONT ist eine Dom&#xe4;nen-Ontologie">
<node CREATED="1719277214775" ID="ID_1364518400" MODIFIED="1719277219923" TEXT="Beispiel FFmpeg"/>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1719277220672" ID="ID_973384222" MODIFIED="1719625152303" TEXT="konkret: TestRandOntology">
<arrowlink COLOR="#df3950" DESTINATION="ID_594112005" ENDARROW="Default" ENDINCLINATION="666;-662;" ID="Arrow_ID_801625266" STARTARROW="None" STARTINCLINATION="-529;52;"/>
<icon BUILTIN="pencil"/>
<node CREATED="1720146396461" ID="ID_1630413077" MODIFIED="1720146404887" TEXT="Komplexit&#xe4;t steckt auf der Eingangsseite">
<node CREATED="1720146410589" ID="ID_105499454" MODIFIED="1720146420822" TEXT="Slots sind geordnet nach Pull-Reihenfolge"/>
<node CREATED="1720146571598" ID="ID_1359527790" MODIFIED="1720146598542" TEXT="zu jedem Slot wird auch die Info (Leed-#, Port-#) aufgezeichnet"/>
<node CREATED="1720146427025" ID="ID_1892940839" LINK="#ID_1041217509" MODIFIED="1720146484198" TEXT="Problem: diese Info soll direkt auf diesem Level komplett materialisiert werden"/>
<node CREATED="1720146648800" ID="ID_245906119" MODIFIED="1720146825265" TEXT="der Level dar&#xfc;ber sieht noch den StreamType">
<arrowlink COLOR="#c6dffd" DESTINATION="ID_1540907767" ENDARROW="Default" ENDINCLINATION="79;-31;" ID="Arrow_ID_851396319" STARTARROW="None" STARTINCLINATION="917;59;"/>
<arrowlink COLOR="#fedef1" DESTINATION="ID_1854436803" ENDARROW="Default" ENDINCLINATION="454;0;" ID="Arrow_ID_1501169682" STARTARROW="None" STARTINCLINATION="327;22;"/>
</node>
</node>
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1720177572930" ID="ID_1381843924" MODIFIED="1720177595975" TEXT="Vorsicht: hier ist &#x201e;eigentlich nichts zu tun&#x201c;">
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1720177600139" ID="ID_213306805" MODIFIED="1720177631130" TEXT="denn: dieser Teil wird aus dem Domain-Scope heraus aufgerufen"/>
<node CREATED="1720177631814" ID="ID_1589649034" MODIFIED="1720177644728" TEXT="genau dort wird auch der InvocationAdapter generiert"/>
<node CREATED="1720177646541" ID="ID_1183172614" MODIFIED="1720177830748" TEXT="es geht &#x201e;nur&#x201c; darum, da&#xdf; diese beiden Teile aufeinander abgestimmt sind">
<richcontent TYPE="NOTE"><html>
<head/>
<body>
<p>
konkret: der InvocationAdapter mu&#223; Code enthalten, der sich aus den jeweiligen BuffHandles die expliziten Buffer-Pointer holt. Dazu mu&#223; er wissen, wo und in welcher Reihenfolge diese BuffHandles liegen&#160;&#8212; Beachte: diese Reihenfolge ist <b>nicht zwingend die Parameter-Reihenfolge der aufzurufenden Library-Funktion</b>.
</p>
</body>
</html></richcontent>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1720177832615" ID="ID_1377371509" MODIFIED="1720177870693" TEXT="&#x27f9; Teilproblem(ungel&#xf6;st): interne Identifikation aller Parameter">
<icon BUILTIN="flag-yellow"/>
<node CREATED="1720177891586" ID="ID_1634202091" MODIFIED="1720177901196" TEXT="der Implementator dieses Glue-Code..."/>
<node CREATED="1720177901993" ID="ID_1005424545" MODIFIED="1720177946185" TEXT="braucht eine M&#xf6;glichkeit, jeden Eingabe-Parameter &#xbb;wiederzuerkennen&#xab;"/>
<node CREATED="1720177992858" ID="ID_981836838" MODIFIED="1720178378014" TEXT="Erl&#xe4;uterung....">
<richcontent TYPE="NOTE"><html>
<head/>
<body>
<ul>
<li>
in einem fr&#252;heren Build-Schritt wird festgestellt, welche Eingabeparameter eine Lib-Funktion braucht
</li>
<li>
f&#252;r alle diese Eingabe-Parameter wird eine Quelle vorgemerkt
</li>
<li>
ein weiterer Build-Schritt organisiert diese Datenquellen in Vorl&#228;ufer-Nodes
</li>
<li>
ein weiterer Build-Schritt legt die pull()-Reihenfolge dieser Vorl&#228;ufer fest
</li>
<li>
hierbei k&#246;nnen weitere Vorl&#228;ufer-Nodes hinzugef&#252;gt werden, um externe Belange zu befriedigen, wie z.B. Automation bereitzustellen
</li>
</ul>
<p>
&#10233; Nun, auf diesem Level mu&#223; der eigentliche LIbrary-Aufruf konfiguriert werden, und dabei mu&#223; jeder Input der Library-Funktion mit den richtigen Daten aus dem richtigen Vorl&#228;ufer BuffHandle versorgt werden. Diese BuffHandles liegen nun aber in einer m&#246;glicherweise ge&#228;nderten Reihenfolge vor, und es sind weitere BuffHandles dabei, die f&#252;r den eigentlichen Aufruf nicht gebraucht werden (sondern f&#252;r die weiteren, externen Belange)
</p>
</body>
</html></richcontent>
<arrowlink COLOR="#ee3a7a" DESTINATION="ID_64586958" ENDARROW="Default" ENDINCLINATION="58;-79;" ID="Arrow_ID_449359787" STARTARROW="None" STARTINCLINATION="-210;32;"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1719973271918" HGAP="-9" ID="ID_1012140126" MODIFIED="1719973306545" VSHIFT="39">
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1720178354411" ID="ID_64586958" MODIFIED="1720178476914" TEXT="&#x27f9; Schlu&#xdf;folgerungen">
<linktarget COLOR="#ee3a7a" DESTINATION="ID_64586958" ENDARROW="Default" ENDINCLINATION="58;-79;" ID="Arrow_ID_449359787" SOURCE="ID_981836838" STARTARROW="None" STARTINCLINATION="-210;32;"/>
<icon BUILTIN="yes"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1720178393680" ID="ID_66839127" MODIFIED="1720178416089" TEXT="die Code-Generierung auf diesem Level braucht einen Vorgriff auf das Layout der FeedManifold">
<icon BUILTIN="flag-yellow"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1720178417956" ID="ID_565415710" MODIFIED="1720178453560" TEXT="au&#xdf;erdem sollte man f&#xfc;r jeden Parameter eine Marker-ID vorsehen, um ihn wiederzufinden">
<icon BUILTIN="flag-yellow"/>
</node>
</node>
</node>
<node CREATED="1720178543387" ID="ID_1839001807" MODIFIED="1720178576252" TEXT="adaptInvocation&lt;ADA&gt;">
<node CREATED="1720178577432" ID="ID_438090694" MODIFIED="1720178597453" TEXT="ADA &#x2261; Typ der Invocation-Adapter Klasse"/>
<node CREATED="1720178598060" ID="ID_1951506826" MODIFIED="1720178673488">
<richcontent TYPE="NODE"><html>
<head/>
<body>
@ -82006,10 +82012,42 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
diese wird sp&#228;ter <i>irgendwo</i>&#160;instantiiert
</p>
</body>
</html>
</richcontent>
</html></richcontent>
<icon BUILTIN="forward"/>
</node>
<node CREATED="1720178620602" ID="ID_1754473259" MODIFIED="1720178640340" TEXT="und dann mit einer Referenz auf die FeedManifold aufgerufen"/>
<node CREATED="1720178641544" ID="ID_1400060048" MODIFIED="1720178663624">
<richcontent TYPE="NODE"><html>
<head/>
<body>
<p>
<u>Erwartetes Resultat</u>: <b>Aufruf der Library Funktion</b>
</p>
</body>
</html></richcontent>
</node>
</node>
<node CREATED="1720220961048" ID="ID_11507753" MODIFIED="1720220974898">
<richcontent TYPE="NODE"><html>
<head/>
<body>
<p>
<u>Terminal</u>: completePort()
</p>
</body>
</html></richcontent>
<node CREATED="1720220989004" ID="ID_1204792955" MODIFIED="1720220996471" TEXT="linkt den neu definierten Port"/>
<node CREATED="1720220997038" ID="ID_1481586771" MODIFIED="1720221137187" TEXT="kehrt dann zum aufrufenden NodeBuilder zur&#xfc;ck">
<richcontent TYPE="NOTE"><html>
<head/>
<body>
<p>
das hei&#223;t, mu&#223; ohnehin einen Back-link halten, mu&#223; aber sich selber in den Parent-Builder zur&#252;ckschieben (tricky und potentiell gef&#228;hrlich....)
</p>
</body>
</html></richcontent>
</node>
<node CREATED="1720221008511" ID="ID_1789484362" MODIFIED="1720221026822" TEXT="soll eine fluent-style-Aufrufkette erm&#xf6;glichen"/>
</node>
</node>
</node>
@ -82063,16 +82101,13 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</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>
<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>
</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"/>
@ -82094,9 +82129,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<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>
<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...
@ -82110,16 +82143,13 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<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>
<head/>
<body>
<p>
Leads (&#8793;Vorg&#228;nger-Nodes) werden nach Bedarf angelegt als <b>Level-3-Builder</b>
</p>
</body>
</html>
</richcontent>
</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">
@ -82135,30 +82165,24 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<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>
<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>
</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>
<head/>
<body>
<p>
sodann wird f&#252;r den Vorg&#228;nger ein <b>Level-2-Builder</b>&#160;erstellt
</p>
</body>
</html>
</richcontent>
</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"/>
@ -82167,16 +82191,13 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</node>
<node CREATED="1720044840263" ID="ID_1645055205" MODIFIED="1720050620489">
<richcontent TYPE="NODE"><html>
<head>
</head>
<head/>
<body>
<p>
tats&#228;chlich ist jede Port-Impl &#8793; Turnout ein <b>Level-1-Builder</b>
</p>
</body>
</html>
</richcontent>
</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"/>
@ -82192,16 +82213,13 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<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>
<head/>
<body>
<p>
<i>nichts davon</i>&#160;h&#228;ngt von Strukturen aus der Domain-Ontology ab
</p>
</body>
</html>
</richcontent>
</html></richcontent>
<icon BUILTIN="idea"/>
</node>
</node>
@ -82222,43 +82240,34 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<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>
<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>
</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>
<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>
</html></richcontent>
</node>
</node>
<node CREATED="1720053033526" ID="ID_799276435" MODIFIED="1720053088632">
<richcontent TYPE="NODE"><html>
<head>
</head>
<head/>
<body>
<p>
Konsequenz &#10233; der Aufruf der Level-2-Parametrisierung mu&#223; <b>in einem Callback passieren</b>
</p>
</body>
</html>
</richcontent>
</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">
@ -82280,29 +82289,23 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</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>
<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>
</html></richcontent>
</node>
<node CREATED="1720056867428" ID="ID_1405029324" MODIFIED="1720141199162">
<richcontent TYPE="NODE"><html>
<head>
</head>
<head/>
<body>
<p>
der Callback lautet: <font face="Monospaced" color="#980133">configureNode(builder)</font>
</p>
</body>
</html>
</richcontent>
</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...">
@ -82314,30 +82317,24 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</node>
<node CREATED="1720057139927" ID="ID_843581345" MODIFIED="1720057274218" TEXT="ggfs weitere Modus-Festlegungen (z.B. Caching, ....)">
<richcontent TYPE="NOTE"><html>
<head>
</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>
</html></richcontent>
</node>
</node>
<node CREATED="1720057313834" ID="ID_1434509987" MODIFIED="1720058376686">
<richcontent TYPE="NODE"><html>
<head>
</head>
<head/>
<body>
<p>
Alle diese Callbacks werden auf dem Interface <font face="Monospaced" color="#1e02c8">DomainFacade</font>&#160;gesammelt
</p>
</body>
</html>
</richcontent>
</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"/>
@ -82346,16 +82343,13 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<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>
<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>
</html></richcontent>
</node>
</node>
<node CREATED="1720058387040" ID="ID_841944627" MODIFIED="1720058413832" TEXT="dieses Interface wird eine offene heterogene Sammlung von Callbacks"/>
@ -86197,8 +86191,8 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<icon BUILTIN="flag-yellow"/>
<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="-1433;133;"/>
<linktarget COLOR="#ff2400" DESTINATION="ID_594112005" ENDARROW="Default" ENDINCLINATION="-136;-44;" ID="Arrow_ID_1657525718" SOURCE="ID_1706482104" STARTARROW="None" STARTINCLINATION="101;9;"/>
<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;"/>