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 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) 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 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 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 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 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 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 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 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 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 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 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 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 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