In[]:=
object=CloudImport[CloudObject["user:aarone@wolfram.com/MathematicsGenealogyProjectEntityStoreBeta"]]
Out[]=
ResourceObject
In[]:=
store=ResourceData["https://www.wolframcloud.com/objects/aarone@wolfram.com/MathematicsGenealogyProjectEntityStoreBeta"]
Out[]=
EntityStore
In[]:=
EntityRegister[store]
Out[]=
{MGPPerson,MGPDegree}
In[]:=
mscnames=;
In[]:=
WordCloudDeleteMissingEntityValueEntityListEntityClass"MGPDegree","SchoolEntity","MSCDescription",ImageSizeLarge
Out[]=
In[]:=
msctransition[person_]:=Module[{msc="MSCNumber",d="Degrees",advisermsc,adviseemscs,dm=DeleteMissing},advisermsc=#[msc]&/@person[d];adviseemscs=#[msc]&/@Flatten[#[d]&/@dm[Flatten[{person["Advised"]}]]];dm[{advisermsc,{#}}&/@DeleteCases[adviseemscs,Alternatives@@advisermsc],1,2]]
In[]:=
transitiondata=msctransition/@Select[DeleteMissing[EntityValue["MGPPerson",{"Entity","DegreeDates"}],1,2],Min[#["Year"]&/@#[[2]]]>1988&][[All,1]];
In[]:=
Length[EntityList["MGPPerson"]]
Out[]=
209599
In[]:=
RandomEntity["MGPPerson",50]
Out[]=
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
In[]:=
msctransition/@%
Out[]=
{{},{},{},{},{{{35},{82}},{{35},{82}}},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{{{91},{62}}},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}}
In[]:=
alltransitions=msctransition/@EntityList["MGPPerson"];
Out[]=
$Aborted
In[]:=
Out[]=
,,,,,,,,,,,,,,
In[]:=
Out[]=
In[]:=
Out[]=
35
In[]:=
personMap[person_]:=(#["MSCNumber"]&/@person["Degrees"])->(#["MSCNumber"]&/@#["Degrees"])&/@person
In[]:=
personMap
Out[]=
{{35}{82},{35}{82}}
In[]:=
Select[personMap/@%34,FreeQ[_Missing]]
Out[]=
{{{35}{82},{35}{82}},{{35}{35}},{{91}{62},{91}{91},{91}{91},{91}{91},{91}{91},{91}{91}}}
In[]:=
mgpMap=Association[Rule@@@Select[EntityValue[EntityList["MGPDegree"],{"MSCNumber","MSCDescription"}],FreeQ[_Missing]]];
In[]:=
mgpMap=;
personMap = EntityList["MGPPerson"] // (* get degrees/advised *) EntityValue[#, {"Degrees", "Advised"}] & // (* remove bugged entities (see above) *) DeleteCases[{_Missing, _}] // (* remove studentless *) DeleteCases[{_, _Missing}] // (* get MSC *) MapAt[DeleteMissing @ EntityValue[#, "MSCNumber"] &, {All, 1}] // (* remove missing MSCs *) DeleteCases[{{}, _}] // (* get MSCs for students *) MapAt[ Union @ DeleteMissing @ EntityValue[Union @@ EntityValue[#, "Degrees"], "MSCNumber"] &, {All, 2} ] // (* remove empty student result *) DeleteCases[{_, {}}];
In[]:=
personMap=;
In[]:=
edgeWeights=Counts[DirectedEdge@@@Catenate[Tuples/@personMap]];
Fields vs Time
Fields vs Time
Across all people: {year, field}
Across all advisors and advisees: {year, field1 -> field2}
In[]:=
EntityList["MGPDegree"]//Length
Out[]=
210446
In[]:=
RandomEntity["MGPDegree",20]
Out[]=
,,,,,,,,,,,,,,,,,,,
In[]:=
Cases[{#["Date"],#["MSCNumber"]}&/@%65,Except[{_,_Missing}]]
Out[]=
,68,,53,,32,,91,,37,,68,,74,,32,,68,,34
Exponential increase in number of mathematicians
Exponential increase in number of mathematicians