Skip to content
Snippets Groups Projects
Commit c9c63843 authored by cboulanger's avatar cboulanger
Browse files

Fix wikipedia query

parent 665d7164
No related branches found
No related tags found
No related merge requests found
%% Cell type:code id:initial_id tags:
``` python
import os.path
import textwrap
import requests
import pandas as pd
def generate_sparql_query(fullName, property_labels_to_ids, language='en'):
"""
Query WikiData for the properties of the given person listed in the given property map.
All properties that are simple values without a label must have an "_id" suffix, all date
properties must begin with "date"
:param fullName:
:param property_labels_to_ids:
:param language:
:return:
"""
propSelection = ""
for label, pid in property_labels_to_ids.items():
if label.endswith("_id") or label.startswith("image"):
propSelection += f"OPTIONAL {{ ?item wdt:{pid} ?{label}. }}"
propSelection += f"""
OPTIONAL {{ ?item wdt:{pid} ?{label}. }}"""
elif label.startswith("date"):
# Dates, fetched directly but need special handling for formatting if desired
propSelection += f"OPTIONAL {{ ?item wdt:{pid} ?{label}. }}"
propSelection += f"""
OPTIONAL {{ ?item wdt:{pid} ?{label}. }}"""
else:
propSelection += f"""OPTIONAL {{ ?item wdt:{pid} ?{label}Id .
?{label}Id rdfs:label ?{label} FILTER(LANG(?{label}) = "{language}") .
SERVICE wikibase:label {{ bd:serviceParam wikibase:language "{language}". }} }}"""
# Include English and German Wikipedia URLs
wikipediaURLs = """
OPTIONAL { ?article schema:about ?item; schema:inLanguage "en"; schema:isPartOf <https://en.wikipedia.org/>. BIND(CONCAT(STR(?article)) AS ?englishWikipedia) }
OPTIONAL { ?article schema:about ?item; schema:inLanguage "de"; schema:isPartOf <https://de.wikipedia.org/>. BIND(CONCAT(STR(?article)) AS ?germanWikipedia) }
"""
query = f"""
SELECT DISTINCT ?itemLabel {"".join([f"(SAMPLE(?{label}) AS ?{label})" for label in property_labels_to_ids])} ?englishWikipedia ?germanWikipedia WHERE {{
?item wdt:P31 wd:Q5; rdfs:label "{fullName}"@{language}.
{propSelection}
{wikipediaURLs}
propSelection += f"""
OPTIONAL {{ ?item wdt:{pid} ?{label}Id .
?{label}Id rdfs:label ?{label} FILTER(LANG(?{label}) = "{language}") .
SERVICE wikibase:label {{ bd:serviceParam wikibase:language "{language}". }} }}"""
query = textwrap.dedent(f"""
SELECT DISTINCT ?item ?itemLabel {"".join([f"(SAMPLE(?{label}) AS ?{label})" for label in property_labels_to_ids])}
WHERE {{
?item wdt:P31 wd:Q5; rdfs:label "{fullName}"@{language}.
{textwrap.dedent(propSelection)}
}}
GROUP BY ?itemLabel ?englishWikipedia ?germanWikipedia
"""
GROUP BY ?item ?itemLabel
""")
return query
def construct_image_url(filename):
return f"https://commons.wikimedia.org/wiki/Special:FilePath/{requests.utils.quote(filename)}"
def query_wikidata(fullName, property_labels_to_ids, language='en'):
def get_wikipedia_links(qid, languages):
"""
Fetch Wikipedia links for a given Wikidata QID and a list of languages.
Parameters:
- qid (str): The QID of the Wikidata item.
- languages (list): A list of language codes (e.g., ['en', 'de']).
Returns:
- dict: A dictionary with languages as keys and Wikipedia URLs as values.
"""
url = "https://www.wikidata.org/w/api.php"
params = {
"action": "wbgetentities",
"ids": qid,
"props": "sitelinks",
"format": "json"
}
response = requests.get(url, params=params)
data = response.json()
links = {}
if "entities" in data and qid in data["entities"]:
sitelinks = data["entities"][qid].get("sitelinks", {})
for lang in languages:
sitekey = f"{lang}wiki"
if sitekey in sitelinks:
links[lang] = sitelinks[sitekey]["url"]
else:
links[lang] = None # Or use '' to represent absence of link
return links
def query_wikidata(fullName, property_map, language='en'):
SPARQL_ENDPOINT = "https://query.wikidata.org/sparql"
query = generate_sparql_query(fullName, property_labels_to_ids, language)
query = generate_sparql_query(fullName, property_map, language)
headers = {'User-Agent': 'Mozilla/5.0', 'Accept': 'application/json'}
response = requests.get(SPARQL_ENDPOINT, headers=headers, params={'query': query, 'format': 'json'})
if response.status_code == 200:
results = response.json()['results']['bindings']
data = {'fullName': fullName} # Initialize with fullName to ensure it appears first
if results:
for label in property_labels_to_ids:
if f"{label}" in results[0]:
value = results[0][f"{label}"]['value']
#if label.startswith("image"):
# value = construct_image_url(value)
data[label] = value
else:
data[label] = None
return data
return None
if response.status_code != 200:
response.raise_for_status()
def properties_to_dataframe(names, property_labels_to_ids, language='en'):
results = response.json()['results']['bindings']
if not results:
return None
# Initialize with fullName to ensure it appears first
data = {
'fullName': fullName
}
# use first result
result = results[0]
# iterate over fields
for label in property_map:
if label in result:
value = result[label]['value']
data[label] = value
else:
data[label] = None
# add item URI
data['item'] = os.path.basename(result['item']['value'])
return data
def get_person_info_from_wikidata(names, property_map, language='en'):
all_data = []
for fullName in names:
data = query_wikidata(fullName, property_labels_to_ids, language)
data = query_wikidata(fullName, property_map, language)
if data:
all_data.append(data)
if all_data:
# Ensure fullName appears first by reordering columns based on property_labels_to_ids keys
columns_order = ['fullName'] + list(property_labels_to_ids.keys())
columns_order = ['fullName', 'item'] + list(property_map.keys())
df = pd.DataFrame(all_data, columns=columns_order)
else:
df = pd.DataFrame(columns=['fullName'] + list(property_labels_to_ids.keys()))
df = pd.DataFrame(columns=['fullName'] + list(property_map.keys()))
return df
```
%% Cell type:code id:19ddabbda261cc90 tags:
``` python
# Now calling the updated function with the 'language' parameter
property_labels_to_ids = {
'sexOrGender': 'P21',
'image': 'P18',
'countryOfCitizenship': 'P27',
'givenName': 'P735',
'familyName': 'P734',
'dateOfBirth': 'P569',
'dateOfDeath': 'P570',
'occupation': 'P106',
'fieldOfWork': 'P101',
'employer': 'P108',
'viaf_id': 'P214',
'isni_id': 'P213',
'gnd_id': 'P227'
}
```
%% Cell type:code id:19ddabbda261cc90 tags:
``` python
scholars = [
"Hans Kelsen",
"Hugo Sinzheimer",
"Karl Renner",
"Ernst Fraenkel",
"Franz Leopold Neumann",
"Otto Kahn-Freund",
"Otto Kirchheimer",
"Herrmann Kantorowicz",
"Ludwig Bendix",
"Arthur Nussbaum",
"Theodor Geiger",
"Erhard Blankenburg",
"Wolfgang Kaupen",
"Rüdiger Lautmann",
"Thilo Ramm",
"Rudolf Wiethölter",
"Niklas Luhmann",
"Gunther Teubner"
"Gunther Teubner",
"Volkmar Gessner"
]
df = properties_to_dataframe(scholars, property_labels_to_ids)
df = get_person_info_from_wikidata(scholars, property_labels_to_ids)
df
```
%% Output
fullName sexOrGender \
0 Hans Kelsen male
1 Hugo Sinzheimer male
2 Karl Renner male
3 Ernst Fraenkel male
4 Franz Leopold Neumann male
5 Otto Kahn-Freund male
6 Otto Kirchheimer male
7 Ludwig Bendix male
8 Arthur Nussbaum male
9 Theodor Geiger male
10 Erhard Blankenburg male
11 Wolfgang Kaupen male
12 Rüdiger Lautmann male
13 Thilo Ramm male
14 Rudolf Wiethölter male
15 Niklas Luhmann male
16 Gunther Teubner male
fullName item sexOrGender \
0 Hans Kelsen Q84165 male
1 Hugo Sinzheimer Q86043 male
2 Karl Renner Q11726 male
3 Ernst Fraenkel Q86812 male
4 Franz Leopold Neumann Q112562068 male
5 Otto Kahn-Freund Q121832 male
6 Otto Kirchheimer Q214397 male
7 Ludwig Bendix Q28053205 male
8 Arthur Nussbaum Q103088 male
9 Theodor Geiger Q96410 male
10 Erhard Blankenburg Q51595283 male
11 Wolfgang Kaupen Q93221485 male
12 Rüdiger Lautmann Q91074 male
13 Thilo Ramm Q59533838 male
14 Rudolf Wiethölter Q1512482 male
15 Niklas Luhmann Q85691627 None
16 Gunther Teubner Q98304 male
17 Volkmar Gessner Q15435946 male
image \
0 http://commons.wikimedia.org/wiki/Special:File...
1 http://commons.wikimedia.org/wiki/Special:File...
2 http://commons.wikimedia.org/wiki/Special:File...
3 None
4 None
5 http://commons.wikimedia.org/wiki/Special:File...
6 None
7 None
8 http://commons.wikimedia.org/wiki/Special:File...
9 None
10 http://commons.wikimedia.org/wiki/Special:File...
11 None
12 http://commons.wikimedia.org/wiki/Special:File...
13 None
14 None
15 http://commons.wikimedia.org/wiki/Special:File...
15 None
16 http://commons.wikimedia.org/wiki/Special:File...
17 http://commons.wikimedia.org/wiki/Special:File...
countryOfCitizenship givenName familyName dateOfBirth \
0 Czechoslovakia Hans Kelsen 1881-10-11T00:00:00Z
1 Germany Hugo Sinzheimer 1875-04-12T00:00:00Z
2 First Republic of Austria Karl Renner 1870-12-14T00:00:00Z
3 Germany Ernst Fraenkel 1891-04-05T00:00:00Z
4 None Leopold Neumann None
5 Germany Otto None 1900-11-17T00:00:00Z
6 Germany Otto Kirchheimer 1905-11-11T00:00:00Z
7 Germany Ludwig Bendix 1877-06-28T00:00:00Z
8 Germany Arthur Nussbaum 1877-01-31T00:00:00Z
9 Germany Theodor Geiger 1891-11-09T00:00:00Z
10 Germany Erhard Blankenburg 1938-10-30T00:00:00Z
11 None Wolfgang None 1936-01-01T00:00:00Z
12 Germany Rüdiger None 1935-12-22T00:00:00Z
13 Germany Thilo Ramm 1925-04-04T00:00:00Z
14 Germany Rudolf None 1929-07-17T00:00:00Z
15 Germany Niklas Luhmann 1927-12-08T00:00:00Z
16 Germany Gunther Teubner 1944-04-30T00:00:00Z
countryOfCitizenship givenName familyName dateOfBirth \
0 Cisleithania Hans Kelsen 1881-10-11T00:00:00Z
1 Germany Hugo Sinzheimer 1875-04-12T00:00:00Z
2 Cisleithania Karl Renner 1870-12-14T00:00:00Z
3 Germany Ernst Fraenkel 1898-12-26T00:00:00Z
4 None Leopold Neumann None
5 Germany Otto None 1900-11-17T00:00:00Z
6 Germany Otto Kirchheimer 1905-11-11T00:00:00Z
7 None Ludwig Bendix 1857-10-28T00:00:00Z
8 United States of America Arthur Nussbaum 1877-01-31T00:00:00Z
9 Germany Theodor Geiger 1891-11-09T00:00:00Z
10 Germany Erhard Blankenburg 1938-10-30T00:00:00Z
11 None Wolfgang None 1936-01-01T00:00:00Z
12 Germany Rüdiger None 1935-12-22T00:00:00Z
13 Germany Thilo Ramm 1925-04-04T00:00:00Z
14 Germany Rudolf None 1929-07-17T00:00:00Z
15 None None None None
16 Germany Gunther Teubner 1944-04-30T00:00:00Z
17 Germany Volkmar Gessner 1937-10-09T00:00:00Z
dateOfDeath occupation fieldOfWork \
0 1973-04-19T00:00:00Z lawyer law
0 1973-04-19T00:00:00Z judge international law
1 1945-09-16T00:00:00Z lawyer None
2 1950-12-31T00:00:00Z lawyer politics
3 1971-08-18T00:00:00Z university teacher None
3 1975-03-28T00:00:00Z lawyer None
4 None printer publishing
5 1979-08-16T00:00:00Z judge None
6 1965-11-22T00:00:00Z jurist None
7 1954-01-03T00:00:00Z lawyer None
8 1964-11-22T00:00:00Z lawyer international law
9 1952-06-16T00:00:00Z sociologist None
7 1923-09-28T00:00:00Z university teacher None
8 1964-11-22T00:00:00Z lawyer law
9 1952-06-16T00:00:00Z university teacher None
10 2018-03-28T00:00:00Z sociology of law sociology of law
11 1981-01-01T00:00:00Z sociologist sociology of law
12 None author sociology of law
13 2018-06-17T00:00:00Z writer None
14 None jurist None
15 1998-11-06T00:00:00Z lawyer sociology of law
15 None researcher None
16 None jurist None
17 2014-11-08T00:00:00Z judge comparative law
employer viaf_id \
0 Charles University 31998356
1 University of Amsterdam 27864307
1 Goethe University Frankfurt 27864307
2 Austrian Federal Government 61669459
3 Goethe University Frankfurt 50078162
3 Free University Berlin 27108403
4 None 637163874508945722514
5 University of Oxford 76317591
6 Office of Strategic Services 32042801
7 None 74647579
8 Frederick William University Berlin 5180962
7 None 88720482
8 Columbia University 5180962
9 Technical University of Braunschweig 56667946
10 Free University of Amsterdam 64109592
11 None 32919813
12 University of Bremen 24732961
13 University of Freiburg 9924244
13 FernUniversität in Hagen 9924244
14 Goethe University Frankfurt 106974404
15 Bielefeld University 29546145
15 None None
16 Goethe University Frankfurt 108364502
17 University of Bremen 69100039
isni_id gnd_id
0 0000000121266076 118561219
1 0000000109619641 118614711
2 0000000121358165 118599739
3 None 121259854
3 0000000110230959 118534602
4 None None
5 0000000109168959 118559362
6 0000000081110244 118562371
7 0000000081553379 118702033
7 0000000061811334 1023309920
8 0000000120988288 117071676
9 0000000109038951 118538187
10 0000000110676109 115459235
11 0000000035495614 124045405
12 000000011469331X 120502208
13 0000000108689541 116327391
14 0000000116961365 1034437860
15 0000000122778532 118575147
15 None None
16 0000000109312017 119443562
17 0000000109127065 170469328
%% Cell type:code id:c6c0cc347c8788d0 tags:
``` python
df.to_csv("scholars.csv", index=False)
```
%% Cell type:code id:b8058de7fa9212b tags:
``` python
import pandas as pd
from datetime import datetime
# Assuming df is your existing DataFrame
# Convert dateOfBirth and dateOfDeath to just the year, handle NaT/NaN appropriately
df['Year'] = pd.to_datetime(df['dateOfBirth'], errors='coerce').dt.year.astype('Int64')
df['End Year'] = pd.to_datetime(df['dateOfDeath'], errors='coerce').dt.year.astype('Int64')
# Create 'Display Date' as "dateOfBirth - dateOfDeath"
df['Display Date'] = df['Year'].astype(str).replace('<NA>','') + ' - ' + df['End Year'].astype(str).replace('<NA>','')
# Create 'Headline' as "fullName (dateOfBirth - dateOfDeath)"
df['Headline'] = df['fullName'] + ' (' + df['Display Date'] + ')'
# Create 'Text' column by combining occupation, fieldOfWork, employer
df['Text'] = df[['occupation', 'fieldOfWork']].apply(lambda x: '<br>'.join(x.dropna()), axis=1)
# Use the image directly; assuming the URLs are already correctly formed in the 'image' column
df['Media'] = df['image']
# Add a "Group" column with the value "actors" for all rows
df['Group'] = 'actors'
# fix date columns
df['Display Date'] = df['Display Date'].fillna('') # Ensure no NaNs in Display Date
df['Headline'] = df['Headline'].fillna('') # Ensure no NaNs in Headline
df['Text'] = df['Text'].fillna('') # Ensure no NaNs in Text
df['Media'] = df['Media'].fillna('') # Ensure no NaNs in Media
# Now select and order the DataFrame according to the TimelineJS template requirements
columns = "Year Month Day Time End Year End Month End Day End Time Display Date Headline Text Media Media Credit Media Caption Media Thumbnail Type Group Background Link".split("\t")
for col in columns:
if col not in df:
df[col] = ''
timeline_df = df[columns]
timeline_df.to_excel("timeline_data.xlsx", index=False)
```
%% Cell type:code id:f4b14ea7d4941e57 tags:
``` python
```
......
fullName,sexOrGender,image,countryOfCitizenship,givenName,familyName,dateOfBirth,dateOfDeath,occupation,fieldOfWork,employer,viaf_id,isni_id,gnd_id
Hans Kelsen,male,https://commons.wikimedia.org/wiki/Special:FilePath/http%3A//commons.wikimedia.org/wiki/Special%3AFilePath/Hans%2520Kelsen%2520%25281881%25E2%2580%25931973%2529%2520~1930%2520%25C2%25A9%2520Georg%2520Fayer%2520%25281892%25E2%2580%25931950%2529%2520OeNB%25208026867.jpg,Cisleithania,Hans,Kelsen,1881-10-11T00:00:00Z,1973-04-19T00:00:00Z,judge,international law,Charles University,31998356,0000000121266076,118561219
Hugo Sinzheimer,male,https://commons.wikimedia.org/wiki/Special:FilePath/http%3A//commons.wikimedia.org/wiki/Special%3AFilePath/Hugo%2520Sinzheimer.jpg,Germany,Hugo,Sinzheimer,1875-04-12T00:00:00Z,1945-09-16T00:00:00Z,lawyer,,University of Amsterdam,27864307,0000000109619641,118614711
Karl Renner,male,https://commons.wikimedia.org/wiki/Special:FilePath/http%3A//commons.wikimedia.org/wiki/Special%3AFilePath/Karl-renner-hn.jpg,Germany,Karl,Renner,1833-05-13T00:00:00Z,1913-09-22T00:00:00Z,merchant,politics,Austrian Federal Government,171170593,0000000054940875,1012296458
Ernst Fraenkel,male,,Germany,Ernst,Fraenkel,1891-04-05T00:00:00Z,1971-08-18T00:00:00Z,economic historian,Baltic,Goethe University Frankfurt,50078162,0000000081027854,121259854
Franz Leopold Neumann,male,,German Empire,Leopold,Neumann,1900-05-23T00:00:00Z,1954-09-02T00:00:00Z,lawyer,publishing,Office of Strategic Services,15561879,0000000109564943,118587293
Otto Kahn-Freund,male,https://commons.wikimedia.org/wiki/Special:FilePath/http%3A//commons.wikimedia.org/wiki/Special%3AFilePath/Sir%2520Otto%2520Kahn-Freund%252C%2520c1950.jpg,Germany,Otto,,1900-11-17T00:00:00Z,1979-08-16T00:00:00Z,judge,,University of Oxford,76317591,0000000109168959,118559362
Otto Kirchheimer,male,,United States of America,Otto,Kirchheimer,1905-11-11T00:00:00Z,1965-11-22T00:00:00Z,jurist,,Office of Strategic Services,32042801,0000000081110244,118562371
Ludwig Bendix,male,,Germany,Ludwig,Bendix,1877-06-28T00:00:00Z,1954-01-03T00:00:00Z,lawyer,,,74647579,0000000081553379,118702033
Arthur Nussbaum,male,https://commons.wikimedia.org/wiki/Special:FilePath/http%3A//commons.wikimedia.org/wiki/Special%3AFilePath/Arthur%2520Nussbaum.jpg,Germany,Arthur,Nussbaum,1877-01-31T00:00:00Z,1964-11-22T00:00:00Z,lawyer,international law,Columbia University,5180962,0000000120988288,117071676
Theodor Geiger,male,,Denmark,Theodor,Geiger,1891-11-09T00:00:00Z,1952-06-16T00:00:00Z,university teacher,,Technical University of Braunschweig,56667946,0000000109038951,118538187
Erhard Blankenburg,male,https://commons.wikimedia.org/wiki/Special:FilePath/http%3A//commons.wikimedia.org/wiki/Special%3AFilePath/Erhard%2520Blankenburg.jpg,Germany,Erhard,Blankenburg,1938-10-30T00:00:00Z,2018-03-28T00:00:00Z,sociology of law,sociology of law,Free University of Amsterdam,64109592,0000000110676109,115459235
Wolfgang Kaupen,male,,,Wolfgang,,1936-01-01T00:00:00Z,1981-01-01T00:00:00Z,sociologist,sociology of law,,32919813,0000000035495614,124045405
Rüdiger Lautmann,male,https://commons.wikimedia.org/wiki/Special:FilePath/http%3A//commons.wikimedia.org/wiki/Special%3AFilePath/Lautmann%25202012.jpg,Germany,Rüdiger,,1935-12-22T00:00:00Z,,sociologist,sociology of law,University of Bremen,24732961,000000011469331X,120502208
Thilo Ramm,male,,Germany,Thilo,Ramm,1925-04-04T00:00:00Z,2018-06-17T00:00:00Z,writer,,FernUniversität in Hagen,9924244,0000000108689541,116327391
Rudolf Wiethölter,male,,Germany,Rudolf,,1929-07-17T00:00:00Z,,jurist,,Goethe University Frankfurt,106974404,0000000116961365,1034437860
Niklas Luhmann,male,https://commons.wikimedia.org/wiki/Special:FilePath/http%3A//commons.wikimedia.org/wiki/Special%3AFilePath/HSGH%2520022-000941%2520Niklas%2520Luhmann%2520%2528cropped%2529.png,Germany,Niklas,Luhmann,1927-12-08T00:00:00Z,1998-11-06T00:00:00Z,researcher,sociology of law,TU Wien,29546145,0000000122778532,118575147
Gunther Teubner,male,https://commons.wikimedia.org/wiki/Special:FilePath/http%3A//commons.wikimedia.org/wiki/Special%3AFilePath/Gunther%2520Teubner%2520%25282017%2529.jpg,Germany,Gunther,Teubner,1944-04-30T00:00:00Z,,sociologist,,Goethe University Frankfurt,108364502,0000000109312017,119443562
fullName,item,sexOrGender,image,countryOfCitizenship,givenName,familyName,dateOfBirth,dateOfDeath,occupation,fieldOfWork,employer,viaf_id,isni_id,gnd_id
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,Cisleithania,Hans,Kelsen,1881-10-11T00:00:00Z,1973-04-19T00:00:00Z,judge,international law,Charles University,31998356,0000000121266076,118561219
Hugo Sinzheimer,Q86043,male,http://commons.wikimedia.org/wiki/Special:FilePath/Hugo%20Sinzheimer.jpg,Germany,Hugo,Sinzheimer,1875-04-12T00:00:00Z,1945-09-16T00:00:00Z,lawyer,,Goethe University Frankfurt,27864307,0000000109619641,118614711
Karl Renner,Q11726,male,http://commons.wikimedia.org/wiki/Special:FilePath/Karl%20Renner%201905.jpg,Cisleithania,Karl,Renner,1870-12-14T00:00:00Z,1950-12-31T00:00:00Z,lawyer,politics,Austrian Federal Government,61669459,0000000121358165,118599739
Ernst Fraenkel,Q86812,male,,Germany,Ernst,Fraenkel,1898-12-26T00:00:00Z,1975-03-28T00:00:00Z,lawyer,,Free University Berlin,27108403,0000000110230959,118534602
Franz Leopold Neumann,Q112562068,male,,,Leopold,Neumann,,,printer,publishing,,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-08-16T00:00:00Z,judge,,University of Oxford,76317591,0000000109168959,118559362
Otto Kirchheimer,Q214397,male,,Germany,Otto,Kirchheimer,1905-11-11T00:00:00Z,1965-11-22T00:00:00Z,jurist,,Office of Strategic Services,32042801,0000000081110244,118562371
Ludwig Bendix,Q28053205,male,,,Ludwig,Bendix,1857-10-28T00:00:00Z,1923-09-28T00:00:00Z,university teacher,,,88720482,0000000061811334,1023309920
Arthur Nussbaum,Q103088,male,http://commons.wikimedia.org/wiki/Special:FilePath/Arthur%20Nussbaum.jpg,United States of America,Arthur,Nussbaum,1877-01-31T00:00:00Z,1964-11-22T00:00:00Z,lawyer,law,Columbia University,5180962,0000000120988288,117071676
Theodor Geiger,Q96410,male,,Germany,Theodor,Geiger,1891-11-09T00:00:00Z,1952-06-16T00:00:00Z,university teacher,,Technical University of Braunschweig,56667946,0000000109038951,118538187
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,sociology of law,sociology of law,Free University of Amsterdam,64109592,0000000110676109,115459235
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,,author,sociology of law,University of Bremen,24732961,000000011469331X,120502208
Thilo Ramm,Q59533838,male,,Germany,Thilo,Ramm,1925-04-04T00:00:00Z,2018-06-17T00:00:00Z,writer,,FernUniversität in Hagen,9924244,0000000108689541,116327391
Rudolf Wiethölter,Q1512482,male,,Germany,Rudolf,,1929-07-17T00:00:00Z,,jurist,,Goethe University Frankfurt,106974404,0000000116961365,1034437860
Niklas Luhmann,Q85691627,,,,,,,,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,,Goethe University Frankfurt,108364502,0000000109312017,119443562
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,judge,comparative law,University of Bremen,69100039,0000000109127065,170469328
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment