logo Netzschleuder network catalog, repository, and centrifuge

History of facebook_wall

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 networks to existing entries by Tiago de Paula Peixoto 3023ce5
- digg_votes: the Digg friendship network (`friends`, next to `votes`)
- facebook_wall: the friendship links (`friends`, next to `wall`)
- interactome_vidal: CCSB's HI-I-05 interactions (`HI-I-05`, next to
  `maayan`)
- trackers: ssc.io's tracker embedding network (`trackers`, next to
  KONECT's `third_parties`), with corrected description and citations
- dblp_author_paper, dblp_cite, dblp_coauthor: the dblp release of
  2026-10-03 (`2026-10`, next to `2017`)
- fullerene_structures: year, licence and description
diff --git a/entries/facebook_wall/__init__.py b/entries/facebook_wall/__init__.py
index dc97063..a7a227c 100644
--- a/entries/facebook_wall/__init__.py
+++ b/entries/facebook_wall/__init__.py
@@ -18,22 +18,24 @@
 
 from .. import *
 
-title = "Facebook wall posts (2009)"
-description = """Wall posts among users of the New Orleans regional network of Facebook, collected by B. Viswanath, A. Mislove, M. Cha and K. P. Gummadi. The authors joined the regional network with several accounts, crawled its friendship graph in a breadth-first fashion between 29 December 2008 and 3 January 2009, starting from a single user, and then downloaded, between 20 and 22 January 2009, the entire wall history of the users found, as far as their profiles were visible to the members of the regional network (the default privacy setting). On Facebook, a user's friends can post messages on the user's wall, which are visible to the visitors of the user's profile. Only users in the giant connected component of the regional network could be crawled.
+title = "Facebook wall posts and friendships (2009)"
+description = """Wall posts and friendship links among users of the New Orleans regional network of Facebook, collected by B. Viswanath, A. Mislove, M. Cha and K. P. Gummadi. The authors joined the regional network with several accounts, crawled its friendship graph in a breadth-first fashion between 29 December 2008 and 3 January 2009, starting from a single user, and then downloaded, between 20 and 22 January 2009, the entire wall history of the users found, as far as their profiles were visible to the members of the regional network (the default privacy setting). On Facebook, a user's friends can post messages on the user's wall, which are visible to the visitors of the user's profile. Only users in the giant connected component of the regional network could be crawled. The user IDs were anonymized, but are the same in both networks of the collection:
 
-Nodes are users and a directed edge $(i,j)$ indicates that user $i$ posted on the wall of user $j$. Each wall post is a separate edge, so a pair of users can be connected by multiple edges, and posts by users on their own walls appear as self-loops. The posts span from September 2004 to January 2009. The user IDs were anonymized. (The friendship links of the same users are available from the same source.)
+- `wall`: the wall posts. Nodes are users and a directed edge $(i,j)$ indicates that user $i$ posted on the wall of user $j$. Each wall post is a separate edge, so a pair of users can be connected by multiple edges, and posts by users on their own walls appear as self-loops. The posts span from September 2004 to January 2009.
+- `friends`: the friendship links. Nodes are users and a directed edge $(i,j)$ indicates that user $j$ appeared in the friend list of user $i$. Friendships are symmetric on Facebook, but the links are given as directed in the source data, with their own times of establishment; for most (94%) of the links, the reverse link is also present. The times, determined by the authors when possible, span from September 2006 to January 2009, and are unknown for 41% of the links.
 
-The network has the following properties:
+The networks have the following properties:
 
 - `user_id`: the anonymized user ID in the source data.
-- `time`: the time of the wall post, in Unix time."""
+- `time` (edge): for `wall`, the time of the wall post; for `friends`, the time of the establishment of the link (-1 if unknown). In Unix time."""
 tags = ['Social', 'Online', 'Communication', 'Timestamps', 'Multigraph']
 url = 'http://socialnetworks.mpi-sws.org/data-wosn2009.html'
 citation = [('B. Viswanath, A. Mislove, M. Cha, K. P. Gummadi, "On the evolution of user interaction in Facebook." Proceedings of the 2nd ACM Workshop on Online Social Networks (WOSN \'09), 37-42 (2009)', 'https://doi.org/10.1145/1592665.1592675')]
 icon_hash = '56a85c8e26855e083a2f78d3'
 upstream_license = None
 upstream_prefix = 'http://socialnetworks.mpi-sws.mpg.de/data'
