(* Selecting accepted names and checking synonyms *) maintainCheckSynonyms := Module[{tab, r, p, y, cap, names, yrp, link, addednames, excls, print, key, key1, namesci1, name1, name, pic, accnames, t, filecapt, filetext, file0, file, namelink, ta}, Print["Checking occurences of synonyms without accepted names ..."]; nameOnPic[name_, pic_] := name; usedSynonyms[name_] := {}; tab = Table[{r, p} = pic; y = toyear[r]; cap = picCaption[r, p]; names = namesPic[r, p]; yrp = y <> "/" <> r <> "/" <> p; link = Hyperlink[yrp, "http://127.0.0.1:81/pictures/archives/compress/" <> yrp <> ".htm"]; filecapt = FileNameJoin[{dir00, "pictures", "archives", y, r, "captions.txt"}]; filetext = y <> "/" <> r <> "/captions.txt"; addednames = Select[names, addNameData[#, "ifexists"] &]; excls = Flatten[addNameData[#, "exclusions"] & /@ names]; excls = Select[excls, (Head[#] === String) &]; names = Complement[names, addednames, excls]; accnames = Select[names, !keyData[nameKey[#], "synonym"]&]; noPrint[link, " - ", names]; t = Table[ print = {}; key = nameKey[name]; If[keyData[key, "synonym"], key1 = keyData[key, "acceptedKey"]; namesci1 = keyData[key1, "scientificName"]; name1 = shortName[namesci1]; usedSynonyms[name1] = Union[Append[usedSynonyms[name1], name]]; If[StringFreeQ[cap, name1], nameOnPic[name1, pic] = name; accnames = Append[accnames, name1]; namelink = Hyperlink[name, "https://api.catalogueoflife.org/dataset/2242/nameusage/suggest?fuzzy=false&limit=25&q=" <> StringReplace[name, " " -> "%20"]]; print = {openOnClick[filecapt, filetext], link, namelink, "->", name1}; ]]; print, {name, names}]; accNamesPic[r, p] = Union[accnames, addednames]; t, {pic, picsList}]; tab = Join @@ tab; tab = Select[tab, (# =!= {}) &]; tab = Sort[tab, OrderedQ[{#1[[3]], #2[[3]]}] &]; file0 = ""; tab = Table[ t = ta; file = t[[1]]; If[file === file0, t[[1]] = ""]; file0 = file; t, {ta, tab}]; If[tab === {}, Print[" - nothing found."], Print[tab // TableForm]]; accNamesList = Union[Flatten[(accNamesPic @@ #) & /@ picsList]]; ];