Combine Data from Multiple Domains
In addition to new entities and properties, the Wolfram Knowledgebase has also been enhanced by additional alignment and connections between data domains.
Start with a movie star.
In[1]:=
![Click for copyable input](assets.en/combine-data-from-multiple-domains/In_66.png)
Entity["Person", "MattDamon::88f5d"][
EntityProperty["Person", "Image"]]
Out[1]=
![](assets.en/combine-data-from-multiple-domains/O_46.png)
Retrieve a list of his film appearances.
In[2]:=
![Click for copyable input](assets.en/combine-data-from-multiple-domains/In_67.png)
films = Entity["Person", "MattDamon::88f5d"]["MovieAppearances"];
Extract a list of costars for whom some biographical information exists in the Wolfram Knowledgebase.
In[3]:=
![Click for copyable input](assets.en/combine-data-from-multiple-domains/In_68.png)
costars =
Cases[DeleteDuplicates[
Flatten[EntityValue[films, "Cast"]]], _Entity];
In[4]:=
![Click for copyable input](assets.en/combine-data-from-multiple-domains/In_69.png)
RandomSample[costars, 10]
Out[4]=
![](assets.en/combine-data-from-multiple-domains/O_47.png)
Plot the known birthplaces of costars who have appeared in at least one of Matt Damon's films.
In[5]:=
![Click for copyable input](assets.en/combine-data-from-multiple-domains/In_70.png)
Quiet@GeoGraphics[{Red, PointSize[0.01], Opacity[0.5],
Point@DeleteMissing[EntityValue[costars, "BirthPlace"]]}]
Out[5]=
![](assets.en/combine-data-from-multiple-domains/O_48.png)
Turn again to the list of costars and find out if any of them achieved notoriety in another creative domain.
In[6]:=
![Click for copyable input](assets.en/combine-data-from-multiple-domains/In_71.png)
writers =
Normal[DeleteMissing[
EntityValue[costars, "NotableBooks", "EntityAssociation"]]]
Out[6]=
![](assets.en/combine-data-from-multiple-domains/O_49.png)
Utilize properties of movies and people to identify costars who presumably appeared only in archival footage and remove them from the list.
In[7]:=
![Click for copyable input](assets.en/combine-data-from-multiple-domains/In_72.png)
firstFilm = Sort[EntityValue[films, "ReleaseDate"]][[1]]
Out[7]=
![](assets.en/combine-data-from-multiple-domains/O_50.png)
In[8]:=
![Click for copyable input](assets.en/combine-data-from-multiple-domains/In_73.png)
impossibleCostars =
Select[writers, First[#]["DeathDate"] < firstFilm &]
Out[8]=
![](assets.en/combine-data-from-multiple-domains/O_51.png)
In[9]:=
![Click for copyable input](assets.en/combine-data-from-multiple-domains/In_74.png)
Complement[writers, impossibleCostars]
Out[9]=
![](assets.en/combine-data-from-multiple-domains/O_52.png)