Invocation: further considerations regarding diagnostics
Requirement analysis indicates that a »Node ID« is rather tangential to the core operation of calculating media; the only infliction point seems to be the generation of ''systematic cache keys.'' A spec — especially for the `Turnout` however is very relevant for diagnostics, error reporting and unit testing. So we are in the difficult situation where rather elaborate functionality is required only for a secondary concern, and moreover the node data structure imposes a critical memory leverage.
This commit is contained in:
parent
aab8278579
commit
96d30cb5e7
3 changed files with 351 additions and 43 deletions
|
|
@ -30,6 +30,9 @@
|
|||
** tweak of the edit. This marker was added as a preview in 2010
|
||||
** but we didn't get to the point of actually putting that idea
|
||||
** into practical use. Yet the basic idea remains desirable...
|
||||
** @deprecated 10/2024 seems very likely that similar functionality moves down
|
||||
** into the render-engine implementation and will no longer be considered
|
||||
** a constituent of the public interface.
|
||||
*/
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@
|
|||
|
||||
#include "lib/error.hpp"
|
||||
#include "lib/nocopy.hpp"
|
||||
#include "steam/common.hpp"
|
||||
#include "lib/hash-value.h"
|
||||
#include "steam/asset/proc.hpp"
|
||||
#include "steam/mobject/parameter.hpp"
|
||||
//#include "steam/engine/state-closure-obsolete.hpp" ///////////////////////////////////////////////////////TICKET #1367 : Rebuild the Node Invocation
|
||||
|
|
@ -56,6 +56,7 @@
|
|||
#include "lib/format-string.hpp"
|
||||
#include "lib/several.hpp"
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <optional>
|
||||
|
||||
|
|
@ -66,8 +67,10 @@ namespace engine {
|
|||
namespace err = lumiera::error;
|
||||
|
||||
using std::move;
|
||||
using std::string;
|
||||
using std::vector; //////////////TODO;
|
||||
using lumiera::NodeID;
|
||||
using lib::HashVal;
|
||||
using lumiera::NodeID; ///////////////////////TODO likely to be removed
|
||||
using util::_Fmt;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////////TICKET #1367 : Rebuild the Node Invocation
|
||||
|
|
@ -239,6 +242,30 @@ namespace engine {
|
|||
return 0 < ports().size();
|
||||
///////////////////////////////////////////////////TODO 10/2024 more to verify here
|
||||
}
|
||||
|
||||
string
|
||||
getNodeSpec()
|
||||
{
|
||||
UNIMPLEMENTED ("generate a descriptive Spec of this ProcNode for diagnostics");
|
||||
}
|
||||
|
||||
HashVal
|
||||
getNodeHash() ///< @todo not clear yet if this has to include predecessor info
|
||||
{
|
||||
UNIMPLEMENTED ("calculate an unique hash-key to designate this node");
|
||||
}
|
||||
|
||||
string
|
||||
getPortSpec (uint portIdx)
|
||||
{
|
||||
UNIMPLEMENTED ("generate a descriptive diagnostic Spec for the designated Turnout");
|
||||
}
|
||||
|
||||
HashVal
|
||||
getPortHash (uint portIdx)
|
||||
{
|
||||
UNIMPLEMENTED ("calculate an unique, stable and reproducible hash-key to identify the Turnout");
|
||||
}
|
||||
};
|
||||
|
||||
inline ProcNodeDiagnostic
|
||||
|
|
|
|||
|
|
@ -13430,9 +13430,7 @@
|
|||
<node CREATED="1519438604809" ID="ID_313142617" MODIFIED="1519438615852" TEXT="Lösevorgang muß den Ziel-Level kennen"/>
|
||||
<node CREATED="1519438617271" ID="ID_1310079168" MODIFIED="1519438673926">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
<i>fast immer</i> ist das aber UIC_VIEW
|
||||
|
|
@ -13440,9 +13438,7 @@
|
|||
</body>
|
||||
</html></richcontent>
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
im Moment fällt mir überhaupt keine Ausnahme ein
|
||||
|
|
@ -14642,9 +14638,7 @@
|
|||
<node CREATED="1529019931210" ID="ID_963819454" MODIFIED="1529065532532" TEXT="Variante-1 mit API-Erweiterung ist naheliegend"/>
|
||||
<node CREATED="1529019962989" ID="ID_1964052993" MODIFIED="1529065532532">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
die <b>verfickte</b> Performance wird ignoriert
|
||||
|
|
@ -16896,9 +16890,7 @@
|
|||
<node CREATED="1506956866802" ID="ID_652269096" MODIFIED="1557498707221" TEXT="Navigator">
|
||||
<node CREATED="1507935433543" ID="ID_239254800" MODIFIED="1557498707221">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
in <i>generischer UI-Struktur</i> bewegen
|
||||
|
|
@ -19987,9 +19979,7 @@
|
|||
<icon BUILTIN="button_cancel"/>
|
||||
<node CREATED="1661703686271" ID="ID_876601888" MODIFIED="1661704164479" TEXT="Länge und Fenster-Spec einheitlich in Pixeln">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
hierbei ist...
|
||||
|
|
@ -47934,9 +47924,7 @@
|
|||
<node CREATED="1472829929343" ID="ID_797835614" MODIFIED="1472829944881" TEXT="special handling for Ref::END / Ref::ATTRIBS"/>
|
||||
<node CREATED="1457231524839" ID="ID_1492447432" MODIFIED="1575133326760" TEXT="needs to establish responsible target beforehand">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
since, on interface level, we're pretending that this mutator <i>is a single collection like thing,</i>
|
||||
|
|
@ -48474,9 +48462,7 @@
|
|||
<node CREATED="1456424730022" ID="ID_282791744" MODIFIED="1456437520769" TEXT="hat also keinen Platz für explizite Eigenschaften"/>
|
||||
<node CREATED="1456424765113" ID="ID_1716539711" MODIFIED="1456437520770">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
und nur letztere sind <i>tangibel</i>
|
||||
|
|
@ -48933,9 +48919,7 @@
|
|||
<node CREATED="1475449530565" ID="ID_284330532" MODIFIED="1475449531825" TEXT="collection von MockElm"/>
|
||||
<node CREATED="1475449532556" ID="ID_1804332542" MODIFIED="1576282358008" TEXT="MockElm ist noncopyable">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...aus gutem Grund!
|
||||
|
|
@ -49186,9 +49170,7 @@
|
|||
<node CREATED="1492443656859" ID="ID_1242818576" MODIFIED="1492443663663" TEXT="Tangible / Bus-Term"/>
|
||||
<node CREATED="1492443664602" ID="ID_263362527" MODIFIED="1576282358006" TEXT="reine Command-ID">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Instanz-Management ist automatisch
|
||||
|
|
@ -49399,9 +49381,7 @@
|
|||
<node CREATED="1618497485166" ID="ID_595584701" MODIFIED="1618497505049" TEXT="Konsequenz: "Rückmeldung" steht neben "Feuern"">
|
||||
<node CREATED="1618497536204" ID="ID_1376398950" MODIFIED="1618497584286" TEXT="wird relevant wenn man Gesten wiederverwendet">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Also eine generische Implementierung einer Gesten-Erkennung (z.B. dragging), welche dann durch Parametrisierung eingebunden wird
|
||||
|
|
@ -91504,8 +91484,8 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1730427251935" ID="ID_162913631" MODIFIED="1730427287787" TEXT="sie muß im Turnout greifbar sein">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1730427274867" ID="ID_1511400718" MODIFIED="1730427287787" TEXT="also durch den WeavingBuilder durchlaufen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1730427274867" ID="ID_1511400718" MODIFIED="1730429566295" TEXT="also durch den WeavingBuilder durchlaufen">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -91586,6 +91566,284 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1730486371054" HGAP="24" ID="ID_939499486" MODIFIED="1730487590452" TEXT="Node-Metadaten" VSHIFT="7">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1730486406186" ID="ID_1910737579" MODIFIED="1730486466020" TEXT="Anforderungen sind derzeit prospektiv">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
<node CREATED="1730486495702" ID="ID_1565328459" MODIFIED="1730486630088" TEXT="es wird kein »Rückweg« benötigt">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
weder müssen wir nach derzeitigem Stand den Node-Datensatz anhand einer ID wiederfinden können, noch müssen wir von einer Node auf ihren Definitions-Kontext zurückschließen. Denn Nodes sind eine reine executiv-Repräsentation; sie werden durch Interpretation semantischer Attributierungen einmal erstellt, dann aber nur noch ausgeführt, und bei jeder Änderung verworfen und neu konstruiert
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
<icon BUILTIN="idea"/>
|
||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1730497384901" ID="ID_1576828702" MODIFIED="1730497393100" TEXT="wirklich nicht?">
|
||||
<font NAME="SansSerif" SIZE="10"/>
|
||||
<icon BUILTIN="help"/>
|
||||
<node COLOR="#611c6b" CREATED="1730497436551" ID="ID_115053935" MODIFIED="1730497502530" TEXT=" {ich kenn das}">
|
||||
<font NAME="SansSerif" SIZE="10"/>
|
||||
<icon BUILTIN="smiley-oh"/>
|
||||
</node>
|
||||
<node COLOR="#611c6b" CREATED="1730497472394" ID="ID_1802234089" MODIFIED="1730498938052" TEXT="am Beweisweg geht immer die ganze Eleganz zugrunde">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
So manches Verfahren der symbolischen Repräsentation erscheint zunächst unglaublich elegant und auch effizient; und wenn man es dann in die Praxis übernimmt, und das Verfahren nicht funktioniert, steht man vor einem unlösbaren Rätsel. Also muß der Weg der Lösungsfindung mit aufgezeichnet werden. Und das zerstört die gesamte Eleganz und ist oft aufwendiger, als die eigentliche Lösungsfindung.
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<font NAME="SansSerif" SIZE="10"/>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#435e98" CREATED="1730508983538" ID="ID_519915836" MODIFIED="1730509053273" TEXT="(potentieller Ausweg: errechnete ID + externer Lookup)">
|
||||
<arrowlink COLOR="#c7dcf5" DESTINATION="ID_423678075" ENDARROW="Default" ENDINCLINATION="461;-17;" ID="Arrow_ID_268382631" STARTARROW="None" STARTINCLINATION="409;26;"/>
|
||||
<font NAME="SansSerif" SIZE="9"/>
|
||||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1730486648779" ID="ID_518441567" MODIFIED="1730488192170" TEXT="gebraucht wird: ein stabiler und reproduzierbarer Cache-Key">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
soll sich <i>genau dann ändern, </i>wenn das Ergebnis aus User-Sicht abweichen wird
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1730497062384" ID="ID_1375039507" MODIFIED="1730497334994" TEXT="gebraucht wird: eine stabile und lesbare Notation für Test und Diagnose">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Das ist ein wichtiger <i>Neben-Nutzen;</i> jedoch ist zu beachten, daß dieser die Haupt-Berechnung nicht belastet, denn auf dem kritischen Pfad ist dieser Fall niemals relevant. Er wird aber sicher sehr bedeutsam sein für lesbare Diagnose-Meldungen, und auch für die wenigen aber wesentlichen Testfälle, welche den Aufbau und Zugang zur Datenstruktur der Render-Engine absichern.
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1721238837562" HGAP="14" ID="ID_286044031" MODIFIED="1730500771786" STYLE="bubble" TEXT="ungelöst: Fehler-Diagnose" VSHIFT="7">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Es handelt sich auch um eine <i>strategische Entscheidung,</i> welche Fehler man routinemäßig zu identifizieren hat. Das System ist entworfen unter der Grundannahme, daß der Builder bereits jedwede <i>Fehlkonfiguration</i>  und <i>Bereichsüberschreitung im Nutzen</i> erfaßt und unterbunden hat, so daß während der Render-Operation nur noch (erwartbare) Zeitüberschreitungen und (unerwartete) Systemfehler und Entgleisungen in externen Libraries passieren können. Es wird deshalb in der Node-Invocation <b>kein Fehlerausgang vorgesehen</b>. Sollte einer der unerwarteten Fehlerfälle noch überhaupt faßbar sein (und nicht unmittelbar zum Absturz führen), so kann von überall eine Exception augeworfen werden; Ressourcen-Lecks schätze ich für diesen Fall als nicht relevant ein, da aller Invocation-State ohnehin auf dem Stack liegt und Buffer durch Timeouts geschützt sind.
|
||||
</p>
|
||||
<p>
|
||||
Nun ist die Frage: <i>will man in einer solchen Situation mehr leisten als »Fehler in Render-Engine«?</i> Denn dann müßte Information über den direkten Invocation-Kontext mit aufgegriffen werden; und um diese Information überhaupt nutzen zu können, bedürfte es dann einer Rückübersetzung in Entitäten und Koordinaten des high-level-Models, um sinnvoll auf die Ursache schließen zu können. Alle mir bekannte Medien-Sofware leistet nicht diesen Grad der Fehlerdiagnose, vielmehr steht in einem solchen Fall der Benutzer allein da, und kann bestenfalls durch schrittweises Herantasten erraten, was das Problem verursacht hat. Insofern könnte man sich auf den Standpunkt stellen, daß Lumiera in dieser Hinsicht keine Probleme zu lösen hat, mit denen man in der Praxis auch anderweitig irgendwie überlebt...
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
<edge COLOR="#ff5d00" STYLE="sharp_linear"/>
|
||||
<arrowlink COLOR="#fe512a" DESTINATION="ID_190416286" ENDARROW="Default" ENDINCLINATION="1101;-48;" ID="Arrow_ID_304105897" STARTARROW="None" STARTINCLINATION="-848;70;"/>
|
||||
<icon BUILTIN="bell"/>
|
||||
<node CREATED="1721239003353" ID="ID_338638358" MODIFIED="1730499415537" STYLE="fork" TEXT="nicht klar wo Fehler zu erwarten sind">
|
||||
<font NAME="SansSerif" SIZE="8"/>
|
||||
</node>
|
||||
<node CREATED="1721239003353" ID="ID_72914856" MODIFIED="1730499435886" STYLE="fork" TEXT="brauche dann Fehlerkontext">
|
||||
<font NAME="SansSerif" SIZE="8"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1730487601562" ID="ID_1132202867" MODIFIED="1730487611994" TEXT="ID-Records">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node CREATED="1730487688726" ID="ID_355149059" MODIFIED="1730487823126" TEXT="Node ist markiert mit...">
|
||||
<linktarget COLOR="#708298" DESTINATION="ID_355149059" ENDARROW="Default" ENDINCLINATION="-295;886;" ID="Arrow_ID_1310337579" SOURCE="ID_1784608228" STARTARROW="None" STARTINCLINATION="655;34;"/>
|
||||
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1730487849688" ID="ID_775932850" MODIFIED="1730488237937" TEXT="...rein dem strukturellen Anteil">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
ohne Differenzierungen auf der Implementierungs-Ebene durch die Ports
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
<node CREATED="1730425782228" ID="ID_1450234865" MODIFIED="1730487914330" TEXT="das Node-Symbol">
|
||||
<node CREATED="1729985298574" ID="ID_800143497" MODIFIED="1730487940248" TEXT="trägt Marke der Domain-Ontology der sie entstammt"/>
|
||||
<node CREATED="1729985326069" ID="ID_1902375822" MODIFIED="1730488021011" TEXT="semantische ID des Proc-Asset">
|
||||
<arrowlink COLOR="#6f4685" DESTINATION="ID_169575397" ENDARROW="Default" ENDINCLINATION="-2831;-132;" ID="Arrow_ID_1200063463" STARTARROW="None" STARTINCLINATION="2248;201;"/>
|
||||
</node>
|
||||
<node CREATED="1730488027144" ID="ID_1272084848" MODIFIED="1730488095237">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Beispiel: <font face="Monospaced" color="#312341"><b>FFmpeg:gaussianBlur</b></font>
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1729985279723" ID="ID_151767070" MODIFIED="1730487909948" TEXT="die IDs der Vorläufer gehen (geeignet) mit ein" VSHIFT="7"/>
|
||||
</node>
|
||||
<node CREATED="1730488249706" ID="ID_459312416" MODIFIED="1730488264756" TEXT="jeder Turnout trägt...">
|
||||
<node CREATED="1730488278894" ID="ID_1176414993" MODIFIED="1730488284466" TEXT="einen Qualifier">
|
||||
<node CREATED="1730488434602" ID="ID_598589955" MODIFIED="1730489528721" TEXT="möglicherweise eine Implementierungs-Variante">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
hier ist zu markieren, falls der Builder oder die Domain-Ontology konkret einen Entscheidungsspielraum in einem Fall so und in einem anderen Fall so nutzt, also z.B. eine spezielle Parametrisierung des Algorithmus, die vom Default abweicht. Wenn dagegen der Algorithmus selber sich inkompatibel geändert hat, so wird das bereits n der ID des Proc-Asset durch ein Postfix .v# markiert
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</node>
|
||||
<node CREATED="1730489531517" ID="ID_79138326" MODIFIED="1730489559877" TEXT="zwei Argumentlisten">
|
||||
<node CREATED="1730489570559" ID="ID_754446693" MODIFIED="1730489575443" TEXT="Liste der Inputs"/>
|
||||
<node CREATED="1730489583238" ID="ID_376021595" MODIFIED="1730489588061" TEXT="Liste der Outputs"/>
|
||||
</node>
|
||||
<node CREATED="1730489713853" ID="ID_1298630940" MODIFIED="1730489725087" TEXT="jeweils ein Symbol der Streamtype-Impl"/>
|
||||
<node CREATED="1730496593431" ID="ID_673973407" MODIFIED="1730496823747" TEXT="abkürzende Notation: /n">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
denn in den allermeisten Fällen dürfte es entweder ein Feed sein, oder N gleiche Feeds
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1730508308461" ID="ID_1597023280" MODIFIED="1730508446212" TEXT="diese Informationen werden von Level-3 durchgereicht">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
Level-3 ist der Builder, der über die tatsächlich zu legenden Verbindungen entscheidet; dafür benötigt er noch die StreamType-Information, wohingegen Level-2 Verbindungen und Typinformationen ungeprüft anwendet. Daher muß zwangsläufig dieser gesamte Qualifier mit den Argumentslisten auf einem höheren Level im Builder etabliert werden.
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1730508458928" ID="ID_363497720" MODIFIED="1730508500047" TEXT="zumindest in den Hash-Key müssen auch die Verbindungen zu Vorläufer-Turnouts mit eingehen"/>
|
||||
</node>
|
||||
<node CREATED="1730508506074" ID="ID_1419195116" MODIFIED="1730509223073" TEXT="die textuelle ID muß vor allem lesbar sein, nicht jedoch methodisch erschöpfend">
|
||||
<icon BUILTIN="yes"/>
|
||||
<node CREATED="1730509107066" ID="ID_420859931" MODIFIED="1730509126872" TEXT="die Repräsentation kann abkürzen, solange sie verständlich bleibt"/>
|
||||
<node CREATED="1730509088580" ID="ID_1799612340" MODIFIED="1730509199183" TEXT="für die Vorläufer ist eine Quell-Angabe wichtiger als die nächste Node-ID">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
bedeutet, es braucht einen Zugriff auf die ID der Medien-Datenquelle, und diese wird zur Kennzeichnung des Eingangs-Feeds verwendet, und nicht rekursiv die vorläufer-Node-ID
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1730508536555" ID="ID_469682313" MODIFIED="1730509371345" TEXT="Konsequenz: der Hash-Key wird durch ein separates System von Funktionsaufrufen aufgebaut">
|
||||
<icon BUILTIN="forward"/>
|
||||
<node CREATED="1730508587544" ID="ID_593550351" MODIFIED="1730508602529" TEXT="also nicht einfach durch Hashen des textuellen Deskriptors"/>
|
||||
<node CREATED="1730508607236" ID="ID_1328970726" MODIFIED="1730508628046" TEXT="sondern mehr in der Art wie ein Merkle-Tree — also vollständig ausschößfend"/>
|
||||
<node CREATED="1730508643370" ID="ID_1780989185" MODIFIED="1730508722103" TEXT="hier muß auch eine Komponente zur Invocation-Zeit mit eingespeist werden (Automation)">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
zwar könnte man bereits im Builder festlegen, daß eine solche Komponente dazukommt; jedoch ist erst zum Zeitpunkt der konkreten Invocation klar, welche dynamischen Parameterwerte sich ergeben und noch in die Medien-Berechnung einfließen
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1730508735166" ID="ID_1955634373" MODIFIED="1730509071058" TEXT="generell: auf ein Getter-API setzen">
|
||||
<icon BUILTIN="yes"/>
|
||||
<node CREATED="1730508758773" ID="ID_1040159044" MODIFIED="1730508787495" TEXT="bedeutet: komplett abstrahieren von der Berechnung und Storage"/>
|
||||
<node CREATED="1730508788860" ID="ID_423678075" MODIFIED="1730509061121" TEXT="vermutlich wird das später sogar komplett von den Daten im Node-Graphen getrennt">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...will sagen, diese Funktionen interpretieren dann zwar noch die Connectivity-Information, verwenden aber für alle tatsächlich zu inkorporierenden Texte eine externe Symbol-Tabelle, allein schon zur Deduplikation. Das bedeutet aber im Umkehrschluß: hier haben wir doch einen »Rückwärts-Zugriff« (auch wenn er funktional realisiert werden kann, indem eine Node-ID reproduzierbar aus der Connectivity errechnet wird)
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
<linktarget COLOR="#c7dcf5" DESTINATION="ID_423678075" ENDARROW="Default" ENDINCLINATION="461;-17;" ID="Arrow_ID_268382631" SOURCE="ID_519915836" STARTARROW="None" STARTINCLINATION="409;26;"/>
|
||||
<icon BUILTIN="idea"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1730510962225" ID="ID_786613770" MODIFIED="1730510979532" TEXT="API für Metadaten-Zugriff">
|
||||
<icon BUILTIN="help"/>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1730510982342" ID="ID_310976542" MODIFIED="1730510998830" TEXT="Struktur/Modell">
|
||||
<icon BUILTIN="info"/>
|
||||
<node CREATED="1730511009387" ID="ID_420452584" MODIFIED="1730511031996" TEXT="mögliche Ansätze....">
|
||||
<node CREATED="1730511036658" ID="ID_1206895083" MODIFIED="1730511110408" TEXT="auf ProcNode und auf Port-API">
|
||||
<node CREATED="1730511095080" ID="ID_1789033207" MODIFIED="1730511142614" TEXT="KISS / least surprise">
|
||||
<icon BUILTIN="ksmiletris"/>
|
||||
</node>
|
||||
<node CREATED="1730511161751" ID="ID_315063699" MODIFIED="1730511173092" TEXT="wird dann aber auch Core-Functionality">
|
||||
<icon BUILTIN="smily_bad"/>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1730511017635" ID="ID_20423235" MODIFIED="1730511123004" TEXT="Accessoren auf dem ProcNode-API"/>
|
||||
<node CREATED="1730511048472" ID="ID_368093003" MODIFIED="1730511057625" TEXT="in separate Klasse NodeID"/>
|
||||
<node CREATED="1730511058973" ID="ID_237133439" MODIFIED="1730511312538" TEXT="nur Accessoren auf ProcNodeDiagnostic">
|
||||
<icon BUILTIN="forward"/>
|
||||
<node CREATED="1730511184252" ID="ID_605811898" MODIFIED="1730511206175" TEXT="somit klar als Neben-Belang gekennzeichnet">
|
||||
<icon BUILTIN="ksmiletris"/>
|
||||
</node>
|
||||
<node CREATED="1730511246071" ID="ID_28190802" MODIFIED="1730511261741" TEXT="ProcNode - API wird dadurch immer gehaltloser">
|
||||
<icon BUILTIN="smily_bad"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1730511277272" ID="ID_602420607" MODIFIED="1730511309290" TEXT="zunächst der defensive Ansatz">
|
||||
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1730486716299" ID="ID_95149323" MODIFIED="1730486959772" STYLE="fork" TEXT="Storage bedarf gesondert der Betrachtung">
|
||||
<edge COLOR="#808080" STYLE="bezier" WIDTH="thin"/>
|
||||
<linktarget COLOR="#d64274" DESTINATION="ID_95149323" ENDARROW="Default" ENDINCLINATION="-487;32;" ID="Arrow_ID_78196027" SOURCE="ID_1171232335" STARTARROW="None" STARTINCLINATION="92;6;"/>
|
||||
<icon BUILTIN="clanbomber"/>
|
||||
<node CREATED="1730486972976" ID="ID_1075439785" MODIFIED="1730486996671" TEXT="in einem ersten Schritt die benötigte Datenverknüpfung aufbauen"/>
|
||||
<node CREATED="1730486997604" ID="ID_703193526" MODIFIED="1730487030882" TEXT="dann vom tatsächlichen Nutzen her konsolidieren"/>
|
||||
<node CREATED="1730487435274" ID="ID_829418674" MODIFIED="1730487557981" TEXT="komplexe zentrale Registry zur Deduplikation">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
....die Vorraussetzungen hierfür sind gut, da der einzige Zugang über eine zentrale Builder-Schnittstelle erfolgt; dennoch wird ein solches Schema komplex, bedingt durch die Verteilung von Logik auf die verschiedenen Media-processing-Library-Plug-ins
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1721238837562" HGAP="132" ID="ID_1159160517" MODIFIED="1730500824387" STYLE="bubble" VSHIFT="44">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
gefährlicher Hebel durch potentiell
|
||||
</p>
|
||||
<p>
|
||||
sehr große Anzahl an Nodes
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<edge COLOR="#ff5d00" STYLE="sharp_linear"/>
|
||||
<arrowlink COLOR="#fe512a" DESTINATION="ID_635840106" ENDARROW="Default" ENDINCLINATION="1101;-48;" ID="Arrow_ID_902176330" STARTARROW="None" STARTINCLINATION="-772;102;"/>
|
||||
<icon BUILTIN="bell"/>
|
||||
<node COLOR="#b10061" CREATED="1721239003353" HGAP="33" ID="ID_1810704483" MODIFIED="1730487399098" STYLE="fork" TEXT="Verschwendung zunächst notwendig zum Etablieren der Anforderungen" VSHIFT="30">
|
||||
<font NAME="SansSerif" SIZE="8"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1721057100380" ID="ID_1203624262" MODIFIED="1721057258792" TEXT="globaler Anker notwendig">
|
||||
<linktarget COLOR="#741b46" DESTINATION="ID_1203624262" ENDARROW="Default" ENDINCLINATION="387;-47;" ID="Arrow_ID_1836206594" SOURCE="ID_409561952" STARTARROW="None" STARTINCLINATION="-442;32;"/>
|
||||
<icon BUILTIN="yes"/>
|
||||
|
|
@ -91751,8 +92009,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
...im Grunde ist die Identität zunächst einmal, daß es die Node gibt, daß sie an einer Speicheradresse sitzt; im aktuellen Design ist es jedoch nicht notwendig, die Node anhand der Identität finden zu können, denn man findet sie über die Verschaltung auf eine Exit-Node
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1730424347235" ID="ID_1202389221" MODIFIED="1730424362860" TEXT="aber die Identität muß stabil und reproduzierbar sein">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
|
|
@ -91774,8 +92031,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
Rein technische Informationen wären z.B. ein Funktions-Symbol im Executable oder Quellcode oder eine Parametersignatur; von solchen Daten kommt man niemals direkt zu einem Urteil "äquivalent für den User"
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</html></richcontent>
|
||||
</node>
|
||||
<node CREATED="1730425268920" ID="ID_909157635" MODIFIED="1730425292593" TEXT="es muß der Stream-Implementation-Type für jeden Input und Output eingehen"/>
|
||||
<node CREATED="1730425303443" ID="ID_1906269130" MODIFIED="1730426066823" TEXT="diese Infos stammen sogar aus einem höheren Builder-Level">
|
||||
|
|
@ -91817,7 +92073,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node CREATED="1729985123726" ID="ID_1784608228" MODIFIED="1729985265663" TEXT="die Node selber trägt nur den reinen Struktur-Anteil bei">
|
||||
<node CREATED="1729985123726" ID="ID_1784608228" MODIFIED="1730487828815" TEXT="die Node selber trägt nur den reinen Struktur-Anteil bei">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
|
|
@ -91826,7 +92082,8 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<node CREATED="1729985279723" ID="ID_1289414475" MODIFIED="1729985284963" TEXT="ihre Vorläufer"/>
|
||||
<arrowlink COLOR="#708298" DESTINATION="ID_355149059" ENDARROW="Default" ENDINCLINATION="-295;886;" ID="Arrow_ID_1310337579" STARTARROW="None" STARTINCLINATION="655;34;"/>
|
||||
<node CREATED="1729985279723" ID="ID_1289414475" MODIFIED="1729985284963" TEXT="ihre Vorläufer" VSHIFT="7"/>
|
||||
<node CREATED="1730425782228" ID="ID_1571203922" MODIFIED="1730425787280" TEXT="das Node-Symbol">
|
||||
<node CREATED="1729985298574" ID="ID_374581825" MODIFIED="1729985319433" TEXT="der Kontext (Domain-Ontology) der sie gebaut hat"/>
|
||||
<node CREATED="1729985326069" ID="ID_277740057" MODIFIED="1729986093675" TEXT="eine (stabile, generische) ID des Proc-Asset, welches sie implementiert">
|
||||
|
|
@ -91837,8 +92094,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
hier darf kein logischer Zirkel entstehen! Man könnte nämlich auf die Idee kommen, das Proc-Asset durch seine Implementierung zu klassifizieren, aber das <b>wollen wir nicht</b>. Vielmehr brauchen wir hier ein semantisches Konzept, wie z.B. »gaussian blur«. Das bedeutet, diese Basis-IDs müssen vom Library Plug-in belegt werden, und sollen langfristig stabil bleiben (solange der in der LIbrary gebotene Implementierungs-Algorithmus kompatibel bleibt und auf Sicht äquivalente Ergebnisse liefert)
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</html></richcontent>
|
||||
<arrowlink COLOR="#6f4685" DESTINATION="ID_169575397" ENDARROW="Default" ENDINCLINATION="-2831;-132;" ID="Arrow_ID_1915206342" STARTARROW="None" STARTINCLINATION="2041;85;"/>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -91858,6 +92114,19 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<arrowlink COLOR="#5e5572" DESTINATION="ID_1032840307" ENDARROW="Default" ENDINCLINATION="-1323;101;" ID="Arrow_ID_1310977916" STARTARROW="Default" STARTINCLINATION="1366;-77;"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#f8f1cb" COLOR="#a50125" CREATED="1730486127302" ID="ID_1171232335" MODIFIED="1730486959772" TEXT="Storage könnte problematisch werden....">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
wenn wir für jede Node wieder eine texturelle ID speichern, oder auch nur mehrere Hash-Komponenten, wäre der Hebel gewaltig — irgendwo muß dedupliziert werden....
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
<arrowlink COLOR="#d64274" DESTINATION="ID_95149323" ENDARROW="Default" ENDINCLINATION="-487;32;" ID="Arrow_ID_78196027" STARTARROW="None" STARTINCLINATION="92;6;"/>
|
||||
<icon BUILTIN="clanbomber"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1719186096499" ID="ID_1104635186" MODIFIED="1719186122029" TEXT="Diagnose-Setup">
|
||||
|
|
@ -92013,10 +92282,18 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node BACKGROUND_COLOR="#e2caa2" COLOR="#990000" CREATED="1729956600896" ID="ID_1377083965" MODIFIED="1729956915005" STYLE="fork" TEXT="Einsichten">
|
||||
<edge COLOR="#b14253" STYLE="sharp_linear"/>
|
||||
<icon BUILTIN="edit"/>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1721238814245" ID="ID_190416286" MODIFIED="1730500771786" TEXT="Aufgabe: Infrastruktur für Fehlerbehandlung und Diagnose">
|
||||
<linktarget COLOR="#fe512a" DESTINATION="ID_190416286" ENDARROW="Default" ENDINCLINATION="1101;-48;" ID="Arrow_ID_304105897" SOURCE="ID_286044031" STARTARROW="None" STARTINCLINATION="-848;70;"/>
|
||||
<icon BUILTIN="bell"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#e2caa2" COLOR="#990000" CREATED="1729956600896" ID="ID_988254887" MODIFIED="1729956915005" STYLE="fork" TEXT="Probleme">
|
||||
<edge COLOR="#b14253" STYLE="sharp_linear"/>
|
||||
<icon BUILTIN="edit"/>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1721238814245" ID="ID_635840106" MODIFIED="1730487294905" TEXT="Problem: Hebel durch Node-Storage">
|
||||
<linktarget COLOR="#fe512a" DESTINATION="ID_635840106" ENDARROW="Default" ENDINCLINATION="1101;-48;" ID="Arrow_ID_902176330" SOURCE="ID_1159160517" STARTARROW="None" STARTINCLINATION="-772;102;"/>
|
||||
<icon BUILTIN="bell"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#e2caa2" COLOR="#990000" CREATED="1729956600896" ID="ID_1648467568" MODIFIED="1729956915005" STYLE="fork" TEXT="Ergebnis">
|
||||
<edge COLOR="#b14253" STYLE="sharp_linear"/>
|
||||
|
|
@ -132920,8 +133197,9 @@ std::cout << tmpl.render({"what", "World"}) << s
|
|||
<node CREATED="1729985714881" ID="ID_1202023711" MODIFIED="1729985725019" TEXT="Adapter-Plug-in für jede Library notwendig">
|
||||
<node CREATED="1729985728046" ID="ID_736735373" MODIFIED="1729985734050" TEXT="Aufgaben / Anforderung">
|
||||
<node CREATED="1729985738500" ID="ID_1413374424" MODIFIED="1729985758687" TEXT="schafft eine abstrakte kohärente Sicht auf die Library (als »Domain-Ontology«)"/>
|
||||
<node CREATED="1729985648880" ID="ID_169575397" MODIFIED="1729986093676" TEXT="die Library muß semantische IDs für die gebotenen Operationen belegen">
|
||||
<node CREATED="1729985648880" ID="ID_169575397" MODIFIED="1730488021011" TEXT="die Library muß semantische IDs für die gebotenen Operationen belegen">
|
||||
<linktarget COLOR="#6f4685" DESTINATION="ID_169575397" ENDARROW="Default" ENDINCLINATION="-2831;-132;" ID="Arrow_ID_1915206342" SOURCE="ID_277740057" STARTARROW="None" STARTINCLINATION="2041;85;"/>
|
||||
<linktarget COLOR="#6f4685" DESTINATION="ID_169575397" ENDARROW="Default" ENDINCLINATION="-2831;-132;" ID="Arrow_ID_1200063463" SOURCE="ID_1902375822" STARTARROW="None" STARTINCLINATION="2248;201;"/>
|
||||
<icon BUILTIN="yes"/>
|
||||
<node CREATED="1729985837696" ID="ID_356361059" MODIFIED="1729986052288" TEXT="Eindeutiger Namen aus Sicht des Benutzers">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
|
|
|
|||
Loading…
Reference in a new issue