logo Netzschleuder network catalog, repository, and centrifuge

History of dbpedia_all

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/dbpedia_all/__init__.py b/entries/dbpedia_all/__init__.py
index 1fe6c6e..9d9e9d9 100644
--- a/entries/dbpedia_all/__init__.py
+++ b/entries/dbpedia_all/__init__.py
@@ -36,7 +36,7 @@ tags = ['Informational', 'Relatedness', 'Unweighted', 'Multigraph', 'Metadata']
 url = 'https://downloads.dbpedia.org/3.9/en/'
 citation = [('S. Auer, C. Bizer, G. Kobilarov, J. Lehmann, R. Cyganiak, Z. Ives, "DBpedia: A nucleus for a web of open data." In The Semantic Web (ISWC 2007 + ASWC 2007), Lecture Notes in Computer Science 4825, 722-735 (2007)', 'https://doi.org/10.1007/978-3-540-76298-0_52'),
             ('J. Lehmann et al., "DBpedia - A large-scale, multilingual knowledge base extracted from Wikipedia." Semantic Web 6(2), 167-195 (2015)', 'https://doi.org/10.3233/SW-140134')]
-icon_hash = '58322a588cf714f319c427ab'
+date_added = '2020-08-11'
 upstream_license = ("Creative Commons Attribution-ShareAlike 3.0 (CC BY-SA 3.0)",
                     "https://creativecommons.org/licenses/by-sa/3.0/")
 upstream_prefix = 'https://downloads.dbpedia.org/3.9/en'
