knex/docs/presentation/media/C4-datafactory.svg

4 lines
24 KiB
XML
Raw Permalink Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

<?xml version="1.0" encoding="UTF-8"?>
<!-- Do not edit this file with editors other than draw.io -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" style="background: red;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1111px" height="302px" viewBox="-0.5 -0.5 1111 302" content="&lt;mxfile host=&quot;app.diagrams.net&quot; agent=&quot;Mozilla/5.0 (X11; Linux x86_64; rv:133.0) Gecko/20100101 Firefox/133.0&quot; version=&quot;26.0.3&quot; scale=&quot;1&quot; border=&quot;0&quot;&gt;&#xA; &lt;diagram name=&quot;Seite-1&quot; id=&quot;ljChsmJM2yhbDvJUc1mK&quot;&gt;&#xA; &lt;mxGraphModel dx=&quot;2406&quot; dy=&quot;1975&quot; grid=&quot;1&quot; gridSize=&quot;10&quot; guides=&quot;1&quot; tooltips=&quot;1&quot; connect=&quot;1&quot; arrows=&quot;1&quot; fold=&quot;1&quot; page=&quot;1&quot; pageScale=&quot;1&quot; pageWidth=&quot;827&quot; pageHeight=&quot;1169&quot; math=&quot;0&quot; shadow=&quot;0&quot;&gt;&#xA; &lt;root&gt;&#xA; &lt;mxCell id=&quot;0&quot; /&gt;&#xA; &lt;mxCell id=&quot;1&quot; parent=&quot;0&quot; /&gt;&#xA; &lt;object placeholders=&quot;1&quot; c4Name=&quot;Data-Factory&quot; c4Type=&quot;SystemScopeBoundary&quot; c4Application=&quot;Software System&quot; label=&quot;&amp;lt;font style=&amp;quot;font-size: 16px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;&amp;lt;div style=&amp;quot;text-align: left&amp;quot;&amp;gt;%c4Name%&amp;lt;/div&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;div style=&amp;quot;text-align: left&amp;quot;&amp;gt;[%c4Application%]&amp;lt;/div&amp;gt;&quot; id=&quot;2&quot;&gt;&#xA; &lt;mxCell style=&quot;rounded=1;fontSize=11;whiteSpace=wrap;html=1;dashed=1;arcSize=20;fillColor=none;strokeColor=#666666;fontColor=#333333;labelBackgroundColor=none;align=left;verticalAlign=bottom;labelBorderColor=none;spacingTop=0;spacing=10;dashPattern=8 4;metaEdit=1;rotatable=0;perimeter=rectanglePerimeter;noLabel=0;labelPadding=0;allowArrows=0;connectable=0;expand=0;recursiveResize=0;editable=1;pointerEvents=0;absoluteArcSize=1;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;40&quot; y=&quot;880&quot; width=&quot;840&quot; height=&quot;300&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;/object&gt;&#xA; &lt;object placeholders=&quot;1&quot; c4Name=&quot;RDBMS&quot; c4Type=&quot;Container&quot; c4Technology=&quot;DuckDB&quot; c4Description=&quot;Speicher für aggregierte Daten.&quot; label=&quot;&amp;lt;font style=&amp;quot;font-size: 16px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;%c4Name%&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;div&amp;gt;[%c4Type%:&amp;amp;nbsp;%c4Technology%]&amp;lt;/div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div&amp;gt;&amp;lt;font style=&amp;quot;font-size: 11px&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#FFF&amp;quot;&amp;gt;%c4Description%&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&quot; id=&quot;3&quot;&gt;&#xA; &lt;mxCell style=&quot;shape=cylinder3;size=15;whiteSpace=wrap;html=1;boundedLbl=1;rounded=0;labelBackgroundColor=none;fillColor=#23A2D9;fontSize=12;fontColor=#ffffff;align=center;strokeColor=#0E7DAD;metaEdit=1;points=[[0.5,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.5,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];resizable=0;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;60&quot; y=&quot;970&quot; width=&quot;240&quot; height=&quot;120&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;/object&gt;&#xA; &lt;mxCell id=&quot;4&quot; style=&quot;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;dashed=1;dashPattern=12 12;entryX=1;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;&quot; edge=&quot;1&quot; source=&quot;5&quot; target=&quot;3&quot; parent=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;object placeholders=&quot;1&quot; c4Name=&quot;sling.py&quot; c4Type=&quot;Container&quot; c4Technology=&quot;Sling&quot; c4Description=&quot;Datenformatmigration (CSV zu DuckDB).&quot; label=&quot;&amp;lt;font style=&amp;quot;font-size: 16px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;%c4Name%&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;div&amp;gt;[%c4Type%: %c4Technology%]&amp;lt;/div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div&amp;gt;&amp;lt;font style=&amp;quot;font-size: 11px&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#E6E6E6&amp;quot;&amp;gt;%c4Description%&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&quot; id=&quot;5&quot;&gt;&#xA; &lt;mxCell style=&quot;rounded=1;whiteSpace=wrap;html=1;fontSize=11;labelBackgroundColor=none;fillColor=#23A2D9;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#0E7DAD;metaEdit=1;resizable=0;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;360&quot; y=&quot;900&quot; width=&quot;240&quot; height=&quot;120&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;/object&gt;&#xA; &lt;mxCell id=&quot;6&quot; style=&quot;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;dashed=1;dashPattern=12 12;&quot; edge=&quot;1&quot; source=&quot;7&quot; target=&quot;10&quot; parent=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;object placeholders=&quot;1&quot; c4Name=&quot;scraper.py&quot; c4Type=&quot;Container&quot; c4Technology=&quot;Python (Polars, BeautifoulSoup)&quot; c4Description=&quot;Web Scraping Relationen von Deskriptoren.&quot; label=&quot;&amp;lt;font style=&amp;quot;font-size: 16px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;%c4Name%&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;div&amp;gt;[%c4Type%: %c4Technology%]&amp;lt;/div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div&amp;gt;&amp;lt;font style=&amp;quot;font-size: 11px&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#E6E6E6&amp;quot;&amp;gt;%c4Description%&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&quot; id=&quot;7&quot;&gt;&#xA; &lt;mxCell style=&quot;rounded=1;whiteSpace=wrap;html=1;fontSize=11;labelBackgroundColor=none;fillColor=#23A2D9;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#0E7DAD;metaEdit=1;resizable=0;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;620&quot; y=&quot;900&quot; width=&quot;240&quot; height=&quot;120&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;/object&gt;&#xA; &lt;object placeholders=&quot;1&quot; c4Name=&quot;converter.py&quot; c4Type=&quot;Container&quot; c4Technology=&quot;Python (Polars, RDFLib)&quot; c4Description=&quot;Konvertiert aggregierte Daten&amp;lt;br&amp;gt; in RDF-Datensatz.&quot; label=&quot;&amp;lt;font style=&amp;quot;font-size: 16px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;%c4Name%&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;div&amp;gt;[%c4Type%: %c4Technology%]&amp;lt;/div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div&amp;gt;&amp;lt;font style=&amp;quot;font-size: 11px&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#E6E6E6&amp;quot;&amp;gt;%c4Description%&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&quot; id=&quot;8&quot;&gt;&#xA; &lt;mxCell style=&quot;rounded=1;whiteSpace=wrap;html=1;fontSize=11;labelBackgroundColor=none;fillColor=#23A2D9;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#0E7DAD;metaEdit=1;resizable=0;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;360&quot; y=&quot;1040&quot; width=&quot;240&quot; height=&quot;120&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;/object&gt;&#xA; &lt;object placeholders=&quot;1&quot; c4Name=&quot;reasoner.py&quot; c4Type=&quot;Container&quot; c4Technology=&quot;Python (OWL-RL)&quot; c4Description=&quot;Inferenzbildung&quot; label=&quot;&amp;lt;font style=&amp;quot;font-size: 16px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;%c4Name%&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;div&amp;gt;[%c4Type%: %c4Technology%]&amp;lt;/div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div&amp;gt;&amp;lt;font style=&amp;quot;font-size: 11px&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#E6E6E6&amp;quot;&amp;gt;%c4Description%&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&quot; id=&quot;9&quot;&gt;&#xA; &lt;mxCell style=&quot;rounded=1;whiteSpace=wrap;html=1;fontSize=11;labelBackgroundColor=none;fillColor=#23A2D9;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#0E7DAD;metaEdit=1;resizable=0;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;620&quot; y=&quot;1040&quot; width=&quot;240&quot; height=&quot;120&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;/object&gt;&#xA; &lt;object placeholders=&quot;1&quot; c4Name=&quot;Archivkatalog BBB&quot; c4Type=&quot;Webseite&quot; c4Description=&quot;Online-Archivkatalog der Burgerbibliothek Bern.&quot; label=&quot;&amp;lt;font style=&amp;quot;font-size: 16px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;%c4Name%&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;div&amp;gt;[%c4Type%]&amp;lt;/div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;div&amp;gt;&amp;lt;font style=&amp;quot;font-size: 11px&amp;quot;&amp;gt;&amp;lt;font color=&amp;quot;#cccccc&amp;quot;&amp;gt;%c4Description%&amp;lt;/font&amp;gt;&amp;lt;/div&amp;gt;&quot; id=&quot;10&quot;&gt;&#xA; &lt;mxCell style=&quot;rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#8C8496;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#736782;metaEdit=1;resizable=0;points=[[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0.25,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0],[0,0.25,0]];&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;910&quot; y=&quot;900&quot; width=&quot;240&quot; height=&quot;120&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;/object&gt;&#xA; &lt;mxCell id=&quot;11&quot; style=&quot;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;dashed=1;dashPattern=12 12;&quot; edge=&quot;1&quot; source=&quot;3&quot; target=&quot;8&quot; parent=&quot;1&quot;&gt;&#xA; &lt;mxGeometry relative=&quot;1&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;/root&gt;&#xA; &lt;/mxGraphModel&gt;&#xA; &lt;/diagram&gt;&#xA;&lt;/mxfile&gt;&#xA;"><defs/><rect fill="#ffffff" style="fill: light-dark(#ffffff, var(--ge-dark-color, #121212));" width="100%" height="100%" x="0" y="0"/><g><g data-cell-id="0"><g data-cell-id="1"><g data-cell-id="TKOOJ7FrXuCLbUddgnAH-12"/><g data-cell-id="TKOOJ7FrXuCLbUddgnAH-1"/><g data-cell-id="TKOOJ7FrXuCLbUddgnAH-3"/><g data-cell-id="TKOOJ7FrXuCLbUddgnAH-5"/><g data-cell-id="TKOOJ7FrXuCLbUddgnAH-7"><g data-cell-id="TKOOJ7FrXuCLbUddgnAH-9"/></g><g data-cell-id="TKOOJ7FrXuCLbUddgnAH-10"><g data-cell-id="TKOOJ7FrXuCLbUddgnAH-14"/></g><g data-cell-id="TKOOJ7FrXuCLbUddgnAH-6"/><g data-cell-id="TKOOJ7FrXuCLbUddgnAH-11"/><g data-cell-id="TKOOJ7FrXuCLbUddgnAH-13"/><g data-cell-id="TKOOJ7FrXuCLbUddgnAH-15"><g><rect x="0" y="0" width="840" height="300" rx="10" ry="10" fill="none" stroke="#666666" style="stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));" stroke-dasharray="8 4" pointer-events="none"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe flex-start; width: 822px; height: 1px; padding-top: 289px; margin-left: 10px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #333333; "><div style="display: inline-block; font-size: 11px; font-family: &quot;Helvetica&quot;; color: light-dark(#333333, #c1c1c1); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px"><b><div style="text-align: left">Data-Factory</div></b></font><div style="text-align: left">[Software System]</div></div></div></div></foreignObject><text x="10" y="289" fill="#333333" font-family="&quot;Helvetica&quot;" font-size="11px">Data-Factory...</text></switch></g></g></g><g data-cell-id="TKOOJ7FrXuCLbUddgnAH-17"><g><path d="M 20 105 C 20 96.72 73.73 90 140 90 C 171.83 90 202.35 91.58 224.85 94.39 C 247.36 97.21 260 101.02 260 105 L 260 195 C 260 203.28 206.27 210 140 210 C 73.73 210 20 203.28 20 195 Z" fill="#23a2d9" style="fill: light-dark(rgb(35, 162, 217), rgb(29, 138, 185)); stroke: light-dark(rgb(14, 125, 173), rgb(69, 164, 206));" stroke="#0e7dad" stroke-miterlimit="10" pointer-events="all"/><path d="M 260 105 C 260 113.28 206.27 120 140 120 C 73.73 120 20 113.28 20 105" fill="none" stroke="#0e7dad" style="stroke: light-dark(rgb(14, 125, 173), rgb(69, 164, 206));" stroke-miterlimit="10" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 238px; height: 1px; padding-top: 163px; margin-left: 21px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px"><b>RDBMS</b></font><div>[Container: DuckDB]</div><br /><div><font style="font-size: 11px"><font color="#FFF" style="color: light-dark(rgb(255, 255, 255), rgb(0, 0, 0));">Speicher für aggregierte Daten.</font></font></div></div></div></div></foreignObject><text x="140" y="166" fill="#ffffff" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">RDBMS...</text></switch></g></g></g><g data-cell-id="TKOOJ7FrXuCLbUddgnAH-24"><g><path d="M 320 80 L 264.14 145.17" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" stroke-dasharray="12 12" pointer-events="stroke"/><path d="M 260.73 149.15 L 262.63 141.56 L 264.14 145.17 L 267.94 146.11 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="TKOOJ7FrXuCLbUddgnAH-18"><g><rect x="320" y="20" width="240" height="120" rx="12" ry="12" fill="#23a2d9" style="fill: light-dark(rgb(35, 162, 217), rgb(29, 138, 185)); stroke: light-dark(rgb(14, 125, 173), rgb(69, 164, 206));" stroke="#0e7dad" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 238px; height: 1px; padding-top: 80px; margin-left: 321px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 11px; font-family: &quot;Helvetica&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px"><b>sling.py</b></font><div>[Container: Sling]</div><br /><div><font style="font-size: 11px"><font color="#E6E6E6" style="color: light-dark(rgb(230, 230, 230), rgb(39, 39, 39));">Datenformatmigration (CSV zu DuckDB).</font></font></div></div></div></div></foreignObject><text x="440" y="83" fill="#ffffff" font-family="&quot;Helvetica&quot;" font-size="11px" text-anchor="middle">sling.py...</text></switch></g></g></g><g data-cell-id="TKOOJ7FrXuCLbUddgnAH-23"><g><path d="M 820 80 L 863.63 80" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" stroke-dasharray="12 12" pointer-events="stroke"/><path d="M 868.88 80 L 861.88 83.5 L 863.63 80 L 861.88 76.5 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g><g data-cell-id="TKOOJ7FrXuCLbUddgnAH-19"><g><rect x="580" y="20" width="240" height="120" rx="12" ry="12" fill="#23a2d9" style="fill: light-dark(rgb(35, 162, 217), rgb(29, 138, 185)); stroke: light-dark(rgb(14, 125, 173), rgb(69, 164, 206));" stroke="#0e7dad" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 238px; height: 1px; padding-top: 80px; margin-left: 581px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 11px; font-family: &quot;Helvetica&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px"><b>scraper.py</b></font><div>[Container: Python (Polars, BeautifoulSoup)]</div><br /><div><font style="font-size: 11px"><font color="#E6E6E6" style="color: light-dark(rgb(230, 230, 230), rgb(39, 39, 39));">Web Scraping Relationen von Deskriptoren.</font></font></div></div></div></div></foreignObject><text x="700" y="83" fill="#ffffff" font-family="&quot;Helvetica&quot;" font-size="11px" text-anchor="middle">scraper.py...</text></switch></g></g></g><g data-cell-id="TKOOJ7FrXuCLbUddgnAH-20"><g><rect x="320" y="160" width="240" height="120" rx="12" ry="12" fill="#23a2d9" style="fill: light-dark(rgb(35, 162, 217), rgb(29, 138, 185)); stroke: light-dark(rgb(14, 125, 173), rgb(69, 164, 206));" stroke="#0e7dad" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 238px; height: 1px; padding-top: 220px; margin-left: 321px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 11px; font-family: &quot;Helvetica&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px"><b>converter.py</b></font><div>[Container: Python (Polars, RDFLib)]</div><br /><div><font style="font-size: 11px"><font color="#E6E6E6" style="color: light-dark(rgb(230, 230, 230), rgb(39, 39, 39));">Konvertiert aggregierte Daten<br /> in RDF-Datensatz.</font></font></div></div></div></div></foreignObject><text x="440" y="223" fill="#ffffff" font-family="&quot;Helvetica&quot;" font-size="11px" text-anchor="middle">converter.py...</text></switch></g></g></g><g data-cell-id="TKOOJ7FrXuCLbUddgnAH-21"><g><rect x="580" y="160" width="240" height="120" rx="12" ry="12" fill="#23a2d9" style="fill: light-dark(rgb(35, 162, 217), rgb(29, 138, 185)); stroke: light-dark(rgb(14, 125, 173), rgb(69, 164, 206));" stroke="#0e7dad" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 238px; height: 1px; padding-top: 220px; margin-left: 581px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 11px; font-family: &quot;Helvetica&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px"><b>reasoner.py</b></font><div>[Container: Python (OWL-RL)]</div><br /><div><font style="font-size: 11px"><font color="#E6E6E6" style="color: light-dark(rgb(230, 230, 230), rgb(39, 39, 39));">Inferenzbildung</font></font></div></div></div></div></foreignObject><text x="700" y="223" fill="#ffffff" font-family="&quot;Helvetica&quot;" font-size="11px" text-anchor="middle">reasoner.py...</text></switch></g></g></g><g data-cell-id="TKOOJ7FrXuCLbUddgnAH-22"><g><rect x="870" y="20" width="240" height="120" rx="12" ry="12" fill="#8c8496" style="fill: light-dark(rgb(140, 132, 150), rgb(126, 119, 135)); stroke: light-dark(rgb(115, 103, 130), rgb(152, 141, 165));" stroke="#736782" pointer-events="all"/></g><g><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 238px; height: 1px; padding-top: 80px; margin-left: 871px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #ffffff; "><div style="display: inline-block; font-size: 12px; font-family: &quot;Helvetica&quot;; color: light-dark(#ffffff, #121212); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font style="font-size: 16px"><b>Archivkatalog BBB</b></font><div>[Webseite]</div><br /><div><font style="font-size: 11px"><font color="#cccccc" style="color: light-dark(rgb(204, 204, 204), rgb(62, 62, 62));">Online-Archivkatalog der Burgerbibliothek Bern.</font></font></div></div></div></div></foreignObject><text x="990" y="84" fill="#ffffff" font-family="&quot;Helvetica&quot;" font-size="12px" text-anchor="middle">Archivkatalog BBB...</text></switch></g></g></g><g data-cell-id="nDUugynr7aaaKtocWSmK-1"/><g data-cell-id="nDUugynr7aaaKtocWSmK-2"/><g data-cell-id="nDUugynr7aaaKtocWSmK-3"/><g data-cell-id="nDUugynr7aaaKtocWSmK-4"/><g data-cell-id="rk8Oe00xCAcymTSaSZzT-1"><g><path d="M 260 150 L 315.86 215.17" fill="none" stroke="#000000" style="stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke-miterlimit="10" stroke-dasharray="12 12" pointer-events="stroke"/><path d="M 319.27 219.15 L 312.06 216.11 L 315.86 215.17 L 317.37 211.56 Z" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255)); stroke: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/></g></g></g></g></g></svg>