-files = [('facebook-wall.txt.gz', None, None)]
+files = [('facebook-wall.txt.gz', 'wall', None),
+         ('facebook-links.txt.gz', 'friends', None)]
 
 def fetch_upstream(force=False):
     return fetch_upstream_files(__name__.split(".")[-1], upstream_prefix, files,
@@ -49,12 +51,17 @@ def parse(alts=None):
     for fnames, alt, fmt in files:
         if alts is not None and alt not in alts:
             continue
-        # Lines 'u v time', meaning that user v posted on the wall of user u
         with open_upstream_file(name, fnames, "r") as f:
-            m = pandas.read_csv(f, sep="\t", header=None,
-                                dtype=numpy.int64).values
+            m = pandas.read_csv(f, sep="\t", header=None, na_values=["\\N"])
         g = Graph(directed=True)
         g.ep.time = g.new_ep("int64_t")
-        g.vp.user_id = g.add_edge_list(m[:, [1, 0, 2]], hashed=True,
-                                       eprops=[g.ep.time])
+        if alt == "wall":
+            # Lines 'u v time', meaning that user v posted on the wall of user u
+            m = m.values.astype("int64")[:, [1, 0, 2]]
+        else:
+            # Lines 'u v time', meaning that user v appeared in the friend list
+            # of user u; the time is '\\N' if unknown
+            m[2] = m[2].fillna(-1)
+            m = m.values.astype("int64")
+        g.vp.user_id = g.add_edge_list(m, hashed=True, eprops=[g.ep.time])
         yield alt, g
[entries] Move KONECT-derived entries to their original sources by Tiago de Paula Peixoto 45943ea
The entries now download the data from where KONECT obtained them (live
or via the Wayback Machine), gaining the metadata KONECT dropped (names,
identifiers, timestamps, attributes), with descriptions and citations
rewritten from the original sources:

- Ma'ayan lab collection: faa_routes, foodweb_little_rock (taxon names
  were assigned to the wrong nodes), interactome_pdz, interactome_figeys,
  interactome_stelzl, interactome_vidal
- Pajek collection and primary sources: word_assoc (from the Edinburgh
  Associative Thesaurus; KONECT dropped all counts >= 10), foldoc,
  new_guinea_tribes
- bitriad: elite, ceo_club (adds the CEO KONECT's copy lacked)
- Lovro Subelj: cora, euroroad (adds isolated cities and parallel roads)
- SNAP: elec (all votes, with elections and nominators)
- Zenodo: wiki_talk (user ids and roles)
- MPI-SWS: flickr_growth, facebook_wall (edges now point from poster to
  wall owner, as documented), wikipedia_growth (full timestamps)
- Other sources: prosper, jester, reactome (the 2014
  release KONECT used), unicodelang (CLDR 27), wordnet (WordNet 3.1),
  chicago_road (TNTP ChicagoRegional)
diff --git a/entries/facebook_wall/__init__.py b/entries/facebook_wall/__init__.py
index b3fb1f5..dc97063 100644
--- a/entries/facebook_wall/__init__.py
+++ b/entries/facebook_wall/__init__.py
@@ -19,14 +19,21 @@
 from .. import *
 
 title = "Facebook wall posts (2009)"
-description = """Friendship relationships and interactions (wall posts) for a subset of the Facebook social network in 2009, recorded over a 2 year period. Edge directed edge represents a post by one user on another user's FB wall.[^icon]
-[^icon]: Description obtained from the [ICON](https://icon.colorado.edu) project."""
-tags = ['Social', 'Online', 'Temporal', 'Multigraph']
-url = 'http://konect.cc/networks/facebook-wosn-wall'
-citation = [('B. Viswanath, A. Mislove, M. Cha, and K. P. Gummadi. "On the evolution of user interaction in Facebook." Proc. 2nd ACM SIGCOMM Workshop on Social Networks, 37-42 (2009)', 'https://doi.org/10.1145/1592665.1592675')]
+description = """Wall posts among users of the New Orleans regional network of Facebook, collected by B. Viswanath, A. Mislove, M. Cha and K. P. Gummadi. The authors joined the regional network with several accounts, crawled its friendship graph in a breadth-first fashion between 29 December 2008 and 3 January 2009, starting from a single user, and then downloaded, between 20 and 22 January 2009, the entire wall history of the users found, as far as their profiles were visible to the members of the regional network (the default privacy setting). On Facebook, a user's friends can post messages on the user's wall, which are visible to the visitors of the user's profile. Only users in the giant connected component of the regional network could be crawled.
+
+Nodes are users and a directed edge $(i,j)$ indicates that user $i$ posted on the wall of user $j$. Each wall post is a separate edge, so a pair of users can be connected by multiple edges, and posts by users on their own walls appear as self-loops. The posts span from September 2004 to January 2009. The user IDs were anonymized. (The friendship links of the same users are available from the same source.)
+
+The network has the following properties:
+
+- `user_id`: the anonymized user ID in the source data.
+- `time`: the time of the wall post, in Unix time."""
+tags = ['Social', 'Online', 'Communication', 'Timestamps', 'Multigraph']
+url = 'http://socialnetworks.mpi-sws.org/data-wosn2009.html'
+citation = [('B. Viswanath, A. Mislove, M. Cha, K. P. Gummadi, "On the evolution of user interaction in Facebook." Proceedings of the 2nd ACM Workshop on Online Social Networks (WOSN \'09), 37-42 (2009)', 'https://doi.org/10.1145/1592665.1592675')]
 icon_hash = '56a85c8e26855e083a2f78d3'
-upstream_prefix = 'http://konect.cc/files'
-files = [('download.tsv.facebook-wosn-wall.tar.bz2', None, 'konect')]
+upstream_license = None
+upstream_prefix = 'http://socialnetworks.mpi-sws.mpg.de/data'
+files = [('facebook-wall.txt.gz', None, None)]
 
 def fetch_upstream(force=False):
     return fetch_upstream_files(__name__.split(".")[-1], upstream_prefix, files,
@@ -36,14 +43,18 @@ def fetch_upstream(force=False):
 @coerce_props()
 @annotate()
 def parse(alts=None):
+    import pandas
     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, "rb")) for fn in fnames]
