Визуализация языка программирования Wolfram Language
Структура языка Wolfram и его отношение к базе знаний Wolfram KnowledgeBase могут быть визуализированы рядом способов. В этом примере, мы создадим облако из слов, отображающих эти отношения и вычислительным путем соберем и изучим релевантную документацию, а также визуализируем места и даты, связанные с людьми, чьи имена фигурируют в качестве символов языка Wolfram Language.
Создадим облако из терминов, фигурирующих в документации ресурса WolframLanguageData.
![Click for copyable input](assets.ru/visualize-the-wolfram-language/In_263.png)
WordCloud[
DeleteStopwords[
Flatten[TextWords[
WolframLanguageData["WolframLanguageData", "TextStrings"]]]]]
![](assets.ru/visualize-the-wolfram-language/O_179.png)
Создадим коллаж из графиков, отображающих основные примеры полученной документации с помощью функции Plot.
![Click for copyable input](assets.ru/visualize-the-wolfram-language/In_264.png)
ImageCollage[
Cases[WolframLanguageData["Plot", "DocumentationBasicExamples"],
c : Cell[_, "Output", ___] :> Rasterize[RawBoxes[c]], \[Infinity]],
ImagePadding -> 10, Background -> Transparent]
![](assets.ru/visualize-the-wolfram-language/O_180.png)
Теперь создадим коллаж из всех примеров графиков в полученной документации.
![](assets.ru/visualize-the-wolfram-language/O_181.png)
Получим портреты людей, связанных с функцией LaplacianGaussianFilter в Wolfram Language.
![Click for copyable input](assets.ru/visualize-the-wolfram-language/In_267.png)
ImageAssemble[
PersonData[
WolframLanguageData["LaplacianGaussianFilter", "EponymousPeople"],
"Image"]]
![](assets.ru/visualize-the-wolfram-language/O_182.png)
Извлечем имена людей, фигурирующие в названии функций Wolfram Language.
![Click for copyable input](assets.ru/visualize-the-wolfram-language/In_268.png)
people = DeleteCases[
Union[Flatten[
WolframLanguageData[All, "EponymousPeople"]]], _Missing];
Извлечем информацию о месте их рождения.
![Click for copyable input](assets.ru/visualize-the-wolfram-language/In_269.png)
placedata =
DeleteCases[
PersonData[
people, {"Image", "BirthPlace", "Name"}], {_, _Missing, _}];
Отметим эти места на карте мира.
![](assets.ru/visualize-the-wolfram-language/O_183.png)
Извлечем даты рождения и смерти людей, чьи имена фигурируют в названии функций и символов Wolfram Language.
![Click for copyable input](assets.ru/visualize-the-wolfram-language/In_271.png)
timedata =
Block[{EntityFramework`$EntityValueBatchSize = 300},
DeleteCases[
PersonData[
people, {"BirthDate", "DeathDate", "Name",
"Image"}], {_Missing, __}]];
Создадим временную ось и отобразим полученную биографическую информацию.
![](assets.ru/visualize-the-wolfram-language/O_184.png)