Самоанализ языка Wolfram Language
База знаний Wolfram Knowledgebase содержит не только информацию об объектах и явлениях внешнего мира, но и подробные сведения о языке Wolfram, Wolfram Language. Эти знания могут быть использованы для изучения структуры (и эволюции) данного языка. Они также могут помочь в обнаружении функциональных аспектов интересующих пользователя вопросов. Для этого, неявно определенные классы сущностей используются для идентификации символов языка, удовлетворяющих заданным критериям.
Воспользуемся неявно определенным классом сущностей, чтобы идентифицировать символы Wolfram Language, введенные в версии 11.

EntityList[
EntityClass["WolframLanguageSymbol", "VersionIntroduced" -> 11]] //
Take[#, 20] &

Запросим список символов, добавленых в версии 10 и измененных в версии 11.

EntityList[EntityClass["WolframLanguageSymbol",
{"VersionIntroduced" -> Interval[{10, 10.4}],
"VersionsModified" -> ContainsAny[{11}]}]]

Найдем символы, содержащие в их названии слова "Фридриха Гаусс".

EntityList[
EntityClass[
"WolframLanguageSymbol", {"EponymousPeople" ->
ContainsAny[{Entity["Person", "CarlFriedrichGauss::4vctc"]}]}]]

Найдем графические символы, введенные в версиях 8-11 программного обеспечения Mathematica.

EntityList[EntityClass["WolframLanguageSymbol", {
"FunctionalityAreas" -> ContainsAny[{"GraphicsPrimitiveSymbols"}],
"VersionIntroduced" -> Interval[{8, 11}]
}]]

Найдем наиболее часто используемые символы (во всех разделах), используя классификатор EntityProperty в сочетании с неявно определенным классом сущностей.

EntityClass["WolframLanguageSymbol",
EntityProperty["WolframLanguageSymbol",
"Frequencies", {"Corpus" -> "All"}] -> TakeLargest[10]]

Рассмотрим содержание полученного отформатированного неявного класса сущностей, нажав на [+].

Разложим класс сущностей на составляющие компоненты с помощью функции EntityList.

EntityClass["WolframLanguageSymbol",
EntityProperty["WolframLanguageSymbol",
"Frequencies", {"Corpus" -> "All"}] -> TakeLargest[10]];
EntityList[%]

Запросим частоту использования этих символов.

EntityList[
EntityClass["WolframLanguageSymbol", "VersionIntroduced" -> 11]] //
Take[#, 20] &;
EntityList[%];
top10 = EntityValue[%,
EntityProperty["WolframLanguageSymbol",
"Frequencies", {"Corpus" -> "All"}], "EntityAssociation"]

Построим круговую диаграмму частоты использования этих символов.
