logo Netzschleuder network catalog, repository, and centrifuge

History of add_health

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] Add the date when each entry was added, and remove icon_hash by Tiago de Paula Peixoto beff7c9
The dates are those of the commits that first added the entries' files
(2020-08-11 for the entries of the initial commit); renamed entries keep
the date of their first name.

Changed: none
diff --git a/entries/add_health/__init__.py b/entries/add_health/__init__.py
index 012ebd0..e572228 100644
--- a/entries/add_health/__init__.py
+++ b/entries/add_health/__init__.py
@@ -33,7 +33,7 @@ The networks have the following properties:
 tags = ['Social', 'Offline', 'Weighted']
 url = 'https://web.archive.org/web/20210115130726/http://moreno.ss.uci.edu/data.html#adhealth'
 citation = [('J. Moody. "Peer influence groups: Identifying dense clusters in large networks." Social Networks 23(4), 261-283 (2001)', 'https://doi.org/10.1016/S0378-8733(01)00042-9')]
-icon_hash = '56a85c8e26855e083a2f7952'
+date_added = '2020-08-11'
 upstream_license = None
 # The UCI Moreno site is no longer online; the files are fetched from the
 # Internet Archive
[entries] Prefix the properties in the descriptions with (Node), (Edge) or (Graph) by Tiago de Paula Peixoto bc3dbbd
The lists of properties at the end of the descriptions marked edge
properties with "Edge" but left node properties unmarked, or grouped
them in "Nodes: `a`, ...; `b`, ..." items, so the kind of a property
was often unclear. Every item now starts with (Node), (Edge) or (Graph),
followed by the property names, a colon and the explanation, one item
per property or group of properties; qualifications (kinds of nodes,
networks) follow the names in parentheses. Properties that were only
named got a short explanation, and a few items that named the wrong
kind of property were corrected.
diff --git a/entries/add_health/__init__.py b/entries/add_health/__init__.py
index 2c24ea0..012ebd0 100644
--- a/entries/add_health/__init__.py
+++ b/entries/add_health/__init__.py
@@ -25,8 +25,11 @@ Each student was given a paper-and-pencil questionnaire and a roster of all stud
 
 The networks have the following properties:
 
-- Nodes: `sex` (1: male, 2: female, 0: unreported); `race` (1: white, 2: black, 3: hispanic, 4: asian, 5: mixed/other, 0: unreported); `grade`, the school grade (7 to 12, 0: unreported); `school`, the school (0 or 1) within the community, only for communities with two schools. Node attributes are missing for community 48.
-- Edges: `activities`, the tie value, equal to one plus the number of the five activities the student reported doing with the friend (from 1, a nomination with no reported activities, to 6, all five activities)."""
+- (Node) `sex` (1: male, 2: female, 0: unreported).
+- (Node) `race` (1: white, 2: black, 3: hispanic, 4: asian, 5: mixed/other, 0: unreported).
+- (Node) `grade`: the school grade (7 to 12, 0: unreported).
+- (Node) `school`: the school (0 or 1) within the community, only for communities with two schools. Node attributes are missing for community 48.
+- (Edge) `activities`: the tie value, equal to one plus the number of the five activities the student reported doing with the friend (from 1, a nomination with no reported activities, to 6, all five activities)."""
 tags = ['Social', 'Offline', 'Weighted']
 url = 'https://web.archive.org/web/20210115130726/http://moreno.ss.uci.edu/data.html#adhealth'
 citation = [('J. Moody. "Peer influence groups: Identifying dense clusters in large networks." Social Networks 23(4), 261-283 (2001)', 'https://doi.org/10.1016/S0378-8733(01)00042-9')]
[entries] Remove unneeded code from the entries by Tiago de Paula Peixoto 2c69f19
Unneeded "global files" statements, unused imports and variables,
f-strings without placeholders, duplicate keys in foodweb_little_rock
(keeping the order and the values used), and the second definition of
get_lines() in twitter_higgs. Nothing changes in the networks or
descriptions.

