3131
3232"""
3333
34+ """
35+ working examples:
36+ https://www.wikidata.org/wiki/Special:EntityData/P279.json
37+ https://commons.wikimedia.org/wiki/Special:EntityData/M574781.json
38+ """
39+
3440__author__ = 'Andra Waagmeester, Gregory Stupp, Sebastian Burgstaller '
3541__license__ = 'MIT'
3642
@@ -55,31 +61,6 @@ def get_rdf(wd_item_id='', format="turtle", mediawiki_api_url=None):
5561 localcopy .parse (config ["CONCEPT_BASE_URI" ] + wd_item_id + ".ttl" )
5662 return localcopy .serialize (format = format )
5763
58- @staticmethod
59- def get_linked_by (qid , mediawiki_api_url = None ):
60- """
61- :param qid: Wikidata identifier to which other wikidata items link
62- :param mediawiki_api_url: default to wikidata's api, but can be changed to any wikibase
63- :return:
64- """
65-
66- mediawiki_api_url = config ['MEDIAWIKI_API_URL' ] if mediawiki_api_url is None else mediawiki_api_url
67-
68- linkedby = []
69- whatlinkshere = json .loads (requests .get (
70- mediawiki_api_url + "?action=query&list=backlinks&format=json&bllimit=500&bltitle=" + qid ).text )
71- for link in whatlinkshere ["query" ]["backlinks" ]:
72- if link ["title" ].startswith ("Q" ):
73- linkedby .append (link ["title" ])
74- while 'continue' in whatlinkshere .keys ():
75- whatlinkshere = json .loads (requests .get (
76- mediawiki_api_url + "?action=query&list=backlinks&blcontinue=" +
77- whatlinkshere ['continue' ]['blcontinue' ] + "&format=json&bllimit=500&bltitle=" + qid ).text )
78- for link in whatlinkshere ["query" ]["backlinks" ]:
79- if link ["title" ].startswith ("Q" ):
80- linkedby .append (link ["title" ])
81- return linkedby
82-
8364 @staticmethod
8465 @wdi_backoff ()
8566 def execute_sparql_query (query , prefix = None , endpoint = None , user_agent = None , as_dataframe = False , max_retries = 1000 , retry_after = 60 ):
@@ -617,7 +598,7 @@ def parse_wd_json(self, wd_json):
617598 self .statements = []
618599 for prop in wd_data ['statements' ]:
619600 for z in wd_data ['statements' ][prop ]:
620- data_type = [x for x in WDBaseDataType .__subclasses__ () if x .DTYPE == z ['mainsnak' ]['type' ]][0 ]
601+ data_type = [x for x in WDBaseDataType .__subclasses__ () if x .DTYPE == z ['mainsnak' ]['datavalue' ][ ' type' ]][0 ]
621602 statement = data_type .from_json (z )
622603 self .statements .append (statement )
623604
0 commit comments