-            g = parse_graph(fs, fmt, directed=True)
+        # Lines 'u v time', meaning that user v posted on the wall of user u
+        with open_upstream_file(name, fnames, "r") as f:
+            m = pandas.read_csv(f, sep="\t", header=None,
+                                dtype=numpy.int64).values
+        g = Graph(directed=True)
+        g.ep.time = g.new_ep("int64_t")
+        g.vp.user_id = g.add_edge_list(m[:, [1, 0, 2]], hashed=True,
+                                       eprops=[g.ep.time])
         yield alt, g
Update copyright information by Tiago de Paula Peixoto 73a4f0d
diff --git a/entries/facebook_wall/__init__.py b/entries/facebook_wall/__init__.py
index 6549a22..b3fb1f5 100644
--- a/entries/facebook_wall/__init__.py
+++ b/entries/facebook_wall/__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/facebook_wall/__init__.py b/entries/facebook_wall/__init__.py
index 3d57f98..6549a22 100644
--- a/entries/facebook_wall/__init__.py
+++ b/entries/facebook_wall/__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/facebook_wall/__init__.py b/entries/facebook_wall/__init__.py
index 4160e7c..3d57f98 100644
--- a/entries/facebook_wall/__init__.py
+++ b/entries/facebook_wall/__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/facebook_wall/__init__.py b/entries/facebook_wall/__init__.py
index 9e88f2e..4160e7c 100644
--- a/entries/facebook_wall/__init__.py
+++ b/entries/facebook_wall/__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
Un-orphan KONECT datasets by Tiago de Paula Peixoto 894eba5
KONECT has been brought back from the dead for the time being.
diff --git a/entries/facebook_wall/__init__.py b/entries/facebook_wall/__init__.py
index 3a3dadc..9e88f2e 100644
--- a/entries/facebook_wall/__init__.py
+++ b/entries/facebook_wall/__init__.py
@@ -26,7 +26,6 @@ url = 'http://konect.cc/networks/facebook-wosn-wall'
 citation = [('B. Viswanath, A. Mislove, M. Cha, and K. P. Gummadi. "On the evolution of user interaction in Facebook." Proc. 2nd ACM SIGCOMM Workshop on Social Networks, 37-42 (2009)', 'https://doi.org/10.1145/1592665.1592675')]
 icon_hash = '56a85c8e26855e083a2f78d3'
 upstream_prefix = 'http://konect.cc/files'
-orphan = True
 files = [('download.tsv.facebook-wosn-wall.tar.bz2', None, 'konect')]
 
 def fetch_upstream(force=False):
Update citations to use DOIs by Tiago de Paula Peixoto e878874
diff --git a/entries/facebook_wall/__init__.py b/entries/facebook_wall/__init__.py
index 33e0c5a..3a3dadc 100644
--- a/entries/facebook_wall/__init__.py
+++ b/entries/facebook_wall/__init__.py
@@ -23,7 +23,7 @@ description = """Friendship relationships and interactions (wall posts) for a su
 [^icon]: Description obtained from the [ICON](https://icon.colorado.edu) project."""
 tags = ['Social', 'Online', 'Temporal', 'Multigraph']
 url = 'http://konect.cc/networks/facebook-wosn-wall'
