Skip to content

Instantly share code, notes, and snippets.

@douglasrizzo
Last active June 27, 2022 00:19
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save douglasrizzo/b1d324d0698120ebf8b1c0c91d8c251c to your computer and use it in GitHub Desktop.
Save douglasrizzo/b1d324d0698120ebf8b1c0c91d8c251c to your computer and use it in GitHub Desktop.
Merging inconsistent author names in a bib file
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Merging inconsistently named authors in a bib file\n",
"\n",
"The purpose of this notebook is to merge inconsistently named authors in a bib file. For example, if you have a single author in a bib file, which is represented by different names in different entries, such as:\n",
"\n",
"- Jeff Smith\n",
"- J. Smith\n",
"- J. R. Smith\n",
"\n",
"He is going to be treated as different authors by bibliography styles that need to disambiguate author names in case they are represented by the same initials. For more information regarding what that means, take a look at [this link](https://www.zotero.org/support/kb/given_name_disambiguation).\n",
"\n",
"So I've created this notebook, which loads a bib file and compares the names of all authors in the file, replacing initials by full names and last names that are written differently (with/without accents) in a single way (with accents)."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"#!/usr/bin/env python\n",
"from pybtex.database.input import bibtex\n",
"from pybtex.database import Person\n",
"import unicodedata\n",
"import Levenshtein\n"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"def only_uppers(s):\n",
" \"\"\"Returns only the uppercase letters in a string\"\"\"\n",
" return ''.join([c for c in s if c.isupper()])\n",
"\n",
"def remove_accents(s):\n",
" \"\"\"Replaces accented characters by their unnacented counterparts\"\"\"\n",
" return unicodedata.normalize('NFC', s)\n",
"\n",
"def same_person_different_name(a:Person, b:Person):\n",
" \"\"\"Compare two names and checks if they possibly belong to the same person.\n",
" If the strings that represent both full names are different, but the\n",
" initials are the same and the unnaccented versions of the last nam are equal,\n",
" returns True.\"\"\"\n",
" a_full_name = str(a)\n",
" a_last_name = ' '.join(a.last_names)\n",
" b_full_name = str(b)\n",
" b_last_name = ' '.join(b.last_names)\n",
"\n",
" return a_full_name != b_full_name and only_uppers(a_full_name) == only_uppers(b_full_name) and remove_accents(a_last_name) == remove_accents(b_last_name)\n",
"\n",
"def best_name(a:Person, b:Person):\n",
" \"\"\"Keep the best of two names to represent a person. Gives preference to the\n",
" longest one (which is not abbreviated) and also to the one with most accents.\"\"\"\n",
" best_person = a if len(str(a)) >= len(str(b)) else b\n",
" best_last_name = ' '.join(best_person.last_names)\n",
" \n",
" a_last_name = ' '.join(a.last_names)\n",
" b_last_name = ' '.join(b.last_names)\n",
" \n",
" a_accents_pct = Levenshtein.ratio(remove_accents(a_last_name), a_last_name)\n",
" b_accents_pct = Levenshtein.ratio(remove_accents(b_last_name), b_last_name)\n",
"\n",
" best_person.last_names = a.last_names if a_accents_pct > b_accents_pct else b.last_names\n",
" \n",
" return best_person"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here we use the pybtex package to parse the `bib.bib` file."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"parser = bibtex.Parser()\n",
"bib_data = parser.parse_file('bib.bib')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We iterate through all author names and put them on a single list."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"authors = []\n",
"for entry in bib_data.entries:\n",
" for author in bib_data.entries[entry].persons['author']:\n",
" if author not in authors:\n",
" authors.append(author)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This is where the magic happens. We iterate over the author names in the bib object again and compare each author to our full list of authors, checking if:\n",
"\n",
"1. the full names are different in any way\n",
"2. the initials are the same\n",
"3. the last names are the same or only differentiated by accents\n",
"\n",
"if all of these are true, then we swap the abbreviated bits with the unnabreviated ones and the unnacented last name with the accented one."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Spronck, Pieter / Spronck, Pieter -> Spronck, Pieter\n",
"Louis, Sushil J. / Louis, S.J. -> Louis, Sushil J.\n",
"Liu, Siming / Liu, S. -> Liu, Siming\n",
"El-Nasr, Magy Seif / El-Nasr, M.S. -> El-Nasr, Magy Seif\n",
"Fernández-Ares, Antonio / Fernández-Ares, Antonio -> Fernández-Ares, Antonio\n",
"Andersen, Per-Arne / Andersen, P.-A. -> Andersen, Per-Arne\n",
"Goodwin, Morten / Goodwin, M. -> Goodwin, Morten\n",
"Granmo, Ole-Christoffer / Granmo, O.-C. -> Granmo, Ole-Christoffer\n",
"Zeng, Yifeng / Zeng, Yifeng -> Zeng, Yifeng\n",
"Andersen, Per-Arne / Andersen, Per-Arne -> Andersen, Per-Arne\n",
"Andersen, Per-Arne / Andersen, P.-A. -> Andersen, Per-Arne\n",
"Goodwin, Morten / Goodwin, Morten -> Goodwin, Morten\n",
"Goodwin, Morten / Goodwin, M. -> Goodwin, Morten\n",
"Granmo, Ole-Christoffer / Granmo, Ole-Christoffer -> Granmo, Ole-Christoffer\n",
"Granmo, Ole-Christoffer / Granmo, O.-C. -> Granmo, Ole-Christoffer\n",
"Avery, Phillipa / Avery, P. -> Avery, Phillipa\n",
"Louis, Sushil / Louis, S. -> Louis, Sushil\n",
"Avery, Phillipa / Avery, P. -> Avery, Phillipa\n",
"Louis, Sushil / Louis, S. -> Louis, Sushil\n",
"Avery, Phillipa / Avery, Phillipa -> Avery, Phillipa\n",
"Avery, Phillipa / Avery, P. -> Avery, Phillipa\n",
"Louis, Sushil / Louis, Sushil -> Louis, Sushil\n",
"Louis, Sushil / Louis, S. -> Louis, Sushil\n",
"Spronck, Pieter / Spronck, Pieter -> Spronck, Pieter\n",
"Kim, Kyung-Joong / Kim, K.-J. -> Kim, Kyung-Joong\n",
"Bakkes, Sander / Bakkes, Sander -> Bakkes, Sander\n",
"Spronck, Pieter / Spronck, Pieter -> Spronck, Pieter\n",
"Bakkes, Sander / Bakkes, Sander -> Bakkes, Sander\n",
"Spronck, Pieter / Spronck, Pieter -> Spronck, Pieter\n",
"Fern, Alan / Fern, Alan -> Fern, Alan\n",
"Ballinger, Christopher / Ballinger, C. -> Ballinger, Christopher\n",
"Louis, Sushil / Louis, S. -> Louis, Sushil\n",
"Liu, Siming / Liu, S. -> Liu, Siming\n",
"Ballinger, Christopher / Ballinger, C. -> Ballinger, Christopher\n",
"Louis, Sushil / Louis, S. -> Louis, Sushil\n",
"Ballinger, Christopher / Ballinger, C. -> Ballinger, Christopher\n",
"Louis, Sushil / Louis, S. -> Louis, Sushil\n",
"Ballinger, Christopher / Ballinger, Christopher -> Ballinger, Christopher\n",
"Ballinger, Christopher / Ballinger, C. -> Ballinger, Christopher\n",
"Louis, Sushil / Louis, Sushil -> Louis, Sushil\n",
"Louis, Sushil / Louis, S. -> Louis, Sushil\n",
"Ballinger, Christopher / Ballinger, Christopher -> Ballinger, Christopher\n",
"Ballinger, Christopher / Ballinger, C. -> Ballinger, Christopher\n",
"Louis, Sushil / Louis, Sushil -> Louis, Sushil\n",
"Louis, Sushil / Louis, S. -> Louis, Sushil\n",
"Ballinger, Christopher / Ballinger, C. -> Ballinger, Christopher\n",
"Louis, Sushil / Louis, S. -> Louis, Sushil\n",
"Bangay, Shaun / Bangay, Shaun -> Bangay, Shaun\n",
"Makin, Owen / Makin, Owen -> Makin, Owen\n",
"Bangay, Shaun / Bangay, S. -> Bangay, Shaun\n",
"Bangay, Shaun / Bangay, Shaun -> Bangay, Shaun\n",
"Makin, Owen / Makin, Owen -> Makin, Owen\n",
"Barriga, Nicolas A. / Barriga, Nicolas A. -> Barriga, Nicolas A.\n",
"Stanescu, Marius / Stanescu, Marius -> Stanescu, Marius\n",
"Buro, Michael / Buro, Michael -> Buro, Michael\n",
"Barriga, Nicolas A. / Barriga, N.A. -> Barriga, Nicolas A.\n",
"Barriga, Nicolas A. / Barriga, N.A. -> Barriga, Nicolas A.\n",
"Stanescu, Marius / Stanescu, M. -> Stanescu, Marius\n",
"Buro, Michael / Buro, M. -> Buro, Michael\n",
"Barriga, Nicolas A. / Barriga, N.A. -> Barriga, Nicolas A.\n",
"Stanescu, Marius / Stanescu, M. -> Stanescu, Marius\n",
"Buro, Michael / Buro, M. -> Buro, Michael\n",
"Barriga, Nicolas A. / Barriga, Nicolas A. -> Barriga, Nicolas A.\n",
"Stanescu, Marius / Stanescu, Marius -> Stanescu, Marius\n",
"Buro, Michael / Buro, Michael -> Buro, Michael\n",
"Beume, Nicola / Beume, Nicola -> Beume, Nicola\n",
"Hein, Tobias / Hein, Tobias -> Hein, Tobias\n",
"Naujoks, Boris / Naujoks, Boris -> Naujoks, Boris\n",
"Piatkowski, Nico / Piatkowski, Nico -> Piatkowski, Nico\n",
"Preuss, Mike / Preuss, Mike -> Preuss, Mike\n",
"Wessing, Simon / Wessing, Simon -> Wessing, Simon\n",
"Beume, Nicola / Beume, N. -> Beume, Nicola\n",
"Hein, Tobias / Hein, T. -> Hein, Tobias\n",
"Naujoks, Boris / Naujoks, B. -> Naujoks, Boris\n",
"Piatkowski, Nico / Piatkowski, N. -> Piatkowski, Nico\n",
"Preuss, Mike / Preuss, M. -> Preuss, Mike\n",
"Bosc, Guillaume / Bosc, Guillaume -> Bosc, Guillaume\n",
"Kaytoue, Mehdi / Kaytoue, Mehdi -> Kaytoue, Mehdi\n",
"Boulicaut, Jean-Francois / Boulicaut, Jean-Francois -> Boulicaut, Jean-Francois\n",
"Bosc, Guillaume / Bosc, Guillaume -> Bosc, Guillaume\n",
"Kaytoue, Mehdi / Kaytoue, Mehdi -> Kaytoue, Mehdi\n",
"Boulicaut, Jean-Francois / Boulicaut, Jean-Francois -> Boulicaut, Jean-Francois\n",
"Tan, Philip / Tan, Philip -> Tan, Philip\n",
"Bosc, Guillaume / Bosc, G. -> Bosc, Guillaume\n",
"Tan, Philip / Tan, P. -> Tan, Philip\n",
"Boulicaut, Jean-Francois / Boulicaut, J.-F. -> Boulicaut, Jean-Francois\n",
"Kaytoue, Mehdi / Kaytoue, M. -> Kaytoue, Mehdi\n",
"Bosc, Guillaume / Bosc, Guillaume -> Bosc, Guillaume\n",
"Kaytoue, Mehdi / Kaytoue, Mehdi -> Kaytoue, Mehdi\n",
"Boulicaut, Jean-Francois / Boulicaut, Jean-Francois -> Boulicaut, Jean-Francois\n",
"Sukthankar, Gita / Sukthankar, G. -> Sukthankar, Gita\n",
"Branquinho, Augusto A. B. / Branquinho, A.A.B. -> Branquinho, Augusto A. B.\n",
"Lopes, Carlos R. / Lopes, C.R. -> Lopes, Carlos R.\n",
"Naves, Thiago F. / Naves, T.F. -> Naves, Thiago F.\n",
"Branquinho, Augusto A. B. / Branquinho, A.A.B. -> Branquinho, Augusto A. B.\n",
"Lopes, Carlos R. / Lopes, C.R. -> Lopes, Carlos R.\n",
"Branquinho, Augusto A. B. / Branquinho, Augusto A. B. -> Branquinho, Augusto A. B.\n",
"Branquinho, Augusto A. B. / Branquinho, A.A.B. -> Branquinho, Augusto A. B.\n",
"Lopes, Carlos R. / Lopes, Carlos R. -> Lopes, Carlos R.\n",
"Lopes, Carlos R. / Lopes, C.R. -> Lopes, Carlos R.\n",
"Naves, Thiago F. / Naves, Thiago F. -> Naves, Thiago F.\n",
"Naves, Thiago F. / Naves, T.F. -> Naves, Thiago F.\n",
"Greiner, Russel / Greiner, Russel -> Greiner, Russel\n",
"O'Riordan, Colm / O'Riordan, Colm -> O'Riordan, Colm\n",
"Buro, Michael / Buro, Michael -> Buro, Michael\n",
"Furtak, Timothy / Furtak, T. -> Furtak, Timothy\n",
"Buro, Michael / Buro, Michael -> Buro, Michael\n",
"Buro, Michael / Buro, Michael -> Buro, Michael\n",
"Buro, Michael / Buro, M. -> Buro, Michael\n",
"Ontanon, Santiago / Ontanon, S. -> Ontanon, Santiago\n",
"Preuss, Mike / Preuss, M. -> Preuss, Mike\n",
"Buro, Michael / Buro, M. -> Buro, Michael\n",
"Buro, Michael / Buro, Michael -> Buro, Michael\n",
"Churchill, David / Churchill, David -> Churchill, David\n",
"Buro, Michael / Buro, Michael -> Buro, Michael\n",
"Johansson, Stefan J. / Johansson, S.J. -> Johansson, Stefan J.\n",
"García-Sánchez, Pablo / García-Sánchez, Pablo -> García-Sánchez, Pablo\n",
"Mora, Antonio M. / Mora, Antonio M. -> Mora, Antonio M.\n",
"Kaytoue, Mehdi / Kaytoue, Mehdi -> Kaytoue, Mehdi\n",
"Boulicaut, Jean-Francois / Boulicaut, Jean-Francois -> Boulicaut, Jean-Francois\n",
"Certicky, Martin / Certicky, Martin -> Certicky, Martin\n",
"Certicky, Martin / Certicky, Martin -> Certicky, Martin\n",
"Churchill, David / Churchill, D. -> Churchill, David\n",
"Kim, Kyung-Joong / Kim, K.-J. -> Kim, Kyung-Joong\n",
"Certicky, Michal / Certicky, Michal -> Certicky, Michal\n",
"Certicky, Martin / Certicky, Martin -> Certicky, Martin\n",
"Certicky, Michal / Certicky, Michal -> Certicky, Michal\n",
"Certicky, Martin / Certicky, Martin -> Certicky, Martin\n",
"Fern, Alan / Fern, Alan -> Fern, Alan\n",
"Tan, Chek Tien / Tan, Chek Tien -> Tan, Chek Tien\n",
"Cheung, Gifford / Cheung, G. -> Cheung, Gifford\n",
"Huang, Jeff / Huang, J. -> Huang, Jeff\n",
"Kim, Kyung-Joong / Kim, K.-J. -> Kim, Kyung-Joong\n",
"Cho, Hochul / Cho, H. -> Cho, Hochul\n",
"Kim, Kyung-Joong / Kim, K.-J. -> Kim, Kyung-Joong\n",
"Kim, Kyung-Joong / Kim, K.-J. -> Kim, Kyung-Joong\n",
"Zeng, Yifeng / Zeng, Yifeng -> Zeng, Yifeng\n",
"Buro, Michael / Buro, Michael -> Buro, Michael\n",
"Churchill, David / Churchill, David -> Churchill, David\n",
"Buro, Michael / Buro, Michael -> Buro, Michael\n",
"Churchill, David / Churchill, David -> Churchill, David\n",
"Buro, Michael / Buro, Michael -> Buro, Michael\n",
"Churchill, David / Churchill, D. -> Churchill, David\n",
"Buro, Michael / Buro, M. -> Buro, Michael\n",
"Conroy, Ross / Conroy, Ross -> Conroy, Ross\n",
"Zeng, Yifeng / Zeng, Yifeng -> Zeng, Yifeng\n",
"Cavazza, Marc / Cavazza, Marc -> Cavazza, Marc\n",
"Chen, Ying-ping / Chen, Ying-ping -> Chen, Ying-ping\n",
"Conroy, Ross / Conroy, R. -> Conroy, Ross\n",
"Zeng, Yifeng / Zeng, Y. -> Zeng, Yifeng\n",
"Cavazza, Marc / Cavazza, M. -> Cavazza, Marc\n",
"Chaimowicz, Luiz / Chaimowicz, L. -> Chaimowicz, Luiz\n",
"Beume, Nicola / Beume, N. -> Beume, Nicola\n",
"Naujoks, Boris / Naujoks, B. -> Naujoks, Boris\n",
"Preuss, Mike / Preuss, M. -> Preuss, Mike\n",
"Chaimowicz, Luiz / Chaimowicz, Luiz -> Chaimowicz, Luiz\n",
"Chaimowicz, Luiz / Chaimowicz, L. -> Chaimowicz, Luiz\n",
"Fern, Alan / Fern, Alan -> Fern, Alan\n",
"Louis, Sushil J. / Louis, S.J. -> Louis, Sushil J.\n",
"Liu, Siming / Liu, S. -> Liu, Siming\n",
"Dodge, Jonathan / Dodge, Jonathan -> Dodge, Jonathan\n",
"Penney, Sean / Penney, Sean -> Penney, Sean\n",
"Hilderbrand, Claudia / Hilderbrand, Claudia -> Hilderbrand, Claudia\n",
"Anderson, Andrew / Anderson, Andrew -> Anderson, Andrew\n",
"Burnett, Margaret / Burnett, Margaret -> Burnett, Margaret\n",
"Louis, Sushil / Louis, S. -> Louis, Sushil\n",
"Liu, Siming / Liu, S. -> Liu, Siming\n",
"Erickson, Graham / Erickson, Graham -> Erickson, Graham\n",
"Buro, Michael / Buro, Michael -> Buro, Michael\n",
"García-Sánchez, Pablo / García-Sánchez, Pablo -> García-Sánchez, Pablo\n",
"Mora, Antonio M. / Mora, Antonio M. -> Mora, Antonio M.\n",
"Fernández-Ares, Antonio / Fernández-Ares, Antonio -> Fernández-Ares, Antonio\n",
"Mora, Antonio M. / Mora, Antonio M. -> Mora, Antonio M.\n",
"García-Sánchez, Pablo / García-Sánchez, Pablo -> García-Sánchez, Pablo\n",
"Fernández-Ares, Antonio / Fernández-Ares, Antonio -> Fernández-Ares, Antonio\n",
"Mora, Antonio M. / Mora, Antonio M. -> Mora, Antonio M.\n",
"García-Sánchez, Pablo / García-Sánchez, Pablo -> García-Sánchez, Pablo\n",
"Fernández-Ares, Antonio / Fernández-Ares, Antonio -> Fernández-Ares, Antonio\n",
"García-Sánchez, Pablo / García-Sánchez, Pablo -> García-Sánchez, Pablo\n",
"Mora, Antonio M. / Mora, Antonio M. -> Mora, Antonio M.\n",
"Mora, Antonio M. / Mora, Antonio M. -> Mora, Antonio M.\n",
"Garcia-Sanchez, Pablo / Garcia-Sanchez, Pablo -> Garcia-Sanchez, Pablo\n",
"Farquhar, Gregory / Farquhar, G. -> Farquhar, Gregory\n",
"Whiteson, Shimon / Whiteson, S. -> Whiteson, Shimon\n",
"Foerster, Jakob / Foerster, J. -> Foerster, Jakob\n",
"Farquhar, Gregory / Farquhar, G. -> Farquhar, Gregory\n",
"Whiteson, Shimon / Whiteson, S. -> Whiteson, Shimon\n",
"Forgette, Jacquelyne / Forgette, J. -> Forgette, Jacquelyne\n",
"Forgette, Jacquelyne / Forgette, Jacquelyne -> Forgette, Jacquelyne\n",
"Forgette, Jacquelyne / Forgette, J. -> Forgette, Jacquelyne\n",
"Furtak, Timothy / Furtak, Timothy -> Furtak, Timothy\n",
"Furtak, Timothy / Furtak, T. -> Furtak, Timothy\n",
"Buro, Michael / Buro, Michael -> Buro, Michael\n",
"Gabriel, Iuhasz / Gabriel, I. -> Gabriel, Iuhasz\n",
"Negru, Viorel / Negru, V. -> Negru, Viorel\n",
"Zaharie, Daniela / Zaharie, D. -> Zaharie, Daniela\n",
"Gabriel, Iuhasz / Gabriel, Iuhasz -> Gabriel, Iuhasz\n",
"Gabriel, Iuhasz / Gabriel, I. -> Gabriel, Iuhasz\n",
"Negru, Viorel / Negru, Viorel -> Negru, Viorel\n",
"Negru, Viorel / Negru, V. -> Negru, Viorel\n",
"Zaharie, Daniela / Zaharie, Daniela -> Zaharie, Daniela\n",
"Zaharie, Daniela / Zaharie, D. -> Zaharie, Daniela\n",
"Gagné, André R. / Gagné, A.R. -> Gagné, André R.\n",
"Shaw, Chris D. / Shaw, C.D. -> Shaw, Chris D.\n",
"Gagné, André R. / Gagné, André R. -> Gagné, André R.\n",
"Gagné, André R. / Gagné, A.R. -> Gagné, André R.\n",
"El-Nasr, Magy Seif / El-Nasr, Magy Seif -> El-Nasr, Magy Seif\n",
"El-Nasr, Magy Seif / El-Nasr, M.S. -> El-Nasr, Magy Seif\n",
"Shaw, Chris D. / Shaw, Chris D. -> Shaw, Chris D.\n",
"Shaw, Chris D. / Shaw, C.D. -> Shaw, Chris D.\n",
"Louis, Sushil J. / Louis, Sushil J. -> Louis, Sushil J.\n",
"Louis, Sushil J. / Louis, S.J. -> Louis, Sushil J.\n",
"Liu, Siming / Liu, Siming -> Liu, Siming\n",
"Liu, Siming / Liu, S. -> Liu, Siming\n",
"Garcia-Sanchez, Pablo / Garcia-Sanchez, P. -> Garcia-Sanchez, Pablo\n",
"Mora, Antonio M. / Mora, A.M. -> Mora, Antonio M.\n",
"Gant, Daniel / Gant, Dan -> Gant, Daniel\n",
"Synnaeve, Gabriel / Synnaeve, G. -> Synnaeve, Gabriel\n",
"Safadi, Firas / Safadi, F. -> Safadi, Firas\n",
"Fonteneau, Raphael / Fonteneau, R. -> Fonteneau, Raphael\n",
"Ernst, Damien / Ernst, D. -> Ernst, Damien\n",
"Ontañón, Santiago / Ontañón, Santiago -> Ontañón, Santiago\n",
"Gmeiner, Björn / Gmeiner, B. -> Gmeiner, Björn\n",
"Gmeiner, Björn / Gmeiner, Björn -> Gmeiner, Björn\n",
"Gmeiner, Björn / Gmeiner, B. -> Gmeiner, Björn\n",
"Köstler, Harald / Köstler, Harald -> Köstler, Harald\n",
"Preuss, Mike / Preuss, M. -> Preuss, Mike\n",
"Johansson, Stefan J. / Johansson, S.J. -> Johansson, Stefan J.\n",
"Hagelbäck, Johan / Hagelbäck, Johan -> Hagelbäck, Johan\n",
"Johansson, Stefan J. / Johansson, Stefan J. -> Johansson, Stefan J.\n",
"Johansson, Stefan J. / Johansson, S.J. -> Johansson, Stefan J.\n",
"Johansson, Stefan J. / Johansson, Stefan J. -> Johansson, Stefan J.\n",
"Johansson, Stefan J. / Johansson, S.J. -> Johansson, Stefan J.\n",
"Hagelbäck, Johan / Hagelbäck, J. -> Hagelbäck, Johan\n",
"Hagelbäck, Johan / Hagelbäck, Johan -> Hagelbäck, Johan\n",
"Johansson, Stefan J. / Johansson, Stefan J. -> Johansson, Stefan J.\n",
"Johansson, Stefan J. / Johansson, S.J. -> Johansson, Stefan J.\n",
"Johansson, Stefan J. / Johansson, S.J. -> Johansson, Stefan J.\n",
"Hagelbäck, Johan / Hagelbäck, J. -> Hagelbäck, Johan\n",
"Johansson, Stefan J. / Johansson, S.J. -> Johansson, Stefan J.\n",
"Preuss, Mike / Preuss, Mike -> Preuss, Mike\n",
"Fern, Alan / Fern, Alan -> Fern, Alan\n",
"Chen, Ying-ping / Chen, Y. -> Chen, Ying-ping\n",
"Zhang, Yan / Zhang, Yi -> Zhang, Yan\n",
"Zhang, Yingfeng / Zhang, Yingfeng -> Zhang, Yingfeng\n",
"Huang, Jeff / Huang, Jeff -> Huang, Jeff\n",
"Huang, Jeff / Huang, J. -> Huang, Jeff\n",
"Cheung, Gifford / Cheung, Gifford -> Cheung, Gifford\n",
"Cheung, Gifford / Cheung, G. -> Cheung, Gifford\n",
"Huang, Jeff / Huang, Jeff -> Huang, Jeff\n",
"Huang, Jeff / Huang, J. -> Huang, Jeff\n",
"Huat, Ch'ng Siong / Huat, Ch'ng Siong -> Huat, Ch'ng Siong\n",
"Teo, Jason / Teo, Jason -> Teo, Jason\n",
"Huat, Ch'ng Siong / Huat, C.S. -> Huat, Ch'ng Siong\n",
"Teo, Jason / Teo, J. -> Teo, Jason\n",
"Shiu, S.C.-K. / Shiu, S.C.K. -> Shiu, S.C.-K.\n",
"Shiu, S. C. K. / Shiu, S. C. K. -> Shiu, S. C. K.\n",
"Shiu, Simon C. K. / Shiu, Simon C. K. -> Shiu, Simon C. K.\n",
"Shiu, Simon C. K. / Shiu, Simon C.K. -> Shiu, Simon C. K.\n",
"Wang, Haibo / Wang, Haibo -> Wang, Haibo\n",
"Niu, Ben / Niu, Ben -> Niu, Ben\n",
"Shiu, S.C.-K. / Shiu, S.C.-K. -> Shiu, S.C.-K.\n",
"Shiu, S.C.-K. / Shiu, S.C.K. -> Shiu, S.C.-K.\n",
"Shiu, S. C. K. / Shiu, S. C. K. -> Shiu, S. C. K.\n",
"Shiu, Simon C. K. / Shiu, Simon C. K. -> Shiu, Simon C. K.\n",
"Shiu, Simon C. K. / Shiu, Simon C.K. -> Shiu, Simon C. K.\n",
"Wang, Haibo / Wang, Haibo -> Wang, Haibo\n",
"Niu, Ben / Niu, Ben -> Niu, Ben\n",
"Kim, Kyung-Joong / Kim, K.-J. -> Kim, Kyung-Joong\n",
"Negru, Viorel / Negru, Viorel -> Negru, Viorel\n",
"Negru, Viorel / Negru, V. -> Negru, Viorel\n",
"Shen, Siqi / Shen, Siqi -> Shen, Siqi\n",
"Iosup, Alexandru / Iosup, Alexandru -> Iosup, Alexandru\n",
"Shen, Siqi / Shen, Siqi -> Shen, Siqi\n",
"Iosup, Alexandru / Iosup, Alexandru -> Iosup, Alexandru\n",
"Fern, Alan / Fern, Alan -> Fern, Alan\n",
"Justesen, Niels / Justesen, Niels -> Justesen, Niels\n",
"Risi, Sebastian / Risi, Sebastian -> Risi, Sebastian\n",
"Justesen, Niels / Justesen, N. -> Justesen, Niels\n",
"Risi, Sebastian / Risi, S. -> Risi, Sebastian\n",
"Justesen, Niels / Justesen, N. -> Justesen, Niels\n",
"Risi, Sebastian / Risi, S. -> Risi, Sebastian\n",
"Justesen, Niels / Justesen, N. -> Justesen, Niels\n",
"Togelius, Julian / Togelius, J. -> Togelius, Julian\n",
"Risi, Sebastian / Risi, S. -> Risi, Sebastian\n",
"Lee, Hyunjae / Lee, Hyunjae -> Lee, Hyunjae\n",
"Lee, Hyunjae / Lee, H. -> Lee, Hyunjae\n",
"Lee, Hyunjae / Lee, Hankyu -> Lee, Hyunjae\n",
"Lee, Hyunjae / Lee, H. -> Lee, Hyunjae\n",
"Thawonmas, Ruck / Thawonmas, Ruck -> Thawonmas, Ruck\n",
"Ontanon, Santiago / Ontanon, S. -> Ontanon, Santiago\n",
"Thawonmas, Ruck / Thawonmas, R. -> Thawonmas, Ruck\n",
"Keaveney, David / Keaveney, David -> Keaveney, David\n",
"O'Riordan, Colm / O'Riordan, Colm -> O'Riordan, Colm\n",
"Keaveney, David / Keaveney, David -> Keaveney, David\n",
"O'Riordan, Colm / O'Riordan, Colm -> O'Riordan, Colm\n",
"Keaveney, David / Keaveney, D. -> Keaveney, David\n",
"O'Riordan, Colm / O'Riordan, C. -> O'Riordan, Colm\n",
"Keaveney, David / Keaveney, David -> Keaveney, David\n",
"O'Riordan, Colm / O'Riordan, Colm -> O'Riordan, Colm\n",
"Kim, Kyung-Joong / Kim, Kyung-Joong -> Kim, Kyung-Joong\n",
"Kim, Kyung-Joong / Kim, K.-J. -> Kim, Kyung-Joong\n",
"Kim, Kyung-Joong / Kim, K.-J. -> Kim, Kyung-Joong\n",
"Kim, Kyung-Joong / Kim, K.-J. -> Kim, Kyung-Joong\n",
"Fern, Alan / Fern, Alan -> Fern, Alan\n",
"Buro, Michael / Buro, Michael -> Buro, Michael\n",
"Preuss, Mike / Preuss, Mike -> Preuss, Mike\n",
"Rudolph, Günter / Rudolph, Günter -> Rudolph, Günter\n",
"Kaytoue, Mehdi / Kaytoue, Mehdi -> Kaytoue, Mehdi\n",
"Lara-Cabrera, Raúl / Lara-Cabrera, Raúl -> Lara-Cabrera, Raúl\n",
"Lara-Cabrera, Raúl / Lara-Cabrera, Raúl -> Lara-Cabrera, Raúl\n",
"Lara-Cabrera, Raúl / Lara-Cabrera, Raúl -> Lara-Cabrera, Raúl\n",
"Lara-Cabrera, Raúl / Lara-Cabrera, Raúl -> Lara-Cabrera, Raúl\n",
"Lara-Cabrera, Raúl / Lara-Cabrera, Raúl -> Lara-Cabrera, Raúl\n",
"Lara-Cabrera, Raúl / Lara-Cabrera, Raúl -> Lara-Cabrera, Raúl\n",
"Lara-Cabrera, Raúl / Lara-Cabrera, R. -> Lara-Cabrera, Raúl\n",
"Lara-Cabrera, Raúl / Lara-Cabrera, R. -> Lara-Cabrera, Raúl\n",
"Louis, Sushil / Louis, Sushil -> Louis, Sushil\n",
"Louis, Sushil / Louis, S. -> Louis, Sushil\n",
"Togelius, Julian / Togelius, Julian -> Togelius, Julian\n",
"Togelius, Julian / Togelius, J. -> Togelius, Julian\n",
"Leigh, Ryan / Leigh, R. -> Leigh, Ryan\n",
"Louis, Sushil J. / Louis, S.J. -> Louis, Sushil J.\n",
"Miles, Chris / Miles, C. -> Miles, Chris\n",
"Lelis, Levi H. S. / Lelis, Levi H. S. -> Lelis, Levi H. S.\n",
"Li, Yan / Li, Yan -> Li, Yan\n",
"Li, Y. J. / Li, Y.J. -> Li, Y. J.\n",
"Ng, Peter H. F. / Ng, P.H.F. -> Ng, Peter H. F.\n",
"Ng, auPeter H.F. / Ng, auPeter H.F. -> Ng, auPeter H.F.\n",
"Ng, auPeter H.F. / Ng, Peter H.F. -> Ng, auPeter H.F.\n",
"Shiu, S. C. K. / Shiu, S.C.-K. -> Shiu, S. C. K.\n",
"Shiu, S. C. K. / Shiu, S.C.K. -> Shiu, S. C. K.\n",
"Shiu, Simon C. K. / Shiu, Simon C. K. -> Shiu, Simon C. K.\n",
"Shiu, Simon C. K. / Shiu, Simon C.K. -> Shiu, Simon C. K.\n",
"Li, Yan / Li, Yan -> Li, Yan\n",
"Li, Yan / Li, Yan -> Li, Yan\n",
"Li, Yan / Li, Yan -> Li, Yan\n",
"Li, Y. J. / Li, Y. J. -> Li, Y. J.\n",
"Li, Y. J. / Li, Y.J. -> Li, Y. J.\n",
"Ng, Peter H. F. / Ng, Peter H. F. -> Ng, Peter H. F.\n",
"Ng, Peter H. F. / Ng, P.H.F. -> Ng, Peter H. F.\n",
"Ng, auPeter H.F. / Ng, auPeter H.F. -> Ng, auPeter H.F.\n",
"Ng, auPeter H.F. / Ng, Peter H.F. -> Ng, auPeter H.F.\n",
"Shiu, S.C.-K. / Shiu, S.C.-K. -> Shiu, S.C.-K.\n",
"Shiu, S.C.-K. / Shiu, S.C.K. -> Shiu, S.C.-K.\n",
"Shiu, S. C. K. / Shiu, S. C. K. -> Shiu, S. C. K.\n",
"Shiu, Simon C. K. / Shiu, Simon C. K. -> Shiu, Simon C. K.\n",
"Shiu, Simon C. K. / Shiu, Simon C.K. -> Shiu, Simon C. K.\n",
"Li, Y. J. / Li, Y. J. -> Li, Y. J.\n",
"Li, Y. J. / Li, Y.J. -> Li, Y. J.\n",
"Ng, Peter H. F. / Ng, P.H.F. -> Ng, Peter H. F.\n",
"Ng, auPeter H.F. / Ng, auPeter H.F. -> Ng, auPeter H.F.\n",
"Ng, auPeter H.F. / Ng, Peter H.F. -> Ng, auPeter H.F.\n",
"Shiu, S. C. K. / Shiu, S.C.-K. -> Shiu, S. C. K.\n",
"Shiu, S. C. K. / Shiu, S.C.K. -> Shiu, S. C. K.\n",
"Shiu, Simon C. K. / Shiu, Simon C. K. -> Shiu, Simon C. K.\n",
"Shiu, Simon C. K. / Shiu, Simon C.K. -> Shiu, Simon C. K.\n",
"Li, Yan / Li, Yan -> Li, Yan\n",
"Synnaeve, Gabriel / Synnaeve, G. -> Synnaeve, Gabriel\n",
"Liu, Siming / Liu, S. -> Liu, Siming\n",
"Louis, Sushil J. / Louis, S.J. -> Louis, Sushil J.\n",
"Nicolescu, Monica / Nicolescu, M. -> Nicolescu, Monica\n",
"Liu, Siming / Liu, Siming -> Liu, Siming\n",
"Liu, Siming / Liu, S. -> Liu, Siming\n",
"Louis, Sushil J. / Louis, Sushil J. -> Louis, Sushil J.\n",
"Louis, Sushil J. / Louis, S.J. -> Louis, Sushil J.\n",
"Nicolescu, Monica / Nicolescu, Monica -> Nicolescu, Monica\n",
"Nicolescu, Monica / Nicolescu, M. -> Nicolescu, Monica\n",
"Liu, Siming / Liu, Siming -> Liu, Siming\n",
"Liu, Siming / Liu, S. -> Liu, Siming\n",
"Ballinger, Christopher / Ballinger, Christopher -> Ballinger, Christopher\n",
"Ballinger, Christopher / Ballinger, C. -> Ballinger, Christopher\n",
"Louis, Sushil J. / Louis, Sushil J. -> Louis, Sushil J.\n",
"Louis, Sushil J. / Louis, S.J. -> Louis, Sushil J.\n",
"Liu, Siming / Liu, Siming -> Liu, Siming\n",
"Liu, Siming / Liu, S. -> Liu, Siming\n",
"Louis, Sushil J. / Louis, Sushil J. -> Louis, Sushil J.\n",
"Louis, Sushil J. / Louis, S.J. -> Louis, Sushil J.\n",
"Ballinger, Christopher / Ballinger, Christopher -> Ballinger, Christopher\n",
"Ballinger, Christopher / Ballinger, C. -> Ballinger, Christopher\n",
"Liu, Siming / Liu, Siming -> Liu, Siming\n",
"Liu, Siming / Liu, S. -> Liu, Siming\n",
"Louis, Sushil J. / Louis, Sushil J. -> Louis, Sushil J.\n",
"Louis, Sushil J. / Louis, S.J. -> Louis, Sushil J.\n",
"Ballinger, Christopher / Ballinger, Christopher -> Ballinger, Christopher\n",
"Ballinger, Christopher / Ballinger, C. -> Ballinger, Christopher\n",
"Liu, Siming / Liu, Siming -> Liu, Siming\n",
"Liu, Siming / Liu, S. -> Liu, Siming\n",
"Louis, Sushil J. / Louis, Sushil J. -> Louis, Sushil J.\n",
"Louis, Sushil J. / Louis, S.J. -> Louis, Sushil J.\n",
"Liu, Siming / Liu, Siming -> Liu, Siming\n",
"Liu, Siming / Liu, S. -> Liu, Siming\n",
"Louis, Sushil J. / Louis, Sushil J. -> Louis, Sushil J.\n",
"Louis, Sushil J. / Louis, S.J. -> Louis, Sushil J.\n",
"Liu, Siming / Liu, S. -> Liu, Siming\n",
"Louis, Sushil J. / Louis, S.J. -> Louis, Sushil J.\n",
"Louis, Sushil J. / Louis, Sushil J. -> Louis, Sushil J.\n",
"Louis, Sushil J. / Louis, S.J. -> Louis, Sushil J.\n",
"Miles, Chris / Miles, Chris -> Miles, Chris\n",
"Miles, Chris / Miles, C. -> Miles, Chris\n",
"Louis, Sushil J. / Louis, Sushil J. -> Louis, Sushil J.\n",
"Louis, Sushil J. / Louis, S.J. -> Louis, Sushil J.\n",
"Liu, Siming / Liu, Siming -> Liu, Siming\n",
"Liu, Siming / Liu, S. -> Liu, Siming\n",
"Louis, Sushil J. / Louis, S.J. -> Louis, Sushil J.\n",
"Liu, Siming / Liu, S. -> Liu, Siming\n",
"Togelius, Julian / Togelius, Julian -> Togelius, Julian\n",
"Togelius, Julian / Togelius, J. -> Togelius, Julian\n",
"Yannakakis, Georgios N. / Yannakakis, Georgios N. -> Yannakakis, Georgios N.\n",
"Makin, Owen / Makin, O. -> Makin, Owen\n",
"Bangay, Shaun / Bangay, S. -> Bangay, Shaun\n",
"Tadepalli, Prasad / Tadepalli, Prasad -> Tadepalli, Prasad\n",
"Fern, Alan / Fern, Alan -> Fern, Alan\n",
"Ontañón, Santiago / Ontañón, Santiago -> Ontañón, Santiago\n",
"Fernández-Ares, Antonio / Fernández-Ares, A. -> Fernández-Ares, Antonio\n",
"García-Sánchez, Pablo / García-Sánchez, P. -> García-Sánchez, Pablo\n",
"Dodge, Jonathan / Dodge, Jonathan -> Dodge, Jonathan\n",
"Zeng, Yifeng / Zeng, Yifeng -> Zeng, Yifeng\n",
"Miles, Chris / Miles, Chris -> Miles, Chris\n",
"Miles, Chris / Miles, C. -> Miles, Chris\n",
"Louis, Sushil J. / Louis, Sushil J. -> Louis, Sushil J.\n",
"Louis, Sushil J. / Louis, S.J. -> Louis, Sushil J.\n",
"Miles, Chris / Miles, Chris -> Miles, Chris\n",
"Miles, Chris / Miles, C. -> Miles, Chris\n",
"Leigh, Ryan / Leigh, Ryan -> Leigh, Ryan\n",
"Leigh, Ryan / Leigh, R. -> Leigh, Ryan\n",
"Louis, Sushil J. / Louis, Sushil J. -> Louis, Sushil J.\n",
"Louis, Sushil J. / Louis, S.J. -> Louis, Sushil J.\n",
"Ontañón, Santiago / Ontañón, Santiago -> Ontañón, Santiago\n",
"Mora, Antonio M. / Mora, Antonio M. -> Mora, Antonio M.\n",
"Fernández-Ares, Antonio / Fernández-Ares, Antonio -> Fernández-Ares, Antonio\n",
"García-Sánchez, Pablo / García-Sánchez, Pablo -> García-Sánchez, Pablo\n",
"Müller, Jens / Müller, Jens -> Müller, Jens\n",
"Gorlatch, Sergei / Gorlatch, Sergei -> Gorlatch, Sergei\n",
"Müller, Jens / Müller, J. -> Müller, Jens\n",
"Gorlatch, Sergei / Gorlatch, S. -> Gorlatch, Sergei\n",
"Müller, Jens / Müller, Jens -> Müller, Jens\n",
"Gorlatch, Sergei / Gorlatch, Sergei -> Gorlatch, Sergei\n",
"Jessel, J.-P. / Jessel, J.P. -> Jessel, J.-P.\n",
"Jessel, J.-P. / Jessel, J.-P. -> Jessel, J.-P.\n",
"Jessel, J.-P. / Jessel, J.P. -> Jessel, J.-P.\n",
"Synnaeve, Gabriel / Synnaeve, G. -> Synnaeve, Gabriel\n",
"Tadepalli, Prasad / Tadepalli, Prasad -> Tadepalli, Prasad\n",
"Naves, Thiago F. / Naves, Thiago F. -> Naves, Thiago F.\n",
"Naves, Thiago F. / Naves, T.F. -> Naves, Thiago F.\n",
"Lopes, Carlos R. / Lopes, Carlos R. -> Lopes, Carlos R.\n",
"Lopes, Carlos R. / Lopes, C.R. -> Lopes, Carlos R.\n",
"Naves, Thiago F. / Naves, Thiago F. -> Naves, Thiago F.\n",
"Naves, Thiago F. / Naves, T.F. -> Naves, Thiago F.\n",
"Lopes, Carlos R. / Lopes, Carlos R. -> Lopes, Carlos R.\n",
"Lopes, Carlos R. / Lopes, C.R. -> Lopes, Carlos R.\n",
"Naves, Thiago F. / Naves, Thiago F. -> Naves, Thiago F.\n",
"Naves, Thiago F. / Naves, T.F. -> Naves, Thiago F.\n",
"Lopes, Carlos R. / Lopes, Carlos R. -> Lopes, Carlos R.\n",
"Lopes, Carlos R. / Lopes, C.R. -> Lopes, Carlos R.\n",
"Naves, Thiago F. / Naves, Thiago F. -> Naves, Thiago F.\n",
"Naves, Thiago F. / Naves, T.F. -> Naves, Thiago F.\n",
"Lopes, Carlos R. / Lopes, Carlos R. -> Lopes, Carlos R.\n",
"Lopes, Carlos R. / Lopes, C.R. -> Lopes, Carlos R.\n",
"Naves, Thiago F. / Naves, Thiago F. -> Naves, Thiago F.\n",
"Naves, Thiago F. / Naves, T.F. -> Naves, Thiago F.\n",
"Lopes, Carlos R. / Lopes, Carlos R. -> Lopes, Carlos R.\n",
"Lopes, Carlos R. / Lopes, C.R. -> Lopes, Carlos R.\n",
"Dodge, Jonathan / Dodge, Jonathan -> Dodge, Jonathan\n",
"Ng, Peter H. F. / Ng, P.H.F. -> Ng, Peter H. F.\n",
"Ng, auPeter H.F. / Ng, auPeter H.F. -> Ng, auPeter H.F.\n",
"Ng, auPeter H.F. / Ng, Peter H.F. -> Ng, auPeter H.F.\n",
"Li, Y. J. / Li, Y.J. -> Li, Y. J.\n",
"Shiu, Simon C. K. / Shiu, S.C.-K. -> Shiu, Simon C. K.\n",
"Shiu, Simon C. K. / Shiu, S.C.K. -> Shiu, Simon C. K.\n",
"Shiu, Simon C. K. / Shiu, S. C. K. -> Shiu, Simon C. K.\n",
"Shiu, Simon C. K. / Shiu, Simon C.K. -> Shiu, Simon C. K.\n",
"Ng, auPeter H.F. / Ng, Peter H. F. -> Ng, auPeter H.F.\n",
"Ng, auPeter H.F. / Ng, P.H.F. -> Ng, auPeter H.F.\n",
"Ng, auPeter H.F. / Ng, Peter H.F. -> Ng, auPeter H.F.\n",
"Shiu, Simon C.K. / Shiu, S.C.-K. -> Shiu, Simon C.K.\n",
"Shiu, Simon C.K. / Shiu, S.C.K. -> Shiu, Simon C.K.\n",
"Shiu, Simon C.K. / Shiu, S. C. K. -> Shiu, Simon C.K.\n",
"Shiu, Simon C. K. / Shiu, Simon C. K. -> Shiu, Simon C. K.\n",
"Shiu, Simon C. K. / Shiu, Simon C.K. -> Shiu, Simon C. K.\n",
"Ng, Peter H. F. / Ng, Peter H. F. -> Ng, Peter H. F.\n",
"Ng, Peter H. F. / Ng, P.H.F. -> Ng, Peter H. F.\n",
"Ng, auPeter H.F. / Ng, auPeter H.F. -> Ng, auPeter H.F.\n",
"Ng, auPeter H.F. / Ng, Peter H.F. -> Ng, auPeter H.F.\n",
"Shiu, S.C.-K. / Shiu, S.C.-K. -> Shiu, S.C.-K.\n",
"Shiu, S.C.-K. / Shiu, S.C.K. -> Shiu, S.C.-K.\n",
"Shiu, S. C. K. / Shiu, S. C. K. -> Shiu, S. C. K.\n",
"Shiu, Simon C. K. / Shiu, Simon C. K. -> Shiu, Simon C. K.\n",
"Shiu, Simon C. K. / Shiu, Simon C.K. -> Shiu, Simon C. K.\n",
"Wang, Haibo / Wang, Haibo -> Wang, Haibo\n",
"Ng, Peter H. F. / Ng, P.H.F. -> Ng, Peter H. F.\n",
"Ng, auPeter H.F. / Ng, auPeter H.F. -> Ng, auPeter H.F.\n",
"Ng, auPeter H.F. / Ng, Peter H.F. -> Ng, auPeter H.F.\n",
"Li, Y. J. / Li, Y.J. -> Li, Y. J.\n",
"Shiu, Simon C. K. / Shiu, S.C.-K. -> Shiu, Simon C. K.\n",
"Shiu, Simon C. K. / Shiu, S.C.K. -> Shiu, Simon C. K.\n",
"Shiu, Simon C. K. / Shiu, S. C. K. -> Shiu, Simon C. K.\n",
"Shiu, Simon C. K. / Shiu, Simon C.K. -> Shiu, Simon C. K.\n",
"Nguyen, Kien Quang / Nguyen, Kien Quang -> Nguyen, Kien Quang\n",
"Thawonmas, Ruck / Thawonmas, Ruck -> Thawonmas, Ruck\n",
"Thawonmas, Ruck / Thawonmas, R. -> Thawonmas, Ruck\n",
"Nguyen, Kien Quang / Nguyen, K.Q. -> Nguyen, Kien Quang\n",
"Thawonmas, Ruck / Thawonmas, R. -> Thawonmas, Ruck\n",
"Thawonmas, Ruck / Thawonmas, R. -> Thawonmas, Ruck\n",
"Niu, Ben / Niu, Ben -> Niu, Ben\n",
"Wang, Haibo / Wang, Haibo -> Wang, Haibo\n",
"Ng, Peter H. F. / Ng, Peter H. F. -> Ng, Peter H. F.\n",
"Ng, Peter H. F. / Ng, P.H.F. -> Ng, Peter H. F.\n",
"Ng, auPeter H.F. / Ng, auPeter H.F. -> Ng, auPeter H.F.\n",
"Ng, auPeter H.F. / Ng, Peter H.F. -> Ng, auPeter H.F.\n",
"Shiu, S.C.-K. / Shiu, S.C.-K. -> Shiu, S.C.-K.\n",
"Shiu, S.C.-K. / Shiu, S.C.K. -> Shiu, S.C.-K.\n",
"Shiu, S. C. K. / Shiu, S. C. K. -> Shiu, S. C. K.\n",
"Shiu, Simon C. K. / Shiu, Simon C. K. -> Shiu, Simon C. K.\n",
"Shiu, Simon C. K. / Shiu, Simon C.K. -> Shiu, Simon C. K.\n",
"Louis, Sushil J. / Louis, Sushil J. -> Louis, Sushil J.\n",
"Louis, Sushil J. / Louis, S.J. -> Louis, Sushil J.\n",
"Nicolescu, Monica / Nicolescu, Monica -> Nicolescu, Monica\n",
"Nicolescu, Monica / Nicolescu, M. -> Nicolescu, Monica\n",
"Oh, In-Seok / Oh, In-Seok -> Oh, In-Seok\n",
"Cho, Hochul / Cho, Hochul -> Cho, Hochul\n",
"Cho, Hochul / Cho, H. -> Cho, Hochul\n",
"Kim, Kyung-Joong / Kim, Kyung-Joong -> Kim, Kyung-Joong\n",
"Kim, Kyung-Joong / Kim, K.-J. -> Kim, Kyung-Joong\n",
"Oh, In-Seok / Oh, I.-S. -> Oh, In-Seok\n",
"Kim, Kyung-Joong / Kim, K.-J. -> Kim, Kyung-Joong\n",
"Yannakakis, Georgios N. / Yannakakis, Georgios N. -> Yannakakis, Georgios N.\n",
"Ontañón, Santiago / Ontañón, Santiago -> Ontañón, Santiago\n",
"Ontañón, Santiago / Ontañón, Santiago -> Ontañón, Santiago\n",
"Buro, Michael / Buro, Michael -> Buro, Michael\n",
"Ontañón, Santiago / Ontañón, Santiago -> Ontañón, Santiago\n",
"Ontañón, Santiago / Ontañón, Santiago -> Ontañón, Santiago\n",
"Ontañón, Santiago / Ontañón, Santiago -> Ontañón, Santiago\n",
"Ontañón, Santiago / Ontañón, S. -> Ontañón, Santiago\n",
"Ontañón, Santiago / Ontañón, Santiago -> Ontañón, Santiago\n",
"Ontañón, Santiago / Ontañón, S. -> Ontañón, Santiago\n",
"Ontañón, Santiago / Ontañón, Santiago -> Ontañón, Santiago\n",
"Barriga, Nicolas A. / Barriga, Nicolas A. -> Barriga, Nicolas A.\n",
"Silva, Cleyton R. / Silva, Cleyton R. -> Silva, Cleyton R.\n",
"Moraes, Rubens O. / Moraes, Rubens O. -> Moraes, Rubens O.\n",
"Lelis, Levi H. S. / Lelis, Levi H. S. -> Lelis, Levi H. S.\n",
"Ontanon, Santiago / Ontanon, Santiago -> Ontanon, Santiago\n",
"Ontanon, Santiago / Ontanon, S. -> Ontanon, Santiago\n",
"Ontañón, Santiago / Ontañón, Santiago -> Ontañón, Santiago\n",
"Ontanon, Santiago / Ontanon, S. -> Ontanon, Santiago\n",
"Synnaeve, Gabriel / Synnaeve, G. -> Synnaeve, Gabriel\n",
"Uriarte, Alberto / Uriarte, A. -> Uriarte, Alberto\n",
"Richoux, Florian / Richoux, F. -> Richoux, Florian\n",
"Churchill, David / Churchill, D. -> Churchill, David\n",
"Preuss, Mike / Preuss, M. -> Preuss, Mike\n",
"Sethy, Harshit / Sethy, Harshit -> Sethy, Harshit\n",
"Zhang, Yan / Zhang, Yan -> Zhang, Yan\n",
"Zhang, Yan / Zhang, Yi -> Zhang, Yan\n",
"Zhang, Yingfeng / Zhang, Yingfeng -> Zhang, Yingfeng\n",
"Lee, Hankyu / Lee, Hankyu -> Lee, Hankyu\n",
"Lee, Hyunjae / Lee, Hyunjae -> Lee, Hyunjae\n",
"Lee, Hyunjae / Lee, H. -> Lee, Hyunjae\n",
"Kim, Kyung-Joong / Kim, K.-J. -> Kim, Kyung-Joong\n",
"Tadepalli, Prasad / Tadepalli, Prasad -> Tadepalli, Prasad\n",
"Fern, Alan / Fern, Alan -> Fern, Alan\n",
"Tang, Zhentao / Tang, Zhentao -> Tang, Zhentao\n",
"Penney, Sean / Penney, S. -> Penney, Sean\n",
"Dodge, Jonathan / Dodge, J. -> Dodge, Jonathan\n",
"Hilderbrand, Claudia / Hilderbrand, C. -> Hilderbrand, Claudia\n",
"Anderson, Andrew / Anderson, A. -> Anderson, Andrew\n",
"Burnett, Margaret / Burnett, M. -> Burnett, Margaret\n",
"Spronck, Pieter / Spronck, Pieter -> Spronck, Pieter\n",
"Spronck, Pieter / Spronck, Pieter -> Spronck, Pieter\n",
"Spronck, Pieter / Spronck, Pieter -> Spronck, Pieter\n",
"Preuss, Mike / Preuss, Mike -> Preuss, Mike\n",
"Volz, Vanessa / Volz, Vanessa -> Volz, Vanessa\n",
"Preuss, Mike / Preuss, M. -> Preuss, Mike\n",
"Preuss, Mike / Preuss, M. -> Preuss, Mike\n",
"Beume, Nicola / Beume, N. -> Beume, Nicola\n",
"Hein, Tobias / Hein, T. -> Hein, Tobias\n",
"Naujoks, Boris / Naujoks, B. -> Naujoks, Boris\n",
"Piatkowski, Nico / Piatkowski, N. -> Piatkowski, Nico\n",
"Wessing, Simon / Wessing, S. -> Wessing, Simon\n",
"Tadepalli, Prasad / Tadepalli, Prasad -> Tadepalli, Prasad\n",
"Tadepalli, Prasad / Tadepalli, Prasad -> Tadepalli, Prasad\n",
"Ontañón, Santiago / Ontañón, Santiago -> Ontañón, Santiago\n",
"Farquhar, Gregory / Farquhar, Gregory -> Farquhar, Gregory\n",
"Farquhar, Gregory / Farquhar, G. -> Farquhar, Gregory\n",
"Foerster, Jakob / Foerster, Jakob -> Foerster, Jakob\n",
"Foerster, Jakob / Foerster, J. -> Foerster, Jakob\n",
"Whiteson, Shimon / Whiteson, Shimon -> Whiteson, Shimon\n",
"Whiteson, Shimon / Whiteson, S. -> Whiteson, Shimon\n",
"Bakkes, Sander / Bakkes, Sander -> Bakkes, Sander\n",
"Spronck, Pieter / Spronck, Pieter -> Spronck, Pieter\n",
"Richoux, Florian / Richoux, Florian -> Richoux, Florian\n",
"Richoux, Florian / Richoux, F. -> Richoux, Florian\n",
"Uriarte, Alberto / Uriarte, Alberto -> Uriarte, Alberto\n",
"Uriarte, Alberto / Uriarte, A. -> Uriarte, Alberto\n",
"Ontañón, Santiago / Ontañón, Santiago -> Ontañón, Santiago\n",
"Sukthankar, Gita / Sukthankar, Gita -> Sukthankar, Gita\n",
"Sukthankar, Gita / Sukthankar, G. -> Sukthankar, Gita\n",
"Buro, Michael / Buro, Michael -> Buro, Michael\n",
"Churchill, David / Churchill, David -> Churchill, David\n",
"Robertson, Glen / Robertson, Glen -> Robertson, Glen\n",
"Watson, Ian / Watson, Ian -> Watson, Ian\n",
"Robertson, Glen / Robertson, G. -> Robertson, Glen\n",
"Watson, Ian / Watson, I. -> Watson, Ian\n",
"Robertson, Glen / Robertson, Glen -> Robertson, Glen\n",
"Watson, Ian / Watson, Ian -> Watson, Ian\n",
"Robertson, Glen / Robertson, Glen -> Robertson, Glen\n",
"Watson, Ian / Watson, Ian -> Watson, Ian\n",
"Robertson, Glen / Robertson, G. -> Robertson, Glen\n",
"Chaimowicz, Luiz / Chaimowicz, L. -> Chaimowicz, Luiz\n",
"Rooijackers, Martin L. M. / Rooijackers, Martin L. M. -> Rooijackers, Martin L. M.\n",
"Winands, Mark H. M. / Winands, Mark H. M. -> Winands, Mark H. M.\n",
"Rooijackers, Martin L. M. / Rooijackers, Martin L.M. -> Rooijackers, Martin L. M.\n",
"Winands, Mark H. M. / Winands, Mark H.M. -> Winands, Mark H. M.\n",
"von Mammen, Sebastian / von Mammen, Sebastian -> von Mammen, Sebastian\n",
"Safadi, Firas / Safadi, Firas -> Safadi, Firas\n",
"Safadi, Firas / Safadi, F. -> Safadi, Firas\n",
"Fonteneau, Raphael / Fonteneau, Raphael -> Fonteneau, Raphael\n",
"Fonteneau, Raphael / Fonteneau, R. -> Fonteneau, Raphael\n",
"Ernst, Damien / Ernst, Damien -> Ernst, Damien\n",
"Ernst, Damien / Ernst, D. -> Ernst, Damien\n",
"Buro, Michael / Buro, Michael -> Buro, Michael\n",
"Bakkes, Sander / Bakkes, Sander -> Bakkes, Sander\n",
"Spronck, Pieter / Spronck, Pieter -> Spronck, Pieter\n",
"Köstler, Harald / Köstler, H. -> Köstler, Harald\n",
"Sethy, Harshit / Sethy, Harshit -> Sethy, Harshit\n",
"Patel, Amit / Patel, Amit -> Patel, Amit\n",
"Sethy, Harshit / Sethy, H. -> Sethy, Harshit\n",
"Patel, Amit / Patel, A. -> Patel, Amit\n",
"Shao, Kun / Shao, Kun -> Shao, Kun\n",
"Zhu, Yuanheng / Zhu, Yuanheng -> Zhu, Yuanheng\n",
"Zhao, Dongbin / Zhao, Dongbin -> Zhao, Dongbin\n",
"Shao, Kun / Shao, K. -> Shao, Kun\n",
"Zhu, Yuanheng / Zhu, Y. -> Zhu, Yuanheng\n",
"Zhao, Dongbin / Zhao, D. -> Zhao, Dongbin\n",
"Shen, Siqi / Shen, S. -> Shen, Siqi\n",
"Iosup, Alexandru / Iosup, A. -> Iosup, Alexandru\n",
"Epema, Dick / Epema, D. -> Epema, Dick\n",
"Wang, Haibo / Wang, Haibo -> Wang, Haibo\n",
"Shen, Siqi / Shen, Siqi -> Shen, Siqi\n",
"Iosup, Alexandru / Iosup, Alexandru -> Iosup, Alexandru\n",
"Epema, Dick / Epema, Dick -> Epema, Dick\n",
"Epema, Dick / Epema, D. -> Epema, Dick\n",
"Shen, Siqi / Shen, S. -> Shen, Siqi\n",
"Iosup, Alexandru / Iosup, A. -> Iosup, Alexandru\n",
"Tan, Chek Tien / Tan, C.T. -> Tan, Chek Tien\n",
"Tan, Chek Tien / Tan, C.T. -> Tan, Chek Tien\n",
"Silva, Cleyton R. / Silva, C.R. -> Silva, Cleyton R.\n",
"Moraes, Rubens O. / Moraes, R.O. -> Moraes, Rubens O.\n",
"Lelis, Levi H. S. / Lelis, L.H.S. -> Lelis, Levi H. S.\n",
"Silver, David / Silver, David -> Silver, David\n",
"Stanescu, Marius / Stanescu, Marius -> Stanescu, Marius\n",
"Barriga, Nicolas A. / Barriga, Nicolas A. -> Barriga, Nicolas A.\n",
"Buro, Michael / Buro, Michael -> Buro, Michael\n",
"Stanescu, Marius / Stanescu, M. -> Stanescu, Marius\n",
"Barriga, Nicolas A. / Barriga, N.A. -> Barriga, Nicolas A.\n",
"Buro, Michael / Buro, M. -> Buro, Michael\n",
"Stanescu, Marius / Stanescu, Marius -> Stanescu, Marius\n",
"Barriga, Nicolas A. / Barriga, Nicolas A. -> Barriga, Nicolas A.\n",
"Buro, Michael / Buro, Michael -> Buro, Michael\n",
"Stanescu, Marius / Stanescu, Marius -> Stanescu, Marius\n",
"Barriga, Nicolas A. / Barriga, Nicolas A. -> Barriga, Nicolas A.\n",
"Buro, Michael / Buro, Michael -> Buro, Michael\n",
"Stanescu, Marius / Stanescu, M. -> Stanescu, Marius\n",
"Erickson, Graham / Erickson, G. -> Erickson, Graham\n",
"Greiner, Russel / Greiner, R. -> Greiner, Russel\n",
"Buro, Michael / Buro, M. -> Buro, Michael\n",
"Stanescu, Marius / Stanescu, M. -> Stanescu, Marius\n",
"Certicky, Martin / Certicky, Martin -> Certicky, Martin\n",
"Buro, Michael / Buro, Michael -> Buro, Michael\n",
"Ontañón, Santiago / Ontañón, Santiago -> Ontañón, Santiago\n",
"Ontañón, Santiago / Ontañón, Santiago -> Ontañón, Santiago\n",
"Liu, Yongsheng / Liu, Yang -> Liu, Yongsheng\n",
"Synnaeve, Gabriel / Synnaeve, G. -> Synnaeve, Gabriel\n",
"Bessière, Pierre / Bessière, P. -> Bessière, Pierre\n",
"Synnaeve, Gabriel / Synnaeve, G. -> Synnaeve, Gabriel\n",
"Bessière, Pierre / Bessière, P. -> Bessière, Pierre\n",
"Synnaeve, Gabriel / Synnaeve, G. -> Synnaeve, Gabriel\n",
"Synnaeve, Gabriel / Synnaeve, G. -> Synnaeve, Gabriel\n",
"Synnaeve, Gabriel / Synnaeve, Gabriel -> Synnaeve, Gabriel\n",
"Synnaeve, Gabriel / Synnaeve, G. -> Synnaeve, Gabriel\n",
"Synnaeve, Gabriel / Synnaeve, G. -> Synnaeve, Gabriel\n",
"Gant, Daniel / Gant, Daniel -> Gant, Daniel\n",
"Gant, Daniel / Gant, Dan -> Gant, Daniel\n",
"Synnaeve, Gabriel / Synnaeve, G. -> Synnaeve, Gabriel\n",
"Synnaeve, Gabriel / Synnaeve, Gabriel -> Synnaeve, Gabriel\n",
"Synnaeve, Gabriel / Synnaeve, G. -> Synnaeve, Gabriel\n",
"Bessière, Pierre / Bessière, Pierre -> Bessière, Pierre\n",
"Bessière, Pierre / Bessière, P. -> Bessière, Pierre\n",
"Synnaeve, Gabriel / Synnaeve, G. -> Synnaeve, Gabriel\n",
"Richoux, Florian / Richoux, F. -> Richoux, Florian\n",
"Tang, Zhenkun / Tang, Zhenkun -> Tang, Zhenkun\n",
"Tang, Zhentao / Tang, Zhentao -> Tang, Zhentao\n",
"Zhao, Dongbin / Zhao, D. -> Zhao, Dongbin\n",
"Zhu, Yuanheng / Zhu, Y. -> Zhu, Yuanheng\n",
"Tavares, Anderson R. / Tavares, Anderson R. -> Tavares, Anderson R.\n",
"Chaimowicz, Luiz / Chaimowicz, Luiz -> Chaimowicz, Luiz\n",
"Chaimowicz, Luiz / Chaimowicz, L. -> Chaimowicz, Luiz\n",
"Tavares, Anderson R. / Tavares, A.R. -> Tavares, Anderson R.\n",
"Chaimowicz, Luiz / Chaimowicz, L. -> Chaimowicz, Luiz\n",
"Tavares, Anderson R. / Tavares, A.R. -> Tavares, Anderson R.\n",
"Tavares, Anderson R. / Tavares, Anderson R. -> Tavares, Anderson R.\n",
"Chaimowicz, Luiz / Chaimowicz, Luiz -> Chaimowicz, Luiz\n",
"Chaimowicz, Luiz / Chaimowicz, L. -> Chaimowicz, Luiz\n",
"Tavares, Anderson R. / Tavares, Anderson R. -> Tavares, Anderson R.\n",
"Chaimowicz, Luiz / Chaimowicz, Luiz -> Chaimowicz, Luiz\n",
"Chaimowicz, Luiz / Chaimowicz, L. -> Chaimowicz, Luiz\n",
"Teng, Teck Hou / Teng, T.-H. -> Teng, Teck Hou\n",
"Tan, Ah Hwee / Tan, A.-H. -> Tan, Ah Hwee\n",
"Starzyk, Janusz A. / Starzyk, J.A. -> Starzyk, Janusz A.\n",
"Tan, Yuan Sin / Tan, Y.-S. -> Tan, Yuan Sin\n",
"Teow, Loo Nin / Teow, L.-N. -> Teow, Loo Nin\n",
"Teng, Teck Hou / Teng, Teck Hou -> Teng, Teck Hou\n",
"Teng, Teck Hou / Teng, T.-H. -> Teng, Teck Hou\n",
"Tan, Ah Hwee / Tan, Ah Hwee -> Tan, Ah Hwee\n",
"Tan, Ah Hwee / Tan, A.-H. -> Tan, Ah Hwee\n",
"Starzyk, Janusz A. / Starzyk, Janusz A. -> Starzyk, Janusz A.\n",
"Starzyk, Janusz A. / Starzyk, J.A. -> Starzyk, Janusz A.\n",
"Tan, Yuan Sin / Tan, Yuan Sin -> Tan, Yuan Sin\n",
"Tan, Yuan Sin / Tan, Y.-S. -> Tan, Yuan Sin\n",
"Teow, Loo Nin / Teow, Loo Nin -> Teow, Loo Nin\n",
"Teow, Loo Nin / Teow, L.-N. -> Teow, Loo Nin\n",
"Togelius, Julian / Togelius, Julian -> Togelius, Julian\n",
"Togelius, Julian / Togelius, J. -> Togelius, Julian\n",
"Preuss, Mike / Preuss, Mike -> Preuss, Mike\n",
"Beume, Nicola / Beume, Nicola -> Beume, Nicola\n",
"Wessing, Simon / Wessing, Simon -> Wessing, Simon\n",
"Hagelbäck, Johan / Hagelbäck, Johan -> Hagelbäck, Johan\n",
"Yannakakis, Georgios N. / Yannakakis, Georgios N. -> Yannakakis, Georgios N.\n",
"Togelius, Julian / Togelius, J. -> Togelius, Julian\n",
"Preuss, Mike / Preuss, M. -> Preuss, Mike\n",
"Beume, Nicola / Beume, N. -> Beume, Nicola\n",
"Wessing, Simon / Wessing, S. -> Wessing, Simon\n",
"Yannakakis, Georgios N. / Yannakakis, G.N. -> Yannakakis, Georgios N.\n",
"Tong, Chang Kee / Tong, C.K. -> Tong, Chang Kee\n",
"On, Chin Kim / On, C.K. -> On, Chin Kim\n",
"Teo, Jason / Teo, J. -> Teo, Jason\n",
"Tong, Chang Kee / Tong, Chang Kee -> Tong, Chang Kee\n",
"Tong, Chang Kee / Tong, C.K. -> Tong, Chang Kee\n",
"Teo, Jason / Teo, Jason -> Teo, Jason\n",
"Tong, Chang Kee / Tong, Chang Kee -> Tong, Chang Kee\n",
"Tong, Chang Kee / Tong, C.K. -> Tong, Chang Kee\n",
"On, Chin Kim / On, Chin Kim -> On, Chin Kim\n",
"On, Chin Kim / On, C.K. -> On, Chin Kim\n",
"Teo, Jason / Teo, Jason -> Teo, Jason\n",
"Li, Yan / Li, Y. -> Li, Yan\n",
"Nicolescu, Monica / Nicolescu, Monica -> Nicolescu, Monica\n",
"Nicolescu, Monica / Nicolescu, M. -> Nicolescu, Monica\n",
"von Mammen, Sebastian / von Mammen, S. -> von Mammen, Sebastian\n",
"Ontanon, Santiago / Ontanon, Santiago -> Ontanon, Santiago\n",
"Ontanon, Santiago / Ontanon, S. -> Ontanon, Santiago\n",
"Uriarte, Alberto / Uriarte, Alberto -> Uriarte, Alberto\n",
"Uriarte, Alberto / Uriarte, A. -> Uriarte, Alberto\n",
"Ontañón, Santiago / Ontañón, Santiago -> Ontañón, Santiago\n",
"Uriarte, Alberto / Uriarte, A. -> Uriarte, Alberto\n",
"Ontanon, Santiago / Ontanon, S. -> Ontanon, Santiago\n",
"Uriarte, Alberto / Uriarte, Alberto -> Uriarte, Alberto\n",
"Uriarte, Alberto / Uriarte, A. -> Uriarte, Alberto\n",
"Ontañón, Santiago / Ontañón, Santiago -> Ontañón, Santiago\n",
"Uriarte, Alberto / Uriarte, Alberto -> Uriarte, Alberto\n",
"Uriarte, Alberto / Uriarte, A. -> Uriarte, Alberto\n",
"Uriarte, Alberto / Uriarte, Alberto -> Uriarte, Alberto\n",
"Uriarte, Alberto / Uriarte, A. -> Uriarte, Alberto\n",
"Uriarte, Alberto / Uriarte, Alberto -> Uriarte, Alberto\n",
"Uriarte, Alberto / Uriarte, A. -> Uriarte, Alberto\n",
"Uriarte, Alberto / Uriarte, A. -> Uriarte, Alberto\n",
"Ontanon, Santiago / Ontanon, S. -> Ontanon, Santiago\n",
"Uriarte, Alberto / Uriarte, A. -> Uriarte, Alberto\n",
"Ontanon, Santiago / Ontanon, S. -> Ontanon, Santiago\n",
"Synnaeve, Gabriel / Synnaeve, G. -> Synnaeve, Gabriel\n",
"Bakkes, Sander / Bakkes, S. -> Bakkes, Sander\n",
"Spronck, Pieter / Spronck, P. -> Spronck, Pieter\n",
"Silver, David / Silver, D. -> Silver, David\n",
"Ontañón, Santiago / Ontañón, Santiago -> Ontañón, Santiago\n",
"Volz, Vanessa / Volz, V. -> Volz, Vanessa\n",
"Rudolph, Günter / Rudolph, G. -> Rudolph, Günter\n",
"Naujoks, Boris / Naujoks, B. -> Naujoks, Boris\n",
"Wang, Haibo / Wang, H. -> Wang, Haibo\n",
"Ng, Peter H. F. / Ng, Peter H. F. -> Ng, Peter H. F.\n",
"Ng, Peter H. F. / Ng, P.H.F. -> Ng, Peter H. F.\n",
"Ng, auPeter H.F. / Ng, auPeter H.F. -> Ng, auPeter H.F.\n",
"Ng, auPeter H.F. / Ng, Peter H.F. -> Ng, auPeter H.F.\n",
"Niu, Ben / Niu, B. -> Niu, Ben\n",
"Shiu, Simon C.K. / Shiu, S.C.-K. -> Shiu, Simon C.K.\n",
"Shiu, Simon C.K. / Shiu, S.C.K. -> Shiu, Simon C.K.\n",
"Shiu, Simon C.K. / Shiu, S. C. K. -> Shiu, Simon C.K.\n",
"Shiu, Simon C. K. / Shiu, Simon C. K. -> Shiu, Simon C. K.\n",
"Shiu, Simon C. K. / Shiu, Simon C.K. -> Shiu, Simon C. K.\n",
"Tan, Ah Hwee / Tan, Ah Hwee -> Tan, Ah Hwee\n",
"Tan, Ah Hwee / Tan, A.-H. -> Tan, Ah Hwee\n",
"Teow, Loo Nin / Teow, Loo Nin -> Teow, Loo Nin\n",
"Teow, Loo Nin / Teow, L.-N. -> Teow, Loo Nin\n",
"Tan, Yuan Sin / Tan, Yuan Sin -> Tan, Yuan Sin\n",
"Tan, Yuan Sin / Tan, Y.-S. -> Tan, Yuan Sin\n",
"Nguyen, Kien Quang / Nguyen, K.Q. -> Nguyen, Kien Quang\n",
"Thawonmas, Ruck / Thawonmas, R. -> Thawonmas, Ruck\n",
"Rinaldo, Frank / Rinaldo, F. -> Rinaldo, Frank\n",
"Tan, Ah Hwee / Tan, Ah Hwee -> Tan, Ah Hwee\n",
"Tan, Ah Hwee / Tan, A.-H. -> Tan, Ah Hwee\n",
"Teow, Loo Nin / Teow, Loo Nin -> Teow, Loo Nin\n",
"Teow, Loo Nin / Teow, L.-N. -> Teow, Loo Nin\n",
"Wender, Stefan / Wender, S. -> Wender, Stefan\n",
"Watson, Ian / Watson, I. -> Watson, Ian\n",
"Wender, Stefan / Wender, Stefan -> Wender, Stefan\n",
"Wender, Stefan / Wender, S. -> Wender, Stefan\n",
"Watson, Ian / Watson, Ian -> Watson, Ian\n",
"Wender, Stefan / Wender, Stefan -> Wender, Stefan\n",
"Wender, Stefan / Wender, S. -> Wender, Stefan\n",
"Watson, Ian / Watson, Ian -> Watson, Ian\n",
"Wender, Stefan / Wender, Stefan -> Wender, Stefan\n",
"Wender, Stefan / Wender, S. -> Wender, Stefan\n",
"Watson, Ian / Watson, Ian -> Watson, Ian\n",
"Wilson, Aaron / Wilson, A. -> Wilson, Aaron\n",
"Fern, Alan / Fern, A. -> Fern, Alan\n",
"Tadepalli, Prasad / Tadepalli, P. -> Tadepalli, Prasad\n",
"Wilson, Aaron / Wilson, Aaron -> Wilson, Aaron\n",
"Wilson, Aaron / Wilson, A. -> Wilson, Aaron\n",
"Fern, Alan / Fern, Alan -> Fern, Alan\n",
"Tadepalli, Prasad / Tadepalli, Prasad -> Tadepalli, Prasad\n",
"Wilson, Aaron / Wilson, Aaron -> Wilson, Aaron\n",
"Wilson, Aaron / Wilson, A. -> Wilson, Aaron\n",
"Fern, Alan / Fern, Alan -> Fern, Alan\n",
"Tadepalli, Prasad / Tadepalli, Prasad -> Tadepalli, Prasad\n",
"Zhang, Junge / Zhang, J. -> Zhang, Junge\n",
"Xiong, Shuo / Xiong, S. -> Xiong, Shuo\n",
"Iida, Hiroyuki / Iida, H. -> Iida, Hiroyuki\n",
"Xiong, Shuo / Xiong, Shuo -> Xiong, Shuo\n",
"Xiong, Shuo / Xiong, S. -> Xiong, Shuo\n",
"Iida, Hiroyuki / Iida, Hiroyuki -> Iida, Hiroyuki\n",
"Iida, Hiroyuki / Iida, H. -> Iida, Hiroyuki\n",
"Liu, Yongsheng / Liu, Yongsheng -> Liu, Yongsheng\n",
"Liu, Yongsheng / Liu, Yang -> Liu, Yongsheng\n",
"Huang, Jeff / Huang, Jeff -> Huang, Jeff\n",
"Huang, Jeff / Huang, J. -> Huang, Jeff\n",
"Ontanon, Santiago / Ontanon, S. -> Ontanon, Santiago\n",
"Yannakakis, Georgios N. / Yannakakis, Georgios N. -> Yannakakis, Georgios N.\n",
"Togelius, Julian / Togelius, Julian -> Togelius, Julian\n",
"Togelius, Julian / Togelius, J. -> Togelius, Julian\n",
"Young, Jay / Young, J. -> Young, Jay\n",
"Hawes, Nick / Hawes, N. -> Hawes, Nick\n",
"Young, Jay / Young, Jay -> Young, Jay\n",
"Young, Jay / Young, J. -> Young, Jay\n",
"Hawes, Nick / Hawes, Nick -> Hawes, Nick\n",
"Hawes, Nick / Hawes, N. -> Hawes, Nick\n",
"Young, Jay / Young, J. -> Young, Jay\n",
"Zelinka, Ivan / Zelinka, Ivan -> Zelinka, Ivan\n",
"Zelinka, Ivan / Zelinka, I. -> Zelinka, Ivan\n",
"Zhang, Junge / Zhang, Junge -> Zhang, Junge\n",
"Zhang, Junge / Zhang, J. -> Zhang, Junge\n",
"Zhang, Yingfeng / Zhang, Yan -> Zhang, Yingfeng\n",
"Zhang, Yingfeng / Zhang, Yi -> Zhang, Yingfeng\n",
"Nguyen, Kien Quang / Nguyen, Kien Quang -> Nguyen, Kien Quang\n",
"Thawonmas, Ruck / Thawonmas, Ruck -> Thawonmas, Ruck\n",
"Rinaldo, Frank / Rinaldo, Frank -> Rinaldo, Frank\n",
"Rinaldo, Frank / Rinaldo, F. -> Rinaldo, Frank\n",
"Watson, Ian / Watson, Ian -> Watson, Ian\n"
]
}
],
"source": [
"for entry in bib_data.entries:\n",
" for author_index in range(len(bib_data.entries[entry].persons['author'])):\n",
" current_author = bib_data.entries[entry].persons['author'][author_index]\n",
" chosen_name = current_author\n",
"\n",
" for new_author in authors:\n",
" if same_person_different_name(chosen_name, new_author):\n",
" chosen_name = best_name(new_author, chosen_name)\n",
" print(\"{} / {} -> {}\".format(chosen_name, new_author, chosen_name))\n",
" \n",
" bib_data.entries[entry].persons['author'][author_index] = chosen_name"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"bib_data.to_file('bib2.bib')"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
@reox
Copy link

reox commented Jan 20, 2020

This is a nice approach!

I think a good metric for names would also be co-authors. There is the problem with authors who share the same initials but you have only one of them expanded in your database. Especially nasty would be if you have A. Smith which gets expanded to Ann B. Smith but actually you wanted Andrew C. Smith.
With the co-authors, you could build a score for how certain you are for the name replacement.

@douglasrizzo
Copy link
Author

You mean, I check if A. Smith has more co-authors in common with Ann B. Smith or Andrew C. Smith and select the correct full name for A. Smith based on that? That also seems like a good heuristic, but the bib file would need to have all of these examples, whereas in the current approach, I just work with names, first letters and accents...

By the way, I did not end up applying this to my database. But it was a nice experiment.

@reox
Copy link

reox commented Jan 21, 2020

You mean, I check if A. Smith has more co-authors in common with Ann B. Smith or Andrew C. Smith and select the correct full name for A. Smith based on that?

yes, exactly!

but the bib file would need to have all of these examples

that is true. But you could at least give some warning if there are multiple replacements found for a single name and not replace it at all.

I did not end up applying this to my database

I would also just do this as a test, as I know I have these instances of names in the database. Sometimes it is very confusing as both persons work in the same field...

@reox
Copy link

reox commented Feb 25, 2020

It came to my mind that one really good solution would be ORCID. I think many articles already implement them and add them to the PDF.
Hence, it would be possible to grep them from the files and have then a ground truth for the names.

@douglasrizzo
Copy link
Author

@reox the ORCID is indeed the solution to this problem, as it would work as an ID or primary key for all authors. Unfortunately, it is very rare to find ORCID information in bib files. We would need to:

  • have the PDF files of all the papers whose authors' names we want to normalize;
  • assume the PDFs contain their ORCIDs, and;
  • find a way to scrape it from PDF files with different formatting.

Maybe if there was a service that gave us author information if we gave them the DOI of the paper, or its title, we would have an easier time. I know JabRef has a way to acquire paper information, sometimes including full author names, through a paper's DOI.

@mhoban
Copy link

mhoban commented Jun 27, 2022

@douglasrizzo thanks for this! I adapted your code to use with pyzotero so it wouldn't be necessary to go through a bibtex intermediary. https://gist.github.com/mhoban/3564f789a934028f9898b0a316588dd1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment