History of hens
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 more KONECT-derived entries to their original sources bf9dc0e
The entries now download the data from where KONECT obtained them (live, or via the Wayback Machine), using the same release as KONECT where it is still available, and gain the metadata KONECT dropped; descriptions and citations are rewritten from the original sources: - Linton Freeman's UCINET data page: bible_nouns, bison, cattle, hens, highschool, kangaroo, macaques, moreno_sheep, physician_trust (the three relations and the physicians' attributes), rhesus_monkey, train_terrorists, windsurfers (now the networks `interaction` and `closeness`), college_freshmen, crime, interactome_yeast (from the primary source), moreno_taro (undirected), residence_hall, zebras - other pages, archived: contiguous_usa, advogato, google, github, digg_reply, twitter, bookcrossing, dbtropes_feature (without KONECT's spurious "ItemName" tropes) - movielens_100k (in fact the MovieLens 10M tag assignments) - dblp release 2017-05-02: dblp_author_paper, dblp_cite, dblp_coauthor - DBpedia 3.9: dbpedia_country, dbpedia_genre, dbpedia_location, dbpedia_occupation, dbpedia_producer, dbpedia_recordlabel, dbpedia_starring, dbpedia_team, dbpedia_writer, dbpedia_all, dbpedia_link - Discogs releases dump of October 2015: discogs_affiliation, discogs_genre and discogs_label (now with genre and style networks)
diff --git a/entries/hens/__init__.py b/entries/hens/__init__.py
index 9b2ef23..8e6429b 100644
--- a/entries/hens/__init__.py
+++ b/entries/hens/__init__.py
@@ -19,21 +19,29 @@
from .. import *
title = "White Leghorn hens (1946)"
-description = """Dominance interactions (pecking) among a group of White Leghorn hens, observed in 1946. Edge weights represent the frequency of interaction. The two versions below are equivalent.[^icon]
-[^icon]: Description obtained from the [ICON](https://icon.colorado.edu) project."""
-tags = ['Social', 'Animal', 'Weighted']
-url = 'http://konect.cc/networks/moreno_hens'
-citation = [('A.M. Guhl. "Social behavior of the domestic fowl." Manhattan, Kansas: Kansas State College, Agricultural Experiment Station, Technical Bulletin 73 (1953)', 'https://doi.org/10.2307/3627156')]
+description = """The "peck order" of a flock of 32 White Leghorn hens studied by A. M. Guhl in 1946. According to the author, temporal changes are rare: once a hen dominates another, the pattern persists. The data were distributed by L. C. Freeman on his network data page at the University of California, Irvine (no longer online), from which this version was obtained via the Internet Archive.
+
+A directed edge (i, j) indicates that hen i can peck hen j.
+
+The network has the following properties:
+
+- Nodes: `name`, the label of the hen. The source file lists only 21 labels for the 32 hens; as prescribed by the file format, they are assigned to the first 21 hens, and the remaining 11 hens have empty labels."""
+tags = ['Social', 'Animal', 'Unweighted', 'Metadata']
+url = 'https://web.archive.org/web/20210115130726/http://moreno.ss.uci.edu/data.html#hens'
+citation = [('A. M. Guhl, "Social behavior of the domestic fowl." Technical Bulletin 73, Kansas State College, Agricultural Experiment Station, Manhattan, Kansas (1953)', 'https://scholar.google.com/scholar?q=Guhl+%22Social+behavior+of+the+domestic+fowl%22+1953')]
icon_hash = '57349f90461efe0c7a67832c'
-upstream_prefix = 'http://konect.cc/files'
-files = [('download.tsv.moreno_hens.tar.bz2', None, 'konect')]
+upstream_license = None
+upstream_prefix = 'https://web.archive.org/web/20210115130726id_/http://moreno.ss.uci.edu'
+files = [('hens.dat', None, None)]
def fetch_upstream(force=False):
- return fetch_upstream_files(__name__.split(".")[-1], upstream_prefix, files,
- force)
+ # The Wayback Machine refuses connections or fails when rate-limited, so
+ # retry with increasing pauses (files already fetched are skipped)
+ return retry_download(fetch_upstream_files, __name__.split(".")[-1],
+ upstream_prefix, files, force)
@cache_network()
-@coerce_props()
+@coerce_props(vforce={"name": "string"})
@annotate()
def parse(alts=None):
global files
@@ -44,6 +52,12 @@ def parse(alts=None):
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)
+ fs = [stack.enter_context(open_upstream_file(name, fn, "rb"))
+ for fn in fnames]
+ ds = [read_dl(f, pad=False) for f in fs]
+ d = ds[0]
+ g = matrix_graph(d["data"], True, wtype=None)
+ # the file has fewer labels than hens
+ labels = d["rows"] + [""] * (d["nr"] - len(d["rows"]))
+ g.vp.name = g.new_vp("string", vals=labels)
yield alt, g
Update copyright information 73a4f0d
diff --git a/entries/hens/__init__.py b/entries/hens/__init__.py
index da6b33d..9b2ef23 100644
--- a/entries/hens/__init__.py
+++ b/entries/hens/__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/hens/__init__.py b/entries/hens/__init__.py
index f94c7cd..da6b33d 100644
--- a/entries/hens/__init__.py
+++ b/entries/hens/__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/hens/__init__.py b/entries/hens/__init__.py
index aa4f413..f94c7cd 100644
--- a/entries/hens/__init__.py
+++ b/entries/hens/__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/hens/__init__.py b/entries/hens/__init__.py
index dc181b9..aa4f413 100644
--- a/entries/hens/__init__.py
+++ b/entries/hens/__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/hens/__init__.py b/entries/hens/__init__.py
index 7e8bf6d..dc181b9 100644
--- a/entries/hens/__init__.py
+++ b/entries/hens/__init__.py
@@ -26,7 +26,6 @@ url = 'http://konect.cc/networks/moreno_hens'
citation = [('A.M. Guhl. "Social behavior of the domestic fowl." Manhattan, Kansas: Kansas State College, Agricultural Experiment Station, Technical Bulletin 73 (1953)', 'https://doi.org/10.2307/3627156')]
icon_hash = '57349f90461efe0c7a67832c'
upstream_prefix = 'http://konect.cc/files'
-orphan = True
files = [('download.tsv.moreno_hens.tar.bz2', None, 'konect')]
def fetch_upstream(force=False):
Update citations to use DOIs e878874
diff --git a/entries/hens/__init__.py b/entries/hens/__init__.py
index 11512d5..7e8bf6d 100644
--- a/entries/hens/__init__.py
+++ b/entries/hens/__init__.py
@@ -23,7 +23,7 @@ description = """Dominance interactions (pecking) among a group of White Leghorn
[^icon]: Description obtained from the [ICON](https://icon.colorado.edu) project."""
tags = ['Social', 'Animal', 'Weighted']
url = 'http://konect.cc/networks/moreno_hens'
-citation = [('A.M. Guhl. "Social behavior of the domestic fowl." Manhattan, Kansas: Kansas State College, Agricultural Experiment Station, Technical Bulletin 73 (1953)', 'http://www.jstor.org/stable/3627156')]
+citation = [('A.M. Guhl. "Social behavior of the domestic fowl." Manhattan, Kansas: Kansas State College, Agricultural Experiment Station, Technical Bulletin 73 (1953)', 'https://doi.org/10.2307/3627156')]
icon_hash = '57349f90461efe0c7a67832c'
upstream_prefix = 'http://konect.cc/files'
orphan = True
Add support for 'orphan' datasets and tag konect entries e330b80
diff --git a/entries/hens/__init__.py b/entries/hens/__init__.py
index a386706..11512d5 100644
--- a/entries/hens/__init__.py
+++ b/entries/hens/__init__.py
@@ -26,6 +26,7 @@ url = 'http://konect.cc/networks/moreno_hens'
citation = [('A.M. Guhl. "Social behavior of the domestic fowl." Manhattan, Kansas: Kansas State College, Agricultural Experiment Station, Technical Bulletin 73 (1953)', 'http://www.jstor.org/stable/3627156')]
icon_hash = '57349f90461efe0c7a67832c'
upstream_prefix = 'http://konect.cc/files'
+orphan = True
files = [('download.tsv.moreno_hens.tar.bz2', None, 'konect')]
def fetch_upstream(force=False):
Change license from GPLv3 to AGPLv3 d754be5
diff --git a/entries/hens/__init__.py b/entries/hens/__init__.py
index 37baba9..a386706 100644
--- a/entries/hens/__init__.py
+++ b/entries/hens/__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/hens/__init__.py b/entries/hens/__init__.py
index 0afe5d3..37baba9 100644
--- a/entries/hens/__init__.py
+++ b/entries/hens/__init__.py
@@ -19,7 +19,8 @@
from .. import *
title = "White Leghorn hens (1946)"
-description = "Dominance interactions (pecking) among a group of White Leghorn hens, observed in 1946. Edge weights represent the frequency of interaction. The two versions below are equivalent."
+description = """Dominance interactions (pecking) among a group of White Leghorn hens, observed in 1946. Edge weights represent the frequency of interaction. The two versions below are equivalent.[^icon]
+[^icon]: Description obtained from the [ICON](https://icon.colorado.edu) project."""
tags = ['Social', 'Animal', 'Weighted']
url = 'http://konect.cc/networks/moreno_hens'
citation = [('A.M. Guhl. "Social behavior of the domestic fowl." Manhattan, Kansas: Kansas State College, Agricultural Experiment Station, Technical Bulletin 73 (1953)', 'http://www.jstor.org/stable/3627156')]
Initial commit cc85872
diff --git a/entries/hens/__init__.py b/entries/hens/__init__.py
new file mode 100644
index 0000000..0afe5d3
--- /dev/null
+++ b/entries/hens/__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 = "White Leghorn hens (1946)"
+description = "Dominance interactions (pecking) among a group of White Leghorn hens, observed in 1946. Edge weights represent the frequency of interaction. The two versions below are equivalent."
+tags = ['Social', 'Animal', 'Weighted']
+url = 'http://konect.cc/networks/moreno_hens'
+citation = [('A.M. Guhl. "Social behavior of the domestic fowl." Manhattan, Kansas: Kansas State College, Agricultural Experiment Station, Technical Bulletin 73 (1953)', 'http://www.jstor.org/stable/3627156')]
+icon_hash = '57349f90461efe0c7a67832c'
+upstream_prefix = 'http://konect.cc/files'
+files = [('download.tsv.moreno_hens.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