diff --git a/wikidata/query-wikidata.ipynb b/wikidata/query-wikidata.ipynb index 2f5752fce25558a8575c4fe6c6f6b784bb88e48d..a8910ba965eb9bd1b4773e56467b4a106a0d752a 100644 --- a/wikidata/query-wikidata.ipynb +++ b/wikidata/query-wikidata.ipynb @@ -2,13 +2,13 @@ "cells": [ { "cell_type": "code", - "execution_count": 20, + "execution_count": 78, "id": "initial_id", "metadata": { "collapsed": true, "ExecuteTime": { - "end_time": "2024-03-11T17:38:32.545716600Z", - "start_time": "2024-03-11T17:38:32.539202500Z" + "end_time": "2024-03-14T08:55:46.227687600Z", + "start_time": "2024-03-14T08:55:46.202503500Z" } }, "outputs": [], @@ -28,14 +28,6 @@ " :param qid: WikiData entity ID (QID) for the person\n", " :return: SPARQL query string\n", " \"\"\"\n", - " propSelection = \"\"\n", - " for label, pid in property_labels_to_ids.items():\n", - " if label.endswith(\"_id\") or label.startswith(\"image\") or label.startswith(\"date\"):\n", - " propSelection += f\"\"\"\n", - " OPTIONAL {{ ?item wdt:{pid} ?{label}. }}\"\"\"\n", - " else:\n", - " propSelection += f\"\"\"\n", - " OPTIONAL {{ ?item wdt:{pid} ?{label}Id . ?{label}Id rdfs:label ?{label} FILTER(LANG(?{label}) = \"{language}\") . }}\"\"\"\n", "\n", " if qid:\n", " selectClause = \"SELECT DISTINCT ?item\"\n", @@ -43,15 +35,42 @@ " groupByClause = \"GROUP BY ?item\"\n", " else:\n", " selectClause = \"SELECT DISTINCT ?item ?itemLabel\"\n", - " selectClause += \"\\n \".join([f\"(SAMPLE(?{label}) AS ?{label})\" for label in property_labels_to_ids.keys()])\n", " itemConstraint = f'?item wdt:P31 wd:Q5; rdfs:label \"{fullName}\"@{language} .'\n", " groupByClause = \"GROUP BY ?item ?itemLabel\"\n", + "\n", + " for label, pid in property_labels_to_ids.items():\n", + " # add to property selection\n", + " if label.endswith('Name'):\n", + " selectClause += f'''\n", + " (GROUP_CONCAT(DISTINCT ?{label}Value; separator=\" \") AS ?{label})'''\n", + " else:\n", + " selectClause += f'''\n", + " (SAMPLE(?{label}) AS ?{label})'''\n", + "\n", + " # add to item constraint\n", + " if label.endswith(\"_id\") or label.startswith(\"image\") or label.startswith(\"date\"):\n", + " itemConstraint += f\"\"\"\n", + " OPTIONAL {{ ?item wdt:{pid} ?{label}. }}\"\"\"\n", + " elif label.endswith(\"Name\"):\n", + " itemConstraint += f\"\"\"\n", + " OPTIONAL {{\n", + " ?item p:{pid} ?{label}Statement.\n", + " ?{label}Statement ps:{pid} ?{label}.\n", + " OPTIONAL {{ ?{label}Statement pq:P1545 ?order. }}\n", + " OPTIONAL {{\n", + " ?{label} rdfs:label ?{label}Label.\n", + " FILTER(LANG(?{label}Label) = \"{language}\")\n", + " }}\n", + " BIND(COALESCE(?{label}Label, STR(?{label})) AS ?{label}Value)\n", + " }}\"\"\"\n", + " else:\n", + " itemConstraint += f\"\"\"\n", + " OPTIONAL {{ ?item wdt:{pid} ?{label}Id . ?{label}Id rdfs:label ?{label} FILTER(LANG(?{label}) = \"{language}\") . }}\"\"\"\n", " \n", " query = textwrap.dedent(f\"\"\"\n", " {selectClause} \n", " WHERE {{\n", " {itemConstraint}\n", - " {propSelection}\n", " }}\n", " {groupByClause}\n", " \"\"\")\n", @@ -59,15 +78,11 @@ " return query\n", "\n", "\n", - "\n", - "def construct_image_url(filename):\n", - " return f\"https://commons.wikimedia.org/wiki/Special:FilePath/{requests.utils.quote(filename)}\"\n", - "\n", - "\n", - "\n", - "def query_wikidata(fullName, property_map, language='en', qid=None):\n", + "def query_wikidata(fullName, property_map, language='en', qid=None, debug=False):\n", " SPARQL_ENDPOINT = \"https://query.wikidata.org/sparql\"\n", " query = generate_sparql_query(fullName, property_map, language, qid=qid)\n", + " if debug:\n", + " print(query)\n", " headers = {'User-Agent': 'Mozilla/5.0', 'Accept': 'application/json'}\n", " response = requests.get(SPARQL_ENDPOINT, headers=headers, params={'query': query, 'format': 'json'})\n", "\n", @@ -93,8 +108,9 @@ " else:\n", " data[label] = None\n", " \n", - " # add item URI\n", + " # add qid and item URI\n", " data['qid'] = os.path.basename(result['item']['value'])\n", + " data['wikidata_url'] = result['item']['value']\n", " results[i] = data\n", " \n", " return results\n", @@ -105,7 +121,7 @@ "\n", " Parameters:\n", " - qid (str): The QID of the Wikidata item.\n", - " - languages (list): A list of language codes (e.g., ['en', 'de']).\n", + " - languages (list): A list of language codes (e.g., ['en', 'de']). \n", "\n", " Returns:\n", " - dict: A dictionary with languages as keys and Wikipedia URLs as values.\n", @@ -120,96 +136,88 @@ "\n", " response = requests.get(url, params=params)\n", " data = response.json()\n", - "\n", " links = {}\n", " if \"entities\" in data and qid in data[\"entities\"]:\n", " sitelinks = data[\"entities\"][qid].get(\"sitelinks\", {})\n", " for lang in languages:\n", " sitekey = f\"{lang}wiki\"\n", " if sitekey in sitelinks:\n", - " # Use the 'title' key and construct the URL manually\n", - " title = sitelinks[sitekey][\"title\"]\n", - " links[lang] = f\"https://{lang}.wikipedia.org/wiki/{requests.utils.quote(title)}\"\n", + " siteLinkData = sitelinks.get(sitekey)\n", + " if 'url' in siteLinkData:\n", + " links[lang] = siteLinkData.get('url')\n", + " else:\n", + " # Use the 'title' key and construct the URL manually\n", + " title = sitelinks[sitekey][\"title\"]\n", + " links[lang] = f\"https://{lang}.wikipedia.org/wiki/{requests.utils.quote(title)}\"\n", " else:\n", " links[lang] = None # Or use '' to represent absence of link\n", "\n", " return links\n", "\n", "\n", - "def get_person_info_from_wikidata(names, property_map, languages=None):\n", + "def get_person_info_from_wikidata(names, property_map, languages=None, debug=False):\n", " if languages is None:\n", " languages = ['en', 'de']\n", " all_data = []\n", " print('Retrieving scholar data...')\n", " for item in names:\n", " if type(item) is tuple:\n", - " results = query_wikidata(item[0], property_map, languages[0], qid=item[1])\n", + " results = query_wikidata(item[0], property_map, languages[0], qid=item[1], debug=debug)\n", " else:\n", - " results = query_wikidata(item, property_map, languages[0])\n", + " results = query_wikidata(item, property_map, languages[0], debug=debug)\n", " \n", " all_data += results\n", + "\n", + " # Ensure fullName appears first by reordering columns based on property_labels_to_ids keys\n", + " columns = ['fullName', 'qid'] + list(property_map.keys()) + ['wikidata_url'] + [f'wikipedia_{l}' for l in languages]\n", + " \n", " if len(all_data) > 0:\n", - " # Ensure fullName appears first by reordering columns based on property_labels_to_ids keys\n", - " columns_order = ['fullName', 'qid'] + list(property_map.keys())\n", - " df = pd.DataFrame(all_data, columns=columns_order)\n", - " \n", + " df = pd.DataFrame(all_data, columns=columns, dtype=str)\n", " # Add wikipedia links\n", - " print(\"Retrieving wikipedia URLs\")\n", - " for language in languages:\n", - " df[f'wikipedia_{language}'] = df.apply(lambda r: get_wikipedia_links(r['qid'], language).get(language), axis=1)\n", + " print(\"Retrieving wikipedia URLs...\")\n", + " # For each QID in the DataFrame, fetch Wikipedia links for all languages and update the DataFrame accordingly\n", + " for index, row in df.iterrows():\n", + " qid = row['qid']\n", + " links = get_wikipedia_links(qid, languages)\n", + " \n", + " # Update the DataFrame directly with the fetched links for each language\n", + " for language in languages:\n", + " df.at[index, f'wikipedia_{language}'] = links.get(language, None)\n", " else:\n", - " df = pd.DataFrame(columns=['fullName'] + list(property_map.keys()) + [f'wikipedia_{language}'])\n", + " df = pd.DataFrame(columns=columns, dtype=str)\n", " return df" ] }, + { + "cell_type": "markdown", + "source": [ + "## Retrieve Data for a given list of scholars" + ], + "metadata": { + "collapsed": false + }, + "id": "397920a95584f406" + }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 79, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Retrieving scholar data...\n" + "Retrieving scholar data...\n", + "Retrieving wikipedia URLs...\n" ] }, { - "ename": "ConnectionError", - "evalue": "HTTPSConnectionPool(host='query.wikidata.org', port=443): Max retries exceeded with url: /sparql?query=%0ASELECT+DISTINCT+%3Fitem+%3FitemLabel%28SAMPLE%28%3FsexOrGender%29+AS+%3FsexOrGender%29%0A%28SAMPLE%28%3FcountryOfCitizenship%29+AS+%3FcountryOfCitizenship%29%0A%28SAMPLE%28%3FgivenName%29+AS+%3FgivenName%29%0A%28SAMPLE%28%3FfamilyName%29+AS+%3FfamilyName%29%0A%28SAMPLE%28%3FdateOfBirth%29+AS+%3FdateOfBirth%29%0A%28SAMPLE%28%3FdateOfDeath%29+AS+%3FdateOfDeath%29%0A%28SAMPLE%28%3Foccupation%29+AS+%3Foccupation%29%0A%28SAMPLE%28%3FfieldOfWork%29+AS+%3FfieldOfWork%29%0A%28SAMPLE%28%3Fviaf_id%29+AS+%3Fviaf_id%29%0A%28SAMPLE%28%3Fisni_id%29+AS+%3Fisni_id%29%0A%28SAMPLE%28%3Fgnd_id%29+AS+%3Fgnd_id%29+%0AWHERE+%7B%0A++++%3Fitem+wdt%3AP31+wd%3AQ5%3B+rdfs%3Alabel+%22Theodor+Geiger%22%40en+.%0A%0A++++++++++++OPTIONAL+%7B+%3Fitem+wdt%3AP21+%3FsexOrGenderId+.+%3FsexOrGenderId+rdfs%3Alabel+%3FsexOrGender+FILTER%28LANG%28%3FsexOrGender%29+%3D+%22en%22%29+.+%7D%0A++++++++++++OPTIONAL+%7B+%3Fitem+wdt%3AP27+%3FcountryOfCitizenshipId+.+%3FcountryOfCitizenshipId+rdfs%3Alabel+%3FcountryOfCitizenship+FILTER%28LANG%28%3FcountryOfCitizenship%29+%3D+%22en%22%29+.+%7D%0A++++++++++++OPTIONAL+%7B+%3Fitem+wdt%3AP735+%3FgivenNameId+.+%3FgivenNameId+rdfs%3Alabel+%3FgivenName+FILTER%28LANG%28%3FgivenName%29+%3D+%22en%22%29+.+%7D%0A++++++++++++OPTIONAL+%7B+%3Fitem+wdt%3AP734+%3FfamilyNameId+.+%3FfamilyNameId+rdfs%3Alabel+%3FfamilyName+FILTER%28LANG%28%3FfamilyName%29+%3D+%22en%22%29+.+%7D%0A++++++++++++OPTIONAL+%7B+%3Fitem+wdt%3AP569+%3FdateOfBirth.+%7D%0A++++++++++++OPTIONAL+%7B+%3Fitem+wdt%3AP570+%3FdateOfDeath.+%7D%0A++++++++++++OPTIONAL+%7B+%3Fitem+wdt%3AP106+%3FoccupationId+.+%3FoccupationId+rdfs%3Alabel+%3Foccupation+FILTER%28LANG%28%3Foccupation%29+%3D+%22en%22%29+.+%7D%0A++++++++++++OPTIONAL+%7B+%3Fitem+wdt%3AP101+%3FfieldOfWorkId+.+%3FfieldOfWorkId+rdfs%3Alabel+%3FfieldOfWork+FILTER%28LANG%28%3FfieldOfWork%29+%3D+%22en%22%29+.+%7D%0A++++++++++++OPTIONAL+%7B+%3Fitem+wdt%3AP214+%3Fviaf_id.+%7D%0A++++++++++++OPTIONAL+%7B+%3Fitem+wdt%3AP213+%3Fisni_id.+%7D%0A++++++++++++OPTIONAL+%7B+%3Fitem+wdt%3AP227+%3Fgnd_id.+%7D%0A%7D%0AGROUP+BY+%3Fitem+%3FitemLabel%0A&format=json (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x0000027807EC3DD0>: Failed to establish a new connection: [WinError 10048] Normalerweise darf jede Socketadresse (Protokoll, Netzwerkadresse oder Anschluss) nur jeweils einmal verwendet werden'))", - "output_type": "error", - "traceback": [ - "\u001B[1;31m---------------------------------------------------------------------------\u001B[0m", - "\u001B[1;31mOSError\u001B[0m Traceback (most recent call last)", - "File \u001B[1;32m~\\AppData\\Local\\miniconda3\\Lib\\site-packages\\urllib3\\connection.py:174\u001B[0m, in \u001B[0;36mHTTPConnection._new_conn\u001B[1;34m(self)\u001B[0m\n\u001B[0;32m 173\u001B[0m \u001B[38;5;28;01mtry\u001B[39;00m:\n\u001B[1;32m--> 174\u001B[0m conn \u001B[38;5;241m=\u001B[39m connection\u001B[38;5;241m.\u001B[39mcreate_connection(\n\u001B[0;32m 175\u001B[0m (\u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_dns_host, \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mport), \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mtimeout, \u001B[38;5;241m*\u001B[39m\u001B[38;5;241m*\u001B[39mextra_kw\n\u001B[0;32m 176\u001B[0m )\n\u001B[0;32m 178\u001B[0m \u001B[38;5;28;01mexcept\u001B[39;00m SocketTimeout:\n", - "File \u001B[1;32m~\\AppData\\Local\\miniconda3\\Lib\\site-packages\\urllib3\\util\\connection.py:95\u001B[0m, in \u001B[0;36mcreate_connection\u001B[1;34m(address, timeout, source_address, socket_options)\u001B[0m\n\u001B[0;32m 94\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m err \u001B[38;5;129;01mis\u001B[39;00m \u001B[38;5;129;01mnot\u001B[39;00m \u001B[38;5;28;01mNone\u001B[39;00m:\n\u001B[1;32m---> 95\u001B[0m \u001B[38;5;28;01mraise\u001B[39;00m err\n\u001B[0;32m 97\u001B[0m \u001B[38;5;28;01mraise\u001B[39;00m socket\u001B[38;5;241m.\u001B[39merror(\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mgetaddrinfo returns an empty list\u001B[39m\u001B[38;5;124m\"\u001B[39m)\n", - "File \u001B[1;32m~\\AppData\\Local\\miniconda3\\Lib\\site-packages\\urllib3\\util\\connection.py:85\u001B[0m, in \u001B[0;36mcreate_connection\u001B[1;34m(address, timeout, source_address, socket_options)\u001B[0m\n\u001B[0;32m 84\u001B[0m sock\u001B[38;5;241m.\u001B[39mbind(source_address)\n\u001B[1;32m---> 85\u001B[0m sock\u001B[38;5;241m.\u001B[39mconnect(sa)\n\u001B[0;32m 86\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m sock\n", - "\u001B[1;31mOSError\u001B[0m: [WinError 10048] Normalerweise darf jede Socketadresse (Protokoll, Netzwerkadresse oder Anschluss) nur jeweils einmal verwendet werden", - "\nDuring handling of the above exception, another exception occurred:\n", - "\u001B[1;31mNewConnectionError\u001B[0m Traceback (most recent call last)", - "File \u001B[1;32m~\\AppData\\Local\\miniconda3\\Lib\\site-packages\\urllib3\\connectionpool.py:715\u001B[0m, in \u001B[0;36mHTTPConnectionPool.urlopen\u001B[1;34m(self, method, url, body, headers, retries, redirect, assert_same_host, timeout, pool_timeout, release_conn, chunked, body_pos, **response_kw)\u001B[0m\n\u001B[0;32m 714\u001B[0m \u001B[38;5;66;03m# Make the request on the httplib connection object.\u001B[39;00m\n\u001B[1;32m--> 715\u001B[0m httplib_response \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_make_request(\n\u001B[0;32m 716\u001B[0m conn,\n\u001B[0;32m 717\u001B[0m method,\n\u001B[0;32m 718\u001B[0m url,\n\u001B[0;32m 719\u001B[0m timeout\u001B[38;5;241m=\u001B[39mtimeout_obj,\n\u001B[0;32m 720\u001B[0m body\u001B[38;5;241m=\u001B[39mbody,\n\u001B[0;32m 721\u001B[0m headers\u001B[38;5;241m=\u001B[39mheaders,\n\u001B[0;32m 722\u001B[0m chunked\u001B[38;5;241m=\u001B[39mchunked,\n\u001B[0;32m 723\u001B[0m )\n\u001B[0;32m 725\u001B[0m \u001B[38;5;66;03m# If we're going to release the connection in ``finally:``, then\u001B[39;00m\n\u001B[0;32m 726\u001B[0m \u001B[38;5;66;03m# the response doesn't need to know about the connection. Otherwise\u001B[39;00m\n\u001B[0;32m 727\u001B[0m \u001B[38;5;66;03m# it will also try to release it and we'll have a double-release\u001B[39;00m\n\u001B[0;32m 728\u001B[0m \u001B[38;5;66;03m# mess.\u001B[39;00m\n", - "File \u001B[1;32m~\\AppData\\Local\\miniconda3\\Lib\\site-packages\\urllib3\\connectionpool.py:404\u001B[0m, in \u001B[0;36mHTTPConnectionPool._make_request\u001B[1;34m(self, conn, method, url, timeout, chunked, **httplib_request_kw)\u001B[0m\n\u001B[0;32m 403\u001B[0m \u001B[38;5;28;01mtry\u001B[39;00m:\n\u001B[1;32m--> 404\u001B[0m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_validate_conn(conn)\n\u001B[0;32m 405\u001B[0m \u001B[38;5;28;01mexcept\u001B[39;00m (SocketTimeout, BaseSSLError) \u001B[38;5;28;01mas\u001B[39;00m e:\n\u001B[0;32m 406\u001B[0m \u001B[38;5;66;03m# Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout.\u001B[39;00m\n", - "File \u001B[1;32m~\\AppData\\Local\\miniconda3\\Lib\\site-packages\\urllib3\\connectionpool.py:1058\u001B[0m, in \u001B[0;36mHTTPSConnectionPool._validate_conn\u001B[1;34m(self, conn)\u001B[0m\n\u001B[0;32m 1057\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;129;01mnot\u001B[39;00m \u001B[38;5;28mgetattr\u001B[39m(conn, \u001B[38;5;124m\"\u001B[39m\u001B[38;5;124msock\u001B[39m\u001B[38;5;124m\"\u001B[39m, \u001B[38;5;28;01mNone\u001B[39;00m): \u001B[38;5;66;03m# AppEngine might not have `.sock`\u001B[39;00m\n\u001B[1;32m-> 1058\u001B[0m conn\u001B[38;5;241m.\u001B[39mconnect()\n\u001B[0;32m 1060\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;129;01mnot\u001B[39;00m conn\u001B[38;5;241m.\u001B[39mis_verified:\n", - "File \u001B[1;32m~\\AppData\\Local\\miniconda3\\Lib\\site-packages\\urllib3\\connection.py:363\u001B[0m, in \u001B[0;36mHTTPSConnection.connect\u001B[1;34m(self)\u001B[0m\n\u001B[0;32m 361\u001B[0m \u001B[38;5;28;01mdef\u001B[39;00m \u001B[38;5;21mconnect\u001B[39m(\u001B[38;5;28mself\u001B[39m):\n\u001B[0;32m 362\u001B[0m \u001B[38;5;66;03m# Add certificate verification\u001B[39;00m\n\u001B[1;32m--> 363\u001B[0m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39msock \u001B[38;5;241m=\u001B[39m conn \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_new_conn()\n\u001B[0;32m 364\u001B[0m hostname \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mhost\n", - "File \u001B[1;32m~\\AppData\\Local\\miniconda3\\Lib\\site-packages\\urllib3\\connection.py:186\u001B[0m, in \u001B[0;36mHTTPConnection._new_conn\u001B[1;34m(self)\u001B[0m\n\u001B[0;32m 185\u001B[0m \u001B[38;5;28;01mexcept\u001B[39;00m SocketError \u001B[38;5;28;01mas\u001B[39;00m e:\n\u001B[1;32m--> 186\u001B[0m \u001B[38;5;28;01mraise\u001B[39;00m NewConnectionError(\n\u001B[0;32m 187\u001B[0m \u001B[38;5;28mself\u001B[39m, \u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mFailed to establish a new connection: \u001B[39m\u001B[38;5;132;01m%s\u001B[39;00m\u001B[38;5;124m\"\u001B[39m \u001B[38;5;241m%\u001B[39m e\n\u001B[0;32m 188\u001B[0m )\n\u001B[0;32m 190\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m conn\n", - "\u001B[1;31mNewConnectionError\u001B[0m: <urllib3.connection.HTTPSConnection object at 0x0000027807EC3DD0>: Failed to establish a new connection: [WinError 10048] Normalerweise darf jede Socketadresse (Protokoll, Netzwerkadresse oder Anschluss) nur jeweils einmal verwendet werden", - "\nDuring handling of the above exception, another exception occurred:\n", - "\u001B[1;31mMaxRetryError\u001B[0m Traceback (most recent call last)", - "File \u001B[1;32m~\\AppData\\Local\\miniconda3\\Lib\\site-packages\\requests\\adapters.py:486\u001B[0m, in \u001B[0;36mHTTPAdapter.send\u001B[1;34m(self, request, stream, timeout, verify, cert, proxies)\u001B[0m\n\u001B[0;32m 485\u001B[0m \u001B[38;5;28;01mtry\u001B[39;00m:\n\u001B[1;32m--> 486\u001B[0m resp \u001B[38;5;241m=\u001B[39m conn\u001B[38;5;241m.\u001B[39murlopen(\n\u001B[0;32m 487\u001B[0m method\u001B[38;5;241m=\u001B[39mrequest\u001B[38;5;241m.\u001B[39mmethod,\n\u001B[0;32m 488\u001B[0m url\u001B[38;5;241m=\u001B[39murl,\n\u001B[0;32m 489\u001B[0m body\u001B[38;5;241m=\u001B[39mrequest\u001B[38;5;241m.\u001B[39mbody,\n\u001B[0;32m 490\u001B[0m headers\u001B[38;5;241m=\u001B[39mrequest\u001B[38;5;241m.\u001B[39mheaders,\n\u001B[0;32m 491\u001B[0m redirect\u001B[38;5;241m=\u001B[39m\u001B[38;5;28;01mFalse\u001B[39;00m,\n\u001B[0;32m 492\u001B[0m assert_same_host\u001B[38;5;241m=\u001B[39m\u001B[38;5;28;01mFalse\u001B[39;00m,\n\u001B[0;32m 493\u001B[0m preload_content\u001B[38;5;241m=\u001B[39m\u001B[38;5;28;01mFalse\u001B[39;00m,\n\u001B[0;32m 494\u001B[0m decode_content\u001B[38;5;241m=\u001B[39m\u001B[38;5;28;01mFalse\u001B[39;00m,\n\u001B[0;32m 495\u001B[0m retries\u001B[38;5;241m=\u001B[39m\u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mmax_retries,\n\u001B[0;32m 496\u001B[0m timeout\u001B[38;5;241m=\u001B[39mtimeout,\n\u001B[0;32m 497\u001B[0m chunked\u001B[38;5;241m=\u001B[39mchunked,\n\u001B[0;32m 498\u001B[0m )\n\u001B[0;32m 500\u001B[0m \u001B[38;5;28;01mexcept\u001B[39;00m (ProtocolError, \u001B[38;5;167;01mOSError\u001B[39;00m) \u001B[38;5;28;01mas\u001B[39;00m err:\n", - "File \u001B[1;32m~\\AppData\\Local\\miniconda3\\Lib\\site-packages\\urllib3\\connectionpool.py:799\u001B[0m, in \u001B[0;36mHTTPConnectionPool.urlopen\u001B[1;34m(self, method, url, body, headers, retries, redirect, assert_same_host, timeout, pool_timeout, release_conn, chunked, body_pos, **response_kw)\u001B[0m\n\u001B[0;32m 797\u001B[0m e \u001B[38;5;241m=\u001B[39m ProtocolError(\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mConnection aborted.\u001B[39m\u001B[38;5;124m\"\u001B[39m, e)\n\u001B[1;32m--> 799\u001B[0m retries \u001B[38;5;241m=\u001B[39m retries\u001B[38;5;241m.\u001B[39mincrement(\n\u001B[0;32m 800\u001B[0m method, url, error\u001B[38;5;241m=\u001B[39me, _pool\u001B[38;5;241m=\u001B[39m\u001B[38;5;28mself\u001B[39m, _stacktrace\u001B[38;5;241m=\u001B[39msys\u001B[38;5;241m.\u001B[39mexc_info()[\u001B[38;5;241m2\u001B[39m]\n\u001B[0;32m 801\u001B[0m )\n\u001B[0;32m 802\u001B[0m retries\u001B[38;5;241m.\u001B[39msleep()\n", - "File \u001B[1;32m~\\AppData\\Local\\miniconda3\\Lib\\site-packages\\urllib3\\util\\retry.py:592\u001B[0m, in \u001B[0;36mRetry.increment\u001B[1;34m(self, method, url, response, error, _pool, _stacktrace)\u001B[0m\n\u001B[0;32m 591\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m new_retry\u001B[38;5;241m.\u001B[39mis_exhausted():\n\u001B[1;32m--> 592\u001B[0m \u001B[38;5;28;01mraise\u001B[39;00m MaxRetryError(_pool, url, error \u001B[38;5;129;01mor\u001B[39;00m ResponseError(cause))\n\u001B[0;32m 594\u001B[0m log\u001B[38;5;241m.\u001B[39mdebug(\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mIncremented Retry for (url=\u001B[39m\u001B[38;5;124m'\u001B[39m\u001B[38;5;132;01m%s\u001B[39;00m\u001B[38;5;124m'\u001B[39m\u001B[38;5;124m): \u001B[39m\u001B[38;5;132;01m%r\u001B[39;00m\u001B[38;5;124m\"\u001B[39m, url, new_retry)\n", - "\u001B[1;31mMaxRetryError\u001B[0m: HTTPSConnectionPool(host='query.wikidata.org', port=443): Max retries exceeded with url: /sparql?query=%0ASELECT+DISTINCT+%3Fitem+%3FitemLabel%28SAMPLE%28%3FsexOrGender%29+AS+%3FsexOrGender%29%0A%28SAMPLE%28%3FcountryOfCitizenship%29+AS+%3FcountryOfCitizenship%29%0A%28SAMPLE%28%3FgivenName%29+AS+%3FgivenName%29%0A%28SAMPLE%28%3FfamilyName%29+AS+%3FfamilyName%29%0A%28SAMPLE%28%3FdateOfBirth%29+AS+%3FdateOfBirth%29%0A%28SAMPLE%28%3FdateOfDeath%29+AS+%3FdateOfDeath%29%0A%28SAMPLE%28%3Foccupation%29+AS+%3Foccupation%29%0A%28SAMPLE%28%3FfieldOfWork%29+AS+%3FfieldOfWork%29%0A%28SAMPLE%28%3Fviaf_id%29+AS+%3Fviaf_id%29%0A%28SAMPLE%28%3Fisni_id%29+AS+%3Fisni_id%29%0A%28SAMPLE%28%3Fgnd_id%29+AS+%3Fgnd_id%29+%0AWHERE+%7B%0A++++%3Fitem+wdt%3AP31+wd%3AQ5%3B+rdfs%3Alabel+%22Theodor+Geiger%22%40en+.%0A%0A++++++++++++OPTIONAL+%7B+%3Fitem+wdt%3AP21+%3FsexOrGenderId+.+%3FsexOrGenderId+rdfs%3Alabel+%3FsexOrGender+FILTER%28LANG%28%3FsexOrGender%29+%3D+%22en%22%29+.+%7D%0A++++++++++++OPTIONAL+%7B+%3Fitem+wdt%3AP27+%3FcountryOfCitizenshipId+.+%3FcountryOfCitizenshipId+rdfs%3Alabel+%3FcountryOfCitizenship+FILTER%28LANG%28%3FcountryOfCitizenship%29+%3D+%22en%22%29+.+%7D%0A++++++++++++OPTIONAL+%7B+%3Fitem+wdt%3AP735+%3FgivenNameId+.+%3FgivenNameId+rdfs%3Alabel+%3FgivenName+FILTER%28LANG%28%3FgivenName%29+%3D+%22en%22%29+.+%7D%0A++++++++++++OPTIONAL+%7B+%3Fitem+wdt%3AP734+%3FfamilyNameId+.+%3FfamilyNameId+rdfs%3Alabel+%3FfamilyName+FILTER%28LANG%28%3FfamilyName%29+%3D+%22en%22%29+.+%7D%0A++++++++++++OPTIONAL+%7B+%3Fitem+wdt%3AP569+%3FdateOfBirth.+%7D%0A++++++++++++OPTIONAL+%7B+%3Fitem+wdt%3AP570+%3FdateOfDeath.+%7D%0A++++++++++++OPTIONAL+%7B+%3Fitem+wdt%3AP106+%3FoccupationId+.+%3FoccupationId+rdfs%3Alabel+%3Foccupation+FILTER%28LANG%28%3Foccupation%29+%3D+%22en%22%29+.+%7D%0A++++++++++++OPTIONAL+%7B+%3Fitem+wdt%3AP101+%3FfieldOfWorkId+.+%3FfieldOfWorkId+rdfs%3Alabel+%3FfieldOfWork+FILTER%28LANG%28%3FfieldOfWork%29+%3D+%22en%22%29+.+%7D%0A++++++++++++OPTIONAL+%7B+%3Fitem+wdt%3AP214+%3Fviaf_id.+%7D%0A++++++++++++OPTIONAL+%7B+%3Fitem+wdt%3AP213+%3Fisni_id.+%7D%0A++++++++++++OPTIONAL+%7B+%3Fitem+wdt%3AP227+%3Fgnd_id.+%7D%0A%7D%0AGROUP+BY+%3Fitem+%3FitemLabel%0A&format=json (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x0000027807EC3DD0>: Failed to establish a new connection: [WinError 10048] Normalerweise darf jede Socketadresse (Protokoll, Netzwerkadresse oder Anschluss) nur jeweils einmal verwendet werden'))", - "\nDuring handling of the above exception, another exception occurred:\n", - "\u001B[1;31mConnectionError\u001B[0m Traceback (most recent call last)", - "Cell \u001B[1;32mIn[22], line 41\u001B[0m\n\u001B[0;32m 2\u001B[0m property_labels_to_ids \u001B[38;5;241m=\u001B[39m {\n\u001B[0;32m 3\u001B[0m \u001B[38;5;124m'\u001B[39m\u001B[38;5;124msexOrGender\u001B[39m\u001B[38;5;124m'\u001B[39m: \u001B[38;5;124m'\u001B[39m\u001B[38;5;124mP21\u001B[39m\u001B[38;5;124m'\u001B[39m,\n\u001B[0;32m 4\u001B[0m \u001B[38;5;66;03m# 'image': 'P18',\u001B[39;00m\n\u001B[1;32m (...)\u001B[0m\n\u001B[0;32m 14\u001B[0m \u001B[38;5;124m'\u001B[39m\u001B[38;5;124mgnd_id\u001B[39m\u001B[38;5;124m'\u001B[39m: \u001B[38;5;124m'\u001B[39m\u001B[38;5;124mP227\u001B[39m\u001B[38;5;124m'\u001B[39m\n\u001B[0;32m 15\u001B[0m }\n\u001B[0;32m 17\u001B[0m scholars \u001B[38;5;241m=\u001B[39m [\n\u001B[0;32m 18\u001B[0m \u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mHans Kelsen\u001B[39m\u001B[38;5;124m\"\u001B[39m,\n\u001B[0;32m 19\u001B[0m \u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mHugo Sinzheimer\u001B[39m\u001B[38;5;124m\"\u001B[39m,\n\u001B[1;32m (...)\u001B[0m\n\u001B[0;32m 39\u001B[0m (\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mSusanne Baer\u001B[39m\u001B[38;5;124m\"\u001B[39m,\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mQ101872\u001B[39m\u001B[38;5;124m\"\u001B[39m)\n\u001B[0;32m 40\u001B[0m ]\n\u001B[1;32m---> 41\u001B[0m df \u001B[38;5;241m=\u001B[39m get_person_info_from_wikidata(scholars, property_labels_to_ids)\n\u001B[0;32m 42\u001B[0m df\n", - "Cell \u001B[1;32mIn[20], line 133\u001B[0m, in \u001B[0;36mget_person_info_from_wikidata\u001B[1;34m(names, property_map, languages)\u001B[0m\n\u001B[0;32m 131\u001B[0m results \u001B[38;5;241m=\u001B[39m query_wikidata(item[\u001B[38;5;241m0\u001B[39m], property_map, languages[\u001B[38;5;241m0\u001B[39m], qid\u001B[38;5;241m=\u001B[39mitem[\u001B[38;5;241m1\u001B[39m])\n\u001B[0;32m 132\u001B[0m \u001B[38;5;28;01melse\u001B[39;00m:\n\u001B[1;32m--> 133\u001B[0m results \u001B[38;5;241m=\u001B[39m query_wikidata(item, property_map, languages[\u001B[38;5;241m0\u001B[39m])\n\u001B[0;32m 135\u001B[0m all_data \u001B[38;5;241m+\u001B[39m\u001B[38;5;241m=\u001B[39m results\n\u001B[0;32m 136\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;28mlen\u001B[39m(all_data) \u001B[38;5;241m>\u001B[39m \u001B[38;5;241m0\u001B[39m:\n\u001B[0;32m 137\u001B[0m \u001B[38;5;66;03m# Ensure fullName appears first by reordering columns based on property_labels_to_ids keys\u001B[39;00m\n", - "Cell \u001B[1;32mIn[20], line 57\u001B[0m, in \u001B[0;36mquery_wikidata\u001B[1;34m(fullName, property_map, language, qid)\u001B[0m\n\u001B[0;32m 55\u001B[0m query \u001B[38;5;241m=\u001B[39m generate_sparql_query(fullName, property_map, language, qid\u001B[38;5;241m=\u001B[39mqid)\n\u001B[0;32m 56\u001B[0m headers \u001B[38;5;241m=\u001B[39m {\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mUser-Agent\u001B[39m\u001B[38;5;124m'\u001B[39m: \u001B[38;5;124m'\u001B[39m\u001B[38;5;124mMozilla/5.0\u001B[39m\u001B[38;5;124m'\u001B[39m, \u001B[38;5;124m'\u001B[39m\u001B[38;5;124mAccept\u001B[39m\u001B[38;5;124m'\u001B[39m: \u001B[38;5;124m'\u001B[39m\u001B[38;5;124mapplication/json\u001B[39m\u001B[38;5;124m'\u001B[39m}\n\u001B[1;32m---> 57\u001B[0m response \u001B[38;5;241m=\u001B[39m requests\u001B[38;5;241m.\u001B[39mget(SPARQL_ENDPOINT, headers\u001B[38;5;241m=\u001B[39mheaders, params\u001B[38;5;241m=\u001B[39m{\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mquery\u001B[39m\u001B[38;5;124m'\u001B[39m: query, \u001B[38;5;124m'\u001B[39m\u001B[38;5;124mformat\u001B[39m\u001B[38;5;124m'\u001B[39m: \u001B[38;5;124m'\u001B[39m\u001B[38;5;124mjson\u001B[39m\u001B[38;5;124m'\u001B[39m})\n\u001B[0;32m 59\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m response\u001B[38;5;241m.\u001B[39mstatus_code \u001B[38;5;241m!=\u001B[39m \u001B[38;5;241m200\u001B[39m:\n\u001B[0;32m 60\u001B[0m \u001B[38;5;28mprint\u001B[39m(query)\n", - "File \u001B[1;32m~\\AppData\\Local\\miniconda3\\Lib\\site-packages\\requests\\api.py:73\u001B[0m, in \u001B[0;36mget\u001B[1;34m(url, params, **kwargs)\u001B[0m\n\u001B[0;32m 62\u001B[0m \u001B[38;5;28;01mdef\u001B[39;00m \u001B[38;5;21mget\u001B[39m(url, params\u001B[38;5;241m=\u001B[39m\u001B[38;5;28;01mNone\u001B[39;00m, \u001B[38;5;241m*\u001B[39m\u001B[38;5;241m*\u001B[39mkwargs):\n\u001B[0;32m 63\u001B[0m \u001B[38;5;250m \u001B[39m\u001B[38;5;124mr\u001B[39m\u001B[38;5;124;03m\"\"\"Sends a GET request.\u001B[39;00m\n\u001B[0;32m 64\u001B[0m \n\u001B[0;32m 65\u001B[0m \u001B[38;5;124;03m :param url: URL for the new :class:`Request` object.\u001B[39;00m\n\u001B[1;32m (...)\u001B[0m\n\u001B[0;32m 70\u001B[0m \u001B[38;5;124;03m :rtype: requests.Response\u001B[39;00m\n\u001B[0;32m 71\u001B[0m \u001B[38;5;124;03m \"\"\"\u001B[39;00m\n\u001B[1;32m---> 73\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m request(\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mget\u001B[39m\u001B[38;5;124m\"\u001B[39m, url, params\u001B[38;5;241m=\u001B[39mparams, \u001B[38;5;241m*\u001B[39m\u001B[38;5;241m*\u001B[39mkwargs)\n", - "File \u001B[1;32m~\\AppData\\Local\\miniconda3\\Lib\\site-packages\\requests\\api.py:59\u001B[0m, in \u001B[0;36mrequest\u001B[1;34m(method, url, **kwargs)\u001B[0m\n\u001B[0;32m 55\u001B[0m \u001B[38;5;66;03m# By using the 'with' statement we are sure the session is closed, thus we\u001B[39;00m\n\u001B[0;32m 56\u001B[0m \u001B[38;5;66;03m# avoid leaving sockets open which can trigger a ResourceWarning in some\u001B[39;00m\n\u001B[0;32m 57\u001B[0m \u001B[38;5;66;03m# cases, and look like a memory leak in others.\u001B[39;00m\n\u001B[0;32m 58\u001B[0m \u001B[38;5;28;01mwith\u001B[39;00m sessions\u001B[38;5;241m.\u001B[39mSession() \u001B[38;5;28;01mas\u001B[39;00m session:\n\u001B[1;32m---> 59\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m session\u001B[38;5;241m.\u001B[39mrequest(method\u001B[38;5;241m=\u001B[39mmethod, url\u001B[38;5;241m=\u001B[39murl, \u001B[38;5;241m*\u001B[39m\u001B[38;5;241m*\u001B[39mkwargs)\n", - "File \u001B[1;32m~\\AppData\\Local\\miniconda3\\Lib\\site-packages\\requests\\sessions.py:589\u001B[0m, in \u001B[0;36mSession.request\u001B[1;34m(self, method, url, params, data, headers, cookies, files, auth, timeout, allow_redirects, proxies, hooks, stream, verify, cert, json)\u001B[0m\n\u001B[0;32m 584\u001B[0m send_kwargs \u001B[38;5;241m=\u001B[39m {\n\u001B[0;32m 585\u001B[0m \u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mtimeout\u001B[39m\u001B[38;5;124m\"\u001B[39m: timeout,\n\u001B[0;32m 586\u001B[0m \u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mallow_redirects\u001B[39m\u001B[38;5;124m\"\u001B[39m: allow_redirects,\n\u001B[0;32m 587\u001B[0m }\n\u001B[0;32m 588\u001B[0m send_kwargs\u001B[38;5;241m.\u001B[39mupdate(settings)\n\u001B[1;32m--> 589\u001B[0m resp \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39msend(prep, \u001B[38;5;241m*\u001B[39m\u001B[38;5;241m*\u001B[39msend_kwargs)\n\u001B[0;32m 591\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m resp\n", - "File \u001B[1;32m~\\AppData\\Local\\miniconda3\\Lib\\site-packages\\requests\\sessions.py:703\u001B[0m, in \u001B[0;36mSession.send\u001B[1;34m(self, request, **kwargs)\u001B[0m\n\u001B[0;32m 700\u001B[0m start \u001B[38;5;241m=\u001B[39m preferred_clock()\n\u001B[0;32m 702\u001B[0m \u001B[38;5;66;03m# Send the request\u001B[39;00m\n\u001B[1;32m--> 703\u001B[0m r \u001B[38;5;241m=\u001B[39m adapter\u001B[38;5;241m.\u001B[39msend(request, \u001B[38;5;241m*\u001B[39m\u001B[38;5;241m*\u001B[39mkwargs)\n\u001B[0;32m 705\u001B[0m \u001B[38;5;66;03m# Total elapsed time of the request (approximately)\u001B[39;00m\n\u001B[0;32m 706\u001B[0m elapsed \u001B[38;5;241m=\u001B[39m preferred_clock() \u001B[38;5;241m-\u001B[39m start\n", - "File \u001B[1;32m~\\AppData\\Local\\miniconda3\\Lib\\site-packages\\requests\\adapters.py:519\u001B[0m, in \u001B[0;36mHTTPAdapter.send\u001B[1;34m(self, request, stream, timeout, verify, cert, proxies)\u001B[0m\n\u001B[0;32m 515\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;28misinstance\u001B[39m(e\u001B[38;5;241m.\u001B[39mreason, _SSLError):\n\u001B[0;32m 516\u001B[0m \u001B[38;5;66;03m# This branch is for urllib3 v1.22 and later.\u001B[39;00m\n\u001B[0;32m 517\u001B[0m \u001B[38;5;28;01mraise\u001B[39;00m SSLError(e, request\u001B[38;5;241m=\u001B[39mrequest)\n\u001B[1;32m--> 519\u001B[0m \u001B[38;5;28;01mraise\u001B[39;00m \u001B[38;5;167;01mConnectionError\u001B[39;00m(e, request\u001B[38;5;241m=\u001B[39mrequest)\n\u001B[0;32m 521\u001B[0m \u001B[38;5;28;01mexcept\u001B[39;00m ClosedPoolError \u001B[38;5;28;01mas\u001B[39;00m e:\n\u001B[0;32m 522\u001B[0m \u001B[38;5;28;01mraise\u001B[39;00m \u001B[38;5;167;01mConnectionError\u001B[39;00m(e, request\u001B[38;5;241m=\u001B[39mrequest)\n", - "\u001B[1;31mConnectionError\u001B[0m: HTTPSConnectionPool(host='query.wikidata.org', port=443): Max retries exceeded with url: /sparql?query=%0ASELECT+DISTINCT+%3Fitem+%3FitemLabel%28SAMPLE%28%3FsexOrGender%29+AS+%3FsexOrGender%29%0A%28SAMPLE%28%3FcountryOfCitizenship%29+AS+%3FcountryOfCitizenship%29%0A%28SAMPLE%28%3FgivenName%29+AS+%3FgivenName%29%0A%28SAMPLE%28%3FfamilyName%29+AS+%3FfamilyName%29%0A%28SAMPLE%28%3FdateOfBirth%29+AS+%3FdateOfBirth%29%0A%28SAMPLE%28%3FdateOfDeath%29+AS+%3FdateOfDeath%29%0A%28SAMPLE%28%3Foccupation%29+AS+%3Foccupation%29%0A%28SAMPLE%28%3FfieldOfWork%29+AS+%3FfieldOfWork%29%0A%28SAMPLE%28%3Fviaf_id%29+AS+%3Fviaf_id%29%0A%28SAMPLE%28%3Fisni_id%29+AS+%3Fisni_id%29%0A%28SAMPLE%28%3Fgnd_id%29+AS+%3Fgnd_id%29+%0AWHERE+%7B%0A++++%3Fitem+wdt%3AP31+wd%3AQ5%3B+rdfs%3Alabel+%22Theodor+Geiger%22%40en+.%0A%0A++++++++++++OPTIONAL+%7B+%3Fitem+wdt%3AP21+%3FsexOrGenderId+.+%3FsexOrGenderId+rdfs%3Alabel+%3FsexOrGender+FILTER%28LANG%28%3FsexOrGender%29+%3D+%22en%22%29+.+%7D%0A++++++++++++OPTIONAL+%7B+%3Fitem+wdt%3AP27+%3FcountryOfCitizenshipId+.+%3FcountryOfCitizenshipId+rdfs%3Alabel+%3FcountryOfCitizenship+FILTER%28LANG%28%3FcountryOfCitizenship%29+%3D+%22en%22%29+.+%7D%0A++++++++++++OPTIONAL+%7B+%3Fitem+wdt%3AP735+%3FgivenNameId+.+%3FgivenNameId+rdfs%3Alabel+%3FgivenName+FILTER%28LANG%28%3FgivenName%29+%3D+%22en%22%29+.+%7D%0A++++++++++++OPTIONAL+%7B+%3Fitem+wdt%3AP734+%3FfamilyNameId+.+%3FfamilyNameId+rdfs%3Alabel+%3FfamilyName+FILTER%28LANG%28%3FfamilyName%29+%3D+%22en%22%29+.+%7D%0A++++++++++++OPTIONAL+%7B+%3Fitem+wdt%3AP569+%3FdateOfBirth.+%7D%0A++++++++++++OPTIONAL+%7B+%3Fitem+wdt%3AP570+%3FdateOfDeath.+%7D%0A++++++++++++OPTIONAL+%7B+%3Fitem+wdt%3AP106+%3FoccupationId+.+%3FoccupationId+rdfs%3Alabel+%3Foccupation+FILTER%28LANG%28%3Foccupation%29+%3D+%22en%22%29+.+%7D%0A++++++++++++OPTIONAL+%7B+%3Fitem+wdt%3AP101+%3FfieldOfWorkId+.+%3FfieldOfWorkId+rdfs%3Alabel+%3FfieldOfWork+FILTER%28LANG%28%3FfieldOfWork%29+%3D+%22en%22%29+.+%7D%0A++++++++++++OPTIONAL+%7B+%3Fitem+wdt%3AP214+%3Fviaf_id.+%7D%0A++++++++++++OPTIONAL+%7B+%3Fitem+wdt%3AP213+%3Fisni_id.+%7D%0A++++++++++++OPTIONAL+%7B+%3Fitem+wdt%3AP227+%3Fgnd_id.+%7D%0A%7D%0AGROUP+BY+%3Fitem+%3FitemLabel%0A&format=json (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x0000027807EC3DD0>: Failed to establish a new connection: [WinError 10048] Normalerweise darf jede Socketadresse (Protokoll, Netzwerkadresse oder Anschluss) nur jeweils einmal verwendet werden'))" - ] + "data": { + "text/plain": " fullName qid sexOrGender familyName givenName \\\n0 Hans Kelsen Q84165 male Kelsen Hans \n1 Hugo Sinzheimer Q86043 male Sinzheimer Hugo D. \n2 Karl Renner Q11726 male Renner Karl \n3 Ernst Fraenkel Q86812 male Fraenkel Ernst \n4 Franz Leopold Neumann Q63195 male Neumann Leopold Franz \n5 Otto Kahn-Freund Q121832 male Kahn Freund Otto \n6 Otto Kirchheimer Q214397 male Kirchheimer Otto \n7 Ludwig Bendix Q15449424 male Bendix Ludwig \n8 Arthur Nussbaum Q103088 male Nussbaum Arthur \n9 Theodor Geiger Q96410 male Geiger Theodor \n10 Erhard Blankenburg Q51595283 male Blankenburg Erhard \n11 Wolfgang Kaupen Q93221485 male Wolfgang \n12 Rüdiger Lautmann Q91074 male Rüdiger \n13 Thilo Ramm Q59533838 male Ramm Thilo \n14 Rudolf Wiethölter Q1512482 male Rudolf \n15 Niklas Luhmann Q57238 male Luhmann Niklas \n16 Hubert Rottleuthner Q55622018 male Hubert \n17 Ralf Rogowski Q112499743 male Rogowski Ralf \n18 Ralf Rogowski Q20128038 male Rogowski Ralf \n19 Gunther Teubner Q98304 male Teubner Gunther \n20 Volkmar Gessner Q15435946 male Gessner Volkmar \n21 Konstanze Plett Q95192683 female \n22 Ute Sacksofsky Q48562036 female Ute \n23 Susanne Baer Q101872 female Baer Susanne \n\n dateOfBirth dateOfDeath gnd_id \\\n0 1881-10-11 00:00:00+00:00 1973-04-19 00:00:00+00:00 118561219 \n1 1875-01-01 00:00:00+00:00 1945-09-16 00:00:00+00:00 118614711 \n2 1870-12-14 00:00:00+00:00 1950-12-31 00:00:00+00:00 118599739 \n3 1898-12-26 00:00:00+00:00 1975-03-28 00:00:00+00:00 118534602 \n4 1900-05-23 00:00:00+00:00 1954-09-02 00:00:00+00:00 118587293 \n5 1900-11-17 00:00:00+00:00 1979-06-16 00:00:00+00:00 118559362 \n6 1905-11-11 00:00:00+00:00 1965-11-22 00:00:00+00:00 118562371 \n7 1877-06-28 00:00:00+00:00 1954-01-03 00:00:00+00:00 118702033 \n8 1877-01-01 00:00:00+00:00 1964-01-01 00:00:00+00:00 117071676 \n9 1891-11-09 00:00:00+00:00 1952-06-16 00:00:00+00:00 118538187 \n10 1938-10-30 00:00:00+00:00 2018-03-28 00:00:00+00:00 115459235 \n11 1936-01-01 00:00:00+00:00 1981-01-01 00:00:00+00:00 124045405 \n12 1935-12-22 00:00:00+00:00 NaT 120502208 \n13 1925-04-04 00:00:00+00:00 2018-06-17 00:00:00+00:00 116327391 \n14 1929-07-17 00:00:00+00:00 NaT 1034437860 \n15 1927-12-08 00:00:00+00:00 1998-11-06 00:00:00+00:00 118575147 \n16 1944-01-01 00:00:00+00:00 NaT 135622751 \n17 1953-01-01 00:00:00+00:00 NaT 17150982X \n18 NaT NaT None \n19 1944-04-30 00:00:00+00:00 NaT 119443562 \n20 1937-10-09 00:00:00+00:00 2014-11-08 00:00:00+00:00 170469328 \n21 1947-01-01 00:00:00+00:00 NaT 124957048 \n22 1960-01-01 00:00:00+00:00 NaT 132505746 \n23 1964-02-16 00:00:00+00:00 NaT 113854161 \n\n wikidata_url \\\n0 http://www.wikidata.org/entity/Q84165 \n1 http://www.wikidata.org/entity/Q86043 \n2 http://www.wikidata.org/entity/Q11726 \n3 http://www.wikidata.org/entity/Q86812 \n4 http://www.wikidata.org/entity/Q63195 \n5 http://www.wikidata.org/entity/Q121832 \n6 http://www.wikidata.org/entity/Q214397 \n7 http://www.wikidata.org/entity/Q15449424 \n8 http://www.wikidata.org/entity/Q103088 \n9 http://www.wikidata.org/entity/Q96410 \n10 http://www.wikidata.org/entity/Q51595283 \n11 http://www.wikidata.org/entity/Q93221485 \n12 http://www.wikidata.org/entity/Q91074 \n13 http://www.wikidata.org/entity/Q59533838 \n14 http://www.wikidata.org/entity/Q1512482 \n15 http://www.wikidata.org/entity/Q57238 \n16 http://www.wikidata.org/entity/Q55622018 \n17 http://www.wikidata.org/entity/Q112499743 \n18 http://www.wikidata.org/entity/Q20128038 \n19 http://www.wikidata.org/entity/Q98304 \n20 http://www.wikidata.org/entity/Q15435946 \n21 http://www.wikidata.org/entity/Q95192683 \n22 http://www.wikidata.org/entity/Q48562036 \n23 http://www.wikidata.org/entity/Q101872 \n\n wikipedia_en \\\n0 https://en.wikipedia.org/wiki/Hans_Kelsen \n1 https://en.wikipedia.org/wiki/Hugo_Sinzheimer \n2 https://en.wikipedia.org/wiki/Karl_Renner \n3 https://en.wikipedia.org/wiki/Ernst_Fraenkel_(... \n4 https://en.wikipedia.org/wiki/Franz_Neumann_(p... \n5 https://en.wikipedia.org/wiki/Otto_Kahn-Freund \n6 https://en.wikipedia.org/wiki/Otto_Kirchheimer \n7 None \n8 https://en.wikipedia.org/wiki/Arthur_Nussbaum \n9 https://en.wikipedia.org/wiki/Theodor_Geiger \n10 https://en.wikipedia.org/wiki/Erhard_Blankenburg \n11 None \n12 https://en.wikipedia.org/wiki/R%C3%BCdiger_Lau... \n13 None \n14 None \n15 https://en.wikipedia.org/wiki/Niklas_Luhmann \n16 None \n17 None \n18 https://en.wikipedia.org/wiki/Ralf_Rogowski \n19 https://en.wikipedia.org/wiki/Gunther_Teubner \n20 https://en.wikipedia.org/wiki/Volkmar_Gessner \n21 None \n22 None \n23 https://en.wikipedia.org/wiki/Susanne_Baer \n\n wikipedia_de \n0 https://de.wikipedia.org/wiki/Hans_Kelsen \n1 https://de.wikipedia.org/wiki/Hugo_Sinzheimer \n2 https://de.wikipedia.org/wiki/Karl_Renner \n3 https://de.wikipedia.org/wiki/Ernst_Fraenkel_(... \n4 https://de.wikipedia.org/wiki/Franz_Neumann_(P... \n5 https://de.wikipedia.org/wiki/Otto_Kahn-Freund \n6 https://de.wikipedia.org/wiki/Otto_Kirchheimer \n7 https://de.wikipedia.org/wiki/Ludwig_Bendix \n8 https://de.wikipedia.org/wiki/Arthur_Nussbaum \n9 https://de.wikipedia.org/wiki/Theodor_Geiger \n10 https://de.wikipedia.org/wiki/Erhard_Blankenburg \n11 None \n12 https://de.wikipedia.org/wiki/R%C3%BCdiger_Lau... \n13 https://de.wikipedia.org/wiki/Thilo_Ramm \n14 https://de.wikipedia.org/wiki/Rudolf_Wieth%C3%... \n15 https://de.wikipedia.org/wiki/Niklas_Luhmann \n16 https://de.wikipedia.org/wiki/Hubert_Rottleuthner \n17 None \n18 None \n19 https://de.wikipedia.org/wiki/Gunther_Teubner \n20 https://de.wikipedia.org/wiki/Volkmar_Gessner \n21 https://de.wikipedia.org/wiki/Konstanze_Plett \n22 https://de.wikipedia.org/wiki/Ute_Sacksofsky \n23 https://de.wikipedia.org/wiki/Susanne_Baer ", + "text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>fullName</th>\n <th>qid</th>\n <th>sexOrGender</th>\n <th>familyName</th>\n <th>givenName</th>\n <th>dateOfBirth</th>\n <th>dateOfDeath</th>\n <th>gnd_id</th>\n <th>wikidata_url</th>\n <th>wikipedia_en</th>\n <th>wikipedia_de</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>Hans Kelsen</td>\n <td>Q84165</td>\n <td>male</td>\n <td>Kelsen</td>\n <td>Hans</td>\n <td>1881-10-11 00:00:00+00:00</td>\n <td>1973-04-19 00:00:00+00:00</td>\n <td>118561219</td>\n <td>http://www.wikidata.org/entity/Q84165</td>\n <td>https://en.wikipedia.org/wiki/Hans_Kelsen</td>\n <td>https://de.wikipedia.org/wiki/Hans_Kelsen</td>\n </tr>\n <tr>\n <th>1</th>\n <td>Hugo Sinzheimer</td>\n <td>Q86043</td>\n <td>male</td>\n <td>Sinzheimer</td>\n <td>Hugo D.</td>\n <td>1875-01-01 00:00:00+00:00</td>\n <td>1945-09-16 00:00:00+00:00</td>\n <td>118614711</td>\n <td>http://www.wikidata.org/entity/Q86043</td>\n <td>https://en.wikipedia.org/wiki/Hugo_Sinzheimer</td>\n <td>https://de.wikipedia.org/wiki/Hugo_Sinzheimer</td>\n </tr>\n <tr>\n <th>2</th>\n <td>Karl Renner</td>\n <td>Q11726</td>\n <td>male</td>\n <td>Renner</td>\n <td>Karl</td>\n <td>1870-12-14 00:00:00+00:00</td>\n <td>1950-12-31 00:00:00+00:00</td>\n <td>118599739</td>\n <td>http://www.wikidata.org/entity/Q11726</td>\n <td>https://en.wikipedia.org/wiki/Karl_Renner</td>\n <td>https://de.wikipedia.org/wiki/Karl_Renner</td>\n </tr>\n <tr>\n <th>3</th>\n <td>Ernst Fraenkel</td>\n <td>Q86812</td>\n <td>male</td>\n <td>Fraenkel</td>\n <td>Ernst</td>\n <td>1898-12-26 00:00:00+00:00</td>\n <td>1975-03-28 00:00:00+00:00</td>\n <td>118534602</td>\n <td>http://www.wikidata.org/entity/Q86812</td>\n <td>https://en.wikipedia.org/wiki/Ernst_Fraenkel_(...</td>\n <td>https://de.wikipedia.org/wiki/Ernst_Fraenkel_(...</td>\n </tr>\n <tr>\n <th>4</th>\n <td>Franz Leopold Neumann</td>\n <td>Q63195</td>\n <td>male</td>\n <td>Neumann</td>\n <td>Leopold Franz</td>\n <td>1900-05-23 00:00:00+00:00</td>\n <td>1954-09-02 00:00:00+00:00</td>\n <td>118587293</td>\n <td>http://www.wikidata.org/entity/Q63195</td>\n <td>https://en.wikipedia.org/wiki/Franz_Neumann_(p...</td>\n <td>https://de.wikipedia.org/wiki/Franz_Neumann_(P...</td>\n </tr>\n <tr>\n <th>5</th>\n <td>Otto Kahn-Freund</td>\n <td>Q121832</td>\n <td>male</td>\n <td>Kahn Freund</td>\n <td>Otto</td>\n <td>1900-11-17 00:00:00+00:00</td>\n <td>1979-06-16 00:00:00+00:00</td>\n <td>118559362</td>\n <td>http://www.wikidata.org/entity/Q121832</td>\n <td>https://en.wikipedia.org/wiki/Otto_Kahn-Freund</td>\n <td>https://de.wikipedia.org/wiki/Otto_Kahn-Freund</td>\n </tr>\n <tr>\n <th>6</th>\n <td>Otto Kirchheimer</td>\n <td>Q214397</td>\n <td>male</td>\n <td>Kirchheimer</td>\n <td>Otto</td>\n <td>1905-11-11 00:00:00+00:00</td>\n <td>1965-11-22 00:00:00+00:00</td>\n <td>118562371</td>\n <td>http://www.wikidata.org/entity/Q214397</td>\n <td>https://en.wikipedia.org/wiki/Otto_Kirchheimer</td>\n <td>https://de.wikipedia.org/wiki/Otto_Kirchheimer</td>\n </tr>\n <tr>\n <th>7</th>\n <td>Ludwig Bendix</td>\n <td>Q15449424</td>\n <td>male</td>\n <td>Bendix</td>\n <td>Ludwig</td>\n <td>1877-06-28 00:00:00+00:00</td>\n <td>1954-01-03 00:00:00+00:00</td>\n <td>118702033</td>\n <td>http://www.wikidata.org/entity/Q15449424</td>\n <td>None</td>\n <td>https://de.wikipedia.org/wiki/Ludwig_Bendix</td>\n </tr>\n <tr>\n <th>8</th>\n <td>Arthur Nussbaum</td>\n <td>Q103088</td>\n <td>male</td>\n <td>Nussbaum</td>\n <td>Arthur</td>\n <td>1877-01-01 00:00:00+00:00</td>\n <td>1964-01-01 00:00:00+00:00</td>\n <td>117071676</td>\n <td>http://www.wikidata.org/entity/Q103088</td>\n <td>https://en.wikipedia.org/wiki/Arthur_Nussbaum</td>\n <td>https://de.wikipedia.org/wiki/Arthur_Nussbaum</td>\n </tr>\n <tr>\n <th>9</th>\n <td>Theodor Geiger</td>\n <td>Q96410</td>\n <td>male</td>\n <td>Geiger</td>\n <td>Theodor</td>\n <td>1891-11-09 00:00:00+00:00</td>\n <td>1952-06-16 00:00:00+00:00</td>\n <td>118538187</td>\n <td>http://www.wikidata.org/entity/Q96410</td>\n <td>https://en.wikipedia.org/wiki/Theodor_Geiger</td>\n <td>https://de.wikipedia.org/wiki/Theodor_Geiger</td>\n </tr>\n <tr>\n <th>10</th>\n <td>Erhard Blankenburg</td>\n <td>Q51595283</td>\n <td>male</td>\n <td>Blankenburg</td>\n <td>Erhard</td>\n <td>1938-10-30 00:00:00+00:00</td>\n <td>2018-03-28 00:00:00+00:00</td>\n <td>115459235</td>\n <td>http://www.wikidata.org/entity/Q51595283</td>\n <td>https://en.wikipedia.org/wiki/Erhard_Blankenburg</td>\n <td>https://de.wikipedia.org/wiki/Erhard_Blankenburg</td>\n </tr>\n <tr>\n <th>11</th>\n <td>Wolfgang Kaupen</td>\n <td>Q93221485</td>\n <td>male</td>\n <td></td>\n <td>Wolfgang</td>\n <td>1936-01-01 00:00:00+00:00</td>\n <td>1981-01-01 00:00:00+00:00</td>\n <td>124045405</td>\n <td>http://www.wikidata.org/entity/Q93221485</td>\n <td>None</td>\n <td>None</td>\n </tr>\n <tr>\n <th>12</th>\n <td>Rüdiger Lautmann</td>\n <td>Q91074</td>\n <td>male</td>\n <td></td>\n <td>Rüdiger</td>\n <td>1935-12-22 00:00:00+00:00</td>\n <td>NaT</td>\n <td>120502208</td>\n <td>http://www.wikidata.org/entity/Q91074</td>\n <td>https://en.wikipedia.org/wiki/R%C3%BCdiger_Lau...</td>\n <td>https://de.wikipedia.org/wiki/R%C3%BCdiger_Lau...</td>\n </tr>\n <tr>\n <th>13</th>\n <td>Thilo Ramm</td>\n <td>Q59533838</td>\n <td>male</td>\n <td>Ramm</td>\n <td>Thilo</td>\n <td>1925-04-04 00:00:00+00:00</td>\n <td>2018-06-17 00:00:00+00:00</td>\n <td>116327391</td>\n <td>http://www.wikidata.org/entity/Q59533838</td>\n <td>None</td>\n <td>https://de.wikipedia.org/wiki/Thilo_Ramm</td>\n </tr>\n <tr>\n <th>14</th>\n <td>Rudolf Wiethölter</td>\n <td>Q1512482</td>\n <td>male</td>\n <td></td>\n <td>Rudolf</td>\n <td>1929-07-17 00:00:00+00:00</td>\n <td>NaT</td>\n <td>1034437860</td>\n <td>http://www.wikidata.org/entity/Q1512482</td>\n <td>None</td>\n <td>https://de.wikipedia.org/wiki/Rudolf_Wieth%C3%...</td>\n </tr>\n <tr>\n <th>15</th>\n <td>Niklas Luhmann</td>\n <td>Q57238</td>\n <td>male</td>\n <td>Luhmann</td>\n <td>Niklas</td>\n <td>1927-12-08 00:00:00+00:00</td>\n <td>1998-11-06 00:00:00+00:00</td>\n <td>118575147</td>\n <td>http://www.wikidata.org/entity/Q57238</td>\n <td>https://en.wikipedia.org/wiki/Niklas_Luhmann</td>\n <td>https://de.wikipedia.org/wiki/Niklas_Luhmann</td>\n </tr>\n <tr>\n <th>16</th>\n <td>Hubert Rottleuthner</td>\n <td>Q55622018</td>\n <td>male</td>\n <td></td>\n <td>Hubert</td>\n <td>1944-01-01 00:00:00+00:00</td>\n <td>NaT</td>\n <td>135622751</td>\n <td>http://www.wikidata.org/entity/Q55622018</td>\n <td>None</td>\n <td>https://de.wikipedia.org/wiki/Hubert_Rottleuthner</td>\n </tr>\n <tr>\n <th>17</th>\n <td>Ralf Rogowski</td>\n <td>Q112499743</td>\n <td>male</td>\n <td>Rogowski</td>\n <td>Ralf</td>\n <td>1953-01-01 00:00:00+00:00</td>\n <td>NaT</td>\n <td>17150982X</td>\n <td>http://www.wikidata.org/entity/Q112499743</td>\n <td>None</td>\n <td>None</td>\n </tr>\n <tr>\n <th>18</th>\n <td>Ralf Rogowski</td>\n <td>Q20128038</td>\n <td>male</td>\n <td>Rogowski</td>\n <td>Ralf</td>\n <td>NaT</td>\n <td>NaT</td>\n <td>None</td>\n <td>http://www.wikidata.org/entity/Q20128038</td>\n <td>https://en.wikipedia.org/wiki/Ralf_Rogowski</td>\n <td>None</td>\n </tr>\n <tr>\n <th>19</th>\n <td>Gunther Teubner</td>\n <td>Q98304</td>\n <td>male</td>\n <td>Teubner</td>\n <td>Gunther</td>\n <td>1944-04-30 00:00:00+00:00</td>\n <td>NaT</td>\n <td>119443562</td>\n <td>http://www.wikidata.org/entity/Q98304</td>\n <td>https://en.wikipedia.org/wiki/Gunther_Teubner</td>\n <td>https://de.wikipedia.org/wiki/Gunther_Teubner</td>\n </tr>\n <tr>\n <th>20</th>\n <td>Volkmar Gessner</td>\n <td>Q15435946</td>\n <td>male</td>\n <td>Gessner</td>\n <td>Volkmar</td>\n <td>1937-10-09 00:00:00+00:00</td>\n <td>2014-11-08 00:00:00+00:00</td>\n <td>170469328</td>\n <td>http://www.wikidata.org/entity/Q15435946</td>\n <td>https://en.wikipedia.org/wiki/Volkmar_Gessner</td>\n <td>https://de.wikipedia.org/wiki/Volkmar_Gessner</td>\n </tr>\n <tr>\n <th>21</th>\n <td>Konstanze Plett</td>\n <td>Q95192683</td>\n <td>female</td>\n <td></td>\n <td></td>\n <td>1947-01-01 00:00:00+00:00</td>\n <td>NaT</td>\n <td>124957048</td>\n <td>http://www.wikidata.org/entity/Q95192683</td>\n <td>None</td>\n <td>https://de.wikipedia.org/wiki/Konstanze_Plett</td>\n </tr>\n <tr>\n <th>22</th>\n <td>Ute Sacksofsky</td>\n <td>Q48562036</td>\n <td>female</td>\n <td></td>\n <td>Ute</td>\n <td>1960-01-01 00:00:00+00:00</td>\n <td>NaT</td>\n <td>132505746</td>\n <td>http://www.wikidata.org/entity/Q48562036</td>\n <td>None</td>\n <td>https://de.wikipedia.org/wiki/Ute_Sacksofsky</td>\n </tr>\n <tr>\n <th>23</th>\n <td>Susanne Baer</td>\n <td>Q101872</td>\n <td>female</td>\n <td>Baer</td>\n <td>Susanne</td>\n <td>1964-02-16 00:00:00+00:00</td>\n <td>NaT</td>\n <td>113854161</td>\n <td>http://www.wikidata.org/entity/Q101872</td>\n <td>https://en.wikipedia.org/wiki/Susanne_Baer</td>\n <td>https://de.wikipedia.org/wiki/Susanne_Baer</td>\n </tr>\n </tbody>\n</table>\n</div>" + }, + "execution_count": 79, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ @@ -217,15 +225,15 @@ "property_labels_to_ids = {\n", " 'sexOrGender': 'P21',\n", "# 'image': 'P18',\n", - " 'countryOfCitizenship': 'P27',\n", - " 'givenName': 'P735',\n", + "# 'countryOfCitizenship': 'P27',\n", " 'familyName': 'P734',\n", + " 'givenName': 'P735',\n", " 'dateOfBirth': 'P569',\n", " 'dateOfDeath': 'P570',\n", - " 'occupation': 'P106',\n", - " 'fieldOfWork': 'P101',\n", - " 'viaf_id': 'P214',\n", - " 'isni_id': 'P213',\n", + "# 'occupation': 'P106',\n", + "# 'fieldOfWork': 'P101',\n", + "# 'viaf_id': 'P214',\n", + "# 'isni_id': 'P213',\n", " 'gnd_id': 'P227'\n", "}\n", "\n", @@ -238,7 +246,7 @@ " \"Otto Kahn-Freund\",\n", " \"Otto Kirchheimer\",\n", " \"Herrmann Kantorowicz\",\n", - " (\"Ludwig Bendix\", \"Q28053205\"),\n", + " (\"Ludwig Bendix\", \"Q15449424\"),\n", " (\"Arthur Nussbaum\", \"Q103088\"),\n", " \"Theodor Geiger\",\n", " \"Erhard Blankenburg\",\n", @@ -247,1081 +255,128 @@ " \"Thilo Ramm\",\n", " \"Rudolf Wiethölter\",\n", " (\"Niklas Luhmann\",\"Q57238\"),\n", + " 'Hubert Rottleuthner',\n", + " 'Ralf Rogowski',\n", " \"Gunther Teubner\",\n", " \"Volkmar Gessner\",\n", " \"Konstanze Plett\",\n", " \"Ute Sacksofsky\",\n", " (\"Susanne Baer\",\"Q101872\")\n", "]\n", - "df = get_person_info_from_wikidata(scholars, property_labels_to_ids)\n", + "df = get_person_info_from_wikidata(scholars, property_labels_to_ids, debug=False)\n", + "# Convert date strings to datetime\n", + "df['dateOfBirth'] = pd.to_datetime(df['dateOfBirth'])\n", + "df['dateOfDeath'] = pd.to_datetime(df['dateOfDeath'])\n", + "df.to_csv(\"scholars.csv\", index=False)\n", "df" ], "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-03-11T17:39:31.164638600Z", - "start_time": "2024-03-11T17:39:24.677965500Z" + "end_time": "2024-03-14T08:56:20.884808600Z", + "start_time": "2024-03-14T08:55:49.510655700Z" } }, "id": "19ddabbda261cc90" }, { - "cell_type": "code", - "execution_count": null, - "outputs": [], + "cell_type": "markdown", "source": [ - "from lib.dnb_data import get_publications" + "## Create a list of scholar's QIDs only" ], "metadata": { "collapsed": false }, - "id": "3eff0c20b3425b3d" + "id": "b81815a61da16209" }, { "cell_type": "code", - "execution_count": 3, - "outputs": [ - { - "ename": "NameError", - "evalue": "name 'df' is not defined", - "output_type": "error", - "traceback": [ - "\u001B[1;31m---------------------------------------------------------------------------\u001B[0m", - "\u001B[1;31mNameError\u001B[0m Traceback (most recent call last)", - "Cell \u001B[1;32mIn[3], line 1\u001B[0m\n\u001B[1;32m----> 1\u001B[0m df\u001B[38;5;241m.\u001B[39mto_csv(\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mscholars.csv\u001B[39m\u001B[38;5;124m\"\u001B[39m, index\u001B[38;5;241m=\u001B[39m\u001B[38;5;28;01mFalse\u001B[39;00m)\n", - "\u001B[1;31mNameError\u001B[0m: name 'df' is not defined" - ] - } - ], + "execution_count": 83, + "outputs": [], "source": [ - "df.to_csv(\"scholars.csv\", index=False)" + "df.copy()[['fullName', 'qid']].to_csv(\"scholars-qid.csv\", index=False)" ], "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-03-11T13:10:04.016364200Z", - "start_time": "2024-03-11T13:10:02.070023900Z" + "end_time": "2024-03-14T09:03:26.160288500Z", + "start_time": "2024-03-14T09:03:26.141305200Z" } }, - "id": "c6c0cc347c8788d0" + "id": "4d6da32e2fbc1740" + }, + { + "cell_type": "markdown", + "source": [ + "## Create a clickable list of Wikidata/Wikipedia URLs" + ], + "metadata": { + "collapsed": false + }, + "id": "d9d0790315730b82" }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 76, "outputs": [ { "data": { - "text/plain": " fullName item sexOrGender \\\n0 Hans Kelsen Q84165 male \n1 Hugo Sinzheimer Q86043 male \n2 Karl Renner Q11726 male \n3 Ernst Fraenkel Q86812 male \n4 Franz Leopold Neumann Q112562068 male \n\n image countryOfCitizenship \\\n0 http://commons.wikimedia.org/wiki/Special:File... Cisleithania \n1 http://commons.wikimedia.org/wiki/Special:File... Germany \n2 http://commons.wikimedia.org/wiki/Special:File... Cisleithania \n3 NaN Germany \n4 NaN NaN \n\n givenName familyName dateOfBirth dateOfDeath \\\n0 Hans Kelsen 1881-10-11 00:00:00+00:00 1973-04-19 00:00:00+00:00 \n1 Hugo Sinzheimer 1875-04-12 00:00:00+00:00 1945-09-16 00:00:00+00:00 \n2 Karl Renner 1870-12-14 00:00:00+00:00 1950-12-31 00:00:00+00:00 \n3 Ernst Fraenkel 1898-12-26 00:00:00+00:00 1975-03-28 00:00:00+00:00 \n4 Leopold Neumann NaT NaT \n\n occupation fieldOfWork employer \\\n0 judge international law Charles University \n1 lawyer NaN Goethe University Frankfurt \n2 lawyer politics Austrian Federal Government \n3 lawyer NaN Free University Berlin \n4 printer publishing NaN \n\n viaf_id isni_id gnd_id duration \n0 31998356 0000000121266076 118561219.0 33427 days \n1 27864307 0000000109619641 118614711.0 25724 days \n2 61669459 0000000121358165 118599739.0 29236 days \n3 27108403 0000000110230959 118534602.0 27850 days \n4 637163874508945722514 NaN NaN NaT ", - "text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>fullName</th>\n <th>item</th>\n <th>sexOrGender</th>\n <th>image</th>\n <th>countryOfCitizenship</th>\n <th>givenName</th>\n <th>familyName</th>\n <th>dateOfBirth</th>\n <th>dateOfDeath</th>\n <th>occupation</th>\n <th>fieldOfWork</th>\n <th>employer</th>\n <th>viaf_id</th>\n <th>isni_id</th>\n <th>gnd_id</th>\n <th>duration</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>Hans Kelsen</td>\n <td>Q84165</td>\n <td>male</td>\n <td>http://commons.wikimedia.org/wiki/Special:File...</td>\n <td>Cisleithania</td>\n <td>Hans</td>\n <td>Kelsen</td>\n <td>1881-10-11 00:00:00+00:00</td>\n <td>1973-04-19 00:00:00+00:00</td>\n <td>judge</td>\n <td>international law</td>\n <td>Charles University</td>\n <td>31998356</td>\n <td>0000000121266076</td>\n <td>118561219.0</td>\n <td>33427 days</td>\n </tr>\n <tr>\n <th>1</th>\n <td>Hugo Sinzheimer</td>\n <td>Q86043</td>\n <td>male</td>\n <td>http://commons.wikimedia.org/wiki/Special:File...</td>\n <td>Germany</td>\n <td>Hugo</td>\n <td>Sinzheimer</td>\n <td>1875-04-12 00:00:00+00:00</td>\n <td>1945-09-16 00:00:00+00:00</td>\n <td>lawyer</td>\n <td>NaN</td>\n <td>Goethe University Frankfurt</td>\n <td>27864307</td>\n <td>0000000109619641</td>\n <td>118614711.0</td>\n <td>25724 days</td>\n </tr>\n <tr>\n <th>2</th>\n <td>Karl Renner</td>\n <td>Q11726</td>\n <td>male</td>\n <td>http://commons.wikimedia.org/wiki/Special:File...</td>\n <td>Cisleithania</td>\n <td>Karl</td>\n <td>Renner</td>\n <td>1870-12-14 00:00:00+00:00</td>\n <td>1950-12-31 00:00:00+00:00</td>\n <td>lawyer</td>\n <td>politics</td>\n <td>Austrian Federal Government</td>\n <td>61669459</td>\n <td>0000000121358165</td>\n <td>118599739.0</td>\n <td>29236 days</td>\n </tr>\n <tr>\n <th>3</th>\n <td>Ernst Fraenkel</td>\n <td>Q86812</td>\n <td>male</td>\n <td>NaN</td>\n <td>Germany</td>\n <td>Ernst</td>\n <td>Fraenkel</td>\n <td>1898-12-26 00:00:00+00:00</td>\n <td>1975-03-28 00:00:00+00:00</td>\n <td>lawyer</td>\n <td>NaN</td>\n <td>Free University Berlin</td>\n <td>27108403</td>\n <td>0000000110230959</td>\n <td>118534602.0</td>\n <td>27850 days</td>\n </tr>\n <tr>\n <th>4</th>\n <td>Franz Leopold Neumann</td>\n <td>Q112562068</td>\n <td>male</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>Leopold</td>\n <td>Neumann</td>\n <td>NaT</td>\n <td>NaT</td>\n <td>printer</td>\n <td>publishing</td>\n <td>NaN</td>\n <td>637163874508945722514</td>\n <td>NaN</td>\n <td>NaN</td>\n <td>NaT</td>\n </tr>\n </tbody>\n</table>\n</div>" + "text/plain": "<IPython.core.display.Markdown object>", + "text/markdown": "| | fullName | qid | familyName | givenName | wikidata_url | wikipedia_en | wikipedia_de |\n|---:|:----------------------|:----------|:-------------|:--------------|:--------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------|\n| 0 | Hans Kelsen | Q84165 | Kelsen | Hans | <a target=\"_blank\" href=\"http://www.wikidata.org/entity/Q84165\">Wikidata</a> | <a target=\"_blank\" href=\"https://en.wikipedia.org/wiki/Hans_Kelsen\">Wikipedia (EN)</a> | <a target=\"_blank\" href=\"https://de.wikipedia.org/wiki/Hans_Kelsen\">Wikipedia (DE)</a> |\n| 1 | Hugo Sinzheimer | Q86043 | Sinzheimer | Hugo D. | <a target=\"_blank\" href=\"http://www.wikidata.org/entity/Q86043\">Wikidata</a> | <a target=\"_blank\" href=\"https://en.wikipedia.org/wiki/Hugo_Sinzheimer\">Wikipedia (EN)</a> | <a target=\"_blank\" href=\"https://de.wikipedia.org/wiki/Hugo_Sinzheimer\">Wikipedia (DE)</a> |\n| 2 | Karl Renner | Q11726 | Renner | Karl | <a target=\"_blank\" href=\"http://www.wikidata.org/entity/Q11726\">Wikidata</a> | <a target=\"_blank\" href=\"https://en.wikipedia.org/wiki/Karl_Renner\">Wikipedia (EN)</a> | <a target=\"_blank\" href=\"https://de.wikipedia.org/wiki/Karl_Renner\">Wikipedia (DE)</a> |\n| 3 | Ernst Fraenkel | Q86812 | Fraenkel | Ernst | <a target=\"_blank\" href=\"http://www.wikidata.org/entity/Q86812\">Wikidata</a> | <a target=\"_blank\" href=\"https://en.wikipedia.org/wiki/Ernst_Fraenkel_(political_scientist)\">Wikipedia (EN)</a> | <a target=\"_blank\" href=\"https://de.wikipedia.org/wiki/Ernst_Fraenkel_(Politikwissenschaftler)\">Wikipedia (DE)</a> |\n| 4 | Franz Leopold Neumann | Q63195 | Neumann | Leopold Franz | <a target=\"_blank\" href=\"http://www.wikidata.org/entity/Q63195\">Wikidata</a> | <a target=\"_blank\" href=\"https://en.wikipedia.org/wiki/Franz_Neumann_(political_scientist)\">Wikipedia (EN)</a> | <a target=\"_blank\" href=\"https://de.wikipedia.org/wiki/Franz_Neumann_(Politikwissenschaftler)\">Wikipedia (DE)</a> |\n| 5 | Otto Kahn-Freund | Q121832 | Kahn Freund | Otto | <a target=\"_blank\" href=\"http://www.wikidata.org/entity/Q121832\">Wikidata</a> | <a target=\"_blank\" href=\"https://en.wikipedia.org/wiki/Otto_Kahn-Freund\">Wikipedia (EN)</a> | <a target=\"_blank\" href=\"https://de.wikipedia.org/wiki/Otto_Kahn-Freund\">Wikipedia (DE)</a> |\n| 6 | Otto Kirchheimer | Q214397 | Kirchheimer | Otto | <a target=\"_blank\" href=\"http://www.wikidata.org/entity/Q214397\">Wikidata</a> | <a target=\"_blank\" href=\"https://en.wikipedia.org/wiki/Otto_Kirchheimer\">Wikipedia (EN)</a> | <a target=\"_blank\" href=\"https://de.wikipedia.org/wiki/Otto_Kirchheimer\">Wikipedia (DE)</a> |\n| 7 | Ludwig Bendix | Q15449424 | Bendix | Ludwig | <a target=\"_blank\" href=\"http://www.wikidata.org/entity/Q15449424\">Wikidata</a> | <a target=\"_blank\" href=\"None\">Wikipedia (EN)</a> | <a target=\"_blank\" href=\"https://de.wikipedia.org/wiki/Ludwig_Bendix\">Wikipedia (DE)</a> |\n| 8 | Arthur Nussbaum | Q103088 | Nussbaum | Arthur | <a target=\"_blank\" href=\"http://www.wikidata.org/entity/Q103088\">Wikidata</a> | <a target=\"_blank\" href=\"https://en.wikipedia.org/wiki/Arthur_Nussbaum\">Wikipedia (EN)</a> | <a target=\"_blank\" href=\"https://de.wikipedia.org/wiki/Arthur_Nussbaum\">Wikipedia (DE)</a> |\n| 9 | Theodor Geiger | Q96410 | Geiger | Theodor | <a target=\"_blank\" href=\"http://www.wikidata.org/entity/Q96410\">Wikidata</a> | <a target=\"_blank\" href=\"https://en.wikipedia.org/wiki/Theodor_Geiger\">Wikipedia (EN)</a> | <a target=\"_blank\" href=\"https://de.wikipedia.org/wiki/Theodor_Geiger\">Wikipedia (DE)</a> |\n| 10 | Erhard Blankenburg | Q51595283 | Blankenburg | Erhard | <a target=\"_blank\" href=\"http://www.wikidata.org/entity/Q51595283\">Wikidata</a> | <a target=\"_blank\" href=\"https://en.wikipedia.org/wiki/Erhard_Blankenburg\">Wikipedia (EN)</a> | <a target=\"_blank\" href=\"https://de.wikipedia.org/wiki/Erhard_Blankenburg\">Wikipedia (DE)</a> |\n| 11 | Wolfgang Kaupen | Q93221485 | | Wolfgang | <a target=\"_blank\" href=\"http://www.wikidata.org/entity/Q93221485\">Wikidata</a> | <a target=\"_blank\" href=\"None\">Wikipedia (EN)</a> | <a target=\"_blank\" href=\"None\">Wikipedia (DE)</a> |\n| 12 | Rüdiger Lautmann | Q91074 | | Rüdiger | <a target=\"_blank\" href=\"http://www.wikidata.org/entity/Q91074\">Wikidata</a> | <a target=\"_blank\" href=\"https://en.wikipedia.org/wiki/R%C3%BCdiger_Lautmann\">Wikipedia (EN)</a> | <a target=\"_blank\" href=\"https://de.wikipedia.org/wiki/R%C3%BCdiger_Lautmann\">Wikipedia (DE)</a> |\n| 13 | Thilo Ramm | Q59533838 | Ramm | Thilo | <a target=\"_blank\" href=\"http://www.wikidata.org/entity/Q59533838\">Wikidata</a> | <a target=\"_blank\" href=\"None\">Wikipedia (EN)</a> | <a target=\"_blank\" href=\"https://de.wikipedia.org/wiki/Thilo_Ramm\">Wikipedia (DE)</a> |\n| 14 | Rudolf Wiethölter | Q1512482 | | Rudolf | <a target=\"_blank\" href=\"http://www.wikidata.org/entity/Q1512482\">Wikidata</a> | <a target=\"_blank\" href=\"None\">Wikipedia (EN)</a> | <a target=\"_blank\" href=\"https://de.wikipedia.org/wiki/Rudolf_Wieth%C3%B6lter\">Wikipedia (DE)</a> |\n| 15 | Niklas Luhmann | Q57238 | Luhmann | Niklas | <a target=\"_blank\" href=\"http://www.wikidata.org/entity/Q57238\">Wikidata</a> | <a target=\"_blank\" href=\"https://en.wikipedia.org/wiki/Niklas_Luhmann\">Wikipedia (EN)</a> | <a target=\"_blank\" href=\"https://de.wikipedia.org/wiki/Niklas_Luhmann\">Wikipedia (DE)</a> |\n| 16 | Hubert Rottleuthner | Q55622018 | | Hubert | <a target=\"_blank\" href=\"http://www.wikidata.org/entity/Q55622018\">Wikidata</a> | <a target=\"_blank\" href=\"None\">Wikipedia (EN)</a> | <a target=\"_blank\" href=\"https://de.wikipedia.org/wiki/Hubert_Rottleuthner\">Wikipedia (DE)</a> |\n| 17 | Gunther Teubner | Q98304 | Teubner | Gunther | <a target=\"_blank\" href=\"http://www.wikidata.org/entity/Q98304\">Wikidata</a> | <a target=\"_blank\" href=\"https://en.wikipedia.org/wiki/Gunther_Teubner\">Wikipedia (EN)</a> | <a target=\"_blank\" href=\"https://de.wikipedia.org/wiki/Gunther_Teubner\">Wikipedia (DE)</a> |\n| 18 | Volkmar Gessner | Q15435946 | Gessner | Volkmar | <a target=\"_blank\" href=\"http://www.wikidata.org/entity/Q15435946\">Wikidata</a> | <a target=\"_blank\" href=\"https://en.wikipedia.org/wiki/Volkmar_Gessner\">Wikipedia (EN)</a> | <a target=\"_blank\" href=\"https://de.wikipedia.org/wiki/Volkmar_Gessner\">Wikipedia (DE)</a> |\n| 19 | Konstanze Plett | Q95192683 | | | <a target=\"_blank\" href=\"http://www.wikidata.org/entity/Q95192683\">Wikidata</a> | <a target=\"_blank\" href=\"None\">Wikipedia (EN)</a> | <a target=\"_blank\" href=\"https://de.wikipedia.org/wiki/Konstanze_Plett\">Wikipedia (DE)</a> |\n| 20 | Ute Sacksofsky | Q48562036 | | Ute | <a target=\"_blank\" href=\"http://www.wikidata.org/entity/Q48562036\">Wikidata</a> | <a target=\"_blank\" href=\"None\">Wikipedia (EN)</a> | <a target=\"_blank\" href=\"https://de.wikipedia.org/wiki/Ute_Sacksofsky\">Wikipedia (DE)</a> |\n| 21 | Susanne Baer | Q101872 | Baer | Susanne | <a target=\"_blank\" href=\"http://www.wikidata.org/entity/Q101872\">Wikidata</a> | <a target=\"_blank\" href=\"https://en.wikipedia.org/wiki/Susanne_Baer\">Wikipedia (EN)</a> | <a target=\"_blank\" href=\"https://de.wikipedia.org/wiki/Susanne_Baer\">Wikipedia (DE)</a> |" }, - "execution_count": 4, "metadata": {}, - "output_type": "execute_result" + "output_type": "display_data" } ], "source": [ "import pandas as pd\n", + "from IPython.display import display, Markdown\n", "\n", - "# Load the data\n", - "df = pd.read_csv(\"scholars.csv\", encoding='utf-8')\n", - "# Convert date strings to datetime\n", - "df['dateOfBirth'] = pd.to_datetime(df['dateOfBirth'])\n", - "df['dateOfDeath'] = pd.to_datetime(df['dateOfDeath'])\n", + "# Function to convert URLs to HTML links\n", + "def make_clickable(val, name):\n", + " return f'<a target=\"_blank\" href=\"{val}\">{name}</a>'\n", "\n", - "# Create a new column for the duration\n", - "df['duration'] = df['dateOfDeath'] - df['dateOfBirth']\n", + "# Apply the function to each URL column\n", + "df_styled = df.copy()[['fullName', 'qid', 'familyName', 'givenName', 'wikidata_url', 'wikipedia_en', 'wikipedia_de' ]]\n", + "df_styled['wikidata_url'] = df['wikidata_url'].apply(make_clickable, name='Wikidata')\n", + "df_styled['wikipedia_en'] = df['wikipedia_en'].apply(make_clickable, name='Wikipedia (EN)')\n", + "df_styled['wikipedia_de'] = df['wikipedia_de'].apply(make_clickable, name='Wikipedia (DE)')\n", "\n", - "# Display the first few rows to check\n", - "df.head()\n" + "# Display the DataFrame as HTML\n", + "display(Markdown(df_styled.to_markdown()))\n" ], "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-03-10T19:10:57.836117100Z", - "start_time": "2024-03-10T19:10:57.788823300Z" + "end_time": "2024-03-14T08:53:06.819629Z", + "start_time": "2024-03-14T08:53:06.787707300Z" } }, - "id": "565d12a18f81abd0" + "id": "2d7bdaeed0f38415" }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 13, "outputs": [ { - "data": { - "application/vnd.plotly.v1+json": { - "data": [ - { - "alignmentgroup": "True", - "base": [ - "1857-10-28T00:00:00+00:00", - "1870-12-14T00:00:00+00:00", - "1875-04-12T00:00:00+00:00", - "1877-01-31T00:00:00+00:00", - "1881-10-11T00:00:00+00:00", - "1891-11-09T00:00:00+00:00", - "1898-12-26T00:00:00+00:00", - "1900-11-17T00:00:00+00:00", - "1905-11-11T00:00:00+00:00", - "1925-04-04T00:00:00+00:00", - "1929-07-17T00:00:00+00:00", - "1935-12-22T00:00:00+00:00", - "1936-01-01T00:00:00+00:00", - "1937-10-09T00:00:00+00:00", - "1938-10-30T00:00:00+00:00", - "1944-04-30T00:00:00+00:00", - null, - null - ], - "hovertemplate": "dateOfBirth=%{base}<br>dateOfDeath=%{x}<br>row=%{y}<br>fullName=%{text}<extra></extra>", - "legendgroup": "", - "marker": { - "color": "#636efa", - "pattern": { - "shape": "" - } - }, - "name": "", - "offsetgroup": "", - "orientation": "h", - "showlegend": false, - "text": [ - "Ludwig Bendix", - "Karl Renner", - "Hugo Sinzheimer", - "Arthur Nussbaum", - "Hans Kelsen", - "Theodor Geiger", - "Ernst Fraenkel", - "Otto Kahn-Freund", - "Otto Kirchheimer", - "Thilo Ramm", - "Rudolf Wiethölter", - "Rüdiger Lautmann", - "Wolfgang Kaupen", - "Volkmar Gessner", - "Erhard Blankenburg", - "Gunther Teubner", - "Franz Leopold Neumann", - "Niklas Luhmann" - ], - "textposition": "auto", - "x": [ - 2.08008E12, - 2.5259904E12, - 2.2225536E12, - 2.7709344E12, - 2.8880928E12, - 1.9123776E12, - 2.40624E12, - 2.4849504E12, - 1.8944064E12, - 2.9412288E12, - null, - null, - 1.4201568E12, - 2.4325056E12, - 2.5059456E12, - null, - null, - null - ], - "xaxis": "x", - "y": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 0, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ], - "yaxis": "y", - "type": "bar" - } - ], - "layout": { - "template": { - "data": { - "histogram2dcontour": [ - { - "type": "histogram2dcontour", - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0.0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1.0, - "#f0f921" - ] - ] - } - ], - "choropleth": [ - { - "type": "choropleth", - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - ], - "histogram2d": [ - { - "type": "histogram2d", - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0.0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1.0, - "#f0f921" - ] - ] - } - ], - "heatmap": [ - { - "type": "heatmap", - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0.0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1.0, - "#f0f921" - ] - ] - } - ], - "heatmapgl": [ - { - "type": "heatmapgl", - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0.0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1.0, - "#f0f921" - ] - ] - } - ], - "contourcarpet": [ - { - "type": "contourcarpet", - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - ], - "contour": [ - { - "type": "contour", - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0.0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1.0, - "#f0f921" - ] - ] - } - ], - "surface": [ - { - "type": "surface", - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0.0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1.0, - "#f0f921" - ] - ] - } - ], - "mesh3d": [ - { - "type": "mesh3d", - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - ], - "scatter": [ - { - "marker": { - "line": { - "color": "#283442" - } - }, - "type": "scatter" - } - ], - "parcoords": [ - { - "type": "parcoords", - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - } - ], - "scatterpolargl": [ - { - "type": "scatterpolargl", - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - } - ], - "bar": [ - { - "error_x": { - "color": "#f2f5fa" - }, - "error_y": { - "color": "#f2f5fa" - }, - "marker": { - "line": { - "color": "rgb(17,17,17)", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "scattergeo": [ - { - "type": "scattergeo", - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - } - ], - "scatterpolar": [ - { - "type": "scatterpolar", - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "scattergl": [ - { - "marker": { - "line": { - "color": "#283442" - } - }, - "type": "scattergl" - } - ], - "scatter3d": [ - { - "type": "scatter3d", - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - } - ], - "scattermapbox": [ - { - "type": "scattermapbox", - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - } - ], - "scatterternary": [ - { - "type": "scatterternary", - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - } - ], - "scattercarpet": [ - { - "type": "scattercarpet", - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - } - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#A2B1C6", - "gridcolor": "#506784", - "linecolor": "#506784", - "minorgridcolor": "#506784", - "startlinecolor": "#A2B1C6" - }, - "baxis": { - "endlinecolor": "#A2B1C6", - "gridcolor": "#506784", - "linecolor": "#506784", - "minorgridcolor": "#506784", - "startlinecolor": "#A2B1C6" - }, - "type": "carpet" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#506784" - }, - "line": { - "color": "rgb(17,17,17)" - } - }, - "header": { - "fill": { - "color": "#2a3f5f" - }, - "line": { - "color": "rgb(17,17,17)" - } - }, - "type": "table" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "rgb(17,17,17)", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ] - }, - "layout": { - "autotypenumbers": "strict", - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#f2f5fa" - }, - "hovermode": "closest", - "hoverlabel": { - "align": "left" - }, - "paper_bgcolor": "rgb(17,17,17)", - "plot_bgcolor": "rgb(17,17,17)", - "polar": { - "bgcolor": "rgb(17,17,17)", - "angularaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", - "ticks": "" - }, - "radialaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", - "ticks": "" - } - }, - "ternary": { - "bgcolor": "rgb(17,17,17)", - "aaxis": { - "gridcolor": "#506784", - "linecolor": "#506784", - "ticks": "" - }, - "baxis": { - "gridcolor": "#506784", - "linecolor": "#506784", - "ticks": "" - }, - "caxis": { - "gridcolor": "#506784", - "linecolor": "#506784", - "ticks": "" - } - }, - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "sequential": [ - [ - 0.0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1.0, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0.0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1.0, - "#f0f921" - ] - ], - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ] - }, - "xaxis": { - "gridcolor": "#283442", - "linecolor": "#506784", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "#283442", - "automargin": true, - "zerolinewidth": 2 - }, - "yaxis": { - "gridcolor": "#283442", - "linecolor": "#506784", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "#283442", - "automargin": true, - "zerolinewidth": 2 - }, - "scene": { - "xaxis": { - "backgroundcolor": "rgb(17,17,17)", - "gridcolor": "#506784", - "linecolor": "#506784", - "showbackground": true, - "ticks": "", - "zerolinecolor": "#C8D4E3", - "gridwidth": 2 - }, - "yaxis": { - "backgroundcolor": "rgb(17,17,17)", - "gridcolor": "#506784", - "linecolor": "#506784", - "showbackground": true, - "ticks": "", - "zerolinecolor": "#C8D4E3", - "gridwidth": 2 - }, - "zaxis": { - "backgroundcolor": "rgb(17,17,17)", - "gridcolor": "#506784", - "linecolor": "#506784", - "showbackground": true, - "ticks": "", - "zerolinecolor": "#C8D4E3", - "gridwidth": 2 - } - }, - "shapedefaults": { - "line": { - "color": "#f2f5fa" - } - }, - "annotationdefaults": { - "arrowcolor": "#f2f5fa", - "arrowhead": 0, - "arrowwidth": 1 - }, - "geo": { - "bgcolor": "rgb(17,17,17)", - "landcolor": "rgb(17,17,17)", - "subunitcolor": "#506784", - "showland": true, - "showlakes": true, - "lakecolor": "rgb(17,17,17)" - }, - "title": { - "x": 0.05 - }, - "updatemenudefaults": { - "bgcolor": "#506784", - "borderwidth": 0 - }, - "sliderdefaults": { - "bgcolor": "#C8D4E3", - "borderwidth": 1, - "bordercolor": "rgb(17,17,17)", - "tickwidth": 0 - }, - "mapbox": { - "style": "dark" - } - } - }, - "xaxis": { - "anchor": "y", - "domain": [ - 0.0, - 1.0 - ], - "type": "date" - }, - "yaxis": { - "anchor": "x", - "domain": [ - 0.0, - 1.0 - ], - "title": { - "text": "row" - }, - "tickmode": "array", - "tickvals": [], - "ticktext": [], - "autorange": "reversed" - }, - "legend": { - "tracegroupgap": 0 - }, - "title": { - "text": "Scholars' Life Spans Timeline" - }, - "barmode": "overlay" - }, - "config": { - "plotlyServerURL": "https://plot.ly" - } - }, - "text/html": "<div> <div id=\"55be47cb-91f4-4113-a440-84ef0ea8fe4c\" class=\"plotly-graph-div\" style=\"height:525px; width:100%;\"></div> <script type=\"text/javascript\"> require([\"plotly\"], function(Plotly) { window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById(\"55be47cb-91f4-4113-a440-84ef0ea8fe4c\")) { Plotly.newPlot( \"55be47cb-91f4-4113-a440-84ef0ea8fe4c\", [{\"alignmentgroup\":\"True\",\"base\":[\"1857-10-28T00:00:00+00:00\",\"1870-12-14T00:00:00+00:00\",\"1875-04-12T00:00:00+00:00\",\"1877-01-31T00:00:00+00:00\",\"1881-10-11T00:00:00+00:00\",\"1891-11-09T00:00:00+00:00\",\"1898-12-26T00:00:00+00:00\",\"1900-11-17T00:00:00+00:00\",\"1905-11-11T00:00:00+00:00\",\"1925-04-04T00:00:00+00:00\",\"1929-07-17T00:00:00+00:00\",\"1935-12-22T00:00:00+00:00\",\"1936-01-01T00:00:00+00:00\",\"1937-10-09T00:00:00+00:00\",\"1938-10-30T00:00:00+00:00\",\"1944-04-30T00:00:00+00:00\",null,null],\"hovertemplate\":\"dateOfBirth=%{base}\\u003cbr\\u003edateOfDeath=%{x}\\u003cbr\\u003erow=%{y}\\u003cbr\\u003efullName=%{text}\\u003cextra\\u003e\\u003c\\u002fextra\\u003e\",\"legendgroup\":\"\",\"marker\":{\"color\":\"#636efa\",\"pattern\":{\"shape\":\"\"}},\"name\":\"\",\"offsetgroup\":\"\",\"orientation\":\"h\",\"showlegend\":false,\"text\":[\"Ludwig Bendix\",\"Karl Renner\",\"Hugo Sinzheimer\",\"Arthur Nussbaum\",\"Hans Kelsen\",\"Theodor Geiger\",\"Ernst Fraenkel\",\"Otto Kahn-Freund\",\"Otto Kirchheimer\",\"Thilo Ramm\",\"Rudolf Wiethölter\",\"Rüdiger Lautmann\",\"Wolfgang Kaupen\",\"Volkmar Gessner\",\"Erhard Blankenburg\",\"Gunther Teubner\",\"Franz Leopold Neumann\",\"Niklas Luhmann\"],\"textposition\":\"auto\",\"x\":[2080080000000.0,2525990400000.0,2222553600000.0,2770934400000.0,2888092800000.0,1912377600000.0,2406240000000.0,2484950400000.0,1894406400000.0,2941228800000.0,null,null,1420156800000.0,2432505600000.0,2505945600000.0,null,null,null],\"xaxis\":\"x\",\"y\":[0,1,2,3,4,5,6,7,8,0,9,10,11,12,13,14,15,16],\"yaxis\":\"y\",\"type\":\"bar\"}], {\"template\":{\"data\":{\"histogram2dcontour\":[{\"type\":\"histogram2dcontour\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"choropleth\":[{\"type\":\"choropleth\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}],\"histogram2d\":[{\"type\":\"histogram2d\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"heatmap\":[{\"type\":\"heatmap\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"heatmapgl\":[{\"type\":\"heatmapgl\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"contourcarpet\":[{\"type\":\"contourcarpet\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}],\"contour\":[{\"type\":\"contour\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"surface\":[{\"type\":\"surface\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"},\"colorscale\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]]}],\"mesh3d\":[{\"type\":\"mesh3d\",\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}],\"scatter\":[{\"marker\":{\"line\":{\"color\":\"#283442\"}},\"type\":\"scatter\"}],\"parcoords\":[{\"type\":\"parcoords\",\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatterpolargl\":[{\"type\":\"scatterpolargl\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"bar\":[{\"error_x\":{\"color\":\"#f2f5fa\"},\"error_y\":{\"color\":\"#f2f5fa\"},\"marker\":{\"line\":{\"color\":\"rgb(17,17,17)\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"bar\"}],\"scattergeo\":[{\"type\":\"scattergeo\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatterpolar\":[{\"type\":\"scatterpolar\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"histogram\":[{\"marker\":{\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"histogram\"}],\"scattergl\":[{\"marker\":{\"line\":{\"color\":\"#283442\"}},\"type\":\"scattergl\"}],\"scatter3d\":[{\"type\":\"scatter3d\",\"line\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scattermapbox\":[{\"type\":\"scattermapbox\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scatterternary\":[{\"type\":\"scatterternary\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"scattercarpet\":[{\"type\":\"scattercarpet\",\"marker\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}}}],\"carpet\":[{\"aaxis\":{\"endlinecolor\":\"#A2B1C6\",\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"minorgridcolor\":\"#506784\",\"startlinecolor\":\"#A2B1C6\"},\"baxis\":{\"endlinecolor\":\"#A2B1C6\",\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"minorgridcolor\":\"#506784\",\"startlinecolor\":\"#A2B1C6\"},\"type\":\"carpet\"}],\"table\":[{\"cells\":{\"fill\":{\"color\":\"#506784\"},\"line\":{\"color\":\"rgb(17,17,17)\"}},\"header\":{\"fill\":{\"color\":\"#2a3f5f\"},\"line\":{\"color\":\"rgb(17,17,17)\"}},\"type\":\"table\"}],\"barpolar\":[{\"marker\":{\"line\":{\"color\":\"rgb(17,17,17)\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"barpolar\"}],\"pie\":[{\"automargin\":true,\"type\":\"pie\"}]},\"layout\":{\"autotypenumbers\":\"strict\",\"colorway\":[\"#636efa\",\"#EF553B\",\"#00cc96\",\"#ab63fa\",\"#FFA15A\",\"#19d3f3\",\"#FF6692\",\"#B6E880\",\"#FF97FF\",\"#FECB52\"],\"font\":{\"color\":\"#f2f5fa\"},\"hovermode\":\"closest\",\"hoverlabel\":{\"align\":\"left\"},\"paper_bgcolor\":\"rgb(17,17,17)\",\"plot_bgcolor\":\"rgb(17,17,17)\",\"polar\":{\"bgcolor\":\"rgb(17,17,17)\",\"angularaxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"},\"radialaxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"}},\"ternary\":{\"bgcolor\":\"rgb(17,17,17)\",\"aaxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"},\"baxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"},\"caxis\":{\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"ticks\":\"\"}},\"coloraxis\":{\"colorbar\":{\"outlinewidth\":0,\"ticks\":\"\"}},\"colorscale\":{\"sequential\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"sequentialminus\":[[0.0,\"#0d0887\"],[0.1111111111111111,\"#46039f\"],[0.2222222222222222,\"#7201a8\"],[0.3333333333333333,\"#9c179e\"],[0.4444444444444444,\"#bd3786\"],[0.5555555555555556,\"#d8576b\"],[0.6666666666666666,\"#ed7953\"],[0.7777777777777778,\"#fb9f3a\"],[0.8888888888888888,\"#fdca26\"],[1.0,\"#f0f921\"]],\"diverging\":[[0,\"#8e0152\"],[0.1,\"#c51b7d\"],[0.2,\"#de77ae\"],[0.3,\"#f1b6da\"],[0.4,\"#fde0ef\"],[0.5,\"#f7f7f7\"],[0.6,\"#e6f5d0\"],[0.7,\"#b8e186\"],[0.8,\"#7fbc41\"],[0.9,\"#4d9221\"],[1,\"#276419\"]]},\"xaxis\":{\"gridcolor\":\"#283442\",\"linecolor\":\"#506784\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"#283442\",\"automargin\":true,\"zerolinewidth\":2},\"yaxis\":{\"gridcolor\":\"#283442\",\"linecolor\":\"#506784\",\"ticks\":\"\",\"title\":{\"standoff\":15},\"zerolinecolor\":\"#283442\",\"automargin\":true,\"zerolinewidth\":2},\"scene\":{\"xaxis\":{\"backgroundcolor\":\"rgb(17,17,17)\",\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"#C8D4E3\",\"gridwidth\":2},\"yaxis\":{\"backgroundcolor\":\"rgb(17,17,17)\",\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"#C8D4E3\",\"gridwidth\":2},\"zaxis\":{\"backgroundcolor\":\"rgb(17,17,17)\",\"gridcolor\":\"#506784\",\"linecolor\":\"#506784\",\"showbackground\":true,\"ticks\":\"\",\"zerolinecolor\":\"#C8D4E3\",\"gridwidth\":2}},\"shapedefaults\":{\"line\":{\"color\":\"#f2f5fa\"}},\"annotationdefaults\":{\"arrowcolor\":\"#f2f5fa\",\"arrowhead\":0,\"arrowwidth\":1},\"geo\":{\"bgcolor\":\"rgb(17,17,17)\",\"landcolor\":\"rgb(17,17,17)\",\"subunitcolor\":\"#506784\",\"showland\":true,\"showlakes\":true,\"lakecolor\":\"rgb(17,17,17)\"},\"title\":{\"x\":0.05},\"updatemenudefaults\":{\"bgcolor\":\"#506784\",\"borderwidth\":0},\"sliderdefaults\":{\"bgcolor\":\"#C8D4E3\",\"borderwidth\":1,\"bordercolor\":\"rgb(17,17,17)\",\"tickwidth\":0},\"mapbox\":{\"style\":\"dark\"}}},\"xaxis\":{\"anchor\":\"y\",\"domain\":[0.0,1.0],\"type\":\"date\"},\"yaxis\":{\"anchor\":\"x\",\"domain\":[0.0,1.0],\"title\":{\"text\":\"row\"},\"tickmode\":\"array\",\"tickvals\":[],\"ticktext\":[],\"autorange\":\"reversed\"},\"legend\":{\"tracegroupgap\":0},\"title\":{\"text\":\"Scholars' Life Spans Timeline\"},\"barmode\":\"overlay\"}, {\"responsive\": true} ).then(function(){\n \nvar gd = document.getElementById('55be47cb-91f4-4113-a440-84ef0ea8fe4c');\nvar x = new MutationObserver(function (mutations, observer) {{\n var display = window.getComputedStyle(gd).display;\n if (!display || display === 'none') {{\n console.log([gd, 'removed!']);\n Plotly.purge(gd);\n observer.disconnect();\n }}\n}});\n\n// Listen for the removal of the full notebook cells\nvar notebookContainer = gd.closest('#notebook-container');\nif (notebookContainer) {{\n x.observe(notebookContainer, {childList: true});\n}}\n\n// Listen for the clearing of the current output cell\nvar outputEl = gd.closest('.output');\nif (outputEl) {{\n x.observe(outputEl, {childList: true});\n}}\n\n }) }; }); </script> </div>" - }, - "metadata": {}, - "output_type": "display_data" + "ename": "TypeError", + "evalue": "'>' not supported between instances of 'float' and 'str'", + "output_type": "error", + "traceback": [ + "\u001B[1;31m---------------------------------------------------------------------------\u001B[0m", + "\u001B[1;31mTypeError\u001B[0m Traceback (most recent call last)", + "Cell \u001B[1;32mIn[13], line 20\u001B[0m\n\u001B[0;32m 18\u001B[0m df[\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mrow\u001B[39m\u001B[38;5;124m'\u001B[39m] \u001B[38;5;241m=\u001B[39m \u001B[38;5;241m0\u001B[39m\n\u001B[0;32m 19\u001B[0m \u001B[38;5;28;01mfor\u001B[39;00m index, scholar \u001B[38;5;129;01min\u001B[39;00m df\u001B[38;5;241m.\u001B[39miterrows():\n\u001B[1;32m---> 20\u001B[0m row \u001B[38;5;241m=\u001B[39m \u001B[43mfind_row\u001B[49m\u001B[43m(\u001B[49m\u001B[43mlast_dates\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mscholar\u001B[49m\u001B[43m[\u001B[49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[38;5;124;43mdateOfBirth\u001B[39;49m\u001B[38;5;124;43m'\u001B[39;49m\u001B[43m]\u001B[49m\u001B[43m)\u001B[49m\n\u001B[0;32m 21\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m row \u001B[38;5;241m<\u001B[39m \u001B[38;5;28mlen\u001B[39m(last_dates):\n\u001B[0;32m 22\u001B[0m last_dates[row] \u001B[38;5;241m=\u001B[39m scholar[\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mdateOfDeath\u001B[39m\u001B[38;5;124m'\u001B[39m]\n", + "Cell \u001B[1;32mIn[13], line 13\u001B[0m, in \u001B[0;36mfind_row\u001B[1;34m(last_dates, start_date)\u001B[0m\n\u001B[0;32m 11\u001B[0m \u001B[38;5;28;01mdef\u001B[39;00m \u001B[38;5;21mfind_row\u001B[39m(last_dates, start_date):\n\u001B[0;32m 12\u001B[0m \u001B[38;5;28;01mfor\u001B[39;00m i, last_date \u001B[38;5;129;01min\u001B[39;00m \u001B[38;5;28menumerate\u001B[39m(last_dates):\n\u001B[1;32m---> 13\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m \u001B[43mstart_date\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;241;43m>\u001B[39;49m\u001B[43m \u001B[49m\u001B[43mlast_date\u001B[49m:\n\u001B[0;32m 14\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m i\n\u001B[0;32m 15\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m \u001B[38;5;28mlen\u001B[39m(last_dates)\n", + "\u001B[1;31mTypeError\u001B[0m: '>' not supported between instances of 'float' and 'str'" + ] } ], "source": [ "import pandas as pd\n", "import plotly.express as px\n", "\n", - "# Assuming df is already loaded and dateOfBirth/dateOfDeath are converted to datetime\n", + "# Load the data\n", + "df = pd.read_csv(\"scholars.csv\", encoding='utf-8')\n", "\n", "# Initialize a list to track the last dateOfDeath in each row to manage overlaps\n", "last_dates = []\n", @@ -1356,8 +411,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-03-10T19:25:25.126760500Z", - "start_time": "2024-03-10T19:25:25.076205200Z" + "end_time": "2024-03-11T22:37:55.002823500Z", + "start_time": "2024-03-11T22:37:53.483582400Z" } }, "id": "9bdf188991f29962" diff --git a/wikidata/readme.md b/wikidata/readme.md index a68b25774f18fe95047519863c50e60b2514ad6b..2d4b2fd04ae9b7134f24be9ac5f21c7ba3d03e26 100644 --- a/wikidata/readme.md +++ b/wikidata/readme.md @@ -1,3 +1,3 @@ # WikiData data retrieval -`pip install openpyxl plotly lxml` \ No newline at end of file +`pip install openpyxl plotly lxml tabulate` \ No newline at end of file diff --git a/wikidata/scholars-qid.csv b/wikidata/scholars-qid.csv new file mode 100644 index 0000000000000000000000000000000000000000..52fed1ce6ca9ada096be1743ba1cd04b58ca2aee --- /dev/null +++ b/wikidata/scholars-qid.csv @@ -0,0 +1,25 @@ +fullName,qid +Hans Kelsen,Q84165 +Hugo Sinzheimer,Q86043 +Karl Renner,Q11726 +Ernst Fraenkel,Q86812 +Franz Leopold Neumann,Q63195 +Otto Kahn-Freund,Q121832 +Otto Kirchheimer,Q214397 +Ludwig Bendix,Q15449424 +Arthur Nussbaum,Q103088 +Theodor Geiger,Q96410 +Erhard Blankenburg,Q51595283 +Wolfgang Kaupen,Q93221485 +Rüdiger Lautmann,Q91074 +Thilo Ramm,Q59533838 +Rudolf Wiethölter,Q1512482 +Niklas Luhmann,Q57238 +Hubert Rottleuthner,Q55622018 +Ralf Rogowski,Q112499743 +Ralf Rogowski,Q20128038 +Gunther Teubner,Q98304 +Volkmar Gessner,Q15435946 +Konstanze Plett,Q95192683 +Ute Sacksofsky,Q48562036 +Susanne Baer,Q101872 diff --git a/wikidata/scholars.csv b/wikidata/scholars.csv index 7cf145a6c35f0f82ff9a2396b19dd9b9774e271d..70aea7e4a713f3986c394cfb544f02f27662d350 100644 --- a/wikidata/scholars.csv +++ b/wikidata/scholars.csv @@ -1,35 +1,25 @@ -fullName,qid,sexOrGender,image,countryOfCitizenship,givenName,familyName,dateOfBirth,dateOfDeath,occupation,fieldOfWork,viaf_id,isni_id,gnd_id,wikipedia_en -Hans Kelsen,Q84165,male,http://commons.wikimedia.org/wiki/Special:FilePath/Hans%20Kelsen%20%281881%E2%80%931973%29%20~1930%20%C2%A9%20Georg%20Fayer%20%281892%E2%80%931950%29%20OeNB%208026867.jpg,United States of America,Hans,Kelsen,1881-10-11T00:00:00Z,1973-04-19T00:00:00Z,philosopher,constitutional law,31998356,0000000121266076,118561219,https://en.wikipedia.org/wiki/Hans%20Kelsen -Hugo Sinzheimer,Q86043,male,http://commons.wikimedia.org/wiki/Special:FilePath/Hugo%20Sinzheimer.jpg,Germany,D.,Sinzheimer,1875-01-01T00:00:00Z,1945-09-16T00:00:00Z,trade unionist,,27864307,0000000109619641,118614711,https://en.wikipedia.org/wiki/Hugo%20Sinzheimer -Karl Renner,Q48010797,male,,Austria,Karl,Renner,1884-12-24T00:00:00Z,1929-06-24T00:00:00Z,,,78817437,0000000054940875,134869036, -Karl Renner,Q15451414,male,http://commons.wikimedia.org/wiki/Special:FilePath/Karl-renner-hn.jpg,Germany,Karl,Renner,1833-05-13T00:00:00Z,1913-09-22T00:00:00Z,merchant,,171170593,,1012296458, -Karl Renner,Q94817885,male,,,Karl,Renner,,,board member,,100408035,,139099409, -Karl Renner,Q11726,male,http://commons.wikimedia.org/wiki/Special:FilePath/Karl%20Renner%201905.jpg,Austria,Karl,Renner,1870-12-14T00:00:00Z,1950-12-31T00:00:00Z,diplomat,politics,61669459,0000000121358165,118599739,https://en.wikipedia.org/wiki/Karl%20Renner -Karl Renner,Q107022720,male,,,Karl,Renner,1889-12-01T00:00:00Z,1947-05-17T00:00:00Z,local politician,,,,, -Ernst Fraenkel,Q21997821,male,,,Ernst,Fraenkel,1923-01-01T00:00:00Z,2014-11-13T00:00:00Z,businessperson,,,,,https://en.wikipedia.org/wiki/Ernst%20Fraenkel%20%28businessman%29 -Ernst Fraenkel,Q92522,male,,Germany,Ernst,Fraenkel,1881-10-16T00:00:00Z,1957-10-02T00:00:00Z,linguist,linguistics,24595835,0000000081027854,11669064X,https://en.wikipedia.org/wiki/Ernst%20Fraenkel%20%28linguist%29 -Ernst Fraenkel,Q1358093,male,,Germany,Ernst,Fraenkel,1891-04-05T00:00:00Z,1971-08-18T00:00:00Z,economic historian,,50078162,,121259854, -Ernst Fraenkel,Q86812,male,,United States of America,Ernst,Fraenkel,1898-12-26T00:00:00Z,1975-03-28T00:00:00Z,political scientist,,27108403,0000000110230959,118534602,https://en.wikipedia.org/wiki/Ernst%20Fraenkel%20%28political%20scientist%29 -Franz Leopold Neumann,Q63195,male,,Weimar Republic,Franz,Neumann,1900-05-23T00:00:00Z,1954-09-02T00:00:00Z,sociologist,,15561879,0000000109564943,118587293,https://en.wikipedia.org/wiki/Franz%20Neumann%20%28political%20scientist%29 -Franz Leopold Neumann,Q112562068,male,,,Franz,Neumann,,,printer,pressing,637163874508945722514,,, -Otto Kahn-Freund,Q121832,male,http://commons.wikimedia.org/wiki/Special:FilePath/Sir%20Otto%20Kahn-Freund%2C%20c1950.jpg,Germany,Otto,,1900-11-17T00:00:00Z,1979-06-16T00:00:00Z,university teacher,,76317591,0000000109168959,118559362,https://en.wikipedia.org/wiki/Otto%20Kahn-Freund -Otto Kirchheimer,Q214397,male,,United States of America,Otto,Kirchheimer,1905-11-11T00:00:00Z,1965-11-22T00:00:00Z,university teacher,,32042801,0000000081110244,118562371,https://en.wikipedia.org/wiki/Otto%20Kirchheimer -Ludwig Bendix,Q28053205,male,,,Ludwig,Bendix,1857-10-28T00:00:00Z,1923-09-28T00:00:00Z,university teacher,,88720482,0000000061811334,1023309920, -Ludwig Bendix,Q15449424,male,,Germany,Ludwig,Bendix,1877-06-28T00:00:00Z,1954-01-03T00:00:00Z,notary,,74647579,0000000081553379,118702033, -Arthur Nussbaum,Q103088,male,http://commons.wikimedia.org/wiki/Special:FilePath/Arthur%20Nussbaum.jpg,United States of America,Arthur,Nussbaum,1877-01-01T00:00:00Z,1964-01-01T00:00:00Z,university teacher,international law,5180962,0000000120988288,117071676,https://en.wikipedia.org/wiki/Arthur%20Nussbaum -Arthur Nussbaum,Q94847354,male,,,Arthur,,1853-10-18T00:00:00Z,1916-05-11T00:00:00Z,journalist,,308715560,,1051211875, -Theodor Geiger,Q96410,male,,Denmark,Theodor,Geiger,1891-11-09T00:00:00Z,1952-06-16T00:00:00Z,sociologist,,56667946,0000000109038951,118538187,https://en.wikipedia.org/wiki/Theodor%20Geiger -Erhard Blankenburg,Q51595283,male,http://commons.wikimedia.org/wiki/Special:FilePath/Erhard%20Blankenburg.jpg,Germany,Erhard,Blankenburg,1938-10-30T00:00:00Z,2018-03-28T00:00:00Z,sociologist,sociology of law,64109592,0000000110676109,115459235,https://en.wikipedia.org/wiki/Erhard%20Blankenburg -Wolfgang Kaupen,Q93221485,male,,,Wolfgang,,1936-01-01T00:00:00Z,1981-01-01T00:00:00Z,sociologist,sociology of law,32919813,0000000035495614,124045405, -Rüdiger Lautmann,Q91074,male,http://commons.wikimedia.org/wiki/Special:FilePath/Lautmann%202012.jpg,Germany,Rüdiger,,1935-12-22T00:00:00Z,,LGBTQI+ rights activist,homosexuality,24732961,000000011469331X,120502208,https://en.wikipedia.org/wiki/R%C3%BCdiger%20Lautmann -Thilo Ramm,Q59533838,male,,Germany,Thilo,Ramm,1925-04-04T00:00:00Z,2018-06-17T00:00:00Z,legal scholar,,9924244,0000000108689541,116327391, -Rudolf Wiethölter,Q1512482,male,,Germany,Rudolf,,1929-07-17T00:00:00Z,,university teacher,,106974404,0000000116961365,1034437860, -Niklas Luhmann,Q57238,male,http://commons.wikimedia.org/wiki/Special:FilePath/HSGH%20022-000941%20Niklas%20Luhmann%20%28cropped%29.png,Germany,Niklas,Luhmann,1927-12-08T00:00:00Z,1998-11-06T00:00:00Z,cyberneticist,sociology,29546145,0000000122778532,118575147,https://en.wikipedia.org/wiki/Niklas%20Luhmann -Niklas Luhmann,Q85691627,,,,,,,,researcher,,,,, -Niklas Luhmann,Q61803657,,,,,,,,researcher,,,,, -Gunther Teubner,Q98304,male,http://commons.wikimedia.org/wiki/Special:FilePath/Gunther%20Teubner%20%282017%29.jpg,Germany,Gunther,Teubner,1944-04-30T00:00:00Z,,jurist,,108364502,0000000109312017,119443562,https://en.wikipedia.org/wiki/Gunther%20Teubner -Volkmar Gessner,Q15435946,male,http://commons.wikimedia.org/wiki/Special:FilePath/Volkmar%20Gessner%20%282006%29.JPG,Germany,Volkmar,Gessner,1937-10-09T00:00:00Z,2014-11-08T00:00:00Z,sociologist,sociology of law,69100039,0000000109127065,170469328,https://en.wikipedia.org/wiki/Volkmar%20Gessner -Konstanze Plett,Q95192683,female,,,,,1947-01-01T00:00:00Z,,jurist,,20628376,0000000066847723,124957048, -Ute Sacksofsky,Q48562036,female,,Germany,Ute,,1960-01-01T00:00:00Z,,university teacher,comparative law,54395802,0000000109029166,132505746, -Susanne Baer,Q95656754,female,,,Susanne,Baer,,,actor,,189145911193727062107,,1093595477, -Susanne Baer,Q101872,female,http://commons.wikimedia.org/wiki/Special:FilePath/Susanne%20Baer%202014%28cropped%29.jpg,Germany,Susanne,Baer,1964-02-16T00:00:00Z,,judge,,262465472,0000000030338599,113854161,https://en.wikipedia.org/wiki/Susanne%20Baer +fullName,qid,sexOrGender,familyName,givenName,dateOfBirth,dateOfDeath,gnd_id,wikidata_url,wikipedia_en,wikipedia_de +Hans Kelsen,Q84165,male,Kelsen,Hans,1881-10-11 00:00:00+00:00,1973-04-19 00:00:00+00:00,118561219,http://www.wikidata.org/entity/Q84165,https://en.wikipedia.org/wiki/Hans_Kelsen,https://de.wikipedia.org/wiki/Hans_Kelsen +Hugo Sinzheimer,Q86043,male,Sinzheimer,Hugo D.,1875-01-01 00:00:00+00:00,1945-09-16 00:00:00+00:00,118614711,http://www.wikidata.org/entity/Q86043,https://en.wikipedia.org/wiki/Hugo_Sinzheimer,https://de.wikipedia.org/wiki/Hugo_Sinzheimer +Karl Renner,Q11726,male,Renner,Karl,1870-12-14 00:00:00+00:00,1950-12-31 00:00:00+00:00,118599739,http://www.wikidata.org/entity/Q11726,https://en.wikipedia.org/wiki/Karl_Renner,https://de.wikipedia.org/wiki/Karl_Renner +Ernst Fraenkel,Q86812,male,Fraenkel,Ernst,1898-12-26 00:00:00+00:00,1975-03-28 00:00:00+00:00,118534602,http://www.wikidata.org/entity/Q86812,https://en.wikipedia.org/wiki/Ernst_Fraenkel_(political_scientist),https://de.wikipedia.org/wiki/Ernst_Fraenkel_(Politikwissenschaftler) +Franz Leopold Neumann,Q63195,male,Neumann,Leopold Franz,1900-05-23 00:00:00+00:00,1954-09-02 00:00:00+00:00,118587293,http://www.wikidata.org/entity/Q63195,https://en.wikipedia.org/wiki/Franz_Neumann_(political_scientist),https://de.wikipedia.org/wiki/Franz_Neumann_(Politikwissenschaftler) +Otto Kahn-Freund,Q121832,male,Kahn Freund,Otto,1900-11-17 00:00:00+00:00,1979-06-16 00:00:00+00:00,118559362,http://www.wikidata.org/entity/Q121832,https://en.wikipedia.org/wiki/Otto_Kahn-Freund,https://de.wikipedia.org/wiki/Otto_Kahn-Freund +Otto Kirchheimer,Q214397,male,Kirchheimer,Otto,1905-11-11 00:00:00+00:00,1965-11-22 00:00:00+00:00,118562371,http://www.wikidata.org/entity/Q214397,https://en.wikipedia.org/wiki/Otto_Kirchheimer,https://de.wikipedia.org/wiki/Otto_Kirchheimer +Ludwig Bendix,Q15449424,male,Bendix,Ludwig,1877-06-28 00:00:00+00:00,1954-01-03 00:00:00+00:00,118702033,http://www.wikidata.org/entity/Q15449424,,https://de.wikipedia.org/wiki/Ludwig_Bendix +Arthur Nussbaum,Q103088,male,Nussbaum,Arthur,1877-01-01 00:00:00+00:00,1964-01-01 00:00:00+00:00,117071676,http://www.wikidata.org/entity/Q103088,https://en.wikipedia.org/wiki/Arthur_Nussbaum,https://de.wikipedia.org/wiki/Arthur_Nussbaum +Theodor Geiger,Q96410,male,Geiger,Theodor,1891-11-09 00:00:00+00:00,1952-06-16 00:00:00+00:00,118538187,http://www.wikidata.org/entity/Q96410,https://en.wikipedia.org/wiki/Theodor_Geiger,https://de.wikipedia.org/wiki/Theodor_Geiger +Erhard Blankenburg,Q51595283,male,Blankenburg,Erhard,1938-10-30 00:00:00+00:00,2018-03-28 00:00:00+00:00,115459235,http://www.wikidata.org/entity/Q51595283,https://en.wikipedia.org/wiki/Erhard_Blankenburg,https://de.wikipedia.org/wiki/Erhard_Blankenburg +Wolfgang Kaupen,Q93221485,male,,Wolfgang,1936-01-01 00:00:00+00:00,1981-01-01 00:00:00+00:00,124045405,http://www.wikidata.org/entity/Q93221485,, +Rüdiger Lautmann,Q91074,male,,Rüdiger,1935-12-22 00:00:00+00:00,,120502208,http://www.wikidata.org/entity/Q91074,https://en.wikipedia.org/wiki/R%C3%BCdiger_Lautmann,https://de.wikipedia.org/wiki/R%C3%BCdiger_Lautmann +Thilo Ramm,Q59533838,male,Ramm,Thilo,1925-04-04 00:00:00+00:00,2018-06-17 00:00:00+00:00,116327391,http://www.wikidata.org/entity/Q59533838,,https://de.wikipedia.org/wiki/Thilo_Ramm +Rudolf Wiethölter,Q1512482,male,,Rudolf,1929-07-17 00:00:00+00:00,,1034437860,http://www.wikidata.org/entity/Q1512482,,https://de.wikipedia.org/wiki/Rudolf_Wieth%C3%B6lter +Niklas Luhmann,Q57238,male,Luhmann,Niklas,1927-12-08 00:00:00+00:00,1998-11-06 00:00:00+00:00,118575147,http://www.wikidata.org/entity/Q57238,https://en.wikipedia.org/wiki/Niklas_Luhmann,https://de.wikipedia.org/wiki/Niklas_Luhmann +Hubert Rottleuthner,Q55622018,male,,Hubert,1944-01-01 00:00:00+00:00,,135622751,http://www.wikidata.org/entity/Q55622018,,https://de.wikipedia.org/wiki/Hubert_Rottleuthner +Ralf Rogowski,Q112499743,male,Rogowski,Ralf,1953-01-01 00:00:00+00:00,,17150982X,http://www.wikidata.org/entity/Q112499743,, +Ralf Rogowski,Q20128038,male,Rogowski,Ralf,,,,http://www.wikidata.org/entity/Q20128038,https://en.wikipedia.org/wiki/Ralf_Rogowski, +Gunther Teubner,Q98304,male,Teubner,Gunther,1944-04-30 00:00:00+00:00,,119443562,http://www.wikidata.org/entity/Q98304,https://en.wikipedia.org/wiki/Gunther_Teubner,https://de.wikipedia.org/wiki/Gunther_Teubner +Volkmar Gessner,Q15435946,male,Gessner,Volkmar,1937-10-09 00:00:00+00:00,2014-11-08 00:00:00+00:00,170469328,http://www.wikidata.org/entity/Q15435946,https://en.wikipedia.org/wiki/Volkmar_Gessner,https://de.wikipedia.org/wiki/Volkmar_Gessner +Konstanze Plett,Q95192683,female,,,1947-01-01 00:00:00+00:00,,124957048,http://www.wikidata.org/entity/Q95192683,,https://de.wikipedia.org/wiki/Konstanze_Plett +Ute Sacksofsky,Q48562036,female,,Ute,1960-01-01 00:00:00+00:00,,132505746,http://www.wikidata.org/entity/Q48562036,,https://de.wikipedia.org/wiki/Ute_Sacksofsky +Susanne Baer,Q101872,female,Baer,Susanne,1964-02-16 00:00:00+00:00,,113854161,http://www.wikidata.org/entity/Q101872,https://en.wikipedia.org/wiki/Susanne_Baer,https://de.wikipedia.org/wiki/Susanne_Baer