logo Netzschleuder network catalog, repository, and centrifuge

History of mturk_workers

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] New entry: mturk_workers by Tiago de Paula Peixoto dfaa6b1
diff --git a/entries/mturk_workers/__init__.py b/entries/mturk_workers/__init__.py
new file mode 100644
index 0000000..aad50b4
--- /dev/null
+++ b/entries/mturk_workers/__init__.py
@@ -0,0 +1,51 @@
+#! /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 = "Amazon Mechanical Turk worker communication network (2015)"
+description = """The communication network among workers of Amazon Mechanical Turk (MTurk), an online crowdsourcing labor market, mapped by Yin et al. Workers were recruited with a task posted on MTurk in August and September 2015, open to all workers, which was completed by 10,354 workers (approximately a census of the active workers at the time). Each worker created an anonymous nickname, and then self-reported the other workers with whom they communicate (for instance through online forums dedicated to MTurk, or one-on-one channels such as e-mail, text messages or social media), by searching for their nicknames; workers could keep adding or removing edges after completing the task, and the network corresponds to the data collected on September 13, 2015. Each node is a worker, and an undirected edge connects two workers if one of them reported communicating with the other. Most workers (86.6%) did not report any connection and are isolated nodes. The worker attributes analyzed in the paper (country, forum use, etc.) are not included in the public data."""
+tags = ['Social', 'Online', 'Communication', 'Unweighted']
+url = 'https://mingyin.org/'
+citation = [('M. Yin, M. L. Gray, S. Suri, J. W. Vaughan, "The Communication Network Within the Crowd." Proceedings of the 25th International Conference on World Wide Web (WWW), 1293-1303 (2016)', 'https://doi.org/10.1145/2872427.2883036')]
+icon_hash = '5bec2723a7970b9d73465c37'
+upstream_license = None
+upstream_prefix = 'https://mingyin.org/data'
+files = [('turkernetwork_public.zip:turkernetwork_public/turker_network.csv', None, None)]
+
+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
+        with open_upstream_file(name, fnames, "r") as f:
+            # Header "From,To"; workers are numbered 1 to 10354
+            edges = numpy.loadtxt(f, dtype="int64", delimiter=",", skiprows=1,
+                                  ndmin=2)
+        g = Graph(directed=False)
+        g.add_vertex(10354)
+        g.add_edge_list(edges - 1)
+        yield alt, g