Changed: none
diff --git a/entries/add_health/__init__.py b/entries/add_health/__init__.py
index 121f3d8..2c24ea0 100644
--- a/entries/add_health/__init__.py
+++ b/entries/add_health/__init__.py
@@ -50,7 +50,6 @@ def fetch_upstream(force=False):
 @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:
[entries] Move unavailable upstream sources to verified alternatives by Tiago de Paula Peixoto 2137af6
The upstream sources of these entries are gone, moved, or refuse automated
downloads; each now downloads the same data (byte-identical to the cached
files, or for board_directors, identical apart from line endings) from:

- add_health: the Wayback Machine (Moreno's site, as its sibling entries)
- board_directors: T. Opsahl's site (opsahl.co.uk)
- copenhagen, cow_signed_relations, fullerene_structures,
  german_power_grid: figshare's API (its downloader refuses the server)
- drosophila_flybi: the same address, without a doubled slash
- dutch_criticism: V. Batagelj's repository of Pajek data on GitHub
- fly_larva: the copy of the supplementary files in Europe PMC
- foursquare: the authors' Google Drive file
- game_thrones, microsoft_concept, un_migrations: pinned Wayback Machine
  snapshots
- internet_top_pop: the Topology Zoo repository on GitHub
- scotus_majority: Harvard Dataverse and Wayback Machine snapshots
diff --git a/entries/add_health/__init__.py b/entries/add_health/__init__.py
index 4cf793c..121f3d8 100644
--- a/entries/add_health/__init__.py
+++ b/entries/add_health/__init__.py
@@ -28,11 +28,13 @@ The networks have the following properties:
 - Nodes: `sex` (1: male, 2: female, 0: unreported); `race` (1: white, 2: black, 3: hispanic, 4: asian, 5: mixed/other, 0: unreported); `grade`, the school grade (7 to 12, 0: unreported); `school`, the school (0 or 1) within the community, only for communities with two schools. Node attributes are missing for community 48.
 - Edges: `activities`, the tie value, equal to one plus the number of the five activities the student reported doing with the friend (from 1, a nomination with no reported activities, to 6, all five activities)."""
 tags = ['Social', 'Offline', 'Weighted']
-url = 'http://moreno.ss.uci.edu/data.html'
+url = 'https://web.archive.org/web/20210115130726/http://moreno.ss.uci.edu/data.html#adhealth'
 citation = [('J. Moody. "Peer influence groups: Identifying dense clusters in large networks." Social Networks 23(4), 261-283 (2001)', 'https://doi.org/10.1016/S0378-8733(01)00042-9')]
 icon_hash = '56a85c8e26855e083a2f7952'
 upstream_license = None
-upstream_prefix = 'http://moreno.ss.uci.edu'
+# The UCI Moreno site is no longer online; the files are fetched from the
+# Internet Archive
+upstream_prefix = 'https://web.archive.org/web/20210115130726id_/http://moreno.ss.uci.edu'
 restricted = True
 
 missing_att = [48]
[entries] Fix parse bugs and improve the metadata of existing entries by Tiago de Paula Peixoto c996a0e
From a review of the dataset descriptions against the upstream sources
and papers, and from user reports:

- parse fixes (wrong edge direction or directedness, shifted or
  misnamed properties, merged node identities, duplicated or missing
  edges and nodes, wrong types), e.g. arxiv_citation (the HepTh dates
  were a copy of the HepPh ones; now from the KDD Cup 2003 data),
  eu_procurements, foursquare_global, hiv_transmission, genetic_multiplex,
  gnutella (adds the 05 snapshot), roadnet, macaque_neural, python_dependency
- descriptions rewritten from the upstream sources, documenting every
  property
- corrected titles, citations and DOIs, licences (ustream_license typo,
  the data's own terms), tags and ICON ids
- url lists for entries with several sources or dataset pages
- SocioPatterns entries moved to the site's new data location, with the
  daily networks of sp_infectious and sp_primary_school
- the Michael Fire entries marked as orphans (served from the mirror)
- redundant type forcings removed after the graph-tool coercion fixes
diff --git a/entries/add_health/__init__.py b/entries/add_health/__init__.py
index bacee8a..4cf793c 100644
--- a/entries/add_health/__init__.py
+++ b/entries/add_health/__init__.py
@@ -19,31 +19,19 @@
 from .. import *
 
 title = "Adolescent health (ADD HEALTH) (1994)"
-description = """A directed network of friendships obtained through a social survey of high school students in 1994. The ADD HEALTH data are constructed from the in-school questionnaire; 90,118 students representing 84 communities took this survey in 1994-95. Some communities had only one school; others had two. Where there are two schools in a community students from one school were allowed to name friends in the other, the "sister school".[^icon]
+description = r"""Directed friendship networks among students in 84 communities in the United States, from the in-school questionnaire of the National Longitudinal Study of Adolescent Health (Add Health), administered in 1994–95 to 90,118 students in grades 7 to 12. Each community consists of one high school, and in some cases also of a "sister" school (typically a feeder junior high school); each community is a separate network (`comm1` to `comm84`). The networks were prepared by J. Moody.
 
-Each student was given a paper-and-pencil questionnaire and a copy of a roster listing every student in the school and, if the community had two schools, the student s provided with the roster of the "sister" school. The name generator asked about five male and five female friends separately. The question was, "List your closest (male/female) friends. List your best (male/female) friend first, then your next best friend, and so on. (girls/boys) may include (boys/girls) who are friends and (boy/girl) friends."
-For each friend named, the student was asked to check off whether he/she participated in any of five activities with the friend. These activities were:
+Each student was given a paper-and-pencil questionnaire and a roster of all students in the school (and in the sister school, if any), and was asked to list up to five closest male friends and up to five closest female friends, in order of closeness. For each nominated friend, the student indicated in which of five activities they had participated together: visiting the friend's house in the last seven days; meeting after school to hang out in the last seven days; spending time together last weekend; talking about a problem in the last seven days; and talking on the telephone in the last seven days. A directed edge $i \to j$ means that student $i$ nominated student $j$ as a friend. Since nominations across schools were allowed, the networks are given at the community level.
 
-1. you went to (his/her) house in the last seven days.
-2. you met (him/her) after school to hang out or go somewhere in the last seven days.
-3. you spent time with (him/her) last weekend.
-4. you talked with (him/her) about a problem in the last seven days.
-5. you talked with (him/her) on the telephone in the last seven days.
+The networks have the following properties:
 
-These activities were summed to create a valued network. Ties range in value from 1, meaning the student nominated the friend but reported no activities, to 6, meaning the student nominated the friend and reported participating in all five activities with the friend.
-
-Because nominations to friends in the sister school were allowed, the networks here are reported at the community level. When two schools were present in a community the data file includes a node-level indicator for school code, so one can easily extract choices from the separate schools.
-
-The friendship choices are recorded in the COMM files. And the COMM_ATT files include the sex, race, grade in school and, in communities that have two schools, the school code.
-
-Sex is coded 1=male, 2=female, 0=unreported. Race is coded 1=white, 2=black, 3=hispanic, 4=asian, 5=mixed/other, 0=unreported. Grade is recorded as a number between 7 and 12 with 0=unreported. And school codes are 0 and 1 when two schools were in a single community.
-
-[^icon]: Description obtained from the [ICON](https://icon.colorado.edu) project."""
+- Nodes: `sex` (1: male, 2: female, 0: unreported); `race` (1: white, 2: black, 3: hispanic, 4: asian, 5: mixed/other, 0: unreported); `grade`, the school grade (7 to 12, 0: unreported); `school`, the school (0 or 1) within the community, only for communities with two schools. Node attributes are missing for community 48.
+- Edges: `activities`, the tie value, equal to one plus the number of the five activities the student reported doing with the friend (from 1, a nomination with no reported activities, to 6, all five activities)."""
 tags = ['Social', 'Offline', 'Weighted']
 url = 'http://moreno.ss.uci.edu/data.html'
 citation = [('J. Moody. "Peer influence groups: Identifying dense clusters in large networks." Social Networks 23(4), 261-283 (2001)', 'https://doi.org/10.1016/S0378-8733(01)00042-9')]
 icon_hash = '56a85c8e26855e083a2f7952'
-ustream_license = None
+upstream_license = None
 upstream_prefix = 'http://moreno.ss.uci.edu'
 restricted = True
 
Update copyright information by Tiago de Paula Peixoto 73a4f0d
diff --git a/entries/add_health/__init__.py b/entries/add_health/__init__.py
index 0ff66ab..bacee8a 100644
--- a/entries/add_health/__init__.py
+++ b/entries/add_health/__init__.py
@@ -1,7 +1,7 @@
 #! /usr/bin/env python
 # -*- coding: utf-8 -*-
 #
-# Copyright (C) 2020-2024 Tiago de Paula Peixoto <tiago@skewed.de>
+# 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
Update copyright information by Tiago de Paula Peixoto 3d288ea
diff --git a/entries/add_health/__init__.py b/entries/add_health/__init__.py
index d41c557..0ff66ab 100644
--- a/entries/add_health/__init__.py
+++ b/entries/add_health/__init__.py
@@ -1,7 +1,7 @@
 #! /usr/bin/env python
 # -*- coding: utf-8 -*-
 #
-# Copyright (C) 2020-2023 Tiago de Paula Peixoto <tiago@skewed.de>
+# Copyright (C) 2020-2024 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
Update copyright information by Tiago de Paula Peixoto 8d005ae
diff --git a/entries/add_health/__init__.py b/entries/add_health/__init__.py
index 4cdd0d4..d41c557 100644
--- a/entries/add_health/__init__.py
+++ b/entries/add_health/__init__.py
@@ -1,7 +1,7 @@
 #! /usr/bin/env python
 # -*- coding: utf-8 -*-
 #
-# Copyright (C) 2021 Tiago de Paula Peixoto <tiago@skewed.de>
+# Copyright (C) 2020-2023 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
Update copyright info by Tiago de Paula Peixoto db2efcc
diff --git a/entries/add_health/__init__.py b/entries/add_health/__init__.py
index 0265acb..4cdd0d4 100644
--- a/entries/add_health/__init__.py
+++ b/entries/add_health/__init__.py
@@ -1,7 +1,7 @@
 #! /usr/bin/env python
 # -*- coding: utf-8 -*-
 #
-# Copyright (C) 2020 Tiago de Paula Peixoto <tiago@skewed.de>
+# Copyright (C) 2021 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
add_health: add restricted flag by Tiago de Paula Peixoto 284c23d
Unfortunatelly, the add_health data cannot be openly distributed.
diff --git a/entries/add_health/__init__.py b/entries/add_health/__init__.py
index 8fc64ea..0265acb 100644
--- a/entries/add_health/__init__.py
+++ b/entries/add_health/__init__.py
@@ -45,6 +45,7 @@ citation = [('J. Moody. "Peer influence groups: Identifying dense clusters in la
 icon_hash = '56a85c8e26855e083a2f7952'
 ustream_license = None
 upstream_prefix = 'http://moreno.ss.uci.edu'
+restricted = True
 
 missing_att = [48]
 
add_health: fix minor typo in description by Tiago de Paula Peixoto 7efcc31
diff --git a/entries/add_health/__init__.py b/entries/add_health/__init__.py
index c825672..8fc64ea 100644
--- a/entries/add_health/__init__.py
+++ b/entries/add_health/__init__.py
@@ -19,7 +19,7 @@
 from .. import *
 
 title = "Adolescent health (ADD HEALTH) (1994)"
-description = """A directed network of friendships obtained through a social survey of high school students in 1994. The ADD HEALTH data are constructed from the in-school questionnaire; 90,118 students representing 84 communities took this survey in 1994-95. Some communities had only one school; others had two. Where there are two schools in a community students from one school were allowed to name friends in the other, the "sister school.[^icon]
+description = """A directed network of friendships obtained through a social survey of high school students in 1994. The ADD HEALTH data are constructed from the in-school questionnaire; 90,118 students representing 84 communities took this survey in 1994-95. Some communities had only one school; others had two. Where there are two schools in a community students from one school were allowed to name friends in the other, the "sister school".[^icon]
 
 Each student was given a paper-and-pencil questionnaire and a copy of a roster listing every student in the school and, if the community had two schools, the student s provided with the roster of the "sister" school. The name generator asked about five male and five female friends separately. The question was, "List your closest (male/female) friends. List your best (male/female) friend first, then your next best friend, and so on. (girls/boys) may include (boys/girls) who are friends and (boy/girl) friends."
 For each friend named, the student was asked to check off whether he/she participated in any of five activities with the friend. These activities were:
Change license from GPLv3 to AGPLv3 by Tiago de Paula Peixoto d754be5
diff --git a/entries/add_health/__init__.py b/entries/add_health/__init__.py
index 3d198c5..c825672 100644
--- a/entries/add_health/__init__.py
+++ b/entries/add_health/__init__.py
@@ -3,18 +3,18 @@
 #
 # Copyright (C) 2020 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 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 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 General Public License for more details.
+# 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 General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+# 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 *
 
Add explicit attribution to descriptions obtained from ICON by Tiago de Paula Peixoto 1645314
diff --git a/entries/add_health/__init__.py b/entries/add_health/__init__.py
index 15fc384..3d198c5 100644
--- a/entries/add_health/__init__.py
+++ b/entries/add_health/__init__.py
@@ -19,7 +19,7 @@
 from .. import *
 
 title = "Adolescent health (ADD HEALTH) (1994)"
-description = """A directed network of friendships obtained through a social survey of high school students in 1994. The ADD HEALTH data are constructed from the in-school questionnaire; 90,118 students representing 84 communities took this survey in 1994-95. Some communities had only one school; others had two. Where there are two schools in a community students from one school were allowed to name friends in the other, the "sister school."
+description = """A directed network of friendships obtained through a social survey of high school students in 1994. The ADD HEALTH data are constructed from the in-school questionnaire; 90,118 students representing 84 communities took this survey in 1994-95. Some communities had only one school; others had two. Where there are two schools in a community students from one school were allowed to name friends in the other, the "sister school.[^icon]
 
 Each student was given a paper-and-pencil questionnaire and a copy of a roster listing every student in the school and, if the community had two schools, the student s provided with the roster of the "sister" school. The name generator asked about five male and five female friends separately. The question was, "List your closest (male/female) friends. List your best (male/female) friend first, then your next best friend, and so on. (girls/boys) may include (boys/girls) who are friends and (boy/girl) friends."
 For each friend named, the student was asked to check off whether he/she participated in any of five activities with the friend. These activities were:
@@ -36,7 +36,9 @@ Because nominations to friends in the sister school were allowed, the networks h
 
 The friendship choices are recorded in the COMM files. And the COMM_ATT files include the sex, race, grade in school and, in communities that have two schools, the school code.
 
-Sex is coded 1=male, 2=female, 0=unreported. Race is coded 1=white, 2=black, 3=hispanic, 4=asian, 5=mixed/other, 0=unreported. Grade is recorded as a number between 7 and 12 with 0=unreported. And school codes are 0 and 1 when two schools were in a single community. """
+Sex is coded 1=male, 2=female, 0=unreported. Race is coded 1=white, 2=black, 3=hispanic, 4=asian, 5=mixed/other, 0=unreported. Grade is recorded as a number between 7 and 12 with 0=unreported. And school codes are 0 and 1 when two schools were in a single community.
+
+[^icon]: Description obtained from the [ICON](https://icon.colorado.edu) project."""
 tags = ['Social', 'Offline', 'Weighted']
 url = 'http://moreno.ss.uci.edu/data.html'
 citation = [('J. Moody. "Peer influence groups: Identifying dense clusters in large networks." Social Networks 23(4), 261-283 (2001)', 'https://doi.org/10.1016/S0378-8733(01)00042-9')]
Initial commit by Tiago de Paula Peixoto cc85872
diff --git a/entries/add_health/__init__.py b/entries/add_health/__init__.py
new file mode 100644
index 0000000..15fc384
--- /dev/null
+++ b/entries/add_health/__init__.py
@@ -0,0 +1,101 @@
+#! /usr/bin/env python
+# -*- coding: utf-8 -*-
+#
+# Copyright (C) 2020 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 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+from .. import *
+
+title = "Adolescent health (ADD HEALTH) (1994)"
+description = """A directed network of friendships obtained through a social survey of high school students in 1994. The ADD HEALTH data are constructed from the in-school questionnaire; 90,118 students representing 84 communities took this survey in 1994-95. Some communities had only one school; others had two. Where there are two schools in a community students from one school were allowed to name friends in the other, the "sister school."
+
+Each student was given a paper-and-pencil questionnaire and a copy of a roster listing every student in the school and, if the community had two schools, the student s provided with the roster of the "sister" school. The name generator asked about five male and five female friends separately. The question was, "List your closest (male/female) friends. List your best (male/female) friend first, then your next best friend, and so on. (girls/boys) may include (boys/girls) who are friends and (boy/girl) friends."
+For each friend named, the student was asked to check off whether he/she participated in any of five activities with the friend. These activities were:
+
+1. you went to (his/her) house in the last seven days.
+2. you met (him/her) after school to hang out or go somewhere in the last seven days.
+3. you spent time with (him/her) last weekend.
+4. you talked with (him/her) about a problem in the last seven days.
+5. you talked with (him/her) on the telephone in the last seven days.
+
+These activities were summed to create a valued network. Ties range in value from 1, meaning the student nominated the friend but reported no activities, to 6, meaning the student nominated the friend and reported participating in all five activities with the friend.
+
+Because nominations to friends in the sister school were allowed, the networks here are reported at the community level. When two schools were present in a community the data file includes a node-level indicator for school code, so one can easily extract choices from the separate schools.
+
+The friendship choices are recorded in the COMM files. And the COMM_ATT files include the sex, race, grade in school and, in communities that have two schools, the school code.
+
+Sex is coded 1=male, 2=female, 0=unreported. Race is coded 1=white, 2=black, 3=hispanic, 4=asian, 5=mixed/other, 0=unreported. Grade is recorded as a number between 7 and 12 with 0=unreported. And school codes are 0 and 1 when two schools were in a single community. """
+tags = ['Social', 'Offline', 'Weighted']
+url = 'http://moreno.ss.uci.edu/data.html'
+citation = [('J. Moody. "Peer influence groups: Identifying dense clusters in large networks." Social Networks 23(4), 261-283 (2001)', 'https://doi.org/10.1016/S0378-8733(01)00042-9')]
+icon_hash = '56a85c8e26855e083a2f7952'
+ustream_license = None
+upstream_prefix = 'http://moreno.ss.uci.edu'
+
+missing_att = [48]
+
+files = [((f'comm{c}.dat', f'comm{c}_att.dat') if c not in missing_att else f'comm{c}.dat',
+          f'comm{c}', None) for c in range(1, 85)]
+
+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
+        if isinstance(fnames, str):
+            fnames = [fnames]
+        with ExitStack() as stack:
+            fs = [stack.enter_context(open_upstream_file(name, fn, "r")) for fn in fnames]
+
+            g = Graph()
+            edges = numpy.loadtxt(fs[0], skiprows=4)
+            edges[:,0] -= 1
+            edges[:,1] -= 1
+            g.ep.activities = g.new_ep("int")
+            g.add_edge_list(edges, eprops=[g.ep.activities])
+
+            if len(fs) > 1:
+                for line in fs[1]:
+                    if "COLUMN LABELS:" in line:
+                        break
+                props = []
+                last_line = None
+                for line in fs[1]:
+                    last_line = line
+                    if "DATA:" in line or "LEVEL LABELS:" in line:
+                        break
+                    props.append(line.strip().strip('"').lower())
+                for i, p in enumerate(props):
+                    g.vp[p] = g.new_vp("int")
+                    props[i] = g.vp[p]
+                if "DATA:" not in last_line:
+                    for line in fs[1]:
+                        if "DATA:" in line:
+                            break
+                for i, line in enumerate(fs[1]):
+                    if "!" in line:
+                        break
+                    vals = [int(x) if x != "?" else 0 for x in line.split()]
+                    for j, val in enumerate(vals):
+                        props[j][i] = val
+        yield alt, g