History of new_guinea_tribes
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] Move KONECT-derived entries to their original sources 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/new_guinea_tribes/__init__.py b/entries/new_guinea_tribes/__init__.py
index 9d19480..017a59d 100644
--- a/entries/new_guinea_tribes/__init__.py
+++ b/entries/new_guinea_tribes/__init__.py
@@ -19,14 +19,23 @@
from .. import *
title = "New Guinea Highlands tribes (1954)"
-description = """A network of friendships among tribes of Gahuku-Gama alliance structure of the Eastern Central Highlands region in New Guinea. Edge sign indicates either friendship (\"rova\") or enmity (\"hint”).[^icon]
-[^icon]: Description obtained from the [ICON](https://icon.colorado.edu) project."""
+description = """A signed network of political alliances and enmities among 16 tribes of the Gahuku–Gama alliance structure of the Eastern Central Highlands of New Guinea, from the ethnography of Read (1954). Hage and Harary (1983) used it to illustrate a clusterable signed graph: the alliance structure comprises three tribal groups, and, unlike in a balanced structure, the enemy of an enemy can be either a friend or an enemy. The data are from the UCINET IV datasets collection (file `gama.dat`), as distributed in Vladimir Batagelj's Pajek data repository, where the signed graph is split into two symmetric binary matrices, GAMAPOS for the alliance ("rova") relation and GAMANEG for the antagonistic ("hina") relation.
+
+Nodes are tribes, and an undirected edge represents either an alliance or an enmity between two tribes (no pair is connected by both).
+
+The network has the following properties:
+
+- Nodes: `name`, the abbreviated tribe name.
+- Edges: `sign`, $+1$ for alliance ("rova", GAMAPOS) and $-1$ for enmity ("hina", GAMANEG)."""
tags = ['Social', 'Offline', 'Signed']
-url = 'http://konect.cc/networks/ucidata-gama'
-citation = [('K. Read, "Cultures of the central highlands, New Guinea." Southwestern Journal of Anthropology 10(1), 1-43 (1954)', 'https://doi.org/10.1086/soutjanth.10.1.3629074')]
+url = 'https://web.archive.org/web/20110610030242/http://vlado.fmf.uni-lj.si/pub/networks/data/UciNet/UciData.htm#gama'
+citation = [('K. E. Read, "Cultures of the central highlands, New Guinea." Southwestern Journal of Anthropology 10(1), 1-43 (1954)', 'https://doi.org/10.1086/soutjanth.10.1.3629074')]
icon_hash = '57e18d818cf714f319c38bde'
-upstream_prefix = 'http://konect.cc/files'
-files = [('download.tsv.ucidata-gama.tar.bz2', None, 'konect')]
+upstream_license = None
+# vlado.fmf.uni-lj.si is unreliable; the file is obtained from the Internet
+# Archive.
+upstream_prefix = 'https://web.archive.org/web/20130507134719id_/http://vlado.fmf.uni-lj.si/pub/networks/data/ucinet'
+files = [('gama.dat', None, 'dl')]
def fetch_upstream(force=False):
return fetch_upstream_files(__name__.split(".")[-1], upstream_prefix, files,
@@ -38,12 +47,15 @@ def fetch_upstream(force=False):
def parse(alts=None):
global files
name = __name__.split(".")[-1]
- for fnames, alt, fmt in files:
+ for fname, 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=False)
+ with open_upstream_file(name, fname, "rb") as f:
+ dl = read_dl(f)
+ assert dl["levels"] == ["GAMAPOS", "GAMANEG"]
+ pos, neg = dl["data"]
+ assert (pos == pos.T).all() and (neg == neg.T).all()
+ assert not ((pos != 0) & (neg != 0)).any()
+ g = adjacency_graph(pos - neg, directed=False, labels=dl["rows"],
+ weight="sign", int_weight=True)
yield alt, g
Update copyright information 73a4f0d
diff --git a/entries/new_guinea_tribes/__init__.py b/entries/new_guinea_tribes/__init__.py
index fdf889a..9d19480 100644
--- a/entries/new_guinea_tribes/__init__.py
+++ b/entries/new_guinea_tribes/__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 3d288ea
diff --git a/entries/new_guinea_tribes/__init__.py b/entries/new_guinea_tribes/__init__.py
index 13e20a4..fdf889a 100644
--- a/entries/new_guinea_tribes/__init__.py
+++ b/entries/new_guinea_tribes/__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 8d005ae
diff --git a/entries/new_guinea_tribes/__init__.py b/entries/new_guinea_tribes/__init__.py
index 796303f..13e20a4 100644
--- a/entries/new_guinea_tribes/__init__.py
+++ b/entries/new_guinea_tribes/__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 db2efcc
diff --git a/entries/new_guinea_tribes/__init__.py b/entries/new_guinea_tribes/__init__.py
index a6d0695..796303f 100644
--- a/entries/new_guinea_tribes/__init__.py
+++ b/entries/new_guinea_tribes/__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 894eba5
KONECT has been brought back from the dead for the time being.
diff --git a/entries/new_guinea_tribes/__init__.py b/entries/new_guinea_tribes/__init__.py
index ed7957b..a6d0695 100644
--- a/entries/new_guinea_tribes/__init__.py
+++ b/entries/new_guinea_tribes/__init__.py
@@ -26,7 +26,6 @@ url = 'http://konect.cc/networks/ucidata-gama'
citation = [('K. Read, "Cultures of the central highlands, New Guinea." Southwestern Journal of Anthropology 10(1), 1-43 (1954)', 'https://doi.org/10.1086/soutjanth.10.1.3629074')]
icon_hash = '57e18d818cf714f319c38bde'
upstream_prefix = 'http://konect.cc/files'
-orphan = True
files = [('download.tsv.ucidata-gama.tar.bz2', None, 'konect')]
def fetch_upstream(force=False):
Update citations to use DOIs e878874
diff --git a/entries/new_guinea_tribes/__init__.py b/entries/new_guinea_tribes/__init__.py
index 810a411..ed7957b 100644
--- a/entries/new_guinea_tribes/__init__.py
+++ b/entries/new_guinea_tribes/__init__.py
@@ -23,7 +23,7 @@ description = """A network of friendships among tribes of Gahuku-Gama alliance s
[^icon]: Description obtained from the [ICON](https://icon.colorado.edu) project."""
tags = ['Social', 'Offline', 'Signed']
url = 'http://konect.cc/networks/ucidata-gama'
-citation = [('K. Read, "Cultures of the central highlands, New Guinea." Southwestern Journal of Anthropology 10(1), 1-43 (1954)', 'http://www.jstor.org/stable/3629074')]
+citation = [('K. Read, "Cultures of the central highlands, New Guinea." Southwestern Journal of Anthropology 10(1), 1-43 (1954)', 'https://doi.org/10.1086/soutjanth.10.1.3629074')]
icon_hash = '57e18d818cf714f319c38bde'
upstream_prefix = 'http://konect.cc/files'
orphan = True
Add support for 'orphan' datasets and tag konect entries e330b80
diff --git a/entries/new_guinea_tribes/__init__.py b/entries/new_guinea_tribes/__init__.py
index ab4c3cd..810a411 100644
--- a/entries/new_guinea_tribes/__init__.py
+++ b/entries/new_guinea_tribes/__init__.py
@@ -26,6 +26,7 @@ url = 'http://konect.cc/networks/ucidata-gama'
citation = [('K. Read, "Cultures of the central highlands, New Guinea." Southwestern Journal of Anthropology 10(1), 1-43 (1954)', 'http://www.jstor.org/stable/3629074')]
icon_hash = '57e18d818cf714f319c38bde'
upstream_prefix = 'http://konect.cc/files'
+orphan = True
files = [('download.tsv.ucidata-gama.tar.bz2', None, 'konect')]
def fetch_upstream(force=False):
Change license from GPLv3 to AGPLv3 d754be5
diff --git a/entries/new_guinea_tribes/__init__.py b/entries/new_guinea_tribes/__init__.py
index 4eb4458..ab4c3cd 100644
--- a/entries/new_guinea_tribes/__init__.py
+++ b/entries/new_guinea_tribes/__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 1645314
diff --git a/entries/new_guinea_tribes/__init__.py b/entries/new_guinea_tribes/__init__.py
index c7eb590..4eb4458 100644
--- a/entries/new_guinea_tribes/__init__.py
+++ b/entries/new_guinea_tribes/__init__.py
@@ -19,7 +19,8 @@
from .. import *
title = "New Guinea Highlands tribes (1954)"
-description = "A network of friendships among tribes of Gahuku-Gama alliance structure of the Eastern Central Highlands region in New Guinea. Edge sign indicates either friendship (\"rova\") or enmity (\"hint”)."
+description = """A network of friendships among tribes of Gahuku-Gama alliance structure of the Eastern Central Highlands region in New Guinea. Edge sign indicates either friendship (\"rova\") or enmity (\"hint”).[^icon]
+[^icon]: Description obtained from the [ICON](https://icon.colorado.edu) project."""
tags = ['Social', 'Offline', 'Signed']
url = 'http://konect.cc/networks/ucidata-gama'
citation = [('K. Read, "Cultures of the central highlands, New Guinea." Southwestern Journal of Anthropology 10(1), 1-43 (1954)', 'http://www.jstor.org/stable/3629074')]
Initial commit cc85872
diff --git a/entries/new_guinea_tribes/__init__.py b/entries/new_guinea_tribes/__init__.py
new file mode 100644
index 0000000..c7eb590
--- /dev/null
+++ b/entries/new_guinea_tribes/__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 = "New Guinea Highlands tribes (1954)"
+description = "A network of friendships among tribes of Gahuku-Gama alliance structure of the Eastern Central Highlands region in New Guinea. Edge sign indicates either friendship (\"rova\") or enmity (\"hint”)."
+tags = ['Social', 'Offline', 'Signed']
+url = 'http://konect.cc/networks/ucidata-gama'
+citation = [('K. Read, "Cultures of the central highlands, New Guinea." Southwestern Journal of Anthropology 10(1), 1-43 (1954)', 'http://www.jstor.org/stable/3629074')]
+icon_hash = '57e18d818cf714f319c38bde'
+upstream_prefix = 'http://konect.cc/files'
+files = [('download.tsv.ucidata-gama.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=False)
+ yield alt, g