[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/dbpedia_all/__init__.py b/entries/dbpedia_all/__init__.py
index 1c437ca..1fe6c6e 100644
--- a/entries/dbpedia_all/__init__.py
+++ b/entries/dbpedia_all/__init__.py
@@ -29,9 +29,9 @@ Objects do not necessarily have an infobox, or even a Wikipedia article, of thei
 
 The network has the following properties:
 
-- `name`: for DBpedia resources, the name of the resource, i.e. the title of the corresponding English Wikipedia article (with underscores instead of spaces), with the percent-encoding of the URI decoded; for other nodes, the full URI.
-- `type`: the most specific class of the resource in the DBpedia ontology, from the "Mapping-based Types" dataset of the same release (empty if the resource has no type, e.g. because it has no infobox mapped to the ontology).
-- Edges: `relation`, the predicate of the triple, abbreviated with the prefixes `dbo:` (DBpedia ontology), `rdf:`, `skos:` and `foaf:`."""
+- (Node) `name`: for DBpedia resources, the name of the resource, i.e. the title of the corresponding English Wikipedia article (with underscores instead of spaces), with the percent-encoding of the URI decoded; for other nodes, the full URI.
+- (Node) `type`: the most specific class of the resource in the DBpedia ontology, from the "Mapping-based Types" dataset of the same release (empty if the resource has no type, e.g. because it has no infobox mapped to the ontology).
+- (Edge) `relation`: the predicate of the triple, abbreviated with the prefixes `dbo:` (DBpedia ontology), `rdf:`, `skos:` and `foaf:`."""
 tags = ['Informational', 'Relatedness', 'Unweighted', 'Multigraph', 'Metadata']
 url = 'https://downloads.dbpedia.org/3.9/en/'
 citation = [('S. Auer, C. Bizer, G. Kobilarov, J. Lehmann, R. Cyganiak, Z. Ives, "DBpedia: A nucleus for a web of open data." In The Semantic Web (ISWC 2007 + ASWC 2007), Lecture Notes in Computer Science 4825, 722-735 (2007)', 'https://doi.org/10.1007/978-3-540-76298-0_52'),
[entries] Merge duplicate entries and add cross-references between related ones by Tiago de Paula Peixoto 9bc6033
- Removed duplicates, merged into the entries holding the same data:
  dblp_coauthor_snap (soc_net_comms), cattle and bison (dom; bison's
  breeding data move there, as do the wolves' age and sex),
  football_tsevans (football, with both conference assignments),
  eu_procurements_alt (eu_procurements), foursquare_friendships
  (foursquare_global).
- software_dependencies: colt and scolt are one network; ambassador: the
  duplicate 2001 network is dropped and the three same-edge networks
  combined; dom: the dataset count corrected (436).
- macaque_neural: Young's 71-area network added (young71; the 47-area one
  is now cocomac47), both from archived copies.
- collins_yeast, celegans_interactomes: from archived copies of the dead
  CCSB site (byte-identical files).
- Cross-references between entries holding versions of the same data
  (food webs, Wikipedia, Slashdot, physicians, SNAP/Mislove, CCSB).
- ICON ids of duplicate records added; macaque_neural's corrected.
- prosper, dbpedia_all: string properties given in edge-index order (needs
  graph-tool with the fixed vals ordering).
diff --git a/entries/dbpedia_all/__init__.py b/entries/dbpedia_all/__init__.py
index 534d3e2..1c437ca 100644
--- a/entries/dbpedia_all/__init__.py
+++ b/entries/dbpedia_all/__init__.py
@@ -119,10 +119,7 @@ def parse(alts=None):
     edges = numpy.frombuffer(edges, dtype="int64").reshape(-1, 3)
     g.add_edge_list(edges[:, :2])
     rnames = numpy.array([_relation(p) for p in rels], dtype=object)
-    # String values are assigned in the order of iteration over the edges,
-    # not of edge index
-    order = g.get_edges([g.edge_index])[:, 2]
-    g.ep.relation = g.new_ep("string", vals=rnames[edges[order, 2]])
+    g.ep.relation = g.new_ep("string", vals=rnames[edges[:, 2]])
     del edges
     g.vp.name = g.new_vp("string", vals=[_node_name(u) for u in nodes])
     g.vp.type = g.new_vp("string", vals=[types.get(u, "") for u in nodes])
[entries] Move more KONECT-derived entries to their original sources by Tiago de Paula Peixoto 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/dbpedia_all/__init__.py b/entries/dbpedia_all/__init__.py
index 7fe9ed8..534d3e2 100644
--- a/entries/dbpedia_all/__init__.py
+++ b/entries/dbpedia_all/__init__.py
@@ -17,33 +17,113 @@
 # with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 from .. import *
+import array
+import bz2
+import re
+import urllib.parse
 
-title = "DBpedia network (v3.6)"
-description = """A network among all entries in DBpedia, a project that extracts structured information from Wikipedia. Nodes represent entities in DBpedia and an edge connects two entities based on DBpedia's notion of their relatedness. The data is extracted from the version 3.6 of the database.[^icon]
-[^icon]: Description obtained from the [ICON](https://icon.colorado.edu) project."""
-tags = ['Informational', 'Relatedness', 'Unweighted', 'Multigraph']
-url = 'http://konect.cc/networks/dbpedia-all'
-citation = [('S. Auer, et al. "Dbpedia: A nucleus for a web of open data." Proc. Int. Semantic Web Conf., 722-735 (2008)', 'https://doi.org/10.1007/978-3-540-76298-0_52')]
+title = "DBpedia network (v3.9, 2013)"
+description = """A directed network of the relations between the entities of DBpedia, a project that extracts structured information from Wikipedia. The data are from version 3.9 of DBpedia, which was extracted from the English Wikipedia dumps of late March / early April 2013 and published in September 2013. It contains every triple of the "Mapping-based Properties (Cleaned)" dataset of the release whose object is a resource rather than a literal value; this dataset holds the information of the Wikipedia infoboxes mapped onto the DBpedia ontology, from which the statements identified as incorrect by heuristic inference were removed. Nodes are resources (mostly entities with a Wikipedia article, such as people, places, organizations or works), and a directed edge $(i,j)$ is a triple stating that resource $i$ has a relation to resource $j$, e.g. that a person ($i$) was born in a place ($j$); repeated edges correspond to different relations between the same resources, and self-loops (7,665 triples) are kept. The relations are almost all properties of the DBpedia ontology (e.g. `dbo:birthPlace`, `dbo:team`, `dbo:genre`), but also include `rdf:type` statements pointing to the class `gml:_Feature` (for places with coordinates), `skos:subject`, and FOAF properties whose objects are web pages and images (e.g. `foaf:homepage`, `foaf:depiction`), which are nodes as well.
+
+Objects do not necessarily have an infobox, or even a Wikipedia article, of their own (e.g. when the infobox links to a missing article). Besides proper Wikipedia articles, some resources are intermediate nodes created by DBpedia for parts of an infobox, named after the article with a suffix `__<n>`.
+
+The network has the following properties:
+
+- `name`: for DBpedia resources, the name of the resource, i.e. the title of the corresponding English Wikipedia article (with underscores instead of spaces), with the percent-encoding of the URI decoded; for other nodes, the full URI.
+- `type`: the most specific class of the resource in the DBpedia ontology, from the "Mapping-based Types" dataset of the same release (empty if the resource has no type, e.g. because it has no infobox mapped to the ontology).
+- Edges: `relation`, the predicate of the triple, abbreviated with the prefixes `dbo:` (DBpedia ontology), `rdf:`, `skos:` and `foaf:`."""
+tags = ['Informational', 'Relatedness', 'Unweighted', 'Multigraph', 'Metadata']
+url = 'https://downloads.dbpedia.org/3.9/en/'
+citation = [('S. Auer, C. Bizer, G. Kobilarov, J. Lehmann, R. Cyganiak, Z. Ives, "DBpedia: A nucleus for a web of open data." In The Semantic Web (ISWC 2007 + ASWC 2007), Lecture Notes in Computer Science 4825, 722-735 (2007)', 'https://doi.org/10.1007/978-3-540-76298-0_52'),
+            ('J. Lehmann et al., "DBpedia - A large-scale, multilingual knowledge base extracted from Wikipedia." Semantic Web 6(2), 167-195 (2015)', 'https://doi.org/10.3233/SW-140134')]
 icon_hash = '58322a588cf714f319c427ab'
-upstream_prefix = 'http://konect.cc/files'
-files = [('download.tsv.dbpedia-all.tar.bz2', None, 'konect')]
+upstream_license = ("Creative Commons Attribution-ShareAlike 3.0 (CC BY-SA 3.0)",
+                    "https://creativecommons.org/licenses/by-sa/3.0/")
+upstream_prefix = 'https://downloads.dbpedia.org/3.9/en'
+files = [(('mappingbased_properties_cleaned_en.nt.bz2', 'instance_types_en.nt.bz2'),
+          None, None)]
 
 def fetch_upstream(force=False):
     return fetch_upstream_files(__name__.split(".")[-1], upstream_prefix, files,
                                 force)
 
+_res = b"<http://dbpedia.org/resource/"
+_ntesc = re.compile(r"\\u([0-9A-Fa-f]{4})|\\U([0-9A-Fa-f]{8})|\\(.)")
+_ntchr = {"t": "\t", "n": "\n", "r": "\r", "b": "\b", "f": "\f"}
+_prefixes = [("http://dbpedia.org/ontology/", "dbo:"),
+             ("http://www.w3.org/1999/02/22-rdf-syntax-ns#", "rdf:"),
+             ("http://www.w3.org/2004/02/skos/core#", "skos:"),
+             ("http://xmlns.com/foaf/0.1/", "foaf:")]
+
+def _unescape(s):
+    """Decode the escapes of N-Triples strings and URIs."""
+    return _ntesc.sub(lambda m: (chr(int(m.group(1) or m.group(2), 16))
+                                 if m.group(3) is None
+                                 else _ntchr.get(m.group(3), m.group(3))), s)
+
+def _node_name(uri):
+    """Name of a node, from its N-Triples URI token."""
+    if uri.startswith(_res):
+        return urllib.parse.unquote(_unescape(uri[len(_res):-1].decode("utf-8")))
+    return _unescape(uri[1:-1].decode("utf-8"))
+
+def _relation(uri):
+    s = _unescape(uri[1:-1].decode("utf-8"))
+    for p, abbr in _prefixes:
+        if s.startswith(p):
+            return abbr + s[len(p):]
+    return s
+
+def read_types(f, uris):
+    """Most specific DBpedia ontology class of each resource in uris (the
+    first one listed in the file, which is the most specific one)."""
+    rdftype = b" <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://dbpedia.org/ontology/"
+    types = {}
+    for line in f:
+        i = line.find(rdftype)
+        if i < 0:
+            continue
+        s = line[:i]
+        if s not in uris or s in types:
+            continue
+        types[s] = line[i + len(rdftype):].split(b">", 1)[0].decode()
+    return types
+
 @cache_network()
-@coerce_props()
+@coerce_props(vforce={"name": "string", "type": "string"},
+              eforce={"relation": "string"})
 @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
+    (fmap, ftypes), alt, fmt = files[0]
+    # Triples whose object is a URI (the same selection as KONECT's)
+    triple = re.compile(rb"^\s*(<\S+>)\s+(<\S+>)\s+(<\S+>)\s+\.\s*$")
+    nodes = {}
+    rels = {}
+    edges = array.array("l")
+    with open_upstream_file(name, fmap, "rb") as f:
+        with bz2.open(f) as bf:
+            for line in bf:
+                m = triple.match(line)
+                if m is None:
+                    continue
+                s, p, o = m.groups()
+                edges.extend((nodes.setdefault(s, len(nodes)),
+                              nodes.setdefault(o, len(nodes)),
+                              rels.setdefault(p, len(rels))))
+    with open_upstream_file(name, ftypes, "rb") as f:
+        with bz2.open(f) as bf:
+            types = read_types(bf, nodes)
+    g = Graph(directed=True)
+    g.add_vertex(len(nodes))
+    edges = numpy.frombuffer(edges, dtype="int64").reshape(-1, 3)
+    g.add_edge_list(edges[:, :2])
+    rnames = numpy.array([_relation(p) for p in rels], dtype=object)
+    # String values are assigned in the order of iteration over the edges,
+    # not of edge index
+    order = g.get_edges([g.edge_index])[:, 2]
+    g.ep.relation = g.new_ep("string", vals=rnames[edges[order, 2]])
+    del edges
+    g.vp.name = g.new_vp("string", vals=[_node_name(u) for u in nodes])
+    g.vp.type = g.new_vp("string", vals=[types.get(u, "") for u in nodes])
+    yield None, g
Update copyright information by Tiago de Paula Peixoto 73a4f0d
diff --git a/entries/dbpedia_all/__init__.py b/entries/dbpedia_all/__init__.py
index b41a68a..7fe9ed8 100644
--- a/entries/dbpedia_all/__init__.py
+++ b/entries/dbpedia_all/__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/dbpedia_all/__init__.py b/entries/dbpedia_all/__init__.py
index 1fea62f..b41a68a 100644
--- a/entries/dbpedia_all/__init__.py
+++ b/entries/dbpedia_all/__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/dbpedia_all/__init__.py b/entries/dbpedia_all/__init__.py
index a9b3714..1fea62f 100644
--- a/entries/dbpedia_all/__init__.py
+++ b/entries/dbpedia_all/__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/dbpedia_all/__init__.py b/entries/dbpedia_all/__init__.py
index 1b8220c..a9b3714 100644
--- a/entries/dbpedia_all/__init__.py
+++ b/entries/dbpedia_all/__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/dbpedia_all/__init__.py b/entries/dbpedia_all/__init__.py
index 31d1452..1b8220c 100644
--- a/entries/dbpedia_all/__init__.py
+++ b/entries/dbpedia_all/__init__.py
@@ -26,7 +26,6 @@ url = 'http://konect.cc/networks/dbpedia-all'
 citation = [('S. Auer, et al. "Dbpedia: A nucleus for a web of open data." Proc. Int. Semantic Web Conf., 722-735 (2008)', 'https://doi.org/10.1007/978-3-540-76298-0_52')]
 icon_hash = '58322a588cf714f319c427ab'
 upstream_prefix = 'http://konect.cc/files'
-orphan = True
 files = [('download.tsv.dbpedia-all.tar.bz2', None, 'konect')]
 
 def fetch_upstream(force=False):
Update citations to use DOIs by Tiago de Paula Peixoto e878874
diff --git a/entries/dbpedia_all/__init__.py b/entries/dbpedia_all/__init__.py
index bd52658..31d1452 100644
--- a/entries/dbpedia_all/__init__.py
+++ b/entries/dbpedia_all/__init__.py
@@ -23,7 +23,7 @@ description = """A network among all entries in DBpedia, a project that extracts
 [^icon]: Description obtained from the [ICON](https://icon.colorado.edu) project."""
 tags = ['Informational', 'Relatedness', 'Unweighted', 'Multigraph']
 url = 'http://konect.cc/networks/dbpedia-all'
-citation = [('S. Auer, et al. "Dbpedia: A nucleus for a web of open data." Proc. Int. Semantic Web Conf., 722-735 (2008)', 'http://link.springer.com/chapter/10.1007/978-3-540-76298-0_52')]
+citation = [('S. Auer, et al. "Dbpedia: A nucleus for a web of open data." Proc. Int. Semantic Web Conf., 722-735 (2008)', 'https://doi.org/10.1007/978-3-540-76298-0_52')]
 icon_hash = '58322a588cf714f319c427ab'
 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/dbpedia_all/__init__.py b/entries/dbpedia_all/__init__.py
index 22f615a..bd52658 100644
--- a/entries/dbpedia_all/__init__.py
+++ b/entries/dbpedia_all/__init__.py
@@ -26,6 +26,7 @@ url = 'http://konect.cc/networks/dbpedia-all'
 citation = [('S. Auer, et al. "Dbpedia: A nucleus for a web of open data." Proc. Int. Semantic Web Conf., 722-735 (2008)', 'http://link.springer.com/chapter/10.1007/978-3-540-76298-0_52')]
 icon_hash = '58322a588cf714f319c427ab'
 upstream_prefix = 'http://konect.cc/files'
+orphan = True
 files = [('download.tsv.dbpedia-all.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/dbpedia_all/__init__.py b/entries/dbpedia_all/__init__.py
index 874077f..22f615a 100644
--- a/entries/dbpedia_all/__init__.py
+++ b/entries/dbpedia_all/__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/dbpedia_all/__init__.py b/entries/dbpedia_all/__init__.py
index 2ffc02a..874077f 100644
--- a/entries/dbpedia_all/__init__.py
+++ b/entries/dbpedia_all/__init__.py
@@ -19,7 +19,8 @@
 from .. import *
 
 title = "DBpedia network (v3.6)"
-description = "A network among all entries in DBpedia, a project that extracts structured information from Wikipedia. Nodes represent entities in DBpedia and an edge connects two entities based on DBpedia's notion of their relatedness. The data is extracted from the version 3.6 of the database."
+description = """A network among all entries in DBpedia, a project that extracts structured information from Wikipedia. Nodes represent entities in DBpedia and an edge connects two entities based on DBpedia's notion of their relatedness. The data is extracted from the version 3.6 of the database.[^icon]
+[^icon]: Description obtained from the [ICON](https://icon.colorado.edu) project."""
 tags = ['Informational', 'Relatedness', 'Unweighted', 'Multigraph']
 url = 'http://konect.cc/networks/dbpedia-all'
 citation = [('S. Auer, et al. "Dbpedia: A nucleus for a web of open data." Proc. Int. Semantic Web Conf., 722-735 (2008)', 'http://link.springer.com/chapter/10.1007/978-3-540-76298-0_52')]
Initial commit by Tiago de Paula Peixoto cc85872
diff --git a/entries/dbpedia_all/__init__.py b/entries/dbpedia_all/__init__.py
new file mode 100644
index 0000000..2ffc02a
--- /dev/null
+++ b/entries/dbpedia_all/__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 = "DBpedia network (v3.6)"
+description = "A network among all entries in DBpedia, a project that extracts structured information from Wikipedia. Nodes represent entities in DBpedia and an edge connects two entities based on DBpedia's notion of their relatedness. The data is extracted from the version 3.6 of the database."
+tags = ['Informational', 'Relatedness', 'Unweighted', 'Multigraph']
+url = 'http://konect.cc/networks/dbpedia-all'
+citation = [('S. Auer, et al. "Dbpedia: A nucleus for a web of open data." Proc. Int. Semantic Web Conf., 722-735 (2008)', 'http://link.springer.com/chapter/10.1007/978-3-540-76298-0_52')]
+icon_hash = '58322a588cf714f319c427ab'
+upstream_prefix = 'http://konect.cc/files'
+files = [('download.tsv.dbpedia-all.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