This question starts from Creating a Graph of related entities with the data from Wikidata
Compared to the previous question, I have defined a larger starting set, which I am going to enrich with connections using Wikidata, and show graphically. Now, as a second step I would like to find the closest entities. Can the Mathematica Clustering algorithm help me or do I need to define a function that calculates the distance between two entities starting from the connected nodes?
listOfKeys = {"sistema immunitario","obesità","finanziamenti","mail","virus","covid19","partita iva","prestiti","prostata","lavoro","soldi","pensione","ciclo mestruale","dolcificanti","avviso di giacenza","Raccomandata","Disabilità","esercizi","palestra","cuore","acido ialuronico","rughe","viso","Anticoncezionali","pillola anticoncezionale","gravidanza","unisalute","assicurazione sanitaria","sole","epilazione","depilazione","trattamenti estetici","tecnologia","vitamine","insonnia","catalogo tatuaggi","tattoo","viaggi","chirurgia plastica","grasso","atti giudiziari","perdere peso","diabete","integratori per dimagrire","collagene","unghie","tisane","perdita capelli","diagnosi","alimenti","colesterolo","antiossidanti","salute sempre","tessuto adiposo","proteine","somatoline cosmetic","somatoline","sgonfiare pancia","pancia","alimenti brucia grassi","bruciare i grassi","acne","pelle","ritenzione idrica","stress","kilocal","integratori","fototipo","liposuzione","cellulite","olio","drenanti","creme antirughe","disturbi intestinali","bruciore","reflusso","reflusso gastroesofageo","gastrite","protettori gastrici","ricette","dimagrimento","glicemia","sport e palestra","carboidrati","grasso addominale","medicina estetica","dimagrire","dieta","creme","filler","cellule staminali","smagliature","massa grassa","radicali liberi","Be-total","vitamine del gruppo B","allenamento","Fitomagra","Aboca","disintossicare il corpo","psicologia","allattamento","magnesio","dolore","fermenti lattici","risonanza magnetica","disturbi del sonno","neurologia","farmaci","neonati","laser","miopia","occhi","malattie veneree","calvizie","capelli","bonus","lattosio","NASpI","posta elettronica","carte prepagate","medicina alternativa","codici tributo","investimenti","mutui","emorroidi","stitichezza","oro","denti","consumatori","pensioni","antinfiammatori","mal di testa","cefalea","sonno","bollette","anemia","intestino","colon irritabile","salute","fegato","tasse","f24","Sky & NowTv","ceretta","piercing","tatuaggi","assicurazioni","pressione","ipertensione","terapie innovative","bruciore stomaco","gaviscon","menopausa","ginnastica posturale","piedi","analisi del sangue","sport","globuli rossi","fattura elettronica","dolore cronico","screening tumori","poste italiane","carta di credito","tumore","terapie","coronavirus","OT","fatture elettroniche","maternità","nanotecnologie","vaccini","inps"};
ExternalIdentifier["WikidataID",
"P279", <|"Label" -> "SubclassOf"|>]
ClearAll[findParent]
findParent = Thread[# -> WikidataData[#,
ExternalIdentifier["WikidataID", "P279", <|"Label" -> "SubclassOf"|>]] ] &;
edges = Flatten[findParent /@ list3];
Graph[edges,
VertexShapeFunction ->
(Text[Framed @ Style[#2["Label"] /. _Missing -> #2, Black, 12], #] &),
ImageSize -> 900]