@@ -3,21 +3,27 @@
3 3 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
from typing import Dict, List, Optional
4 4 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
5 5 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
try:
6 6 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
import networkx as nx
7 7 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
except ImportError:
8 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- raise ImportError(
9 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "networkx is required for graph visualization. Install it with: pip install networkx"
10 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- )
8 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ nx = None
9 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
10 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
11 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ def _require_nx():
12 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if nx is None:
13 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ raise ImportError(
14 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "networkx is required for graph visualization. Install it with: pip install networkx"
15 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ )
11 16 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
12 17 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
13 18 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
def graph_to_networkx(kg_data: dict) -> "nx.DiGraph":
14 19 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"""Convert knowledge graph dict (from to_dict()) to NetworkX directed graph.
15 20 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
16 21 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Nodes get attributes: type, descriptions, source, occurrences
17 22 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Edges get attributes: type, content_source, timestamp
18 23 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"""
24 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ _require_nx()
19 25 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
G = nx.DiGraph()
20 26 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
21 27 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for node in kg_data.get("nodes", []):
22 28 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
name = node.get("name", node.get("id", ""))
23 29 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if not name:
24 30 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!