Usando il linguaggio Wolfram per interpretare il linguaggio Wolfram?
Voglio tracciare la relazione di tutte le funzioni in Mathematica, magari usando Graph
o il grafo diretto in D3.js
k =
DeleteCases[
WolframLanguageData[All, {"CanonicalName", "RelatedSymbols"}], {_, _Missing}];
k = MapAt[CanonicalName, k, {All, 2}];
data =
DeleteDuplicates[
Sort /@ Flatten[Thread[#[[1]] \[UndirectedEdge] #[[2]]] & /@ k]];
GraphPlot[data, VertexSize -> Tiny, ImageSize -> Full]

Tuttavia, la cifra è troppo grande. Esiste un metodo per ingrandirlo e suggerire i vertici?
Ho provato Tooltip
, tuttavia, non ha dato una trama.
Graph[Tooltip[#, #] & /@ VertexList[data], data]

E come posso usare i colori per distinguere queste funzioni da categorie come Audio, Immagine e Linguaggio di base?

Forse potrei usare l'apprendimento automatico per distinguere queste funzioni che ho provato ma non ha funzionato così bene.
space =
Thread[
VertexList[data] ->
DimensionReduce[
FeatureExtract[VertexList[data], {"SegmentedWords", "TFIDF"}],
1]];
space[[All, 2]] = Normalize[Flatten@space[[All, 2]]];
NumberLinePlot[space[[All, 2]]]

AGGIORNARE:
Versione: 12.1.1
Questa era già una demo nel NestGraph
documento di.

Risposte
Supporto tecnico CASO: 4620942
$Version
(* "12.1.1 for Mac OS X x86 (64-bit) (June 19, 2020)" *)
Clear["Global`*"]
Come suggerito da flinty, eseguendo codice da documentation
graph = WolframLanguageData["Cos", "RelationshipCommunityGraph"]

Le etichette per i vertici non vengono visualizzate correttamente
Show[graph, ImageSize -> Large]

Come soluzione alternativa, correggi manualmente le etichette
graph /. Style[lbl_, _List] :> lbl

Definisci una funzione che può estrarre vicini con raggio r
attorno al vertice n
:
subgraph[g_, n_, r_] := Subgraph[g, AdjacencyList[g, n, r]~Join~{n}]
Diamo un'occhiata ai vicini la cui distanza dalla Sin
funzione è 2
subg = subgraph[Graph[data], "Sin", 2];
GraphPlot[HighlightGraph[subg, {"Sin"}], VertexLabels -> "Name", ImageSize -> Large]

Esporta i dati del grafico che verranno utilizzati nel seguente HTML:
json = {"nodes" ->
Table[{"id" -> i, "group" -> 1}, {i, VertexList@subg}],
"links" ->
Table[{"source" -> i[[1]], "target" -> i[[2]], "value" -> 1}, {i, EdgeList@subg}]};
Export["miserables.json", json]
Scarica lo script D3.js index.html
da D3.js v4 Force Directed Graph with Labels
Quindi nel terminale digita quanto segue (python3): python -m http.server
Quindi aperto http://localhost:8000/
in Chrome, la figura può trascinare il vertice in modo interattivo

Ma per l'intero grande grafico, D3.js non può gestirlo ...