I wanted to run some analysis on sports data with the goal to get different and or more info then what is presented in the newspapers. I choose tennis with the idea to compare countries, their players and how well they do. To not have too many nodes I restricted the data to the ATP men’s singles top 100 ranking and the finals of the 2016 tournaments.
Tennis Players have an ATP ranking that is updated weekly. They are from a Country. In singles tennis two players compete against each other in a Match which is played at a Tournament. The player who wins two sets (best of 3) advances to the next round. The loser is out. The winner of the final round wins the tournament. Tournaments belong to different series. The Grand Slam series is the most prestigious one and also gives the most points for the ranking. Matches in a Grand Slam tournament are best of 5.
The graph shows the finalists of all the 2016 tournaments up until the US Open. It also includes data from all the top 100 players.
The following drawing shows the domain model:
create (_10120:`Country` {`ioc_code`:"SRB", `name`:"Serbia"})
create (_10121:`Player` {`age`:29, `firstName`:"Novak", `a_lastName`:"Djokovic", `ranking`:1})
create (_10122:`Country` {`ioc_code`:"GBR", `name`:"Great Britain"})
create (_10123:`Player` {`age`:29, `firstName`:"Andy", `a_lastName`:"Murray", `ranking`:2})
create (_10124:`Country` {`ioc_code`:"SUI", `name`:"Switzerland"})
create (_10125:`Player` {`age`:31, `firstName`:"Stan", `a_lastName`:"Wawrinka", `ranking`:3})
create (_10126:`Player` {`age`:35, `firstName`:"Roger", `a_lastName`:"Federer", `ranking`:4})
create (_10127:`Country` {`ioc_code`:"ESP", `name`:"Spain"})
create (_10128:`Player` {`age`:30, `firstName`:"Rafael", `a_lastName`:"Nadal", `ranking`:5})
create (_10129:`Country` {`ioc_code`:"CAN", `name`:"Canada"})
create (_10130:`Player` {`age`:25, `firstName`:"Milos", `a_lastName`:"Raonic", `ranking`:6})
create (_10131:`Country` {`ioc_code`:"JPN", `name`:"Japan"})
create (_10132:`Player` {`age`:26, `firstName`:"Kei", `a_lastName`:"Nishikori", `ranking`:7})
create (_10133:`Country` {`ioc_code`:"CZE", `name`:"Czech Republic"})
create (_10134:`Player` {`age`:30, `firstName`:"Tomas", `a_lastName`:"Berdych", `ranking`:8})
create (_10135:`Country` {`ioc_code`:"CRO", `name`:"Croatia"})
create (_10136:`Player` {`age`:27, `firstName`:"Marin", `a_lastName`:"Cilic", `ranking`:9})
create (_10137:`Country` {`ioc_code`:"AUT", `name`:"Austria"})
create (_10138:`Player` {`age`:22, `firstName`:"Dominic", `a_lastName`:"Thiem", `ranking`:10})
create (_10139:`Country` {`ioc_code`:"FRA", `name`:"France"})
create (_10140:`Player` {`age`:31, `firstName`:"Jo-Wilfried", `a_lastName`:"Tsonga", `ranking`:11})
create (_10141:`Player` {`age`:29, `firstName`:"Gael", `a_lastName`:"Monfils", `ranking`:12})
create (_10142:`Player` {`age`:34, `firstName`:"David", `a_lastName`:"Ferrer", `ranking`:13})
create (_10143:`Country` {`ioc_code`:"BEL", `name`:"Belgium"})
create (_10144:`Player` {`age`:25, `firstName`:"David", `a_lastName`:"Goffin", `ranking`:14})
create (_10145:`Player` {`age`:30, `firstName`:"Richard", `a_lastName`:"Gasquet", `ranking`:15})
create (_10146:`Country` {`ioc_code`:"AUS", `name`:"Australia"})
create (_10147:`Player` {`age`:21, `firstName`:"Nick", `a_lastName`:"Kyrgios", `ranking`:16})
create (_10148:`Player` {`age`:28, `firstName`:"Roberto", `a_lastName`:"Bautista Agut", `ranking`:17})
create (_10149:`Player` {`age`:34, `firstName`:"Feliciano", `a_lastName`:"Lopez", `ranking`:18})
create (_10150:`Player` {`age`:23, `firstName`:"Bernard", `a_lastName`:"Tomic", `ranking`:19})
create (_10151:`Country` {`ioc_code`:"URU", `name`:"Uruguay"})
create (_10152:`Player` {`age`:30, `firstName`:"Pablo", `a_lastName`:"Cuevas", `ranking`:20})
create (_10153:`Country` {`ioc_code`:"USA", `name`:"United States"})
create (_10154:`Player` {`age`:26, `firstName`:"Steve", `a_lastName`:"Johnson", `ranking`:21})
create (_10155:`Player` {`age`:31, `firstName`:"John", `a_lastName`:"Isner", `ranking`:22})
create (_10156:`Player` {`age`:37, `firstName`:"Ivo", `a_lastName`:"Karlovic", `ranking`:23})
create (_10157:`Country` {`ioc_code`:"BUL", `name`:"Bulgaria"})
create (_10158:`Player` {`age`:25, `firstName`:"Grigor", `a_lastName`:"Dimitrov", `ranking`:24})
create (_10159:`Country` {`ioc_code`:"RSA", `name`:"South Africa"})
create (_10160:`Player` {`age`:30, `firstName`:"Kevin", `a_lastName`:"Anderson", `ranking`:25})
create (_10161:`Player` {`age`:22, `firstName`:"Lucas", `a_lastName`:"Pouille", `ranking`:26})
create (_10162:`Country` {`ioc_code`:"GER", `name`:"Germany"})
create (_10163:`Player` {`age`:32, `firstName`:"Philipp", `a_lastName`:"Kohlschreiber", `ranking`:27})
create (_10164:`Player` {`age`:23, `firstName`:"Jack", `a_lastName`:"Sock", `ranking`:28})
create (_10165:`Player` {`age`:19, `firstName`:"Alexander", `a_lastName`:"Zverev", `ranking`:29})
create (_10166:`Country` {`ioc_code`:"SVK", `name`:"Slovakia"})
create (_10167:`Player` {`age`:27, `firstName`:"Martin", `a_lastName`:"Klizan", `ranking`:30})
create (_10168:`Player` {`age`:28, `firstName`:"Sam", `a_lastName`:"Querrey", `ranking`:31})
create (_10169:`Player` {`age`:31, `firstName`:"Gilles", `a_lastName`:"Simon", `ranking`:32})
create (_10170:`Player` {`age`:28, `firstName`:"Albert", `a_lastName`:"Ramos-Vinolas", `ranking`:33})
create (_10171:`Player` {`age`:27, `firstName`:"Benoit", `a_lastName`:"Paire", `ranking`:34})
create (_10172:`Player` {`age`:30, `firstName`:"Viktor", `a_lastName`:"Troicki", `ranking`:35})
create (_10173:`Country` {`ioc_code`:"POR", `name`:"Portugal"})
create (_10174:`Player` {`age`:27, `firstName`:"Joao", `a_lastName`:"Sousa", `ranking`:36})
create (_10175:`Country` {`ioc_code`:"LUX", `name`:"Luxembourg"})
create (_10176:`Player` {`age`:33, `firstName`:"Gilles", `a_lastName`:"Muller", `ranking`:37})
create (_10177:`Country` {`ioc_code`:"ITA", `name`:"Italy"})
create (_10178:`Player` {`age`:29, `firstName`:"Fabio", `a_lastName`:"Fognini", `ranking`:38})
create (_10179:`Player` {`age`:34, `firstName`:"Paolo", `a_lastName`:"Lorenzi", `ranking`:39})
create (_10180:`Player` {`age`:19, `firstName`:"Borna", `a_lastName`:"Coric", `ranking`:40})
create (_10181:`Player` {`age`:34, `firstName`:"Nicolas", `a_lastName`:"Mahut", `ranking`:41})
create (_10182:`Country` {`ioc_code`:"RUS", `name`:"Russia"})
create (_10183:`Player` {`age`:25, `firstName`:"Andrey", `a_lastName`:"Kuznetsov", `ranking`:42})
create (_10184:`Country` {`ioc_code`:"ARG", `name`:"Argentina"})
create (_10185:`Player` {`age`:25, `firstName`:"Federico", `a_lastName`:"Delbonis", `ranking`:43})
create (_10186:`Country` {`ioc_code`:"CYP", `name`:"Cyprus"})
create (_10187:`Player` {`age`:31, `firstName`:"Marcos", `a_lastName`:"Baghdatis", `ranking`:44})
create (_10188:`Player` {`age`:30, `firstName`:"Marcel", `a_lastName`:"Granollers", `ranking`:45})
create (_10189:`Player` {`age`:31, `firstName`:"Nicolas", `a_lastName`:"Almagro", `ranking`:46})
create (_10190:`Player` {`age`:32, `firstName`:"Fernando", `a_lastName`:"Verdasco", `ranking`:47})
create (_10191:`Player` {`age`:23, `firstName`:"Jiri", `a_lastName`:"Vesely", `ranking`:48})
create (_10192:`Player` {`age`:25, `firstName`:"Pablo", `a_lastName`:"Carreno Busta", `ranking`:49})
create (_10193:`Player` {`age`:33, `firstName`:"Guillermo", `a_lastName`:"Garcia-Lopez", `ranking`:50})
create (_10194:`Player` {`age`:26, `firstName`:"Guido", `a_lastName`:"Pella", `ranking`:51})
create (_10195:`Player` {`age`:36, `firstName`:"Stephane", `a_lastName`:"Robert", `ranking`:52})
create (_10196:`Country` {`ioc_code`:"TUN", `name`:"Tunisia"})
create (_10197:`Player` {`age`:32, `firstName`:"Malek", `a_lastName`:"Jaziri", `ranking`:53})
create (_10198:`Player` {`age`:18, `firstName`:"Taylor", `a_lastName`:"Fritz", `ranking`:54})
create (_10199:`Player` {`age`:28, `firstName`:"Adrian", `a_lastName`:"Mannarino", `ranking`:55})
create (_10200:`Player` {`age`:29, `firstName`:"Jeremy", `a_lastName`:"Chardy", `ranking`:56})
create (_10201:`Player` {`age`:27, `firstName`:"Donald", `a_lastName`:"Young", `ranking`:57})
create (_10202:`Country` {`ioc_code`:"UKR", `name`:"Ukraine"})
create (_10203:`Player` {`age`:27, `firstName`:"Alexandr", `a_lastName`:"Dolgopolov", `ranking`:58})
create (_10204:`Player` {`age`:32, `firstName`:"Florian", `a_lastName`:"Mayer", `ranking`:59})
create (_10205:`Player` {`age`:26, `firstName`:"Dusan", `a_lastName`:"Lajovic", `ranking`:60})
create (_10206:`Player` {`age`:25, `firstName`:"Gastao", `a_lastName`:"Elias", `ranking`:61})
create (_10207:`Country` {`ioc_code`:"BRA", `name`:"Brazil"})
create (_10208:`Player` {`age`:28, `firstName`:"Thomaz", `a_lastName`:"Bellucci", `ranking`:62})
create (_10209:`Player` {`age`:34, `firstName`:"Mikhail", `a_lastName`:"Youzhny", `ranking`:63})
create (_10210:`Country` {`ioc_code`:"NED", `name`:"Netherlands"})
create (_10211:`Player` {`age`:29, `firstName`:"Robin", `a_lastName`:"Haase", `ranking`:64})
create (_10212:`Player` {`age`:28, `firstName`:"Illya", `a_lastName`:"Marchenko", `ranking`:65})
create (_10213:`Country` {`ioc_code`:"KAZ", `name`:"Kazakhstan"})
create (_10214:`Player` {`age`:28, `firstName`:"Mikhail", `a_lastName`:"Kukushkin", `ranking`:66})
create (_10215:`Player` {`age`:26, `firstName`:"Daniel", `a_lastName`:"Evans", `ranking`:67})
create (_10216:`Player` {`age`:24, `firstName`:"Diego", `a_lastName`:"Schwartzman", `ranking`:68})
create (_10217:`Player` {`age`:34, `firstName`:"Paul-Henri", `a_lastName`:"Mathieu", `ranking`:69})
create (_10218:`Player` {`age`:31, `firstName`:"Horacio", `a_lastName`:"Zeballos", `ranking`:70})
create (_10219:`Country` {`ioc_code`:"BIH", `name`:"Bosnia and Herzegovina"})
create (_10220:`Player` {`age`:24, `firstName`:"Damir", `a_lastName`:"Dzumhur", `ranking`:71})
create (_10221:`Country` {`ioc_code`:"TPE", `name`:"Chinese Taipei"})
create (_10222:`Player` {`age`:33, `firstName`:"Yen-Hsun", `a_lastName`:"Lu", `ranking`:72})
create (_10223:`Player` {`age`:31, `firstName`:"Ivan", `a_lastName`:"Dodig", `ranking`:73})
create (_10224:`Player` {`age`:26, `firstName`:"Inigo", `a_lastName`:"Cervantes", `ranking`:74})
create (_10225:`Player` {`age`:33, `firstName`:"Carlos", `a_lastName`:"Berlocq", `ranking`:75})
create (_10226:`Player` {`age`:25, `firstName`:"Pierre-Hugues", `a_lastName`:"Herbert", `ranking`:76})
create (_10227:`Player` {`age`:27, `firstName`:"Aljaz", `a_lastName`:"Bedene", `ranking`:77})
create (_10228:`Player` {`age`:26, `firstName`:"Jan-Lennard", `a_lastName`:"Struff", `ranking`:78})
create (_10229:`Player` {`age`:26, `firstName`:"Evgeny", `a_lastName`:"Donskoy", `ranking`:79})
create (_10230:`Country` {`ioc_code`:"ISR", `name`:"Israel"})
create (_10231:`Player` {`age`:31, `firstName`:"Dudi", `a_lastName`:"Sela", `ranking`:80})
create (_10232:`Player` {`age`:27, `firstName`:"John", `a_lastName`:"Millman", `ranking`:81})
create (_10233:`Player` {`age`:31, `firstName`:"Lukas", `a_lastName`:"Rosol", `ranking`:82})
create (_10234:`Player` {`age`:27, `firstName`:"Yuichi", `a_lastName`:"Sugita", `ranking`:83})
create (_10235:`Country` {`ioc_code`:"DOM", `name`:"Dominican Republic"})
create (_10236:`Player` {`age`:36, `firstName`:"Victor", `a_lastName`:"Estrella Burgos", `ranking`:84})
create (_10237:`Player` {`age`:21, `firstName`:"Kyle", `a_lastName`:"Edmund", `ranking`:85})
create (_10238:`Player` {`age`:20, `firstName`:"Yoshihito", `a_lastName`:"Nishioka", `ranking`:86})
create (_10239:`Player` {`age`:31, `firstName`:"Dustin", `a_lastName`:"Brown", `ranking`:87})
create (_10240:`Player` {`age`:32, `firstName`:"Andreas", `a_lastName`:"Seppi", `ranking`:88})
create (_10241:`Country` {`ioc_code`:"LTU", `name`:"Lithuania"})
create (_10242:`Player` {`age`:26, `firstName`:"Ricardas", `a_lastName`:"Berankis", `ranking`:89})
create (_10243:`Player` {`age`:26, `firstName`:"Facundo", `a_lastName`:"Bagnis", `ranking`:90})
create (_10244:`Player` {`age`:26, `firstName`:"Gerald", `a_lastName`:"Melzer", `ranking`:91})
create (_10245:`Player` {`age`:22, `firstName`:"Jordan", `a_lastName`:"Thompson", `ranking`:92})
create (_10246:`Player` {`age`:30, `firstName`:"Sergiy", `a_lastName`:"Stakhovsky", `ranking`:93})
create (_10247:`Player` {`age`:31, `firstName`:"Konstantin", `a_lastName`:"Kravchuk", `ranking`:94})
create (_10248:`Player` {`age`:32, `firstName`:"Juan", `a_lastName`:"Monaco", `ranking`:95})
create (_10249:`Player` {`age`:20, `firstName`:"Karen", `a_lastName`:"Khachanov", `ranking`:96})
create (_10250:`Player` {`age`:35, `firstName`:"Benjamin", `a_lastName`:"Becker", `ranking`:97})
create (_10251:`Country` {`ioc_code`:"MDA", `name`:"Moldova"})
create (_10252:`Player` {`age`:26, `firstName`:"Radu", `a_lastName`:"Albot", `ranking`:98})
create (_10253:`Player` {`age`:22, `firstName`:"Thiago", `a_lastName`:"Monteiro", `ranking`:99})
create (_10254:`Player` {`age`:28, `firstName`:"Lukas", `a_lastName`:"Lacko", `ranking`:100})
create (_10255:`Country` {`ioc_code`:"LAT", `name`:"Latvia"})
create (_10256:`Player` {`age`:27, `firstName`:"Ernests", `a_lastName`:"Gulbis", `ranking`:101})
create (_10257:`Country` {`ioc_code`:"GEO", `name`:"Georgia"})
create (_10258:`Player` {`age`:24, `firstName`:"Nikoloz", `a_lastName`:"Basilashvili", `ranking`:102})
create (_10259:`Player` {`age`:23, `firstName`:"Roberto", `a_lastName`:"Carballes Baena", `ranking`:103})
create (_10260:`Player` {`age`:23, `firstName`:"Taro", `a_lastName`:"Daniel", `ranking`:104})
create (_10261:`Player` {`age`:32, `firstName`:"Rajeev", `a_lastName`:"Ram", `ranking`:105})
create (_10262:`Player` {`age`:31, `firstName`:"Teymuraz", `a_lastName`:"Gabashvili", `ranking`:106})
create (_10263:`Country` {`ioc_code`:"UZB", `name`:"Uzbekistan"})
create (_10264:`Player` {`age`:29, `firstName`:"Denis", `a_lastName`:"Istomin", `ranking`:107})
create (_10265:`Player` {`age`:32, `firstName`:"Steve", `a_lastName`:"Darcis", `ranking`:108})
create (_10266:`Player` {`age`:32, `firstName`:"Rogerio", `a_lastName`:"Dutra Silva", `ranking`:109})
create (_10267:`Player` {`age`:24, `firstName`:"Renzo", `a_lastName`:"Olivo", `ranking`:110})
create (_10268:`Player` {`age`:29, `firstName`:"Igor", `a_lastName`:"Sijsling", `ranking`:111})
create (_10269:`Player` {`age`:27, `firstName`:"Thomas", `a_lastName`:"Fabbiano", `ranking`:112})
create (_10270:`Player` {`age`:21, `firstName`:"Adam", `a_lastName`:"Pavlasek", `ranking`:113})
create (_10271:`Player` {`age`:37, `firstName`:"Radek", `a_lastName`:"Stepanek", `ranking`:114})
create (_10272:`Player` {`age`:28, `firstName`:"Tim", `a_lastName`:"Smyczek", `ranking`:115})
create (_10273:`Player` {`age`:23, `firstName`:"Bjorn", `a_lastName`:"Fratangelo", `ranking`:116})
create (_10274:`Player` {`age`:31, `firstName`:"Daniel", `a_lastName`:"Gimeno-Traver", `ranking`:117})
create (_10275:`Player` {`age`:24, `firstName`:"Ryan", `a_lastName`:"Harrison", `ranking`:118})
create (_10276:`Player` {`age`:28, `firstName`:"Joao", `a_lastName`:"Souza", `ranking`:119})
create (_10277:`Player` {`age`:22, `firstName`:"Dennis", `a_lastName`:"Novikov", `ranking`:120})
create (_10278:`Player` {`age`:26, `firstName`:"Andrej", `a_lastName`:"Martin", `ranking`:121})
create (_10279:`Player` {`age`:19, `firstName`:"Jared", `a_lastName`:"Donaldson", `ranking`:122})
create (_10280:`Player` {`age`:26, `firstName`:"Vasek", `a_lastName`:"Pospisil", `ranking`:123})
create (_10281:`Player` {`age`:18, `firstName`:"Frances", `a_lastName`:"Tiafoe", `ranking`:124})
create (_10282:`Player` {`age`:23, `firstName`:"Jozef", `a_lastName`:"Kovalik", `ranking`:125})
create (_10283:`Tournament` {`court`:"Outdoor", `_location`:"Brisbane", `name`:"Brisbane International", `series`:"ATP250", `surface`:"Hard"})
create (_10284:`Tournament` {`court`:"Outdoor", `_location`:"Chennai", `name`:"Chennai Open", `series`:"ATP250", `surface`:"Hard"})
create (_10285:`Tournament` {`court`:"Outdoor", `_location`:"Doha", `name`:"Qatar Exxon Mobil Open", `series`:"ATP250", `surface`:"Hard"})
create (_10286:`Tournament` {`court`:"Outdoor", `_location`:"Auckland", `name`:"ASB Classic", `series`:"ATP250", `surface`:"Hard"})
create (_10287:`Tournament` {`court`:"Outdoor", `_location`:"Sydney", `name`:"Apia International", `series`:"ATP250", `surface`:"Hard"})
create (_10288:`Tournament` {`court`:"Outdoor", `_location`:"Melbourne", `name`:"Australian Open", `series`:"Grand Slam", `surface`:"Hard"})
create (_10289:`Tournament` {`court`:"Indoor", `_location`:"Montpellier", `name`:"Open Sud de France", `series`:"ATP250", `surface`:"Hard"})
create (_10290:`Tournament` {`court`:"Outdoor", `_location`:"Quito", `name`:"Ecuador Open", `series`:"ATP250", `surface`:"Clay"})
create (_10291:`Tournament` {`court`:"Indoor", `_location`:"Sofia", `name`:"Garanti Koza Sofia Open", `series`:"ATP250", `surface`:"Hard"})
create (_10292:`Tournament` {`court`:"Outdoor", `_location`:"Buenos Aires", `name`:"Argentina Open", `series`:"ATP250", `surface`:"Clay"})
create (_10293:`Tournament` {`court`:"Indoor", `_location`:"Memphis", `name`:"Memphis Open", `series`:"ATP250", `surface`:"Hard"})
create (_10294:`Tournament` {`court`:"Indoor", `_location`:"Rotterdam", `name`:"ABN AMRO World Tennis Tournament", `series`:"ATP500", `surface`:"Hard"})
create (_10295:`Tournament` {`court`:"Outdoor", `_location`:"Delray Beach", `name`:"Delray Beach Open", `series`:"ATP250", `surface`:"Hard"})
create (_10296:`Tournament` {`court`:"Indoor", `_location`:"Marseille", `name`:"Open 13", `series`:"ATP250", `surface`:"Hard"})
create (_10297:`Tournament` {`court`:"Outdoor", `_location`:"Rio de Janeiro", `name`:"Rio Open", `series`:"ATP500", `surface`:"Clay"})
create (_10298:`Tournament` {`court`:"Outdoor", `_location`:"Acapulco", `name`:"Abierto Mexicano", `series`:"ATP500", `surface`:"Hard"})
create (_10299:`Tournament` {`court`:"Outdoor", `_location`:"Dubai", `name`:"Dubai Tennis Championships", `series`:"ATP500", `surface`:"Hard"})
create (_10300:`Tournament` {`court`:"Indoor", `_location`:"Sao Paulo", `name`:"Brasil Open", `series`:"ATP250", `surface`:"Clay"})
create (_10301:`Tournament` {`court`:"Outdoor", `_location`:"Indian Wells", `name`:"BNP Paribas Open", `series`:"Masters 1000", `surface`:"Hard"})
create (_10302:`Tournament` {`court`:"Outdoor", `_location`:"Miami", `name`:"Sony Ericsson Open", `series`:"Masters 1000", `surface`:"Hard"})
create (_10303:`Tournament` {`court`:"Outdoor", `_location`:"Houston", `name`:"U.S. Men's Clay Court Championships", `series`:"ATP250", `surface`:"Clay"})
create (_10304:`Tournament` {`court`:"Outdoor", `_location`:"Marrakech", `name`:"Grand Prix Hassan II", `series`:"ATP250", `surface`:"Clay"})
create (_10305:`Tournament` {`court`:"Outdoor", `_location`:"Monte Carlo", `name`:"Monte Carlo Masters", `series`:"Masters 1000", `surface`:"Clay"})
create (_10306:`Tournament` {`court`:"Outdoor", `_location`:"Barcelona", `name`:"Open Banco Sabadell", `series`:"ATP500", `surface`:"Clay"})
create (_10307:`Tournament` {`court`:"Outdoor", `_location`:"Bucharest", `name`:"BRD Nastase Tiriac Trophy", `series`:"ATP250", `surface`:"Clay"})
create (_10308:`Tournament` {`court`:"Outdoor", `_location`:"Estoril", `name`:"Millenium Estoril Open", `series`:"ATP250", `surface`:"Clay"})
create (_10309:`Tournament` {`court`:"Outdoor", `_location`:"Istanbul", `name`:"Istanbul Open", `series`:"ATP250", `surface`:"Clay"})
create (_10310:`Tournament` {`court`:"Outdoor", `_location`:"Munich", `name`:"BMW Open", `series`:"ATP250", `surface`:"Clay"})
create (_10311:`Tournament` {`court`:"Outdoor", `_location`:"Madrid", `name`:"Mutua Madrid Open", `series`:"Masters 1000", `surface`:"Clay"})
create (_10312:`Tournament` {`court`:"Outdoor", `_location`:"Rome", `name`:"Internazionali BNL d'Italia", `series`:"Masters 1000", `surface`:"Clay"})
create (_10313:`Tournament` {`court`:"Outdoor", `_location`:"Geneva", `name`:"Geneva Open", `series`:"ATP250", `surface`:"Clay"})
create (_10314:`Tournament` {`court`:"Outdoor", `_location`:"Nice", `name`:"Open de Nice Côte d’Azur", `series`:"ATP250", `surface`:"Clay"})
create (_10315:`Tournament` {`court`:"Outdoor", `_location`:"Paris", `name`:"French Open", `series`:"Grand Slam", `surface`:"Clay"})
create (_10316:`Tournament` {`court`:"Outdoor", `_location`:"'s-Hertogenbosch", `name`:"Topshelf Open", `series`:"ATP250", `surface`:"Grass"})
create (_10317:`Tournament` {`court`:"Outdoor", `_location`:"Stuttgart", `name`:"Mercedes Cup", `series`:"ATP250", `surface`:"Grass"})
create (_10318:`Tournament` {`court`:"Outdoor", `_location`:"Halle", `name`:"Gerry Weber Open", `series`:"ATP500", `surface`:"Grass"})
create (_10319:`Tournament` {`court`:"Outdoor", `_location`:"Queens Club", `name`:"AEGON Championships", `series`:"ATP500", `surface`:"Grass"})
create (_10320:`Tournament` {`court`:"Outdoor", `_location`:"Nottingham", `name`:"AEGON Open", `series`:"ATP500", `surface`:"Grass"})
create (_10321:`Tournament` {`court`:"Outdoor", `_location`:"London", `name`:"Wimbledon", `series`:"Grand Slam", `surface`:"Grass"})
create (_10322:`Tournament` {`court`:"Outdoor", `_location`:"Bastad", `name`:"SkiStar Swedish Open", `series`:"ATP250", `surface`:"Clay"})
create (_10323:`Tournament` {`court`:"Outdoor", `_location`:"Hamburg", `name`:"German Tennis Championships", `series`:"ATP500", `surface`:"Clay"})
create (_10324:`Tournament` {`court`:"Outdoor", `_location`:"Newport", `name`:"Hall of Fame Championships", `series`:"ATP250", `surface`:"Grass"})
create (_10325:`Tournament` {`court`:"Outdoor", `_location`:"Gstaad", `name`:"Suisse Open Gstaad", `series`:"ATP250", `surface`:"Clay"})
create (_10326:`Tournament` {`court`:"Outdoor", `_location`:"Kitzbuhel", `name`:"Generali Open", `series`:"ATP250", `surface`:"Clay"})
create (_10327:`Tournament` {`court`:"Outdoor", `_location`:"Umag", `name`:"Konzum Croatia Open", `series`:"ATP250", `surface`:"Clay"})
create (_10328:`Tournament` {`court`:"Outdoor", `_location`:"Washington", `name`:"Citi Open", `series`:"ATP500", `surface`:"Hard"})
create (_10329:`Tournament` {`court`:"Outdoor", `_location`:"Toronto", `name`:"Rogers Masters", `series`:"Masters 1000", `surface`:"Hard"})
create (_10330:`Tournament` {`court`:"Outdoor", `_location`:"Atlanta", `name`:"BB&T Atlanta Open", `series`:"ATP250", `surface`:"Hard"})
create (_10331:`Tournament` {`court`:"Outdoor", `_location`:"Los Cabos", `name`:"Abierto Mexicano Mifel", `series`:"ATP250", `surface`:"Hard"})
create (_10332:`Tournament` {`court`:"Outdoor", `_location`:"Cincinnati", `name`:"Western & Southern Financial Group Masters", `series`:"Masters 1000", `surface`:"Hard"})
create (_10333:`Tournament` {`court`:"Outdoor", `_location`:"Winston-Salem", `name`:"Winston-Salem Open at Wake Forest University", `series`:"ATP250", `surface`:"Hard"})
create (_10334:`Tournament` {`court`:"Outdoor", `_location`:"New York", `name`:"US Open", `series`:"Grand Slam", `surface`:"Hard"})
create (_10335:`Match` {`bestOf`:"3", `date`:"2016-01-10", `round`:"The Final", `_tournament`:"Brisbane International"})
create (_10336:`Match` {`bestOf`:"3", `date`:"2016-01-10", `round`:"The Final", `_tournament`:"Chennai Open"})
create (_10337:`Match` {`bestOf`:"3", `date`:"2016-01-09", `round`:"The Final", `_tournament`:"Qatar Exxon Mobil Open"})
create (_10338:`Match` {`bestOf`:"3", `date`:"2016-01-16", `round`:"The Final", `_tournament`:"ASB Classic"})
create (_10339:`Match` {`bestOf`:"3", `date`:"2016-01-16", `round`:"The Final", `_tournament`:"Apia International"})
create (_10340:`Match` {`bestOf`:"5", `date`:"2016-01-31", `round`:"The Final", `_tournament`:"Australian Open"})
create (_10341:`Match` {`bestOf`:"3", `date`:"2016-02-07", `round`:"The Final", `_tournament`:"Open Sud de France"})
create (_10342:`Match` {`bestOf`:"3", `date`:"2016-02-07", `round`:"The Final", `_tournament`:"Ecuador Open"})
create (_10343:`Match` {`bestOf`:"3", `date`:"2016-02-07", `round`:"The Final", `_tournament`:"Garanti Koza Sofia Open"})
create (_10344:`Match` {`bestOf`:"3", `date`:"2016-02-14", `round`:"The Final", `_tournament`:"Argentina Open"})
create (_10345:`Match` {`bestOf`:"3", `date`:"2016-02-14", `round`:"The Final", `_tournament`:"Memphis Open"})
create (_10346:`Match` {`bestOf`:"3", `date`:"2016-02-14", `round`:"The Final", `_tournament`:"ABN AMRO World Tennis Tournament"})
create (_10347:`Match` {`bestOf`:"3", `date`:"2016-02-21", `round`:"The Final", `_tournament`:"Delray Beach Open"})
create (_10348:`Match` {`bestOf`:"3", `date`:"2016-02-21", `round`:"The Final", `_tournament`:"Open 13"})
create (_10349:`Match` {`bestOf`:"3", `date`:"2016-02-21", `round`:"The Final", `_tournament`:"Rio Open"})
create (_10350:`Match` {`bestOf`:"3", `date`:"2016-02-28", `round`:"The Final", `_tournament`:"Abierto Mexicano"})
create (_10351:`Match` {`bestOf`:"3", `date`:"2016-02-27", `round`:"The Final", `_tournament`:"Dubai Tennis Championships"})
create (_10352:`Match` {`bestOf`:"3", `date`:"2016-03-20", `round`:"The Final", `_tournament`:"BNP Paribas Open"})
create (_10353:`Match` {`bestOf`:"3", `date`:"2016-04-03", `round`:"The Final", `_tournament`:"Sony Ericsson Open"})
create (_10354:`Match` {`bestOf`:"3", `date`:"2016-04-10", `round`:"The Final", `_tournament`:"U.S. Men's Clay Court Championships"})
create (_10355:`Match` {`bestOf`:"3", `date`:"2016-04-10", `round`:"The Final", `_tournament`:"Grand Prix Hassan II"})
create (_10356:`Match` {`bestOf`:"3", `date`:"2016-04-17", `round`:"The Final", `_tournament`:"Monte Carlo Masters"})
create (_10357:`Match` {`bestOf`:"3", `date`:"2016-04-24", `round`:"The Final", `_tournament`:"Open Banco Sabadell"})
create (_10358:`Match` {`bestOf`:"3", `date`:"2016-04-24", `round`:"The Final", `_tournament`:"BRD Nastase Tiriac Trophy"})
create (_10359:`Match` {`bestOf`:"3", `date`:"2016-05-01", `round`:"The Final", `_tournament`:"Millenium Estoril Open"})
create (_10360:`Match` {`bestOf`:"3", `date`:"2016-05-01", `round`:"The Final", `_tournament`:"Istanbul Open"})
create (_10361:`Match` {`bestOf`:"3", `date`:"2016-05-01", `round`:"The Final", `_tournament`:"BMW Open"})
create (_10362:`Match` {`bestOf`:"3", `date`:"2016-05-08", `round`:"The Final", `_tournament`:"Mutua Madrid Open"})
create (_10363:`Match` {`bestOf`:"3", `date`:"2016-05-15", `round`:"The Final", `_tournament`:"Internazionali BNL d'Italia"})
create (_10364:`Match` {`bestOf`:"3", `date`:"2016-05-21", `round`:"The Final", `_tournament`:"Geneva Open"})
create (_10365:`Match` {`bestOf`:"3", `date`:"2016-05-21", `round`:"The Final", `_tournament`:"Open de Nice Côte d’Azur"})
create (_10366:`Match` {`bestOf`:"5", `date`:"2016-06-05", `round`:"The Final", `_tournament`:"French Open"})
create (_10367:`Match` {`bestOf`:"3", `date`:"2016-06-12", `round`:"The Final", `_tournament`:"Topshelf Open"})
create (_10368:`Match` {`bestOf`:"3", `date`:"2016-06-12", `round`:"The Final", `_tournament`:"Mercedes Cup"})
create (_10369:`Match` {`bestOf`:"3", `date`:"2016-06-19", `round`:"The Final", `_tournament`:"Gerry Weber Open"})
create (_10370:`Match` {`bestOf`:"3", `date`:"2016-06-19", `round`:"The Final", `_tournament`:"AEGON Championships"})
create (_10371:`Match` {`bestOf`:"3", `date`:"2016-06-25", `round`:"The Final", `_tournament`:"AEGON Open"})
create (_10372:`Match` {`bestOf`:"5", `date`:"2016-07-10", `round`:"The Final", `_tournament`:"Wimbledon"})
create (_10373:`Match` {`bestOf`:"3", `date`:"2016-07-17", `round`:"The Final", `_tournament`:"SkiStar Swedish Open"})
create (_10374:`Match` {`bestOf`:"3", `date`:"2016-07-17", `round`:"The Final", `_tournament`:"German Tennis Championships"})
create (_10375:`Match` {`bestOf`:"3", `date`:"2016-07-17", `round`:"The Final", `_tournament`:"Hall of Fame Championships"})
create (_10376:`Match` {`bestOf`:"3", `date`:"2016-07-24", `round`:"The Final", `_tournament`:"Suisse Open Gstaad"})
create (_10377:`Match` {`bestOf`:"3", `date`:"2016-07-23", `round`:"The Final", `_tournament`:"Generali Open"})
create (_10378:`Match` {`bestOf`:"3", `date`:"2016-07-24", `round`:"The Final", `_tournament`:"Konzum Croatia Open"})
create (_10379:`Match` {`bestOf`:"3", `date`:"2016-07-24", `round`:"The Final", `_tournament`:"Citi Open"})
create (_10380:`Match` {`bestOf`:"3", `date`:"2016-07-31", `round`:"The Final", `_tournament`:"Rogers Masters"})
create (_10381:`Match` {`bestOf`:"3", `date`:"2016-08-07", `round`:"The Final", `_tournament`:"BB&T Atlanta Open"})
create (_10382:`Match` {`bestOf`:"3", `date`:"2016-08-14", `round`:"The Final", `_tournament`:"Abierto Mexicano Mifel"})
create (_10383:`Match` {`bestOf`:"3", `date`:"2016-08-21", `round`:"The Final", `_tournament`:"Western & Southern Financial Group Masters"})
create (_10384:`Match` {`bestOf`:"3", `date`:"2016-08-27", `round`:"The Final", `_tournament`:"Winston-Salem Open at Wake Forest University"})
create (_10385:`Match` {`bestOf`:"5", `date`:"2016-09-11", `round`:"The Final", `_tournament`:"US Open"})
create (_10121)-[:`LOST`]->(_10363)
create (_10121)-[:`WON`]->(_10366)
create (_10121)-[:`WON`]->(_10362)
create (_10121)-[:`WON`]->(_10353)
create (_10121)-[:`WON`]->(_10352)
create (_10121)-[:`LOST`]->(_10385)
create (_10121)-[:`WON`]->(_10380)
create (_10121)-[:`WON`]->(_10340)
create (_10121)-[:`WON`]->(_10337)
create (_10121)-[:`FROM_COUNTRY`]->(_10120)
create (_10123)-[:`LOST`]->(_10366)
create (_10123)-[:`WON`]->(_10363)
create (_10123)-[:`LOST`]->(_10362)
create (_10123)-[:`LOST`]->(_10383)
create (_10123)-[:`WON`]->(_10370)
create (_10123)-[:`WON`]->(_10372)
create (_10123)-[:`LOST`]->(_10340)
create (_10123)-[:`FROM_COUNTRY`]->(_10122)
create (_10125)-[:`WON`]->(_10364)
create (_10125)-[:`WON`]->(_10351)
create (_10125)-[:`WON`]->(_10385)
create (_10125)-[:`WON`]->(_10336)
create (_10125)-[:`FROM_COUNTRY`]->(_10124)
create (_10126)-[:`LOST`]->(_10335)
create (_10126)-[:`FROM_COUNTRY`]->(_10124)
create (_10128)-[:`WON`]->(_10357)
create (_10128)-[:`WON`]->(_10356)
create (_10128)-[:`LOST`]->(_10337)
create (_10128)-[:`FROM_COUNTRY`]->(_10127)
create (_10130)-[:`LOST`]->(_10352)
create (_10130)-[:`LOST`]->(_10370)
create (_10130)-[:`LOST`]->(_10372)
create (_10130)-[:`WON`]->(_10335)
create (_10130)-[:`FROM_COUNTRY`]->(_10129)
create (_10132)-[:`LOST`]->(_10353)
create (_10132)-[:`LOST`]->(_10357)
create (_10132)-[:`LOST`]->(_10380)
create (_10132)-[:`WON`]->(_10345)
create (_10132)-[:`FROM_COUNTRY`]->(_10131)
create (_10134)-[:`FROM_COUNTRY`]->(_10133)
create (_10136)-[:`LOST`]->(_10364)
create (_10136)-[:`LOST`]->(_10348)
create (_10136)-[:`WON`]->(_10383)
create (_10136)-[:`FROM_COUNTRY`]->(_10135)
create (_10138)-[:`WON`]->(_10365)
create (_10138)-[:`WON`]->(_10367)
create (_10138)-[:`LOST`]->(_10361)
create (_10138)-[:`WON`]->(_10350)
create (_10138)-[:`WON`]->(_10344)
create (_10138)-[:`FROM_COUNTRY`]->(_10137)
create (_10140)-[:`FROM_COUNTRY`]->(_10139)
create (_10141)-[:`LOST`]->(_10356)
create (_10141)-[:`WON`]->(_10379)
create (_10141)-[:`LOST`]->(_10346)
create (_10141)-[:`FROM_COUNTRY`]->(_10139)
create (_10142)-[:`FROM_COUNTRY`]->(_10127)
create (_10144)-[:`FROM_COUNTRY`]->(_10143)
create (_10145)-[:`WON`]->(_10341)
create (_10145)-[:`FROM_COUNTRY`]->(_10139)
create (_10147)-[:`WON`]->(_10348)
create (_10147)-[:`WON`]->(_10381)
create (_10147)-[:`FROM_COUNTRY`]->(_10146)
create (_10148)-[:`LOST`]->(_10384)
create (_10148)-[:`WON`]->(_10338)
create (_10148)-[:`WON`]->(_10343)
create (_10148)-[:`FROM_COUNTRY`]->(_10127)
create (_10149)-[:`LOST`]->(_10382)
create (_10149)-[:`WON`]->(_10376)
create (_10149)-[:`FROM_COUNTRY`]->(_10127)
create (_10150)-[:`LOST`]->(_10350)
create (_10150)-[:`FROM_COUNTRY`]->(_10146)
create (_10152)-[:`WON`]->(_10349)
create (_10152)-[:`LOST`]->(_10374)
create (_10152)-[:`LOST`]->(_10371)
create (_10152)-[:`FROM_COUNTRY`]->(_10151)
create (_10154)-[:`WON`]->(_10371)
create (_10154)-[:`FROM_COUNTRY`]->(_10153)
create (_10155)-[:`LOST`]->(_10381)
create (_10155)-[:`FROM_COUNTRY`]->(_10153)
create (_10156)-[:`LOST`]->(_10379)
create (_10156)-[:`WON`]->(_10382)
create (_10156)-[:`WON`]->(_10375)
create (_10156)-[:`FROM_COUNTRY`]->(_10135)
create (_10158)-[:`LOST`]->(_10360)
create (_10158)-[:`LOST`]->(_10339)
create (_10158)-[:`FROM_COUNTRY`]->(_10157)
create (_10160)-[:`FROM_COUNTRY`]->(_10159)
create (_10161)-[:`LOST`]->(_10358)
create (_10161)-[:`FROM_COUNTRY`]->(_10139)
create (_10163)-[:`LOST`]->(_10367)
create (_10163)-[:`WON`]->(_10361)
create (_10163)-[:`FROM_COUNTRY`]->(_10162)
create (_10164)-[:`LOST`]->(_10354)
create (_10164)-[:`LOST`]->(_10338)
create (_10164)-[:`FROM_COUNTRY`]->(_10153)
create (_10165)-[:`LOST`]->(_10365)
create (_10165)-[:`LOST`]->(_10369)
create (_10165)-[:`FROM_COUNTRY`]->(_10162)
create (_10167)-[:`WON`]->(_10374)
create (_10167)-[:`WON`]->(_10346)
create (_10167)-[:`FROM_COUNTRY`]->(_10166)
create (_10168)-[:`WON`]->(_10347)
create (_10168)-[:`FROM_COUNTRY`]->(_10153)
create (_10169)-[:`FROM_COUNTRY`]->(_10139)
create (_10170)-[:`WON`]->(_10373)
create (_10170)-[:`FROM_COUNTRY`]->(_10127)
create (_10171)-[:`FROM_COUNTRY`]->(_10139)
create (_10172)-[:`WON`]->(_10339)
create (_10172)-[:`LOST`]->(_10343)
create (_10172)-[:`FROM_COUNTRY`]->(_10120)
create (_10174)-[:`FROM_COUNTRY`]->(_10173)
create (_10176)-[:`LOST`]->(_10368)
create (_10176)-[:`LOST`]->(_10375)
create (_10176)-[:`FROM_COUNTRY`]->(_10175)
create (_10178)-[:`WON`]->(_10378)
create (_10178)-[:`FROM_COUNTRY`]->(_10177)
create (_10179)-[:`WON`]->(_10377)
create (_10179)-[:`FROM_COUNTRY`]->(_10177)
create (_10180)-[:`LOST`]->(_10355)
create (_10180)-[:`LOST`]->(_10336)
create (_10180)-[:`FROM_COUNTRY`]->(_10135)
create (_10181)-[:`WON`]->(_10368)
create (_10181)-[:`FROM_COUNTRY`]->(_10139)
create (_10183)-[:`FROM_COUNTRY`]->(_10182)
create (_10185)-[:`WON`]->(_10355)
create (_10185)-[:`FROM_COUNTRY`]->(_10184)
create (_10187)-[:`LOST`]->(_10351)
create (_10187)-[:`FROM_COUNTRY`]->(_10186)
create (_10188)-[:`FROM_COUNTRY`]->(_10127)
create (_10189)-[:`WON`]->(_10359)
create (_10189)-[:`LOST`]->(_10344)
create (_10189)-[:`FROM_COUNTRY`]->(_10127)
create (_10190)-[:`WON`]->(_10358)
create (_10190)-[:`LOST`]->(_10373)
create (_10190)-[:`FROM_COUNTRY`]->(_10127)
create (_10191)-[:`FROM_COUNTRY`]->(_10133)
create (_10192)-[:`LOST`]->(_10359)
create (_10192)-[:`WON`]->(_10384)
create (_10192)-[:`FROM_COUNTRY`]->(_10127)
create (_10193)-[:`FROM_COUNTRY`]->(_10127)
create (_10194)-[:`LOST`]->(_10349)
create (_10194)-[:`FROM_COUNTRY`]->(_10184)
create (_10195)-[:`FROM_COUNTRY`]->(_10139)
create (_10197)-[:`FROM_COUNTRY`]->(_10196)
create (_10198)-[:`LOST`]->(_10345)
create (_10198)-[:`FROM_COUNTRY`]->(_10153)
create (_10199)-[:`FROM_COUNTRY`]->(_10139)
create (_10200)-[:`FROM_COUNTRY`]->(_10139)
create (_10201)-[:`FROM_COUNTRY`]->(_10153)
create (_10203)-[:`FROM_COUNTRY`]->(_10202)
create (_10204)-[:`WON`]->(_10369)
create (_10204)-[:`FROM_COUNTRY`]->(_10162)
create (_10205)-[:`FROM_COUNTRY`]->(_10120)
create (_10206)-[:`FROM_COUNTRY`]->(_10173)
create (_10208)-[:`LOST`]->(_10342)
create (_10208)-[:`FROM_COUNTRY`]->(_10207)
create (_10209)-[:`FROM_COUNTRY`]->(_10182)
create (_10211)-[:`LOST`]->(_10376)
create (_10211)-[:`FROM_COUNTRY`]->(_10210)
create (_10212)-[:`FROM_COUNTRY`]->(_10202)
create (_10214)-[:`FROM_COUNTRY`]->(_10213)
create (_10215)-[:`FROM_COUNTRY`]->(_10122)
create (_10216)-[:`WON`]->(_10360)
create (_10216)-[:`FROM_COUNTRY`]->(_10184)
create (_10217)-[:`LOST`]->(_10341)
create (_10217)-[:`FROM_COUNTRY`]->(_10139)
create (_10218)-[:`FROM_COUNTRY`]->(_10184)
create (_10220)-[:`FROM_COUNTRY`]->(_10219)
create (_10222)-[:`FROM_COUNTRY`]->(_10221)
create (_10223)-[:`FROM_COUNTRY`]->(_10135)
create (_10224)-[:`FROM_COUNTRY`]->(_10127)
create (_10225)-[:`FROM_COUNTRY`]->(_10184)
create (_10226)-[:`FROM_COUNTRY`]->(_10139)
create (_10227)-[:`FROM_COUNTRY`]->(_10122)
create (_10228)-[:`FROM_COUNTRY`]->(_10162)
create (_10229)-[:`FROM_COUNTRY`]->(_10182)
create (_10231)-[:`FROM_COUNTRY`]->(_10230)
create (_10232)-[:`FROM_COUNTRY`]->(_10146)
create (_10233)-[:`FROM_COUNTRY`]->(_10133)
create (_10234)-[:`FROM_COUNTRY`]->(_10131)
create (_10236)-[:`WON`]->(_10342)
create (_10236)-[:`FROM_COUNTRY`]->(_10235)
create (_10237)-[:`FROM_COUNTRY`]->(_10122)
create (_10238)-[:`FROM_COUNTRY`]->(_10131)
create (_10239)-[:`FROM_COUNTRY`]->(_10162)
create (_10240)-[:`FROM_COUNTRY`]->(_10177)
create (_10242)-[:`FROM_COUNTRY`]->(_10241)
create (_10243)-[:`FROM_COUNTRY`]->(_10184)
create (_10244)-[:`FROM_COUNTRY`]->(_10137)
create (_10245)-[:`FROM_COUNTRY`]->(_10146)
create (_10246)-[:`FROM_COUNTRY`]->(_10202)
create (_10247)-[:`FROM_COUNTRY`]->(_10182)
create (_10248)-[:`WON`]->(_10354)
create (_10248)-[:`FROM_COUNTRY`]->(_10184)
create (_10249)-[:`FROM_COUNTRY`]->(_10182)
create (_10250)-[:`FROM_COUNTRY`]->(_10162)
create (_10252)-[:`FROM_COUNTRY`]->(_10251)
create (_10253)-[:`FROM_COUNTRY`]->(_10207)
create (_10254)-[:`FROM_COUNTRY`]->(_10166)
create (_10256)-[:`FROM_COUNTRY`]->(_10255)
create (_10258)-[:`LOST`]->(_10377)
create (_10258)-[:`FROM_COUNTRY`]->(_10257)
create (_10259)-[:`FROM_COUNTRY`]->(_10127)
create (_10260)-[:`FROM_COUNTRY`]->(_10131)
create (_10261)-[:`LOST`]->(_10347)
create (_10261)-[:`FROM_COUNTRY`]->(_10153)
create (_10262)-[:`FROM_COUNTRY`]->(_10182)
create (_10264)-[:`FROM_COUNTRY`]->(_10263)
create (_10265)-[:`FROM_COUNTRY`]->(_10143)
create (_10266)-[:`FROM_COUNTRY`]->(_10207)
create (_10267)-[:`FROM_COUNTRY`]->(_10184)
create (_10268)-[:`FROM_COUNTRY`]->(_10210)
create (_10269)-[:`FROM_COUNTRY`]->(_10177)
create (_10270)-[:`FROM_COUNTRY`]->(_10133)
create (_10271)-[:`FROM_COUNTRY`]->(_10133)
create (_10272)-[:`FROM_COUNTRY`]->(_10153)
create (_10273)-[:`FROM_COUNTRY`]->(_10153)
create (_10274)-[:`FROM_COUNTRY`]->(_10127)
create (_10275)-[:`FROM_COUNTRY`]->(_10153)
create (_10276)-[:`FROM_COUNTRY`]->(_10207)
create (_10277)-[:`FROM_COUNTRY`]->(_10153)
create (_10278)-[:`LOST`]->(_10378)
create (_10278)-[:`FROM_COUNTRY`]->(_10166)
create (_10279)-[:`FROM_COUNTRY`]->(_10153)
create (_10280)-[:`FROM_COUNTRY`]->(_10129)
create (_10281)-[:`FROM_COUNTRY`]->(_10153)
create (_10282)-[:`FROM_COUNTRY`]->(_10166)
create (_10335)-[:`HOSTED_BY`]->(_10283)
create (_10336)-[:`HOSTED_BY`]->(_10284)
create (_10337)-[:`HOSTED_BY`]->(_10285)
create (_10338)-[:`HOSTED_BY`]->(_10286)
create (_10339)-[:`HOSTED_BY`]->(_10287)
create (_10340)-[:`HOSTED_BY`]->(_10288)
create (_10341)-[:`HOSTED_BY`]->(_10289)
create (_10342)-[:`HOSTED_BY`]->(_10290)
create (_10343)-[:`HOSTED_BY`]->(_10291)
create (_10344)-[:`HOSTED_BY`]->(_10292)
create (_10345)-[:`HOSTED_BY`]->(_10293)
create (_10346)-[:`HOSTED_BY`]->(_10294)
create (_10347)-[:`HOSTED_BY`]->(_10295)
create (_10348)-[:`HOSTED_BY`]->(_10296)
create (_10349)-[:`HOSTED_BY`]->(_10297)
create (_10350)-[:`HOSTED_BY`]->(_10298)
create (_10351)-[:`HOSTED_BY`]->(_10299)
create (_10352)-[:`HOSTED_BY`]->(_10301)
create (_10353)-[:`HOSTED_BY`]->(_10302)
create (_10354)-[:`HOSTED_BY`]->(_10303)
create (_10355)-[:`HOSTED_BY`]->(_10304)
create (_10356)-[:`HOSTED_BY`]->(_10305)
create (_10357)-[:`HOSTED_BY`]->(_10306)
create (_10358)-[:`HOSTED_BY`]->(_10307)
create (_10359)-[:`HOSTED_BY`]->(_10308)
create (_10360)-[:`HOSTED_BY`]->(_10309)
create (_10361)-[:`HOSTED_BY`]->(_10310)
create (_10362)-[:`HOSTED_BY`]->(_10311)
create (_10363)-[:`HOSTED_BY`]->(_10312)
create (_10364)-[:`HOSTED_BY`]->(_10313)
create (_10365)-[:`HOSTED_BY`]->(_10314)
create (_10366)-[:`HOSTED_BY`]->(_10315)
create (_10367)-[:`HOSTED_BY`]->(_10316)
create (_10368)-[:`HOSTED_BY`]->(_10317)
create (_10369)-[:`HOSTED_BY`]->(_10318)
create (_10370)-[:`HOSTED_BY`]->(_10319)
create (_10371)-[:`HOSTED_BY`]->(_10320)
create (_10372)-[:`HOSTED_BY`]->(_10321)
create (_10373)-[:`HOSTED_BY`]->(_10322)
create (_10374)-[:`HOSTED_BY`]->(_10323)
create (_10375)-[:`HOSTED_BY`]->(_10324)
create (_10376)-[:`HOSTED_BY`]->(_10325)
create (_10377)-[:`HOSTED_BY`]->(_10326)
create (_10378)-[:`HOSTED_BY`]->(_10327)
create (_10379)-[:`HOSTED_BY`]->(_10328)
create (_10380)-[:`HOSTED_BY`]->(_10329)
create (_10381)-[:`HOSTED_BY`]->(_10330)
create (_10382)-[:`HOSTED_BY`]->(_10331)
create (_10383)-[:`HOSTED_BY`]->(_10332)
create (_10384)-[:`HOSTED_BY`]->(_10333)
create (_10385)-[:`HOSTED_BY`]->(_10334)
The goal here was to run a couple of queries based on the country of the players and maybe find out some interesting information.
Some questions I had: * How diverse are the top 100? * Are there just a couple of nations that will take up all the places or is it possible for a wide range of countries to get a player into the top 100? * Are there some country who are dominating the top 100? * Does having a lot of players in the top 100 also mean that one has 1 or two players in the top 50? Or the top 10?
MATCH (c:Country)-[:FROM_COUNTRY]-(players)
WHERE players.ranking <= 100
WITH c, count(players) as player_count
ORDER BY player_count DESC
WHERE player_count >= 7
MATCH (c)-[:FROM_COUNTRY]-(players)
WHERE players.ranking <= 100
RETURN c, players
List the number of players for each country.
MATCH (c:Country)-[:FROM_COUNTRY]-(players)
WHERE players.ranking <= 100
WITH c, count(players) as player_count
ORDER BY player_count DESC
RETURN c.name AS Country_Name, player_count AS Number_Of_Players
Count the number of countries who have at least one top 100 player.
MATCH (c:Country)-[:FROM_COUNTRY]-(players:Player)
WHERE players.ranking <= 100
RETURN count(DISTINCT c.name) + " countries in Top 100"
MATCH (c:Country)-[:FROM_COUNTRY]-(players:Player)
WHERE players.ranking <= 50
WITH c, count(players) as player_count
ORDER BY player_count DESC
RETURN DISTINCT c.name, player_count
LIMIT 10
I would have expected that the countries with players on the top 50 will also have a similar amount of players in the top 51 to 100. However the results show that quite a few of the countries from the top 50 results don’t show up here.
MATCH (c:Country)-[:FROM_COUNTRY]-(players:Player)
WHERE 50 < players.ranking <= 100
WITH c, count(players) as player_count
ORDER BY player_count DESC
RETURN DISTINCT c.name, player_count
LIMIT 10
List all countries with players in top 100, sorted by number of players in top 50 and number of players in top 51 to 100
Spain has 10 players in the top 50 but only one player in the top 51 to 100. France has an almost equal amount of players and is the way I would have expected the results to be.
MATCH(c:Country)-[:FROM_COUNTRY]-(players:Player)
WHERE players.ranking <= 100
WITH c, count(players) as player_count
WHERE player_count > 0
OPTIONAL MATCH (c)-[:FROM_COUNTRY]-(players:Player)
WHERE players.ranking <= 50
WITH c, count(players) as player_count_top50
OPTIONAL MATCH (c:Country)-[:FROM_COUNTRY]-(players:Player)
WHERE 50 < players.ranking <= 100
WITH player_count_top50, c, count(players) as player_count_bottom50
RETURN c.name AS Country, player_count_top50 AS Players_in_Top_50, player_count_bottom50 AS Players_in_Top_51_to_100, player_count_top50 + player_count_bottom50 AS total
ORDER BY player_count_top50 DESC, player_count_bottom50 DESC
The previous somewhat surprising results led to the question if it’s possible to discover countries who might have a successor problem.
I’ve defined this as a country where the number of players in the top 50 is larger by 2 or more than the number of players in the bottom half and also where the number of players in the bottom half is 2 or smaller.
This is a very simplified view which does not take into account the ranking trend or the age.
MATCH(c:Country)-[:FROM_COUNTRY]-(players:Player)
WHERE players.ranking <= 100
WITH c, count(players) as player_count
WHERE player_count > 0
OPTIONAL MATCH (c)-[:FROM_COUNTRY]-(players:Player)
WHERE players.ranking <= 50
WITH c, count(players) as player_count_top50
OPTIONAL MATCH (c:Country)-[:FROM_COUNTRY]-(players:Player)
WHERE 50 < players.ranking <= 100
WITH player_count_top50, c, count(players) as player_count_bottom50
WHERE player_count_top50 - player_count_bottom50 >= 2 AND player_count_bottom50 < 3
RETURN c.name, player_count_top50 AS Players_in_Top_50, player_count_bottom50 AS Players_in_Top_51_to_100, player_count_top50 + player_count_bottom50 AS total
ORDER BY player_count_top50 DESC, player_count_bottom50 DESC
Similar to the query above this tries to find the countries that have many more players in the bottom half compared to the top half.
MATCH(c:Country)-[:FROM_COUNTRY]-(players:Player)
WHERE players.ranking <= 100
WITH c, count(players) as player_count
WHERE player_count > 0
OPTIONAL MATCH (c)-[:FROM_COUNTRY]-(players:Player)
WHERE players.ranking <= 50
WITH c, count(players) as player_count_top50
OPTIONAL MATCH (c:Country)-[:FROM_COUNTRY]-(players:Player)
WHERE 50 < players.ranking <= 100
WITH player_count_top50, c, count(players) as player_count_bottom50
WHERE player_count_bottom50 - player_count_top50 >= 2
RETURN c.name, player_count_top50 AS Players_in_Top_50, player_count_bottom50 AS Players_in_Top_51_to_100, player_count_top50 + player_count_bottom50 AS total
ORDER BY player_count_top50 DESC, player_count_bottom50 DESC
The queries related to the finalists are more person based and only at the end will I compare them by country.
This shows all the finalists and who they played against as graph. It’s clearly visible that Djokovic played and won the most finals.
MATCH p=()-[r:LOST]->(m)<-[s:WON]-()
RETURN p
Listing all players who won at least two tournaments, but not taking into account the category of the tournament. E.g. Grand Slam vs ATP 250.
MATCH (p:Player)-[:WON]-(matches)
WITH p, count(matches) as numberOfFinalsWon
WHERE numberOfFinalsWon >= 2
RETURN p.a_lastName, numberOfFinalsWon
ORDER BY numberOfFinalsWon DESC
I’ve refined the query to show the winners by category, also listing the names of the tournaments.
// get number of Grand Slam
MATCH (p)-[:WON]-(match:Match)-[:HOSTED_BY]-(tournament:Tournament)
WHERE tournament.series = "Grand Slam"
WITH p, count(tournament.series) +" Grand Slam" AS Titles, collect(tournament.name) as tournamentNames
RETURN p.a_lastName AS Player, Titles, tournamentNames
ORDER BY Titles DESC, Player ASC
UNION
// get number of Masters 1000
MATCH (p)-[:WON]-(match:Match)-[:HOSTED_BY]-(tournament:Tournament)
WHERE tournament.series = "Masters 1000"
WITH p, count(tournament.series) +" Masters 1000" AS Titles, collect(tournament.name) as tournamentNames
RETURN p.a_lastName AS Player, Titles, tournamentNames
ORDER BY Titles DESC, Player ASC
UNION
// get number of ATP 500
MATCH (p)-[:WON]-(match:Match)-[:HOSTED_BY]-(tournament:Tournament)
WHERE tournament.series = "ATP500"
WITH p, count(tournament.series) +" ATP 500" AS Titles, collect(tournament.name) as tournamentNames
RETURN p.a_lastName AS Player, Titles, tournamentNames
ORDER BY Titles DESC, Player ASC
UNION
// get number of ATP250
MATCH (p)-[:WON]-(match:Match)-[:HOSTED_BY]-(tournament:Tournament)
WHERE tournament.series = "ATP250"
WITH p, count(tournament.series) +" ATP 250" AS Titles, collect(tournament.name) as tournamentNames
RETURN p.a_lastName AS Player, Titles, tournamentNames
ORDER BY Titles DESC, Player ASC
MATCH (p:Player)-[]-(matches:Match)
WITH p, count(matches) as numberOfFinalsPlayed
WHERE numberOfFinalsPlayed >= 3
RETURN p.a_lastName, numberOfFinalsPlayed
ORDER BY numberOfFinalsPlayed DESC
This shows the numbers of finals won and lost and the percentage of finals won.
MATCH (p:Player)-[:WON]-(matchesWon:Match)
WITH p, count(matchesWon) as numberOfFinalsWon
OPTIONAL MATCH (p)-[:LOST]-(m:Match)
WITH p, numberOfFinalsWon, count(m) as numberOfMatchesLost
RETURN DISTINCT p.a_lastName AS Player, numberOfFinalsWon, numberOfMatchesLost,
CASE WHEN numberOfMatchesLost = 0 THEN 100 +"%"
ELSE numberOfFinalsWon*100/(numberOfMatchesLost+numberOfFinalsWon)+"%"
END AS percentageWon
ORDER BY numberOfFinalsWon DESC, numberOfMatchesLost, Player
This query is looking at the players who played their best when it matters (in the final) and sorting them by percentage of their finals won.
MATCH (p:Player)-[:WON]-(matchesWon:Match)
WITH p, count(matchesWon) as numberOfFinalsWon
OPTIONAL MATCH (p)-[:LOST]-(m:Match)
WITH p, numberOfFinalsWon, count(m) as numberOfMatchesLost
WHERE (numberOfFinalsWon + numberOfMatchesLost) > 1
RETURN DISTINCT p.a_lastName AS Player, numberOfFinalsWon, numberOfMatchesLost,
CASE WHEN numberOfMatchesLost = 0 THEN 100
ELSE numberOfFinalsWon*100/(numberOfMatchesLost+numberOfFinalsWon)
END AS percentageWon
ORDER BY percentageWon DESC, numberOfFinalsWon DESC, numberOfMatchesLost, Player
This compares the number of players in the top 100 per country with the number of finals where a player of that country played. Some interesting results: * Serbia with only 3 players but 11 finals. * France with 12 players but only 7 finals. * Argentina with 7 players (of which only 1 in the top 50) and 4 finals.
MATCH (c:Country)-[]-(p:Player)-[]-(final:Match)
WITH c, count(final) as numberOfFinals
MATCH (c:Country)-[]-(p:Player)
WHERE p.ranking <= 100
WITH c, numberOfFinals, count(p) AS numberOfPlayersInTop100
RETURN DISTINCT c.name, numberOfPlayersInTop100, numberOfFinals
ORDER by numberOfPlayersInTop100 DESC