mirror of
https://github.com/fhswf/aki_prj23_transparenzregister.git
synced 2025-05-14 20:08:47 +02:00
Merge branch 'main' into feature/refactor-utils
This commit is contained in:
commit
1ca1985f57
28
.github/workflows/lint-actions.yaml
vendored
28
.github/workflows/lint-actions.yaml
vendored
@ -9,8 +9,7 @@ on:
|
|||||||
pull_request:
|
pull_request:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
run-linters:
|
Black:
|
||||||
name: Black & mypy
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Set up python
|
- name: Set up python
|
||||||
@ -28,10 +27,29 @@ jobs:
|
|||||||
virtualenvs-path: ~/local/share/virtualenvs
|
virtualenvs-path: ~/local/share/virtualenvs
|
||||||
- run: poetry install --without develop,doc,test
|
- run: poetry install --without develop,doc,test
|
||||||
- name: Run linters
|
- name: Run linters
|
||||||
uses: wearerequired/lint-action@v2
|
run: |
|
||||||
|
black src tests
|
||||||
|
|
||||||
|
mypy:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Set up python
|
||||||
|
id: setup-python
|
||||||
|
uses: actions/setup-python@v4
|
||||||
with:
|
with:
|
||||||
black: true
|
python-version: '3.11'
|
||||||
mypy: true
|
- name: Check out Git repository
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
- name: Install and configure Poetry
|
||||||
|
uses: snok/install-poetry@v1
|
||||||
|
with:
|
||||||
|
version: 1.4.2
|
||||||
|
virtualenvs-create: false
|
||||||
|
virtualenvs-path: ~/local/share/virtualenvs
|
||||||
|
- run: poetry install --without develop,doc
|
||||||
|
- name: Run linters
|
||||||
|
run: |
|
||||||
|
mypy src tests
|
||||||
|
|
||||||
ruff:
|
ruff:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
@ -25,13 +25,13 @@ repos:
|
|||||||
|
|
||||||
- repo: https://github.com/astral-sh/ruff-pre-commit
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
||||||
# Ruff version.
|
# Ruff version.
|
||||||
rev: v0.0.277
|
rev: v0.0.284
|
||||||
hooks:
|
hooks:
|
||||||
- id: ruff
|
- id: ruff
|
||||||
args: [--fix, --exit-non-zero-on-fix]
|
args: [--fix, --exit-non-zero-on-fix]
|
||||||
|
|
||||||
- repo: https://github.com/psf/black
|
- repo: https://github.com/psf/black
|
||||||
rev: 23.3.0
|
rev: 23.7.0
|
||||||
hooks:
|
hooks:
|
||||||
- id: black
|
- id: black
|
||||||
args: [--config=pyproject.toml]
|
args: [--config=pyproject.toml]
|
||||||
@ -40,7 +40,7 @@ repos:
|
|||||||
|
|
||||||
|
|
||||||
- repo: https://github.com/macisamuele/language-formatters-pre-commit-hooks
|
- repo: https://github.com/macisamuele/language-formatters-pre-commit-hooks
|
||||||
rev: v2.9.0
|
rev: v2.10.0
|
||||||
hooks:
|
hooks:
|
||||||
- id: pretty-format-ini
|
- id: pretty-format-ini
|
||||||
args: [--autofix]
|
args: [--autofix]
|
||||||
@ -61,7 +61,7 @@ repos:
|
|||||||
- types-requests
|
- types-requests
|
||||||
|
|
||||||
- repo: https://github.com/frnmst/md-toc
|
- repo: https://github.com/frnmst/md-toc
|
||||||
rev: 8.1.9
|
rev: 8.2.0
|
||||||
hooks:
|
hooks:
|
||||||
- id: md-toc
|
- id: md-toc
|
||||||
|
|
||||||
@ -76,6 +76,6 @@ repos:
|
|||||||
- id: validate-html
|
- id: validate-html
|
||||||
|
|
||||||
- repo: https://github.com/python-jsonschema/check-jsonschema
|
- repo: https://github.com/python-jsonschema/check-jsonschema
|
||||||
rev: 0.23.2
|
rev: 0.24.0
|
||||||
hooks:
|
hooks:
|
||||||
- id: check-github-workflows
|
- id: check-github-workflows
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
HOSTNAME="stagingdbtransparenzreg.ioappzs.mongodb.net"
|
"""Placholder to login int the FH db."""
|
||||||
DATABASE="transparenzregister"
|
HOSTNAME = "stagingdbtransparenzreg.ioappzs.mongodb.net"
|
||||||
PORT=None
|
DATABASE = "transparenzregister"
|
||||||
USERNAME="db_user"
|
PORT = None
|
||||||
PASSWORD="secret_password"
|
USERNAME = "db_user"
|
||||||
|
PASSWORD = "secret_password" # noqa: S105
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
HOSTNAME="172.17.38.210"
|
"""Placholder to login int the FH db."""
|
||||||
DATABASE="transparenzregister"
|
HOSTNAME = "172.17.38.210"
|
||||||
PORT=30217
|
DATABASE = "transparenzregister"
|
||||||
USERNAME="root"
|
PORT = 30217
|
||||||
PASSWORD="secret_password"
|
USERNAME = "root"
|
||||||
|
PASSWORD = "secret_password" # noqa: S105
|
||||||
|
27
documentations/meeting-notes/Meeting_2023-08-03.md
Normal file
27
documentations/meeting-notes/Meeting_2023-08-03.md
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
# Weekly *X*: 03.08.2023
|
||||||
|
|
||||||
|
## Teilnehmer
|
||||||
|
- Prof. Arinir
|
||||||
|
- Tristan Nolde
|
||||||
|
- Tim Ronneburg (Protokollant)
|
||||||
|
- Sebastian Zeleny
|
||||||
|
|
||||||
|
## Themen
|
||||||
|
|
||||||
|
- Präsentieren der Ergebnisse der letzten Wochen:
|
||||||
|
- Named Entity Recognition
|
||||||
|
- Vorstellung Datenbank auf dem FH-Cluster:
|
||||||
|
- Mongo Connector
|
||||||
|
- Datenspeicherung auf dem Cluster
|
||||||
|
- Weitere Vorgehensweise:
|
||||||
|
- Idee: Kleine Workshops/Teams
|
||||||
|
- In 2er Teams die einzelnen Funktionen über Feature Branches erstellen
|
||||||
|
|
||||||
|
## Abgeleitete Action Items
|
||||||
|
|
||||||
|
| Action Item | Verantwortlicher | Deadline |
|
||||||
|
|-------------|------------------|-----------------|
|
||||||
|
| Mergen aller Branches zu jedem neuen Termin mit Herrn Arinir | Jeder | jedes Weekly |
|
||||||
|
| Erstellen der Pipelines | Sebastian, Tristan und Tim | nächstes Weekly |
|
||||||
|
| Erstellen der Development Datenbank-Instanzen je Entwickler | Sebastian, Tristan und Tim | nächstes Weekly |
|
||||||
|
| Anlegen der relationalen Postgres DB via Script auf den FH-Cluster | Sebastian, Tristan und Tim | nächstes Weekly |
|
BIN
documentations/seminararbeiten/Verflechtungsanalyse/Graph.png
Normal file
BIN
documentations/seminararbeiten/Verflechtungsanalyse/Graph.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.2 KiB |
Binary file not shown.
@ -0,0 +1,12 @@
|
|||||||
|
id;label;type;branche
|
||||||
|
1;Porsche Automobil Holding;Company;Automobilhersteller
|
||||||
|
2;Volkswagen AG;Company;Automobilhersteller
|
||||||
|
3;Volkswagen;Company;Automobilhersteller
|
||||||
|
4;Audi;Company;Automobilhersteller
|
||||||
|
5;Seat;Company;Automobilhersteller
|
||||||
|
6;Skoda Auto;Company;Automobilhersteller
|
||||||
|
7;Porsche AG;Company;Automobilhersteller
|
||||||
|
8;Lamborghini;Company;Automobilhersteller
|
||||||
|
9;Bentley;Company;Automobilhersteller
|
||||||
|
10;Forvia;Company;Automobilzulieferer
|
||||||
|
11;Hella;Company;Automobilzulieferer
|
|
@ -0,0 +1,180 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
|
||||||
|
<script src="lib/bindings/utils.js"></script>
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/vis-network/9.1.2/dist/dist/vis-network.min.css" integrity="sha512-WgxfT5LWjfszlPHXRmBWHkV2eceiWTOBvrKCNbdgDYTHrT2AeLCGbF4sZlZw3UMN3WtL0tGUoIAKsu8mllg/XA==" crossorigin="anonymous" referrerpolicy="no-referrer" />
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/vis-network/9.1.2/dist/vis-network.min.js" integrity="sha512-LnvoEWDFrqGHlHmDD2101OrLcbsfkrzoSpvtSQtxK3RMnRV0eOkhhBN2dXHKRrUU8p2DGRTk35n4O8nWSVe1mQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<center>
|
||||||
|
<h1></h1>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
<!-- <link rel="stylesheet" href="../node_modules/vis/dist/vis.min.css" type="text/css" />
|
||||||
|
<script type="text/javascript" src="../node_modules/vis/dist/vis.js"> </script>-->
|
||||||
|
<link
|
||||||
|
href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/css/bootstrap.min.css"
|
||||||
|
rel="stylesheet"
|
||||||
|
integrity="sha384-eOJMYsd53ii+scO/bJGFsiCZc+5NDVN2yr8+0RDqr0Ql0h+rP48ckxlpbzKgwra6"
|
||||||
|
crossorigin="anonymous"
|
||||||
|
/>
|
||||||
|
<script
|
||||||
|
src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/js/bootstrap.bundle.min.js"
|
||||||
|
integrity="sha384-JEW9xMcG8R+pH31jmWH6WWP0WintQrMb4s7ZOdauHnUtxwoG2vI5DkLtS3qm9Ekf"
|
||||||
|
crossorigin="anonymous"
|
||||||
|
></script>
|
||||||
|
|
||||||
|
|
||||||
|
<center>
|
||||||
|
<h1></h1>
|
||||||
|
</center>
|
||||||
|
<style type="text/css">
|
||||||
|
|
||||||
|
#mynetwork {
|
||||||
|
width: 100%;
|
||||||
|
height: 600px;
|
||||||
|
background-color: white;
|
||||||
|
border: 1px solid lightgray;
|
||||||
|
position: relative;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#config {
|
||||||
|
float: left;
|
||||||
|
width: 400px;
|
||||||
|
height: 600px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="card" style="width: 100%">
|
||||||
|
|
||||||
|
|
||||||
|
<div id="mynetwork" class="card-body"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div id="config"></div>
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
|
||||||
|
// initialize global variables.
|
||||||
|
var edges;
|
||||||
|
var nodes;
|
||||||
|
var allNodes;
|
||||||
|
var allEdges;
|
||||||
|
var nodeColors;
|
||||||
|
var originalNodes;
|
||||||
|
var network;
|
||||||
|
var container;
|
||||||
|
var options, data;
|
||||||
|
var filter = {
|
||||||
|
item : '',
|
||||||
|
property : '',
|
||||||
|
value : []
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// This method is responsible for drawing the graph, returns the drawn network
|
||||||
|
function drawGraph() {
|
||||||
|
var container = document.getElementById('mynetwork');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// parsing and collecting nodes and edges from the python
|
||||||
|
nodes = new vis.DataSet([{"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 2, "label": "Volkswagen AG", "shape": "dot", "size": 0.0, "title": "Volkswagen AG\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 1, "label": "Porsche Automobil Holding", "shape": "dot", "size": 38.88888888888889, "title": "Porsche Automobil Holding\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 3, "label": "Volkswagen", "shape": "dot", "size": 0.0, "title": "Volkswagen\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 4, "label": "Audi", "shape": "dot", "size": 32.22222222222222, "title": "Audi\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 5, "label": "Seat", "shape": "dot", "size": 0.0, "title": "Seat\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 6, "label": "Skoda Auto", "shape": "dot", "size": 0.0, "title": "Skoda Auto\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 7, "label": "Porsche AG", "shape": "dot", "size": 0.0, "title": "Porsche AG\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 8, "label": "Lamborghini", "shape": "dot", "size": 0.0, "title": "Lamborghini\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 9, "label": "Bentley", "shape": "dot", "size": 0.0, "title": "Bentley\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilzulieferer", "color": "#475b63ff", "font": {"color": "black"}, "id": 10, "label": "Forvia", "shape": "dot", "size": 10.0, "title": "Forvia\nAutomobilzulieferer", "type": "Company"}, {"branche": "Automobilzulieferer", "color": "#475b63ff", "font": {"color": "black"}, "id": 11, "label": "Hella", "shape": "dot", "size": 0.0, "title": "Hella\nAutomobilzulieferer", "type": "Company"}]);
|
||||||
|
edges = new vis.DataSet([{"from": 2, "label": "part_of", "to": 1, "width": 1}, {"from": 1, "label": "part_of", "to": 3, "width": 1}, {"from": 1, "label": "part_of", "to": 4, "width": 1}, {"from": 1, "label": "part_of", "to": 5, "width": 1}, {"from": 1, "label": "part_of", "to": 6, "width": 1}, {"from": 1, "label": "part_of", "to": 7, "width": 1}, {"from": 4, "label": "part_of", "to": 8, "width": 1}, {"from": 4, "label": "part_of", "to": 9, "width": 1}, {"from": 4, "label": "supplierer", "to": 10, "width": 1}, {"from": 11, "label": "part_of", "to": 10, "width": 1}]);
|
||||||
|
|
||||||
|
nodeColors = {};
|
||||||
|
allNodes = nodes.get({ returnType: "Object" });
|
||||||
|
for (nodeId in allNodes) {
|
||||||
|
nodeColors[nodeId] = allNodes[nodeId].color;
|
||||||
|
}
|
||||||
|
allEdges = edges.get({ returnType: "Object" });
|
||||||
|
// adding nodes and edges to the graph
|
||||||
|
data = {nodes: nodes, edges: edges};
|
||||||
|
|
||||||
|
var options = {
|
||||||
|
"configure": {
|
||||||
|
"enabled": true,
|
||||||
|
"filter": [
|
||||||
|
"physics"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"edges": {
|
||||||
|
"color": {
|
||||||
|
"inherit": false
|
||||||
|
},
|
||||||
|
"smooth": {
|
||||||
|
"enabled": true,
|
||||||
|
"type": "dynamic"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"interaction": {
|
||||||
|
"dragNodes": true,
|
||||||
|
"hideEdgesOnDrag": false,
|
||||||
|
"hideNodesOnDrag": false
|
||||||
|
},
|
||||||
|
"physics": {
|
||||||
|
"enabled": true,
|
||||||
|
"repulsion": {
|
||||||
|
"centralGravity": 0.2,
|
||||||
|
"damping": 0.09,
|
||||||
|
"nodeDistance": 150,
|
||||||
|
"springConstant": 0.05,
|
||||||
|
"springLength": 50
|
||||||
|
},
|
||||||
|
"solver": "repulsion",
|
||||||
|
"stabilization": {
|
||||||
|
"enabled": true,
|
||||||
|
"fit": true,
|
||||||
|
"iterations": 1000,
|
||||||
|
"onlyDynamicEdges": false,
|
||||||
|
"updateInterval": 50
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// if this network requires displaying the configure window,
|
||||||
|
// put it in its div
|
||||||
|
options.configure["container"] = document.getElementById("config");
|
||||||
|
|
||||||
|
|
||||||
|
network = new vis.Network(container, data, options);
|
||||||
|
|
||||||
|
|
||||||
|
network.on("click", neighbourhoodHighlight);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return network;
|
||||||
|
|
||||||
|
}
|
||||||
|
drawGraph();
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,180 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
|
||||||
|
<script src="lib/bindings/utils.js"></script>
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/vis-network/9.1.2/dist/dist/vis-network.min.css" integrity="sha512-WgxfT5LWjfszlPHXRmBWHkV2eceiWTOBvrKCNbdgDYTHrT2AeLCGbF4sZlZw3UMN3WtL0tGUoIAKsu8mllg/XA==" crossorigin="anonymous" referrerpolicy="no-referrer" />
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/vis-network/9.1.2/dist/vis-network.min.js" integrity="sha512-LnvoEWDFrqGHlHmDD2101OrLcbsfkrzoSpvtSQtxK3RMnRV0eOkhhBN2dXHKRrUU8p2DGRTk35n4O8nWSVe1mQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<center>
|
||||||
|
<h1></h1>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
<!-- <link rel="stylesheet" href="../node_modules/vis/dist/vis.min.css" type="text/css" />
|
||||||
|
<script type="text/javascript" src="../node_modules/vis/dist/vis.js"> </script>-->
|
||||||
|
<link
|
||||||
|
href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/css/bootstrap.min.css"
|
||||||
|
rel="stylesheet"
|
||||||
|
integrity="sha384-eOJMYsd53ii+scO/bJGFsiCZc+5NDVN2yr8+0RDqr0Ql0h+rP48ckxlpbzKgwra6"
|
||||||
|
crossorigin="anonymous"
|
||||||
|
/>
|
||||||
|
<script
|
||||||
|
src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/js/bootstrap.bundle.min.js"
|
||||||
|
integrity="sha384-JEW9xMcG8R+pH31jmWH6WWP0WintQrMb4s7ZOdauHnUtxwoG2vI5DkLtS3qm9Ekf"
|
||||||
|
crossorigin="anonymous"
|
||||||
|
></script>
|
||||||
|
|
||||||
|
|
||||||
|
<center>
|
||||||
|
<h1></h1>
|
||||||
|
</center>
|
||||||
|
<style type="text/css">
|
||||||
|
|
||||||
|
#mynetwork {
|
||||||
|
width: 100%;
|
||||||
|
height: 600px;
|
||||||
|
background-color: white;
|
||||||
|
border: 1px solid lightgray;
|
||||||
|
position: relative;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#config {
|
||||||
|
float: left;
|
||||||
|
width: 400px;
|
||||||
|
height: 600px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="card" style="width: 100%">
|
||||||
|
|
||||||
|
|
||||||
|
<div id="mynetwork" class="card-body"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div id="config"></div>
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
|
||||||
|
// initialize global variables.
|
||||||
|
var edges;
|
||||||
|
var nodes;
|
||||||
|
var allNodes;
|
||||||
|
var allEdges;
|
||||||
|
var nodeColors;
|
||||||
|
var originalNodes;
|
||||||
|
var network;
|
||||||
|
var container;
|
||||||
|
var options, data;
|
||||||
|
var filter = {
|
||||||
|
item : '',
|
||||||
|
property : '',
|
||||||
|
value : []
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// This method is responsible for drawing the graph, returns the drawn network
|
||||||
|
function drawGraph() {
|
||||||
|
var container = document.getElementById('mynetwork');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// parsing and collecting nodes and edges from the python
|
||||||
|
nodes = new vis.DataSet([{"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 2, "label": "Volkswagen AG", "shape": "dot", "size": 20.833333333333336, "title": "Volkswagen AG\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 1, "label": "Porsche Automobil Holding", "shape": "dot", "size": 33.33333333333333, "title": "Porsche Automobil Holding\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 3, "label": "Volkswagen", "shape": "dot", "size": 20.833333333333336, "title": "Volkswagen\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 4, "label": "Audi", "shape": "dot", "size": 31.25, "title": "Audi\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 5, "label": "Seat", "shape": "dot", "size": 20.833333333333336, "title": "Seat\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 6, "label": "Skoda Auto", "shape": "dot", "size": 20.833333333333336, "title": "Skoda Auto\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 7, "label": "Porsche AG", "shape": "dot", "size": 20.833333333333336, "title": "Porsche AG\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 8, "label": "Lamborghini", "shape": "dot", "size": 20.0, "title": "Lamborghini\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 9, "label": "Bentley", "shape": "dot", "size": 20.0, "title": "Bentley\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilzulieferer", "color": "#475b63ff", "font": {"color": "black"}, "id": 10, "label": "Forvia", "shape": "dot", "size": 21.73913043478261, "title": "Forvia\nAutomobilzulieferer", "type": "Company"}, {"branche": "Automobilzulieferer", "color": "#475b63ff", "font": {"color": "black"}, "id": 11, "label": "Hella", "shape": "dot", "size": 15.625, "title": "Hella\nAutomobilzulieferer", "type": "Company"}]);
|
||||||
|
edges = new vis.DataSet([{"from": 2, "label": "part_of", "to": 1, "width": 1}, {"from": 1, "label": "part_of", "to": 3, "width": 1}, {"from": 1, "label": "part_of", "to": 4, "width": 1}, {"from": 1, "label": "part_of", "to": 5, "width": 1}, {"from": 1, "label": "part_of", "to": 6, "width": 1}, {"from": 1, "label": "part_of", "to": 7, "width": 1}, {"from": 4, "label": "part_of", "to": 8, "width": 1}, {"from": 4, "label": "part_of", "to": 9, "width": 1}, {"from": 4, "label": "supplierer", "to": 10, "width": 1}, {"from": 11, "label": "part_of", "to": 10, "width": 1}]);
|
||||||
|
|
||||||
|
nodeColors = {};
|
||||||
|
allNodes = nodes.get({ returnType: "Object" });
|
||||||
|
for (nodeId in allNodes) {
|
||||||
|
nodeColors[nodeId] = allNodes[nodeId].color;
|
||||||
|
}
|
||||||
|
allEdges = edges.get({ returnType: "Object" });
|
||||||
|
// adding nodes and edges to the graph
|
||||||
|
data = {nodes: nodes, edges: edges};
|
||||||
|
|
||||||
|
var options = {
|
||||||
|
"configure": {
|
||||||
|
"enabled": true,
|
||||||
|
"filter": [
|
||||||
|
"physics"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"edges": {
|
||||||
|
"color": {
|
||||||
|
"inherit": false
|
||||||
|
},
|
||||||
|
"smooth": {
|
||||||
|
"enabled": true,
|
||||||
|
"type": "dynamic"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"interaction": {
|
||||||
|
"dragNodes": true,
|
||||||
|
"hideEdgesOnDrag": false,
|
||||||
|
"hideNodesOnDrag": false
|
||||||
|
},
|
||||||
|
"physics": {
|
||||||
|
"enabled": true,
|
||||||
|
"repulsion": {
|
||||||
|
"centralGravity": 0.2,
|
||||||
|
"damping": 0.09,
|
||||||
|
"nodeDistance": 150,
|
||||||
|
"springConstant": 0.05,
|
||||||
|
"springLength": 50
|
||||||
|
},
|
||||||
|
"solver": "repulsion",
|
||||||
|
"stabilization": {
|
||||||
|
"enabled": true,
|
||||||
|
"fit": true,
|
||||||
|
"iterations": 1000,
|
||||||
|
"onlyDynamicEdges": false,
|
||||||
|
"updateInterval": 50
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// if this network requires displaying the configure window,
|
||||||
|
// put it in its div
|
||||||
|
options.configure["container"] = document.getElementById("config");
|
||||||
|
|
||||||
|
|
||||||
|
network = new vis.Network(container, data, options);
|
||||||
|
|
||||||
|
|
||||||
|
network.on("click", neighbourhoodHighlight);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return network;
|
||||||
|
|
||||||
|
}
|
||||||
|
drawGraph();
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,180 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
|
||||||
|
<script src="lib/bindings/utils.js"></script>
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/vis-network/9.1.2/dist/dist/vis-network.min.css" integrity="sha512-WgxfT5LWjfszlPHXRmBWHkV2eceiWTOBvrKCNbdgDYTHrT2AeLCGbF4sZlZw3UMN3WtL0tGUoIAKsu8mllg/XA==" crossorigin="anonymous" referrerpolicy="no-referrer" />
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/vis-network/9.1.2/dist/vis-network.min.js" integrity="sha512-LnvoEWDFrqGHlHmDD2101OrLcbsfkrzoSpvtSQtxK3RMnRV0eOkhhBN2dXHKRrUU8p2DGRTk35n4O8nWSVe1mQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<center>
|
||||||
|
<h1></h1>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
<!-- <link rel="stylesheet" href="../node_modules/vis/dist/vis.min.css" type="text/css" />
|
||||||
|
<script type="text/javascript" src="../node_modules/vis/dist/vis.js"> </script>-->
|
||||||
|
<link
|
||||||
|
href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/css/bootstrap.min.css"
|
||||||
|
rel="stylesheet"
|
||||||
|
integrity="sha384-eOJMYsd53ii+scO/bJGFsiCZc+5NDVN2yr8+0RDqr0Ql0h+rP48ckxlpbzKgwra6"
|
||||||
|
crossorigin="anonymous"
|
||||||
|
/>
|
||||||
|
<script
|
||||||
|
src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/js/bootstrap.bundle.min.js"
|
||||||
|
integrity="sha384-JEW9xMcG8R+pH31jmWH6WWP0WintQrMb4s7ZOdauHnUtxwoG2vI5DkLtS3qm9Ekf"
|
||||||
|
crossorigin="anonymous"
|
||||||
|
></script>
|
||||||
|
|
||||||
|
|
||||||
|
<center>
|
||||||
|
<h1></h1>
|
||||||
|
</center>
|
||||||
|
<style type="text/css">
|
||||||
|
|
||||||
|
#mynetwork {
|
||||||
|
width: 100%;
|
||||||
|
height: 600px;
|
||||||
|
background-color: white;
|
||||||
|
border: 1px solid lightgray;
|
||||||
|
position: relative;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#config {
|
||||||
|
float: left;
|
||||||
|
width: 400px;
|
||||||
|
height: 600px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="card" style="width: 100%">
|
||||||
|
|
||||||
|
|
||||||
|
<div id="mynetwork" class="card-body"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div id="config"></div>
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
|
||||||
|
// initialize global variables.
|
||||||
|
var edges;
|
||||||
|
var nodes;
|
||||||
|
var allNodes;
|
||||||
|
var allEdges;
|
||||||
|
var nodeColors;
|
||||||
|
var originalNodes;
|
||||||
|
var network;
|
||||||
|
var container;
|
||||||
|
var options, data;
|
||||||
|
var filter = {
|
||||||
|
item : '',
|
||||||
|
property : '',
|
||||||
|
value : []
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// This method is responsible for drawing the graph, returns the drawn network
|
||||||
|
function drawGraph() {
|
||||||
|
var container = document.getElementById('mynetwork');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// parsing and collecting nodes and edges from the python
|
||||||
|
nodes = new vis.DataSet([{"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 2, "label": "Volkswagen AG", "shape": "dot", "size": 5.0, "title": "Volkswagen AG\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 1, "label": "Porsche Automobil Holding", "shape": "dot", "size": 30.000000000000004, "title": "Porsche Automobil Holding\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 3, "label": "Volkswagen", "shape": "dot", "size": 5.0, "title": "Volkswagen\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 4, "label": "Audi", "shape": "dot", "size": 20.0, "title": "Audi\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 5, "label": "Seat", "shape": "dot", "size": 5.0, "title": "Seat\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 6, "label": "Skoda Auto", "shape": "dot", "size": 5.0, "title": "Skoda Auto\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 7, "label": "Porsche AG", "shape": "dot", "size": 5.0, "title": "Porsche AG\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 8, "label": "Lamborghini", "shape": "dot", "size": 5.0, "title": "Lamborghini\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 9, "label": "Bentley", "shape": "dot", "size": 5.0, "title": "Bentley\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilzulieferer", "color": "#475b63ff", "font": {"color": "black"}, "id": 10, "label": "Forvia", "shape": "dot", "size": 10.0, "title": "Forvia\nAutomobilzulieferer", "type": "Company"}, {"branche": "Automobilzulieferer", "color": "#475b63ff", "font": {"color": "black"}, "id": 11, "label": "Hella", "shape": "dot", "size": 5.0, "title": "Hella\nAutomobilzulieferer", "type": "Company"}]);
|
||||||
|
edges = new vis.DataSet([{"from": 2, "label": "part_of", "to": 1, "width": 1}, {"from": 1, "label": "part_of", "to": 3, "width": 1}, {"from": 1, "label": "part_of", "to": 4, "width": 1}, {"from": 1, "label": "part_of", "to": 5, "width": 1}, {"from": 1, "label": "part_of", "to": 6, "width": 1}, {"from": 1, "label": "part_of", "to": 7, "width": 1}, {"from": 4, "label": "part_of", "to": 8, "width": 1}, {"from": 4, "label": "part_of", "to": 9, "width": 1}, {"from": 4, "label": "supplierer", "to": 10, "width": 1}, {"from": 11, "label": "part_of", "to": 10, "width": 1}]);
|
||||||
|
|
||||||
|
nodeColors = {};
|
||||||
|
allNodes = nodes.get({ returnType: "Object" });
|
||||||
|
for (nodeId in allNodes) {
|
||||||
|
nodeColors[nodeId] = allNodes[nodeId].color;
|
||||||
|
}
|
||||||
|
allEdges = edges.get({ returnType: "Object" });
|
||||||
|
// adding nodes and edges to the graph
|
||||||
|
data = {nodes: nodes, edges: edges};
|
||||||
|
|
||||||
|
var options = {
|
||||||
|
"configure": {
|
||||||
|
"enabled": true,
|
||||||
|
"filter": [
|
||||||
|
"physics"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"edges": {
|
||||||
|
"color": {
|
||||||
|
"inherit": false
|
||||||
|
},
|
||||||
|
"smooth": {
|
||||||
|
"enabled": true,
|
||||||
|
"type": "dynamic"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"interaction": {
|
||||||
|
"dragNodes": true,
|
||||||
|
"hideEdgesOnDrag": false,
|
||||||
|
"hideNodesOnDrag": false
|
||||||
|
},
|
||||||
|
"physics": {
|
||||||
|
"enabled": true,
|
||||||
|
"repulsion": {
|
||||||
|
"centralGravity": 0.2,
|
||||||
|
"damping": 0.09,
|
||||||
|
"nodeDistance": 150,
|
||||||
|
"springConstant": 0.05,
|
||||||
|
"springLength": 50
|
||||||
|
},
|
||||||
|
"solver": "repulsion",
|
||||||
|
"stabilization": {
|
||||||
|
"enabled": true,
|
||||||
|
"fit": true,
|
||||||
|
"iterations": 1000,
|
||||||
|
"onlyDynamicEdges": false,
|
||||||
|
"updateInterval": 50
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// if this network requires displaying the configure window,
|
||||||
|
// put it in its div
|
||||||
|
options.configure["container"] = document.getElementById("config");
|
||||||
|
|
||||||
|
|
||||||
|
network = new vis.Network(container, data, options);
|
||||||
|
|
||||||
|
|
||||||
|
network.on("click", neighbourhoodHighlight);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return network;
|
||||||
|
|
||||||
|
}
|
||||||
|
drawGraph();
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,180 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
|
||||||
|
<script src="lib/bindings/utils.js"></script>
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/vis-network/9.1.2/dist/dist/vis-network.min.css" integrity="sha512-WgxfT5LWjfszlPHXRmBWHkV2eceiWTOBvrKCNbdgDYTHrT2AeLCGbF4sZlZw3UMN3WtL0tGUoIAKsu8mllg/XA==" crossorigin="anonymous" referrerpolicy="no-referrer" />
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/vis-network/9.1.2/dist/vis-network.min.js" integrity="sha512-LnvoEWDFrqGHlHmDD2101OrLcbsfkrzoSpvtSQtxK3RMnRV0eOkhhBN2dXHKRrUU8p2DGRTk35n4O8nWSVe1mQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<center>
|
||||||
|
<h1></h1>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
<!-- <link rel="stylesheet" href="../node_modules/vis/dist/vis.min.css" type="text/css" />
|
||||||
|
<script type="text/javascript" src="../node_modules/vis/dist/vis.js"> </script>-->
|
||||||
|
<link
|
||||||
|
href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/css/bootstrap.min.css"
|
||||||
|
rel="stylesheet"
|
||||||
|
integrity="sha384-eOJMYsd53ii+scO/bJGFsiCZc+5NDVN2yr8+0RDqr0Ql0h+rP48ckxlpbzKgwra6"
|
||||||
|
crossorigin="anonymous"
|
||||||
|
/>
|
||||||
|
<script
|
||||||
|
src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/js/bootstrap.bundle.min.js"
|
||||||
|
integrity="sha384-JEW9xMcG8R+pH31jmWH6WWP0WintQrMb4s7ZOdauHnUtxwoG2vI5DkLtS3qm9Ekf"
|
||||||
|
crossorigin="anonymous"
|
||||||
|
></script>
|
||||||
|
|
||||||
|
|
||||||
|
<center>
|
||||||
|
<h1></h1>
|
||||||
|
</center>
|
||||||
|
<style type="text/css">
|
||||||
|
|
||||||
|
#mynetwork {
|
||||||
|
width: 100%;
|
||||||
|
height: 600px;
|
||||||
|
background-color: white;
|
||||||
|
border: 1px solid lightgray;
|
||||||
|
position: relative;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#config {
|
||||||
|
float: left;
|
||||||
|
width: 400px;
|
||||||
|
height: 600px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="card" style="width: 100%">
|
||||||
|
|
||||||
|
|
||||||
|
<div id="mynetwork" class="card-body"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div id="config"></div>
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
|
||||||
|
// initialize global variables.
|
||||||
|
var edges;
|
||||||
|
var nodes;
|
||||||
|
var allNodes;
|
||||||
|
var allEdges;
|
||||||
|
var nodeColors;
|
||||||
|
var originalNodes;
|
||||||
|
var network;
|
||||||
|
var container;
|
||||||
|
var options, data;
|
||||||
|
var filter = {
|
||||||
|
item : '',
|
||||||
|
property : '',
|
||||||
|
value : []
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// This method is responsible for drawing the graph, returns the drawn network
|
||||||
|
function drawGraph() {
|
||||||
|
var container = document.getElementById('mynetwork');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// parsing and collecting nodes and edges from the python
|
||||||
|
nodes = new vis.DataSet([{"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 2, "label": "Volkswagen AG", "shape": "dot", "size": 10, "title": "Volkswagen AG\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 1, "label": "Porsche Automobil Holding", "shape": "dot", "size": 10, "title": "Porsche Automobil Holding\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 3, "label": "Volkswagen", "shape": "dot", "size": 10, "title": "Volkswagen\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 4, "label": "Audi", "shape": "dot", "size": 10, "title": "Audi\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 5, "label": "Seat", "shape": "dot", "size": 10, "title": "Seat\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 6, "label": "Skoda Auto", "shape": "dot", "size": 10, "title": "Skoda Auto\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 7, "label": "Porsche AG", "shape": "dot", "size": 10, "title": "Porsche AG\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 8, "label": "Lamborghini", "shape": "dot", "size": 10, "title": "Lamborghini\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 9, "label": "Bentley", "shape": "dot", "size": 10, "title": "Bentley\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilzulieferer", "color": "#475b63ff", "font": {"color": "black"}, "id": 10, "label": "Forvia", "shape": "dot", "size": 10, "title": "Forvia\nAutomobilzulieferer", "type": "Company"}, {"branche": "Automobilzulieferer", "color": "#475b63ff", "font": {"color": "black"}, "id": 11, "label": "Hella", "shape": "dot", "size": 10, "title": "Hella\nAutomobilzulieferer", "type": "Company"}]);
|
||||||
|
edges = new vis.DataSet([{"from": 2, "label": "part_of", "to": 1, "width": 1}, {"from": 1, "label": "part_of", "to": 3, "width": 1}, {"from": 1, "label": "part_of", "to": 4, "width": 1}, {"from": 1, "label": "part_of", "to": 5, "width": 1}, {"from": 1, "label": "part_of", "to": 6, "width": 1}, {"from": 1, "label": "part_of", "to": 7, "width": 1}, {"from": 4, "label": "part_of", "to": 8, "width": 1}, {"from": 4, "label": "part_of", "to": 9, "width": 1}, {"from": 4, "label": "supplierer", "to": 10, "width": 1}, {"from": 11, "label": "part_of", "to": 10, "width": 1}]);
|
||||||
|
|
||||||
|
nodeColors = {};
|
||||||
|
allNodes = nodes.get({ returnType: "Object" });
|
||||||
|
for (nodeId in allNodes) {
|
||||||
|
nodeColors[nodeId] = allNodes[nodeId].color;
|
||||||
|
}
|
||||||
|
allEdges = edges.get({ returnType: "Object" });
|
||||||
|
// adding nodes and edges to the graph
|
||||||
|
data = {nodes: nodes, edges: edges};
|
||||||
|
|
||||||
|
var options = {
|
||||||
|
"configure": {
|
||||||
|
"enabled": true,
|
||||||
|
"filter": [
|
||||||
|
"physics"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"edges": {
|
||||||
|
"color": {
|
||||||
|
"inherit": false
|
||||||
|
},
|
||||||
|
"smooth": {
|
||||||
|
"enabled": true,
|
||||||
|
"type": "dynamic"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"interaction": {
|
||||||
|
"dragNodes": true,
|
||||||
|
"hideEdgesOnDrag": false,
|
||||||
|
"hideNodesOnDrag": false
|
||||||
|
},
|
||||||
|
"physics": {
|
||||||
|
"enabled": true,
|
||||||
|
"repulsion": {
|
||||||
|
"centralGravity": 0.2,
|
||||||
|
"damping": 0.09,
|
||||||
|
"nodeDistance": 150,
|
||||||
|
"springConstant": 0.05,
|
||||||
|
"springLength": 50
|
||||||
|
},
|
||||||
|
"solver": "repulsion",
|
||||||
|
"stabilization": {
|
||||||
|
"enabled": true,
|
||||||
|
"fit": true,
|
||||||
|
"iterations": 1000,
|
||||||
|
"onlyDynamicEdges": false,
|
||||||
|
"updateInterval": 50
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// if this network requires displaying the configure window,
|
||||||
|
// put it in its div
|
||||||
|
options.configure["container"] = document.getElementById("config");
|
||||||
|
|
||||||
|
|
||||||
|
network = new vis.Network(container, data, options);
|
||||||
|
|
||||||
|
|
||||||
|
network.on("click", neighbourhoodHighlight);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return network;
|
||||||
|
|
||||||
|
}
|
||||||
|
drawGraph();
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,180 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
|
||||||
|
<script src="lib/bindings/utils.js"></script>
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/vis-network/9.1.2/dist/dist/vis-network.min.css" integrity="sha512-WgxfT5LWjfszlPHXRmBWHkV2eceiWTOBvrKCNbdgDYTHrT2AeLCGbF4sZlZw3UMN3WtL0tGUoIAKsu8mllg/XA==" crossorigin="anonymous" referrerpolicy="no-referrer" />
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/vis-network/9.1.2/dist/vis-network.min.js" integrity="sha512-LnvoEWDFrqGHlHmDD2101OrLcbsfkrzoSpvtSQtxK3RMnRV0eOkhhBN2dXHKRrUU8p2DGRTk35n4O8nWSVe1mQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<center>
|
||||||
|
<h1></h1>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
<!-- <link rel="stylesheet" href="../node_modules/vis/dist/vis.min.css" type="text/css" />
|
||||||
|
<script type="text/javascript" src="../node_modules/vis/dist/vis.js"> </script>-->
|
||||||
|
<link
|
||||||
|
href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/css/bootstrap.min.css"
|
||||||
|
rel="stylesheet"
|
||||||
|
integrity="sha384-eOJMYsd53ii+scO/bJGFsiCZc+5NDVN2yr8+0RDqr0Ql0h+rP48ckxlpbzKgwra6"
|
||||||
|
crossorigin="anonymous"
|
||||||
|
/>
|
||||||
|
<script
|
||||||
|
src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/js/bootstrap.bundle.min.js"
|
||||||
|
integrity="sha384-JEW9xMcG8R+pH31jmWH6WWP0WintQrMb4s7ZOdauHnUtxwoG2vI5DkLtS3qm9Ekf"
|
||||||
|
crossorigin="anonymous"
|
||||||
|
></script>
|
||||||
|
|
||||||
|
|
||||||
|
<center>
|
||||||
|
<h1></h1>
|
||||||
|
</center>
|
||||||
|
<style type="text/css">
|
||||||
|
|
||||||
|
#mynetwork {
|
||||||
|
width: 100%;
|
||||||
|
height: 600px;
|
||||||
|
background-color: white;
|
||||||
|
border: 1px solid lightgray;
|
||||||
|
position: relative;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#config {
|
||||||
|
float: left;
|
||||||
|
width: 400px;
|
||||||
|
height: 600px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="card" style="width: 100%">
|
||||||
|
|
||||||
|
|
||||||
|
<div id="mynetwork" class="card-body"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div id="config"></div>
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
|
||||||
|
// initialize global variables.
|
||||||
|
var edges;
|
||||||
|
var nodes;
|
||||||
|
var allNodes;
|
||||||
|
var allEdges;
|
||||||
|
var nodeColors;
|
||||||
|
var originalNodes;
|
||||||
|
var network;
|
||||||
|
var container;
|
||||||
|
var options, data;
|
||||||
|
var filter = {
|
||||||
|
item : '',
|
||||||
|
property : '',
|
||||||
|
value : []
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// This method is responsible for drawing the graph, returns the drawn network
|
||||||
|
function drawGraph() {
|
||||||
|
var container = document.getElementById('mynetwork');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// parsing and collecting nodes and edges from the python
|
||||||
|
nodes = new vis.DataSet([{"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 2, "label": "Volkswagen AG", "shape": "dot", "size": 12.085168885235912, "title": "Volkswagen AG\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 1, "label": "Porsche Automobil Holding", "shape": "dot", "size": 31.651963273829274, "title": "Porsche Automobil Holding\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 3, "label": "Volkswagen", "shape": "dot", "size": 12.085168885235912, "title": "Volkswagen\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 4, "label": "Audi", "shape": "dot", "size": 22.4729492814132, "title": "Audi\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 5, "label": "Seat", "shape": "dot", "size": 12.085168885235912, "title": "Seat\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 6, "label": "Skoda Auto", "shape": "dot", "size": 12.085168885235912, "title": "Skoda Auto\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 7, "label": "Porsche AG", "shape": "dot", "size": 12.085168885235912, "title": "Porsche AG\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 8, "label": "Lamborghini", "shape": "dot", "size": 8.580550319284578, "title": "Lamborghini\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 9, "label": "Bentley", "shape": "dot", "size": 8.580550319284578, "title": "Bentley\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilzulieferer", "color": "#475b63ff", "font": {"color": "black"}, "id": 10, "label": "Forvia", "shape": "dot", "size": 10.044975527879851, "title": "Forvia\nAutomobilzulieferer", "type": "Company"}, {"branche": "Automobilzulieferer", "color": "#475b63ff", "font": {"color": "black"}, "id": 11, "label": "Hella", "shape": "dot", "size": 3.835363824276235, "title": "Hella\nAutomobilzulieferer", "type": "Company"}]);
|
||||||
|
edges = new vis.DataSet([{"from": 2, "label": "part_of", "to": 1, "width": 1}, {"from": 1, "label": "part_of", "to": 3, "width": 1}, {"from": 1, "label": "part_of", "to": 4, "width": 1}, {"from": 1, "label": "part_of", "to": 5, "width": 1}, {"from": 1, "label": "part_of", "to": 6, "width": 1}, {"from": 1, "label": "part_of", "to": 7, "width": 1}, {"from": 4, "label": "part_of", "to": 8, "width": 1}, {"from": 4, "label": "part_of", "to": 9, "width": 1}, {"from": 4, "label": "supplierer", "to": 10, "width": 1}, {"from": 11, "label": "part_of", "to": 10, "width": 1}]);
|
||||||
|
|
||||||
|
nodeColors = {};
|
||||||
|
allNodes = nodes.get({ returnType: "Object" });
|
||||||
|
for (nodeId in allNodes) {
|
||||||
|
nodeColors[nodeId] = allNodes[nodeId].color;
|
||||||
|
}
|
||||||
|
allEdges = edges.get({ returnType: "Object" });
|
||||||
|
// adding nodes and edges to the graph
|
||||||
|
data = {nodes: nodes, edges: edges};
|
||||||
|
|
||||||
|
var options = {
|
||||||
|
"configure": {
|
||||||
|
"enabled": true,
|
||||||
|
"filter": [
|
||||||
|
"physics"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"edges": {
|
||||||
|
"color": {
|
||||||
|
"inherit": false
|
||||||
|
},
|
||||||
|
"smooth": {
|
||||||
|
"enabled": true,
|
||||||
|
"type": "dynamic"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"interaction": {
|
||||||
|
"dragNodes": true,
|
||||||
|
"hideEdgesOnDrag": false,
|
||||||
|
"hideNodesOnDrag": false
|
||||||
|
},
|
||||||
|
"physics": {
|
||||||
|
"enabled": true,
|
||||||
|
"repulsion": {
|
||||||
|
"centralGravity": 0.2,
|
||||||
|
"damping": 0.09,
|
||||||
|
"nodeDistance": 150,
|
||||||
|
"springConstant": 0.05,
|
||||||
|
"springLength": 50
|
||||||
|
},
|
||||||
|
"solver": "repulsion",
|
||||||
|
"stabilization": {
|
||||||
|
"enabled": true,
|
||||||
|
"fit": true,
|
||||||
|
"iterations": 1000,
|
||||||
|
"onlyDynamicEdges": false,
|
||||||
|
"updateInterval": 50
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// if this network requires displaying the configure window,
|
||||||
|
// put it in its div
|
||||||
|
options.configure["container"] = document.getElementById("config");
|
||||||
|
|
||||||
|
|
||||||
|
network = new vis.Network(container, data, options);
|
||||||
|
|
||||||
|
|
||||||
|
network.on("click", neighbourhoodHighlight);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return network;
|
||||||
|
|
||||||
|
}
|
||||||
|
drawGraph();
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,180 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
|
||||||
|
<script src="lib/bindings/utils.js"></script>
|
||||||
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/vis-network/9.1.2/dist/dist/vis-network.min.css" integrity="sha512-WgxfT5LWjfszlPHXRmBWHkV2eceiWTOBvrKCNbdgDYTHrT2AeLCGbF4sZlZw3UMN3WtL0tGUoIAKsu8mllg/XA==" crossorigin="anonymous" referrerpolicy="no-referrer" />
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/vis-network/9.1.2/dist/vis-network.min.js" integrity="sha512-LnvoEWDFrqGHlHmDD2101OrLcbsfkrzoSpvtSQtxK3RMnRV0eOkhhBN2dXHKRrUU8p2DGRTk35n4O8nWSVe1mQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
|
||||||
|
|
||||||
|
|
||||||
|
<center>
|
||||||
|
<h1></h1>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
<!-- <link rel="stylesheet" href="../node_modules/vis/dist/vis.min.css" type="text/css" />
|
||||||
|
<script type="text/javascript" src="../node_modules/vis/dist/vis.js"> </script>-->
|
||||||
|
<link
|
||||||
|
href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/css/bootstrap.min.css"
|
||||||
|
rel="stylesheet"
|
||||||
|
integrity="sha384-eOJMYsd53ii+scO/bJGFsiCZc+5NDVN2yr8+0RDqr0Ql0h+rP48ckxlpbzKgwra6"
|
||||||
|
crossorigin="anonymous"
|
||||||
|
/>
|
||||||
|
<script
|
||||||
|
src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/js/bootstrap.bundle.min.js"
|
||||||
|
integrity="sha384-JEW9xMcG8R+pH31jmWH6WWP0WintQrMb4s7ZOdauHnUtxwoG2vI5DkLtS3qm9Ekf"
|
||||||
|
crossorigin="anonymous"
|
||||||
|
></script>
|
||||||
|
|
||||||
|
|
||||||
|
<center>
|
||||||
|
<h1></h1>
|
||||||
|
</center>
|
||||||
|
<style type="text/css">
|
||||||
|
|
||||||
|
#mynetwork {
|
||||||
|
width: 100%;
|
||||||
|
height: 600px;
|
||||||
|
background-color: white;
|
||||||
|
border: 1px solid lightgray;
|
||||||
|
position: relative;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#config {
|
||||||
|
float: left;
|
||||||
|
width: 400px;
|
||||||
|
height: 600px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="card" style="width: 100%">
|
||||||
|
|
||||||
|
|
||||||
|
<div id="mynetwork" class="card-body"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div id="config"></div>
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
|
||||||
|
// initialize global variables.
|
||||||
|
var edges;
|
||||||
|
var nodes;
|
||||||
|
var allNodes;
|
||||||
|
var allEdges;
|
||||||
|
var nodeColors;
|
||||||
|
var originalNodes;
|
||||||
|
var network;
|
||||||
|
var container;
|
||||||
|
var options, data;
|
||||||
|
var filter = {
|
||||||
|
item : '',
|
||||||
|
property : '',
|
||||||
|
value : []
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// This method is responsible for drawing the graph, returns the drawn network
|
||||||
|
function drawGraph() {
|
||||||
|
var container = document.getElementById('mynetwork');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// parsing and collecting nodes and edges from the python
|
||||||
|
nodes = new vis.DataSet([{"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 2, "label": "Volkswagen AG", "shape": "dot", "size": 2.6656522175918687, "title": "Volkswagen AG\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 1, "label": "Porsche Automobil Holding", "shape": "dot", "size": 14.003687099537842, "title": "Porsche Automobil Holding\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 3, "label": "Volkswagen", "shape": "dot", "size": 2.6656522175918687, "title": "Volkswagen\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 4, "label": "Audi", "shape": "dot", "size": 9.377492579893957, "title": "Audi\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 5, "label": "Seat", "shape": "dot", "size": 2.6656522175918687, "title": "Seat\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 6, "label": "Skoda Auto", "shape": "dot", "size": 2.6656522175918687, "title": "Skoda Auto\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 7, "label": "Porsche AG", "shape": "dot", "size": 2.6656522175918687, "title": "Porsche AG\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 8, "label": "Lamborghini", "shape": "dot", "size": 2.6745569912566833, "title": "Lamborghini\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilhersteller", "color": " #729b79ff", "font": {"color": "black"}, "id": 9, "label": "Bentley", "shape": "dot", "size": 2.6745569912566833, "title": "Bentley\nAutomobilhersteller", "type": "Company"}, {"branche": "Automobilzulieferer", "color": "#475b63ff", "font": {"color": "black"}, "id": 10, "label": "Forvia", "shape": "dot", "size": 5.094490318776964, "title": "Forvia\nAutomobilzulieferer", "type": "Company"}, {"branche": "Automobilzulieferer", "color": "#475b63ff", "font": {"color": "black"}, "id": 11, "label": "Hella", "shape": "dot", "size": 2.846954931318525, "title": "Hella\nAutomobilzulieferer", "type": "Company"}]);
|
||||||
|
edges = new vis.DataSet([{"from": 2, "label": "part_of", "to": 1, "width": 1}, {"from": 1, "label": "part_of", "to": 3, "width": 1}, {"from": 1, "label": "part_of", "to": 4, "width": 1}, {"from": 1, "label": "part_of", "to": 5, "width": 1}, {"from": 1, "label": "part_of", "to": 6, "width": 1}, {"from": 1, "label": "part_of", "to": 7, "width": 1}, {"from": 4, "label": "part_of", "to": 8, "width": 1}, {"from": 4, "label": "part_of", "to": 9, "width": 1}, {"from": 4, "label": "supplierer", "to": 10, "width": 1}, {"from": 11, "label": "part_of", "to": 10, "width": 1}]);
|
||||||
|
|
||||||
|
nodeColors = {};
|
||||||
|
allNodes = nodes.get({ returnType: "Object" });
|
||||||
|
for (nodeId in allNodes) {
|
||||||
|
nodeColors[nodeId] = allNodes[nodeId].color;
|
||||||
|
}
|
||||||
|
allEdges = edges.get({ returnType: "Object" });
|
||||||
|
// adding nodes and edges to the graph
|
||||||
|
data = {nodes: nodes, edges: edges};
|
||||||
|
|
||||||
|
var options = {
|
||||||
|
"configure": {
|
||||||
|
"enabled": true,
|
||||||
|
"filter": [
|
||||||
|
"physics"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"edges": {
|
||||||
|
"color": {
|
||||||
|
"inherit": false
|
||||||
|
},
|
||||||
|
"smooth": {
|
||||||
|
"enabled": true,
|
||||||
|
"type": "dynamic"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"interaction": {
|
||||||
|
"dragNodes": true,
|
||||||
|
"hideEdgesOnDrag": false,
|
||||||
|
"hideNodesOnDrag": false
|
||||||
|
},
|
||||||
|
"physics": {
|
||||||
|
"enabled": true,
|
||||||
|
"repulsion": {
|
||||||
|
"centralGravity": 0.2,
|
||||||
|
"damping": 0.09,
|
||||||
|
"nodeDistance": 150,
|
||||||
|
"springConstant": 0.05,
|
||||||
|
"springLength": 50
|
||||||
|
},
|
||||||
|
"solver": "repulsion",
|
||||||
|
"stabilization": {
|
||||||
|
"enabled": true,
|
||||||
|
"fit": true,
|
||||||
|
"iterations": 1000,
|
||||||
|
"onlyDynamicEdges": false,
|
||||||
|
"updateInterval": 50
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// if this network requires displaying the configure window,
|
||||||
|
// put it in its div
|
||||||
|
options.configure["container"] = document.getElementById("config");
|
||||||
|
|
||||||
|
|
||||||
|
network = new vis.Network(container, data, options);
|
||||||
|
|
||||||
|
|
||||||
|
network.on("click", neighbourhoodHighlight);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return network;
|
||||||
|
|
||||||
|
}
|
||||||
|
drawGraph();
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
File diff suppressed because one or more lines are too long
@ -0,0 +1,11 @@
|
|||||||
|
from;to;label
|
||||||
|
2;1;part_of
|
||||||
|
3;1;part_of
|
||||||
|
4;1;part_of
|
||||||
|
5;1;part_of
|
||||||
|
6;1;part_of
|
||||||
|
7;1;part_of
|
||||||
|
8;4;part_of
|
||||||
|
9;4;part_of
|
||||||
|
11;10;part_of
|
||||||
|
10;4;supplierer
|
|
Loading…
x
Reference in New Issue
Block a user