History of hollywood_actors
The changes to the source code of this entry in the repository, newest first, each with the differences it made to the entry's files. They are also listed on GitLab.
[entries] hollywood_actors: add LAW's imdb-2021 actor collaboration graph 8bde63d
LAW continued the hollywood-2009 and hollywood-2011 series with imdb-2021, renamed because it includes actors outside Hollywood. It is added as the network `2021`; the networks of 2009 and 2011 are unchanged. Changed: upstream hollywood_actors
diff --git a/entries/hollywood_actors/__init__.py b/entries/hollywood_actors/__init__.py
index 858bb81..bb1e652 100644
--- a/entries/hollywood_actors/__init__.py
+++ b/entries/hollywood_actors/__init__.py
@@ -18,12 +18,14 @@
from .. import *
-title = "Hollywood actor collaborations (2009, 2011)"
-description = """Two snapshots, from 2009 and 2011, of the collaboration network of movie actors, built by the Laboratory for Web Algorithmics (LAW) from the Internet Movie Database (IMDb). Nodes are people whose participation in a movie (or other production listed in IMDb) is characterized as "actor", "actress" or "self", and an undirected edge connects two of them if they appeared together in at least one production. It is thus a one-mode projection of the bipartite actor-production network, and edges are unweighted (the number of joint appearances is not given).
+title = "Movie actor collaborations (IMDb, 2009-2021)"
+description = """Three snapshots, from 2009, 2011 and 2021, of the collaboration network of movie actors, built by the Laboratory for Web Algorithmics (LAW) from the Internet Movie Database (IMDb). Nodes are people whose participation in a movie (or other production listed in IMDb) is characterized as "actor", "actress" or "self", and an undirected edge connects two of them if they appeared together in at least one production. It is thus a one-mode projection of the bipartite actor-production network, and edges are unweighted (the number of joint appearances is not given).
-Sizes: `2009` has 1,139,905 actors and 113,891,327 arcs in the symmetric LAW graph (i.e. about 57 million undirected edges); `2011` has 2,180,759 actors and 228,985,632 arcs (about 114.5 million undirected edges).
+LAW distributes the first two as `hollywood-2009` and `hollywood-2011`, and the third, built from the IMDb datasets (https://www.imdb.com/interfaces/), as `imdb-2021`: the series was renamed because the graphs contain people outside of Hollywood, and to make the data source clearer.
-Vertex property: `name`, the IMDb name of the person. LAW notes that, being derived from IMDb, the data are subject to its terms and conditions for redistribution."""
+Sizes: `2009` has 1,139,905 actors and 113,891,327 arcs in the symmetric LAW graph (i.e. about 57 million undirected edges); `2011` has 2,180,759 actors and 228,985,632 arcs (about 114.5 million undirected edges); `2021` has 2,996,317 actors and 10,739,291 arcs (about 5.4 million undirected edges). LAW does not explain why the 2021 graph is so much sparser than the earlier ones.
+
+Vertex property: `name`, the IMDb name of the person (`2009` and `2011`), or `imdb_id`, the IMDb identifier of the person (e.g. `nm0000001`; `2021`, for which LAW gives only identifiers). LAW notes that, being derived from IMDb, the data are subject to its terms and conditions for redistribution."""
tags = ['Social', 'Collaboration', 'Unweighted', 'Projection']
url = 'https://law.di.unimi.it/datasets.php'
citation = [('P. Boldi and S. Vigna, "The WebGraph framework I: compression techniques." Proceedings of the 13th International Conference on World Wide Web (WWW 2004), 595-602 (2004).', 'https://doi.org/10.1145/988672.988752'),
@@ -36,6 +38,8 @@ upstream_prefix = 'http://data.law.di.unimi.it/webdata'
files = [((f'hollywood-{y}/hollywood-{y}.graph', f'hollywood-{y}/hollywood-{y}.properties',
f'hollywood-{y}/hollywood-{y}.ids.gz'), y, None)
for y in ["2009", "2011"]]
+files += [(('imdb-2021/imdb-2021.graph', 'imdb-2021/imdb-2021.properties',
+ 'imdb-2021/imdb-2021.ids.gz'), "2021", None)]
def fetch_upstream(force=False):
return fetch_upstream_files(__name__.split(".")[-1], upstream_prefix, files,
@@ -50,5 +54,6 @@ def parse(alts=None):
for fnames, alt, fmt in files:
if alts is not None and alt not in alts:
continue
- g = law_graph(name, fnames, directed=False, label="name")
+ g = law_graph(name, fnames, directed=False,
+ label="imdb_id" if alt == "2021" else "name")
yield alt, g
[entries] New entry: hollywood_actors c34d0aa
diff --git a/entries/hollywood_actors/__init__.py b/entries/hollywood_actors/__init__.py
new file mode 100644
index 0000000..858bb81
--- /dev/null
+++ b/entries/hollywood_actors/__init__.py
@@ -0,0 +1,54 @@
+#! /usr/bin/env python
+# -*- coding: utf-8 -*-
+#
+# Copyright (C) 2020-2026 Tiago de Paula Peixoto <tiago@skewed.de>
+#
+# This program is free software: you can redistribute it and/or modify it under
+# the terms of the GNU Affero General Public License as published by the Free
+# Software Foundation, either version 3 of the License, or (at your option) any
+# later version.
+#
+# This program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
+# details.
+#
+# You should have received a copy of the GNU Affero General Public License along
+# with this program. If not, see <http://www.gnu.org/licenses/>.
+
+from .. import *
+
+title = "Hollywood actor collaborations (2009, 2011)"
+description = """Two snapshots, from 2009 and 2011, of the collaboration network of movie actors, built by the Laboratory for Web Algorithmics (LAW) from the Internet Movie Database (IMDb). Nodes are people whose participation in a movie (or other production listed in IMDb) is characterized as "actor", "actress" or "self", and an undirected edge connects two of them if they appeared together in at least one production. It is thus a one-mode projection of the bipartite actor-production network, and edges are unweighted (the number of joint appearances is not given).
+
+Sizes: `2009` has 1,139,905 actors and 113,891,327 arcs in the symmetric LAW graph (i.e. about 57 million undirected edges); `2011` has 2,180,759 actors and 228,985,632 arcs (about 114.5 million undirected edges).
+
+Vertex property: `name`, the IMDb name of the person. LAW notes that, being derived from IMDb, the data are subject to its terms and conditions for redistribution."""
+tags = ['Social', 'Collaboration', 'Unweighted', 'Projection']
+url = 'https://law.di.unimi.it/datasets.php'
+citation = [('P. Boldi and S. Vigna, "The WebGraph framework I: compression techniques." Proceedings of the 13th International Conference on World Wide Web (WWW 2004), 595-602 (2004).', 'https://doi.org/10.1145/988672.988752'),
+ ('P. Boldi, M. Rosa, M. Santini, and S. Vigna, "Layered label propagation: a multiresolution coordinate-free ordering for compressing social networks." Proceedings of the 20th International Conference on World Wide Web (WWW 2011), 587-596 (2011).', 'https://doi.org/10.1145/1963405.1963488')]
+icon_hash = '56a85c8e26855e083a2f7936'
+upstream_license = None
+# Too large to process on an ordinary machine (see --skip-huge)
+huge = True
+upstream_prefix = 'http://data.law.di.unimi.it/webdata'
+files = [((f'hollywood-{y}/hollywood-{y}.graph', f'hollywood-{y}/hollywood-{y}.properties',
+ f'hollywood-{y}/hollywood-{y}.ids.gz'), y, None)
+ for y in ["2009", "2011"]]
+
+def fetch_upstream(force=False):
+ return fetch_upstream_files(__name__.split(".")[-1], upstream_prefix, files,
+ force)
+
+@cache_network()
+@coerce_props()
+@annotate()
+def parse(alts=None):
+ global files
+ name = __name__.split(".")[-1]
+ for fnames, alt, fmt in files:
+ if alts is not None and alt not in alts:
+ continue
+ g = law_graph(name, fnames, directed=False, label="name")
+ yield alt, g