__init__.py 2.2 KB
Newer Older
Tiago Peixoto's avatar
Tiago Peixoto committed
1
2
3
#! /usr/bin/env python
# -*- coding: utf-8 -*-
#
Tiago Peixoto's avatar
Tiago Peixoto committed
4
# Copyright (C) 2021 Tiago de Paula Peixoto <tiago@skewed.de>
Tiago Peixoto's avatar
Tiago Peixoto committed
5
#
6
7
8
9
# 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.
Tiago Peixoto's avatar
Tiago Peixoto committed
10
#
11
12
13
14
# 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.
Tiago Peixoto's avatar
Tiago Peixoto committed
15
#
16
17
# 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/>.
Tiago Peixoto's avatar
Tiago Peixoto committed
18
19
20
21

from .. import *

title = "Person-Country Affiliations (DBpedia, 2016)"
22
23
description = """A bipartite network of the affiliations between notable people and countries of the world, as extracted from Wikipedia via the DBpedia project. Countries include former countries, empires, kingdoms, and some country-like entities.[^icon]
[^icon]: Description obtained from the [ICON](https://icon.colorado.edu) project."""
Tiago Peixoto's avatar
Tiago Peixoto committed
24
25
tags = ['Social', 'Affiliation', 'Unweighted']
url = 'http://konect.cc/networks/dbpedia-country'
Tiago Peixoto's avatar
Tiago Peixoto committed
26
citation = [('S. Auer et al. "DBpedia: A nucleus for a web of open data." In Proc. Int. Semantic Web Conf. (ISWC), 722-735 (2008)', 'https://doi.org/10.1007/978-3-540-76298-0_52')]
Tiago Peixoto's avatar
Tiago Peixoto committed
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
icon_hash = '57340d36461efe0c7a6782f3'
upstream_prefix = 'http://konect.cc/files'
files = [('download.tsv.dbpedia-country.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