-citation = [('B. Viswanath, A. Mislove, M. Cha, and K. P. Gummadi. "On the evolution of user interaction in Facebook." Proc. 2nd ACM SIGCOMM Workshop on Social Networks, 37-42 (2009)', 'http://www.mpi-sws.org/~gummadi/papers/wosn23-viswanath.pdf')]
+citation = [('B. Viswanath, A. Mislove, M. Cha, and K. P. Gummadi. "On the evolution of user interaction in Facebook." Proc. 2nd ACM SIGCOMM Workshop on Social Networks, 37-42 (2009)', 'https://doi.org/10.1145/1592665.1592675')]
 icon_hash = '56a85c8e26855e083a2f78d3'
 upstream_prefix = 'http://konect.cc/files'
 orphan = True
Add support for 'orphan' datasets and tag konect entries by Tiago de Paula Peixoto e330b80
diff --git a/entries/facebook_wall/__init__.py b/entries/facebook_wall/__init__.py
index 157f973..33e0c5a 100644
--- a/entries/facebook_wall/__init__.py
+++ b/entries/facebook_wall/__init__.py
@@ -26,6 +26,7 @@ url = 'http://konect.cc/networks/facebook-wosn-wall'
 citation = [('B. Viswanath, A. Mislove, M. Cha, and K. P. Gummadi. "On the evolution of user interaction in Facebook." Proc. 2nd ACM SIGCOMM Workshop on Social Networks, 37-42 (2009)', 'http://www.mpi-sws.org/~gummadi/papers/wosn23-viswanath.pdf')]
 icon_hash = '56a85c8e26855e083a2f78d3'
 upstream_prefix = 'http://konect.cc/files'
+orphan = True
 files = [('download.tsv.facebook-wosn-wall.tar.bz2', None, 'konect')]
 
 def fetch_upstream(force=False):
Change license from GPLv3 to AGPLv3 by Tiago de Paula Peixoto d754be5
diff --git a/entries/facebook_wall/__init__.py b/entries/facebook_wall/__init__.py
index 6507576..157f973 100644
--- a/entries/facebook_wall/__init__.py
+++ b/entries/facebook_wall/__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/facebook_wall/__init__.py b/entries/facebook_wall/__init__.py
index edb437e..6507576 100644
--- a/entries/facebook_wall/__init__.py
+++ b/entries/facebook_wall/__init__.py
@@ -19,7 +19,8 @@
 from .. import *
 
 title = "Facebook wall posts (2009)"
-description = "Friendship relationships and interactions (wall posts) for a subset of the Facebook social network in 2009, recorded over a 2 year period. Edge directed edge represents a post by one user on another user's FB wall."
+description = """Friendship relationships and interactions (wall posts) for a subset of the Facebook social network in 2009, recorded over a 2 year period. Edge directed edge represents a post by one user on another user's FB wall.[^icon]
+[^icon]: Description obtained from the [ICON](https://icon.colorado.edu) project."""
 tags = ['Social', 'Online', 'Temporal', 'Multigraph']
 url = 'http://konect.cc/networks/facebook-wosn-wall'
 citation = [('B. Viswanath, A. Mislove, M. Cha, and K. P. Gummadi. "On the evolution of user interaction in Facebook." Proc. 2nd ACM SIGCOMM Workshop on Social Networks, 37-42 (2009)', 'http://www.mpi-sws.org/~gummadi/papers/wosn23-viswanath.pdf')]
Initial commit by Tiago de Paula Peixoto cc85872
diff --git a/entries/facebook_wall/__init__.py b/entries/facebook_wall/__init__.py
new file mode 100644
index 0000000..edb437e
--- /dev/null
+++ b/entries/facebook_wall/__init__.py
@@ -0,0 +1,48 @@
+#! /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 = "Facebook wall posts (2009)"
+description = "Friendship relationships and interactions (wall posts) for a subset of the Facebook social network in 2009, recorded over a 2 year period. Edge directed edge represents a post by one user on another user's FB wall."
+tags = ['Social', 'Online', 'Temporal', 'Multigraph']
+url = 'http://konect.cc/networks/facebook-wosn-wall'
+citation = [('B. Viswanath, A. Mislove, M. Cha, and K. P. Gummadi. "On the evolution of user interaction in Facebook." Proc. 2nd ACM SIGCOMM Workshop on Social Networks, 37-42 (2009)', 'http://www.mpi-sws.org/~gummadi/papers/wosn23-viswanath.pdf')]
+icon_hash = '56a85c8e26855e083a2f78d3'
+upstream_prefix = 'http://konect.cc/files'
+files = [('download.tsv.facebook-wosn-wall.tar.bz2', None, 'konect')]
+
+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, "rb")) for fn in fnames]
+            g = parse_graph(fs, fmt, directed=True)
+        yield alt, g