├── README.adoc ├── docker-compose.yml ├── import ├── articles.csv └── guardian.football.rss.xml ├── index.adoc ├── knowledge-graphs-nodes2020.adoc ├── render_guide.sh └── render_nodes2020_guide.sh /README.adoc: -------------------------------------------------------------------------------- 1 | = NLP and Knowledge Graphs 2 | 3 | The code in this repository is from a talk at the https://neo4j.com/connections/knowledge-graphs/[Neo4j Connections: Knowledge Graphs^] event. 4 | 5 | == Running the examples 6 | 7 | You can run the examples by following the instructions below: 8 | 9 | === Download code from GitHub 10 | 11 | [source, bash] 12 | ---- 13 | git clone https://github.com/neo4j-examples/nlp-knowledge-graph.git 14 | cd nlp-knowledge-graph 15 | ---- 16 | 17 | === Launch Neo4j 18 | 19 | You can launch Neo4j by using the following command: 20 | 21 | [source,bash] 22 | ---- 23 | docker-compose up 24 | ---- 25 | 26 | This will spin up a Neo4j server, which can be accessed at http://localhost:7474 27 | 28 | You can then play a Neo4j Browser guide by running the following command: 29 | 30 | [source,cypher] 31 | ---- 32 | :play https://guides.neo4j.com/nlp_knowledge_graphs 33 | ---- 34 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3.7' 2 | 3 | services: 4 | neo4j: 5 | image: neo4j:4.0.7-enterprise 6 | container_name: "nlp-knowledge-graph" 7 | volumes: 8 | - ./plugins:/plugins 9 | - ./data:/data 10 | - ./import:/var/lib/neo4j/import 11 | ports: 12 | - "7474:7474" 13 | - "7687:7687" 14 | environment: 15 | - "NEO4J_ACCEPT_LICENSE_AGREEMENT=yes" 16 | - "NEO4J_AUTH=neo4j/neo" 17 | - "NEO4J_dbms_security_procedures_unrestricted=apoc.*" 18 | # - NEO4J_apoc_import_file_use__neo4j__config=true 19 | - NEO4JLABS_PLUGINS=["apoc", "n10s"] 20 | -------------------------------------------------------------------------------- /import/articles.csv: -------------------------------------------------------------------------------- 1 | uri 2 | https://dev.to/lirantal/securing-a-nodejs--rethinkdb--tls-setup-on-docker-containers 3 | https://dev.to/setevoy/neo4j-running-in-kubernetes-e4p 4 | https://dev.to/divyanshutomar/introduction-to-redis-3m2a 5 | https://dev.to/zaiste/15-git-commands-you-may-not-know-4a8j 6 | https://dev.to/alexjitbit/removing-files-from-mercurial-history-1b15 7 | https://dev.to/michelemauro/atlassian-sunsetting-mercurial-support-in-bitbucket-2ga9 8 | https://dev.to/shirou/back-up-prometheus-records-to-s3-via-kinesis-firehose-54l4 9 | https://dev.to/ionic/farewell-phonegap-reflections-on-my-hybrid-app-development-journey-10dh 10 | https://dev.to/rootsami/rancher-kubernetes-on-openstack-using-terraform-1ild 11 | https://dev.to/jignesh_simform/comparing-mongodb--mysql-bfa 12 | https://dev.to/nipeshkc7/dynamodb-the-basics-360g 13 | https://dev.to/heroku/postgres-is-underrated-it-handles-more-than-you-think-4ff3 14 | https://dev.to/dmfay/the-ultimate-postgres-vs-mysql-blog-post-1l5f 15 | https://dev.to/kiwicopple/loading-json-into-postgres-2l28 16 | https://dev.to/condenastitaly/when-food-meets-ai-the-smart-recipe-project-b3g 17 | https://dev.to/adamcowley/building-a-modern-web-application-with-neo4j-and-nestjs-38ih 18 | https://dev.to/codaelux/running-dynamodb-offline-4k1b 19 | https://dev.to/arthurolga/newsql-an-implementation-with-google-spanner-2a86 20 | https://dev.to/javinpaul/5-best-courses-to-learn-apache-kafka-in-2020-584h 21 | https://dev.to/subhransu/realtime-chat-app-using-kafka-springboot-reactjs-and-websockets-lc 22 | https://dev.to/offlineprogrammer/collect-analytics-data-for-your-app-using-aws-amplify-4ifp 23 | https://dev.to/guthakiran/building-a-cluster-using-elasticsearch-kibana-zookeeper-kafka-and-rsyslog-17ja 24 | https://dev.to/presto412/hyperledger-fabric-transitioning-from-development-to-production-4dch 25 | https://dev.to/goaty92/designing-tinyurl-it-s-more-complicated-than-you-think-2a48 26 | https://dev.to/dihfahsih1/9-best-python-frameworks-for-building-small-to-enterprise-applications-2jla 27 | https://dev.to/sandipmavani/nodejs-vs-php-52g4 28 | https://dev.to/josiehall/import-data-from-s3-to-redshift-in-minutes-using-dataform-55g2 29 | https://dev.to/ahmetkucukoglu/couchbase-geosearch-with-asp-net-core-i04 30 | https://dev.to/angular/outputting-json-ld-with-angular-universal-4ia1 31 | https://dev.to/leonardomso/a-beginners-guide-to-graphql-3kjj 32 | https://dev.to/azure/learn-how-you-can-build-a-serverless-graphql-api-on-top-of-a-microservice-architecture-233g 33 | https://dev.to/qainsights/performance-testing-neo4j-database-using-bolt-protocol-in-apache-jmeter-1oa9 34 | -------------------------------------------------------------------------------- /import/guardian.football.rss.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Football | The Guardian 5 | https://www.theguardian.com/football 6 | Football news, results, fixtures, blogs, podcasts and comment on the Premier League, European and World football from the Guardian, the world's leading liberal voice 7 | en-gb 8 | Guardian News and Media Limited or its affiliated companies. All rights reserved. 2020 9 | Wed, 14 Oct 2020 15:51:37 GMT 10 | 2020-10-14T15:51:37Z 11 | en-gb 12 | Guardian News and Media Limited or its affiliated companies. All rights reserved. 2020 13 | 14 | The Guardian 15 | https://assets.guim.co.uk/images/guardian-logo-rss.c45beb1bafa34b347ac333af2e6fe23f.png 16 | https://www.theguardian.com 17 | 18 | 19 | Manchester United and Liverpool forced into Project Big Picture climbdown 20 | https://www.theguardian.com/football/2020/oct/14/premier-league-efl-bailout-project-big-picture 21 | <ul><li>They accept plan rejected but strategic review to take place</li><li>Combined £50m bailout offer to League One and Two </li></ul><p>Liverpool and Manchester United have been forced into an embarrassing climbdown over their push to reform English football after a tense meeting of the Premier League’s 20 clubs on Wednesday.</p><p>Together with the EFL chairman, Rick Parry, Liverpool and United have pushed Project Big Picture – a plan that proposed a £250m bailout for the EFL and a more equitable share of the game’s broadcast money in exchange for the Premier League’s big six clubs being granted overwhelming voting control on a number of important points.</p> <a href="https://www.theguardian.com/football/2020/oct/14/premier-league-efl-bailout-project-big-picture">Continue reading...</a> 22 | Football 23 | Premier League 24 | Football League 25 | Oliver Dowden 26 | Sport 27 | Wed, 14 Oct 2020 15:26:43 GMT 28 | https://www.theguardian.com/football/2020/oct/14/premier-league-efl-bailout-project-big-picture 29 | 30 | Photograph: Simon Stacpoole/Offside/Offside via Getty Images 31 | 32 | 33 | Photograph: Simon Stacpoole/Offside/Offside via Getty Images 34 | 35 | David Hytner and Paul MacInnes 36 | 2020-10-14T15:26:43Z 37 | 38 | 39 | David Bernstein to call for independent regulation in fight over football's future 40 | https://www.theguardian.com/football/2020/oct/14/david-bernstein-to-call-for-independent-regulation-in-fight-over-football-future 41 | <ul><li>Former FA chairman and other grandees to enter fray</li><li>Proposal to come amid controversy over Project Big Picture</li></ul><p>The former Football Association chairman David Bernstein and other grandees are expected to make an intervention on Thursday in the escalating battle over the game’s organisational future, by calling for independent regulation.</p><p>It will be far from the first time <a href="https://www.theguardian.com/football/2016/dec/12/football-association-premier-league-parliamentary-committee-reform">Bernstein has expressed this view</a> since he ended his stint as chairman in 2013, but the idea this time is understood to be fleshed out in a report worked up over six months with a small group of people independent of the FA.</p> <a href="https://www.theguardian.com/football/2020/oct/14/david-bernstein-to-call-for-independent-regulation-in-fight-over-football-future">Continue reading...</a> 42 | Football 43 | David Bernstein 44 | The FA 45 | Premier League 46 | Sport 47 | Wed, 14 Oct 2020 11:35:56 GMT 48 | https://www.theguardian.com/football/2020/oct/14/david-bernstein-to-call-for-independent-regulation-in-fight-over-football-future 49 | 50 | Photograph: James Williamson - AMA/Getty Images 51 | 52 | 53 | Photograph: James Williamson - AMA/Getty Images 54 | 55 | David Conn 56 | 2020-10-14T11:35:56Z 57 | 58 | 59 | The Guppy paradox: are England's left-sided woes back to haunt them? | Jonathan Liew 60 | https://www.theguardian.com/football/2020/oct/14/the-guppy-paradox-are-englands-left-sided-woes-back-to-haunt-them 61 | <p>Gareth Southgate has been wrestling with an all too familiar problem for England managers this week, to which Kevin Keegan certainly never found the answer<br></p><p>Steve Guppy is the one everyone remembers. Most dedicated followers of English football in the late 1990s and early 2000s would also be able to name Jason Wilcox and Steve Froggatt. Then you have your David Dunns, your Alan Thompsons, your Chris Powells. Two decades on, the infamous “England left-sided problem” tends to be evoked more as an exercise in nostalgia, a display of performative recall, than as a long-term failure of systems and imagination that Gareth Southgate may just be in danger of repeating.</p><p>A “left-sided David Beckham” was Kevin Keegan’s memorable description of Guppy ahead of his England debut, which sadly would also turn out to be his England swansong, against Belgium in 1999. And over the years, as the tournament failures piled up, England’s problem left flank would become a sort of hex, a footballing black hole, a lost cause to which some of our best young men were sacrificed, not all of whom would survive the experience.</p> <a href="https://www.theguardian.com/football/2020/oct/14/the-guppy-paradox-are-englands-left-sided-woes-back-to-haunt-them">Continue reading...</a> 62 | England 63 | Football 64 | Sport 65 | Gareth Southgate 66 | Wed, 14 Oct 2020 07:00:49 GMT 67 | https://www.theguardian.com/football/2020/oct/14/the-guppy-paradox-are-englands-left-sided-woes-back-to-haunt-them 68 | 69 | Photograph: Action Images / Reuters 70 | 71 | 72 | Photograph: Action Images / Reuters 73 | 74 | Jonathan Liew 75 | 2020-10-14T07:00:49Z 76 | 77 | 78 | The best value-for-money signings around Europe this transfer window 79 | https://www.theguardian.com/football/2020/oct/14/the-best-value-for-money-signings-around-europe-this-transfer-window 80 | <p>About £3bn was spent this summer but there were bargains to be found from teenage midfielders to World Cup winners</p><p> <span>Related: </span><a href="https://www.theguardian.com/football/ng-interactive/2020/jul/30/transfer-window-summer-2020-all-deals-europe-premier-league-la-liga-bundesliga-ligue-1-serie-a">Men's transfer window summer 2020 – all deals from Europe's top five leagues</a> </p> <a href="https://www.theguardian.com/football/2020/oct/14/the-best-value-for-money-signings-around-europe-this-transfer-window">Continue reading...</a> 81 | Transfer window 82 | Football 83 | Sport 84 | Wed, 14 Oct 2020 10:00:22 GMT 85 | https://www.theguardian.com/football/2020/oct/14/the-best-value-for-money-signings-around-europe-this-transfer-window 86 | 87 | Composite: Getty/AFP 88 | 89 | 90 | Composite: Getty/AFP 91 | 92 | Niall McVeigh 93 | 2020-10-14T10:00:22Z 94 | 95 | 96 | Kay Cossington: 'We have the world's best league – and we want success' | Suzanne Wrack 97 | https://www.theguardian.com/football/2020/oct/14/kay-cossington-we-have-world-best-league-and-we-want-success-fa-women-football 98 | <p>The FA’s head of women’s technical development sets out her blueprint for building a truly world-beating senior England team </p><p>“We don’t want to win once,” says Kay Cossington. “We want sustained success. If we get this right, we should be competing for medals on a regular basis.”</p><p>As head of women’s technical development at the Football Association, Cossington has been tasked with revolutionising the pathway for England’s female players and creating a “common language” across the age groups, from the under-14s to the senior side. It is far from a simple task but, with more than a decade of experience working with youth-team age groups, Cossington was a perfect fit for the role and was duly appointed 18 months ago by Baroness Sue Campbell, the FA’s head of women’s football.</p> <a href="https://www.theguardian.com/football/2020/oct/14/kay-cossington-we-have-world-best-league-and-we-want-success-fa-women-football">Continue reading...</a> 99 | England women's football team 100 | Women's football 101 | The FA 102 | Football 103 | Sport 104 | Wed, 14 Oct 2020 11:00:41 GMT 105 | https://www.theguardian.com/football/2020/oct/14/kay-cossington-we-have-world-best-league-and-we-want-success-fa-women-football 106 | 107 | Photograph: Lynne Cameron for The FA/REX/Shutterstock 108 | 109 | 110 | Photograph: Lynne Cameron for The FA/REX/Shutterstock 111 | 112 | Suzanne Wrack 113 | 2020-10-14T11:00:41Z 114 | 115 | 116 | The Fiver | One firm positive at this time is that Germany looked an absolute shower 117 | https://www.theguardian.com/football/2020/oct/14/the-fiver-nations-league-germany-spain-england 118 | <p><a href="https://www.theguardian.com/info/2016/jan/05/the-fiver-email-sign-up">Sign up now! Sign up now! Sign up now? Sign up now</a>!</p><p>All those naysayers who like to gripe about how international football has become boring and incomprehensible have suddenly gone very silent since Tuesday’s clash between Germany and Switzerland in League A Group 4 Division 6 Sub-section 11.7(b) of the Nations League. That 3-3 draw <a href="https://theguardian.com/football/2020/oct/13/nations-league-ukraine-shock-spain-germany-switzerland-draw-thriller">was a corker in any currency</a> and one firm positive that could be taken from it, at a time when everyone needs some levity, is that Germany look an absolute shower. If Jogi Löw has a coherent plan for taking the side forward, it was well hidden in a slipshod performance in which they looked like an outfit pulled together from the nearest bahnhof’s lost-and-found department.</p> <a href="https://www.theguardian.com/football/2020/oct/14/the-fiver-nations-league-germany-spain-england">Continue reading...</a> 119 | Football 120 | Sport 121 | Wed, 14 Oct 2020 14:56:47 GMT 122 | https://www.theguardian.com/football/2020/oct/14/the-fiver-nations-league-germany-spain-england 123 | 124 | Photograph: Xinhua/Rex/Shutterstock 125 | 126 | 127 | Photograph: Xinhua/Rex/Shutterstock 128 | 129 | Paul Doyle 130 | 2020-10-14T14:56:47Z 131 | 132 | 133 | US midfielder McKinnie is second Juventus player to test positive for Covid-19 134 | https://www.theguardian.com/football/2020/oct/14/weston-mckinnie-juventus-covid-19-cristiano-ronaldo-coronavirus 135 | <ul><li>News comes one day after Cristiano Ronaldo tests positive</li><li>Serie A champions will head into self-regulated isolation</li></ul><p>The USA and Juventus midfielder Weston McKinnie has become the second player from the Serie A champions to test positive for Covid-19.</p><p>The news comes a day after Cristiano Ronaldo <a href="https://www.theguardian.com/football/2020/oct/13/cristiano-ronaldo-tests-positive-for-coronavirus-portugal-confirm">tested positive while on international duty with Portugal</a>. Juventus’s under-23 coach also tested positive for the virus on Tuesday.</p> <a href="https://www.theguardian.com/football/2020/oct/14/weston-mckinnie-juventus-covid-19-cristiano-ronaldo-coronavirus">Continue reading...</a> 136 | Juventus 137 | USA 138 | Coronavirus outbreak 139 | Serie A 140 | US sports 141 | Football 142 | Sport 143 | European club football 144 | Wed, 14 Oct 2020 15:43:20 GMT 145 | https://www.theguardian.com/football/2020/oct/14/weston-mckinnie-juventus-covid-19-cristiano-ronaldo-coronavirus 146 | 147 | Photograph: Vaughn Ridley/Getty Images 148 | 149 | 150 | Photograph: Vaughn Ridley/Getty Images 151 | 152 | Guardian sport 153 | 2020-10-14T15:43:20Z 154 | 155 | 156 | Neymar second only to Pelé on Brazil scoring list after hat-trick defeats Peru 157 | https://www.theguardian.com/football/2020/oct/14/neymar-second-only-to-pele-on-brazil-scoring-list-after-hat-trick-defeats-peru 158 | <ul><li>Neymar overtakes Ronaldo in 4-2 World Cup qualifying win</li><li>Argentina beat Bolivia in La Paz for first time since 2005</li></ul><p>Neymar is second only to Pelé among Brazil’s all-time leading scorers after his hat-trick gave the team a 4-2 win in Peru and top spot in South American World Cup qualifying.</p><p>The 28-year-old striker has 64 goals for Brazil, overtaking Ronaldo. He celebrated one of his goals by mimicking the former No 9’s celebration showing his index finger.</p> <a href="https://www.theguardian.com/football/2020/oct/14/neymar-second-only-to-pele-on-brazil-scoring-list-after-hat-trick-defeats-peru">Continue reading...</a> 159 | Brazil 160 | Argentina 161 | Peru 162 | Bolivia 163 | Neymar 164 | World Cup 165 | Football 166 | Sport 167 | Wed, 14 Oct 2020 08:03:41 GMT 168 | https://www.theguardian.com/football/2020/oct/14/neymar-second-only-to-pele-on-brazil-scoring-list-after-hat-trick-defeats-peru 169 | 170 | Photograph: Paolo Aguilar/AFP/Getty Images 171 | 172 | 173 | Photograph: Paolo Aguilar/AFP/Getty Images 174 | 175 | Associated Press 176 | 2020-10-14T08:03:41Z 177 | 178 | 179 | Which was the last football team to play wearing shirt numbers 1 to 11? | The Knowledge 180 | https://www.theguardian.com/football/2020/oct/14/when-was-the-last-time-a-team-played-wearing-shirt-numbers-1-to-11-the-knowledge 181 | <p>Plus: relegated teams bouncing back up together, another blink-and-you-miss-it Premier League career and much more</p><p><strong>“As someone who hates seeing players with 59, 88, 27 etc on their backs, when was the last time a team played with the shirt numbers of 1-11?” </strong>asks Stuart from Corby.</p><p>Well, it does seem a simpler time. That said, Trent Alexander-Arnold <a href="https://www.liverpoolfc.com/news/first-team/393390-explained-why-trent-alexander-arnold-wears-no-66">wearing 66</a> instead of 2 rather reflects how he’s reinvented the role of the right-back (and he probably provides 33 times as many assists if you want to justify it further). But let’s not forget the 1-11 purist’s favourite one-liner: “I’d go to a bloody bingo hall if I wanted to see big numbers.” Anyway, let’s start crunching them …</p> <a href="https://www.theguardian.com/football/2020/oct/14/when-was-the-last-time-a-team-played-wearing-shirt-numbers-1-to-11-the-knowledge">Continue reading...</a> 182 | Football 183 | Sport 184 | Wed, 14 Oct 2020 09:00:51 GMT 185 | https://www.theguardian.com/football/2020/oct/14/when-was-the-last-time-a-team-played-wearing-shirt-numbers-1-to-11-the-knowledge 186 | 187 | Photograph: Darren Walsh/Chelsea FC/Getty Images 188 | 189 | 190 | Photograph: Darren Walsh/Chelsea FC/Getty Images 191 | 192 | Guardian sport 193 | 2020-10-14T09:00:51Z 194 | 195 | 196 | Football and its relationship with gambling – Football Weekly special 197 | https://www.theguardian.com/football/audio/2020/oct/13/football-and-its-relationship-with-gambling-football-weekly-special-podcast 198 | <p>Max Rushden is joined by Barry Glendenning and Philippe Auclair to examine the game’s ‘gamblification’ with the betting industry. We hear from James Grimes, who was a gambling addict for 12 years, Rob Davies, The Guardian’s business reporter who specialises in the gambling industry, and Brigid Simmonds, chair of the Betting and Gaming Council</p><p><strong>Rate, review, share on </strong><a href="https://itunes.apple.com/podcast/football-weekly-the-guardian/id188674007?mt=2"><strong>Apple Podcasts</strong></a><strong>, </strong><a href="https://soundcloud.com/guardianfootballweekly"><strong>Soundcloud</strong></a><strong>, </strong><a href="https://audioboom.com/channel/football-weekly"><strong>Audioboom</strong></a><strong>, </strong><a href="https://www.mixcloud.com/guardianfootballweekly/"><strong>Mixcloud</strong></a><strong>, </strong><a href="https://www.acast.com/footballweekly"><strong>Acast</strong></a><strong> and </strong><a href="http://www.stitcher.com/podcast/guardianuk/football-weekly"><strong>Stitcher</strong></a><strong>, and join the conversation on </strong><a href="https://www.facebook.com/GuardianPodcasts/"><strong>Facebook</strong></a><strong>, </strong><a href="https://twitter.com/guardianaudio"><strong>Twitter</strong></a><strong> and </strong><a href="mailto:footballweekly@theguardian.com"><strong>email</strong></a><strong>.</strong></p><p>A few weeks ago, we discussed whether it was OK for someone in the media to accept work from a bookmaker. We talked about the increasing “gamblification” of football and asked whose responsibility it is to regulate the industry and help people who have become addicted.</p> <a href="https://www.theguardian.com/football/audio/2020/oct/13/football-and-its-relationship-with-gambling-football-weekly-special-podcast">Continue reading...</a> 199 | Football 200 | Sport betting 201 | Gambling 202 | Sport 203 | Tue, 13 Oct 2020 16:31:31 GMT 204 | https://www.theguardian.com/football/audio/2020/oct/13/football-and-its-relationship-with-gambling-football-weekly-special-podcast 205 | 206 | Photograph: Jonathan Goldberg/Alamy Stock Photo 207 | 208 | 209 | Photograph: Jonathan Goldberg/Alamy Stock Photo 210 | 211 | Presented by Max Rushden with Barry Glendenning, Philippe Auclair, James Grimes and Brigid Simmonds. Produced byJack Davenport. 212 | 2020-10-13T16:31:31Z 213 | 214 | 215 | Javier Hernández is reaching Steven Gerrard levels of disappointment at Galaxy 216 | https://www.theguardian.com/football/2020/oct/14/javier-hernandez-la-galaxy-mls-soccer 217 | <p>The Mexico star may well expand MLS’s fanbase but LA Galaxy are winless in games he has started this season</p><p>Major League Soccer spent years preparing for Javier “Chicharito” Hernández’s arrival. While the 32-year-old’s achievements in the sport come nowhere close to the likes of David Beckham, Thierry Henry, David Villa or many of the other big-name Designated Players to have graced the league, his standing as a Mexican superstar made his transfer to the LA Galaxy earlier this year a landmark moment.</p><p>Off the pitch, Hernández has the potential to accelerate MLS’s growth more than any individual since Beckham. On the pitch, though, he has underwhelmed in 2020. The former Manchester United and Real Madrid striker has scored just once in eight appearances for the LA Galaxy this season, but somehow those numbers still don’t reflect the extent to which he has been a disappointment.</p> <a href="https://www.theguardian.com/football/2020/oct/14/javier-hernandez-la-galaxy-mls-soccer">Continue reading...</a> 218 | LA Galaxy 219 | MLS 220 | Football 221 | US sports 222 | Sport 223 | Mexico 224 | Wed, 14 Oct 2020 09:00:52 GMT 225 | https://www.theguardian.com/football/2020/oct/14/javier-hernandez-la-galaxy-mls-soccer 226 | 227 | Photograph: Michael Wyke/AP 228 | 229 | 230 | Photograph: Michael Wyke/AP 231 | 232 | Graham Ruthven 233 | 2020-10-14T09:00:52Z 234 | 235 | 236 | Nations League: Ukraine shock Spain, Germany and Switzerland draw thriller 237 | https://www.theguardian.com/football/2020/oct/13/nations-league-ukraine-shock-spain-germany-switzerland-draw-thriller 238 | <ul><li>Tsyhankov outwits De Gea for winner in front of 21,000 fans</li><li>Gnabry’s back-heel flick rescues point for Germany in 3-3 draw</li></ul><p><strong>Ukraine</strong> pulled off a shock 1-0 win over <strong>Spain</strong> in the Nations League at a raucous Olympic Stadium in Kyiv as fans savoured a first ever victory over the 2010 World Cup winners.</p><p>Andriy Shevchenko’s side took the lead against the run of play in the 76th minute when Viktor Tsyhankov surprised David de Gea by firing home from outside the area after latching on to an outstanding reverse pass from Andriy Yarmolenko. </p> <a href="https://www.theguardian.com/football/2020/oct/13/nations-league-ukraine-shock-spain-germany-switzerland-draw-thriller">Continue reading...</a> 239 | Nations League 240 | Football 241 | Sport 242 | Germany 243 | Switzerland 244 | Ukraine 245 | Spain 246 | Tue, 13 Oct 2020 21:16:44 GMT 247 | https://www.theguardian.com/football/2020/oct/13/nations-league-ukraine-shock-spain-germany-switzerland-draw-thriller 248 | 249 | Photograph: Sergei Supinsky/AFP/Getty Images 250 | 251 | 252 | Photograph: Sergei Supinsky/AFP/Getty Images 253 | 254 | Reuters 255 | 2020-10-13T21:16:44Z 256 | 257 | 258 | England lose Trippier after FA arranges disciplinary hearing over betting charge 259 | https://www.theguardian.com/football/2020/oct/13/england-lose-kieran-trippier-fa-disciplinary-hearing-betting 260 | <ul><li>Full-back faces charges relating to breaking of betting rules </li><li>Chilwell out of squad while Dier has hamstring problem</li></ul><p>Gareth Southgate has lost Kieran Trippier for the Nations League tie against Denmark on Wednesday night as the full-back must attend a Football Association disciplinary hearing to answer charges relating to the breaking of betting rules – a situation that the England manager described as an unwanted distraction.</p><p>Trippier was <a href="https://www.theguardian.com/football/2020/may/01/kieran-trippier-charged-breaching-fa-betting-rules-spurs-aletico-madrid" title="">charged with several alleged breaches</a> during July of last year, which was the same month that he <a href="https://www.theguardian.com/football/2019/jul/17/kieran-trippier-atletico-madrid-sign-tottenham" title="">moved from Tottenham to Atlético Madrid</a> for £20m. He has said that he did not place any bets himself or profit from bets made by other people.</p> <a href="https://www.theguardian.com/football/2020/oct/13/england-lose-kieran-trippier-fa-disciplinary-hearing-betting">Continue reading...</a> 261 | England 262 | Gareth Southgate 263 | Denmark 264 | Nations League 265 | Football 266 | Sport 267 | Tue, 13 Oct 2020 21:30:37 GMT 268 | https://www.theguardian.com/football/2020/oct/13/england-lose-kieran-trippier-fa-disciplinary-hearing-betting 269 | 270 | Photograph: Robbie Jay Barratt - AMA/Getty Images 271 | 272 | 273 | Photograph: Robbie Jay Barratt - AMA/Getty Images 274 | 275 | David Hytner 276 | 2020-10-13T21:30:37Z 277 | 278 | 279 | England's upcoming fixtures 'don't feel like a trial', says Phil Neville 280 | https://www.theguardian.com/football/2020/oct/13/phil-neville-drops-toni-duggan-in-really-difficult-england-womens-squad-decision-germany 281 | <ul><li>Manager says nature of job means he will always be scrutinised</li><li>Toni Duggan dropped from squad in ‘really difficult’ decision</li></ul><p>Phil Neville has said he does not feel he will be on trial in England’s matches against Germany and Norway, as the Football Association stalls on announcing the coach of Team GB at the Tokyo Olympics next summer.</p><p>“I knew the timeframes at the start of the season and the communication has always been clear and honest with me,” said Neville, whose England team play Europe’s highest-ranked side, Germany, in Wiesbaden on 27 October in their first international game since March. “Any time you go out onto the pitch as a footballer or a manager there’s always that element of ‘you’ve got to perform, you’re being assessed, you’re being scrutinised’ and that’s no different now but it doesn’t feel like a trial.”</p> <a href="https://www.theguardian.com/football/2020/oct/13/phil-neville-drops-toni-duggan-in-really-difficult-england-womens-squad-decision-germany">Continue reading...</a> 282 | England women's football team 283 | Phil Neville 284 | Women's football 285 | Football 286 | Sport 287 | Tue, 13 Oct 2020 21:49:47 GMT 288 | https://www.theguardian.com/football/2020/oct/13/phil-neville-drops-toni-duggan-in-really-difficult-england-womens-squad-decision-germany 289 | 290 | Photograph: Ian Walton/PA 291 | 292 | 293 | Photograph: Ian Walton/PA 294 | 295 | Suzanne Wrack 296 | 2020-10-13T21:49:47Z 297 | 298 | 299 | Eddie Nketiah becomes record scorer as England Under-21s seal Euro 2021 spot 300 | https://www.theguardian.com/football/2020/oct/13/eddie-nketiah-record-scorer-england-under-21-turkey-euro-2021 301 | <ul><li>England 2-1 Turkey</li><li>Nketiah scores late winner after missing penalty</li></ul><p>Eddie Nketiah became England Under-21s’ record scorer as the Young Lions booked their spot at Euro 2021.</p><p>The Arsenal striker scored his 14th goal in just 12 games to seal a 2-1 win over Turkey, having missed an earlier penalty. It was a nervy victory for England, though, and they needed Aaron Ramsdale to save Halil Dervisoglu’s spot-kick after the forward’s awful dive. Huseyin Turkmen’s own goal opened the scoring for England, who extended their unbeaten run in European qualifiers to 43 games despite Dervisoglu’s late consolation.</p> <a href="https://www.theguardian.com/football/2020/oct/13/eddie-nketiah-record-scorer-england-under-21-turkey-euro-2021">Continue reading...</a> 302 | England Under-21s 303 | Football 304 | Sport 305 | Turkey 306 | Tue, 13 Oct 2020 22:40:58 GMT 307 | https://www.theguardian.com/football/2020/oct/13/eddie-nketiah-record-scorer-england-under-21-turkey-euro-2021 308 | 309 | Photograph: Jon Super for The FA/REX/Shutterstock 310 | 311 | 312 | Photograph: Jon Super for The FA/REX/Shutterstock 313 | 314 | PA Media 315 | 2020-10-13T22:40:58Z 316 | 317 | 318 | Raheem Sterling likely to be fit to face Arsenal despite England withdrawal 319 | https://www.theguardian.com/football/2020/oct/13/raheem-sterling-arsenal-england-withdrawal-manchester-city 320 | <ul><li>Manchester City forward recovering from hamstring injury</li><li>Kevin De Bruyne’s fitness to be monitored this week </li></ul><p>Raheem Sterling is expected to be fit for Saturday’s visit of Arsenal to Manchester City after being forced to withdraw from the England squad due to a hamstring injury.</p><p>Sterling’s progress will be a relief to Pep Guardiola as City’s manager has fielded the 25-year-old at centre-forward to deputise for the long-term injured Sergio Agüero and Gabriel Jesus.</p> <a href="https://www.theguardian.com/football/2020/oct/13/raheem-sterling-arsenal-england-withdrawal-manchester-city">Continue reading...</a> 321 | Manchester City 322 | Raheem Sterling 323 | Arsenal 324 | England 325 | Football 326 | Sport 327 | Tue, 13 Oct 2020 16:19:07 GMT 328 | https://www.theguardian.com/football/2020/oct/13/raheem-sterling-arsenal-england-withdrawal-manchester-city 329 | 330 | Photograph: Ryan Browne/BPI/REX/Shutterstock 331 | 332 | 333 | Photograph: Ryan Browne/BPI/REX/Shutterstock 334 | 335 | Jamie Jackson 336 | 2020-10-13T16:19:07Z 337 | 338 | 339 | EFL clubs agree to put their support behind Project Big Picture 340 | https://www.theguardian.com/football/2020/oct/13/efl-clubs-agree-to-put-their-support-behind-project-big-picture 341 | <ul><li>Rick Parry’s proposals overwhelmingly backed by EFL clubs</li><li>£250m instant payment to aid Covid crisis key to deal</li></ul><p>EFL clubs have swung as a bloc behind Project Big Picture, despite concerns over a potential seismic power shift at the top of the game.</p><p>With Championship clubs overwhelmingly agreeing to support the chair Rick Parry’s proposals and League One and Two doing likewise after a day of emergency meetings, club owners and executives have calculated that reform of the game – and a Covid-19 bailout – is worth the cost of an agglomeration of power among the Premier League’s biggest clubs.</p> <a href="https://www.theguardian.com/football/2020/oct/13/efl-clubs-agree-to-put-their-support-behind-project-big-picture">Continue reading...</a> 342 | Football League 343 | Premier League 344 | Business 345 | Finances 346 | Football 347 | Sport 348 | Tue, 13 Oct 2020 19:47:51 GMT 349 | https://www.theguardian.com/football/2020/oct/13/efl-clubs-agree-to-put-their-support-behind-project-big-picture 350 | 351 | Photograph: Dave Thompson/PA 352 | 353 | 354 | Photograph: Dave Thompson/PA 355 | 356 | Paul MacInnes and Ben Fisher 357 | 2020-10-13T19:47:51Z 358 | 359 | 360 | 'If I was an animal, I'd be an octopus': Partey plans to make a splash at Arsenal | Nick Ames 361 | https://www.theguardian.com/football/2020/oct/13/if-i-was-an-animal-id-be-an-octopus-partey-plans-a-splash-at-arsenal 362 | <p>The €45m signing’s tenacity earned him a cephalopodic nickname in Spain and he hopes he can live up to expectations</p><p>The eight-legged tattoo on Thomas Partey’s arm recalls a time when his gifts drew an unusual comparison. “I always say, if I would be an animal, I would be an octopus,” he says. “I remember when I was in Almería they called me ‘the octopus’ because I stole a lot of balls.”</p><p> <span>Related: </span><a href="https://www.theguardian.com/football/2020/oct/06/thomas-partey-made-at-atletico-and-now-ready-to-break-free-at-arsenal">Thomas Partey: made at Atlético and now ready to break free at Arsenal | Nick Ames</a> </p> <a href="https://www.theguardian.com/football/2020/oct/13/if-i-was-an-animal-id-be-an-octopus-partey-plans-a-splash-at-arsenal">Continue reading...</a> 363 | Arsenal 364 | Atlético Madrid 365 | Football 366 | Sport 367 | Tue, 13 Oct 2020 21:30:37 GMT 368 | https://www.theguardian.com/football/2020/oct/13/if-i-was-an-animal-id-be-an-octopus-partey-plans-a-splash-at-arsenal 369 | 370 | Photograph: Stuart MacFarlane/Arsenal FC/Getty Images 371 | 372 | 373 | Photograph: Stuart MacFarlane/Arsenal FC/Getty Images 374 | 375 | Nick Ames 376 | 2020-10-13T21:30:37Z 377 | 378 | 379 | David Squires on … Project Big Small-print selflessly saving English football 380 | https://www.theguardian.com/football/ng-interactive/2020/oct/13/david-squires-on-project-big-small-print-selflessly-saving-english-football 381 | <p>Our cartoonist on kindly venture-scorpions, football supermarkets and another PR PPV masterstroke</p><ul><li><a href="https://guardianprintshop.com/collections/david-squires">Buy a print of this cartoon in the Guardian print shop</a></li><li><a href="https://www.theguardian.com/football/series/david-squires-on">And take a look through David’s archive treasure trove</a></li></ul> <a href="https://www.theguardian.com/football/ng-interactive/2020/oct/13/david-squires-on-project-big-small-print-selflessly-saving-english-football">Continue reading...</a> 382 | Football 383 | Premier League 384 | Sport 385 | Tue, 13 Oct 2020 10:15:27 GMT 386 | https://www.theguardian.com/football/ng-interactive/2020/oct/13/david-squires-on-project-big-small-print-selflessly-saving-english-football 387 | 388 | Illustration: David Squires/The Guardian 389 | 390 | 391 | Illustration: David Squires/The Guardian 392 | 393 | David Squires 394 | 2020-10-13T10:15:27Z 395 | 396 | 397 | England's class of 2018 return favour as Southgate looks back to go forward | David Hytner 398 | https://www.theguardian.com/football/2020/oct/12/england-class-of-2018-return-favour-gareth-southgate-looks-back-to-go-forward-belgium 399 | <p>Kyle Walker’s 50th cap came in Sunday’s win against Belgium alongside Eric Dier and room was found for Kieran Trippier</p><p>Kyle Walker now has more England caps than Sir Geoff Hurst. “Which is incredible,” Gareth Southgate said, and the England manager meant that sincerely, his admiration for Walker’s achievement plain.</p><p>The Manchester City defender won his 50th cap in the <a href="https://www.theguardian.com/football/2020/oct/11/england-belgium-nations-league-match-report">2-1 Nations League win against Belgium</a> on Sunday and it took him level on the all-time list with Phil Neal. “Obviously, I was the only one in the dressing room who knew,” Southgate said, with a smile. Neal, the richly decorated Liverpool full-back, won the last of his caps in 1983.</p> <a href="https://www.theguardian.com/football/2020/oct/12/england-class-of-2018-return-favour-gareth-southgate-looks-back-to-go-forward-belgium">Continue reading...</a> 400 | England 401 | Manchester City 402 | Gareth Southgate 403 | Football 404 | Sport 405 | Mon, 12 Oct 2020 21:30:51 GMT 406 | https://www.theguardian.com/football/2020/oct/12/england-class-of-2018-return-favour-gareth-southgate-looks-back-to-go-forward-belgium 407 | 408 | Photograph: TF-Images/Getty Images 409 | 410 | 411 | Photograph: TF-Images/Getty Images 412 | 413 | David Hytner 414 | 2020-10-12T21:30:51Z 415 | 416 | 417 | How Project Big Picture changed the politics of football in one swoop | David Conn 418 | https://www.theguardian.com/football/2020/oct/13/how-project-big-picture-changed-the-politics-of-football-in-one-swoop 419 | <p>Liverpool’s and Manchester United’s plan has been roundly condemned by the Premier League, but leaves the English game in uncharted territory </p><p>The Premier League’s 20 clubs will assemble for a scheduled meeting this week with an agenda spectacularly disrupted by the Project Big Picture proposals of Liverpool and Manchester United to reshape the league itself and the English football pyramid. The other four clubs in the so-called big six are said to have been initially infuriated when the plan, for overwhelming voting control in their hands allied to a much fairer sharing of money with the EFL, was <a href="https://www.theguardian.com/football/2020/oct/11/project-big-picture-premier-league-and-efl-plan-radical-reform-to-avoid-crisis" title="">leaked on Sunday</a>, and some time was spent assuring them Liverpool and United were not the source of it.</p><p>Liverpool’s majority owner John W Henry, the main driving force behind proposals he has worked on since 2017, is said to have been undeterred by the largely hostile reaction in the media and of the government, and to be preparing to press the case further. The EFL chairman, Rick Parry, has stressed his 72 clubs’ support and gratitude for the plan, which after months of delay by the Premier League centrally, offers to pay the EFL a £250m crisis fund immediately, and a transformational future 25% of net Premier League TV deals.</p> <a href="https://www.theguardian.com/football/2020/oct/13/how-project-big-picture-changed-the-politics-of-football-in-one-swoop">Continue reading...</a> 420 | Premier League 421 | Football League 422 | Football politics 423 | Finances 424 | Business 425 | Football 426 | Sport 427 | Tue, 13 Oct 2020 07:00:02 GMT 428 | https://www.theguardian.com/football/2020/oct/13/how-project-big-picture-changed-the-politics-of-football-in-one-swoop 429 | 430 | Photograph: Harold Cunningham - UEFA/UEFA/Getty Images 431 | 432 | 433 | Photograph: Harold Cunningham - UEFA/UEFA/Getty Images 434 | 435 | David Conn 436 | 2020-10-13T07:00:02Z 437 | 438 | 439 | 'Beggars can't be choosers': football pyramid reacts to Project Big Picture 440 | https://www.theguardian.com/football/2020/oct/12/project-big-picture-reaction-to-plans-premier-league-efl 441 | <p>The proposals have provoked outrage at many Premier League sides, but struggling EFL clubs are taking a pragmatic approach</p><p>The day after the story broke Liverpool appeared to accept the plan they have co-conceived will need some refinement. They are understood to be prepared for a robust debate on the proposals, bracing themselves in particular for a battle around the plan for nine clubs to receive preferential voting rights. There is an expectation at Anfield that the leaked blueprint for football’s future will not be the final version; whether that is enough to dampen the anger of other clubs in the division, and beyond, and get everyone amicably around the table remains to be seen. Manchester United are understood by sources closely involved in the proposal to have a similar outlook.</p> <a href="https://www.theguardian.com/football/2020/oct/12/project-big-picture-reaction-to-plans-premier-league-efl">Continue reading...</a> 442 | Football 443 | Premier League 444 | Football League 445 | Finances 446 | Business 447 | Sport 448 | Mon, 12 Oct 2020 19:48:41 GMT 449 | https://www.theguardian.com/football/2020/oct/12/project-big-picture-reaction-to-plans-premier-league-efl 450 | 451 | Photograph: Zac Goodwin/PA 452 | 453 | 454 | Photograph: Zac Goodwin/PA 455 | 456 | Nick Ames and Ben Fisher 457 | 2020-10-12T19:48:41Z 458 | 459 | 460 | Next Generation 2020: 60 of the best young talents in world football 461 | https://www.theguardian.com/football/ng-interactive/2020/oct/08/next-generation-2020-60-of-the-best-young-talents-in-world-football 462 | <p>The ‘Tanzanian Mbappé’, Juan Pablo Ángel’s son and the next Kai Havertz are among our players born in 2003. Check the progress of our <a href="https://www.theguardian.com/football/ng-interactive/2019/oct/10/next-generation-2019-60-of-the-best-young-talents-in-world-football">2019 selection</a> | <a href="https://www.theguardian.com/football/ng-interactive/2018/oct/11/next-generation-2018-60-of-the-best-young-talents-in-world-football">2018</a> | <a href="https://www.theguardian.com/football/ng-interactive/2017/oct/04/next-generation-2017-60-of-the-best-young-talents-in-world-football">2017</a> | <a href="https://www.theguardian.com/football/ng-interactive/2016/oct/05/next-generation-2016-60-of-the-best-young-talents-in-world-football">2016</a> | <a href="https://www.theguardian.com/football/ng-interactive/2015/oct/07/next-generation-2015-50-of-the-best-young-talents-in-world-football">2015 </a></p> <a href="https://www.theguardian.com/football/ng-interactive/2020/oct/08/next-generation-2020-60-of-the-best-young-talents-in-world-football">Continue reading...</a> 463 | Football 464 | Sport 465 | Wed, 07 Oct 2020 23:01:21 GMT 466 | https://www.theguardian.com/football/ng-interactive/2020/oct/08/next-generation-2020-60-of-the-best-young-talents-in-world-football 467 | 468 | Illustration: Guardian Design 469 | 470 | 471 | Illustration: Guardian Design 472 | 473 | Marcus Christenson, Jim Powell and Garry Blight 474 | 2020-10-07T23:01:21Z 475 | 476 | 477 | Next Generation 2020: 20 of the best talents at Premier League clubs 478 | https://www.theguardian.com/football/ng-interactive/2020/oct/07/next-generation-2020-20-of-the-best-talents-at-premier-league-clubs 479 | <p>We pick the best young players at each club born between 1 September 2003 and 31 August 2004, an age band known as first-year scholars. Check the progress of <a href="https://www.theguardian.com/football/ng-interactive/2019/oct/09/next-generation-2019-20-of-the-best-talents-at-premier-league-clubs">class of 2019</a> | <a href="https://www.theguardian.com/football/ng-interactive/2018/oct/10/next-generation-2018-20-of-the-best-talents-at-premier-league-clubs">2018</a> | <a href="https://www.theguardian.com/football/ng-interactive/2017/oct/03/next-generation-2017-20-of-the-best-talents-at-premier-league-clubs">2017</a> | <a href="https://www.theguardian.com/football/ng-interactive/2016/oct/04/next-generation-2016-20-of-the-best-talents-at-premier-league-clubs">2016</a> | <a href="https://www.theguardian.com/football/ng-interactive/2015/oct/06/next-generation-2015-20-of-the-best-talents-at-premier-league-clubs">2015</a></p> <a href="https://www.theguardian.com/football/ng-interactive/2020/oct/07/next-generation-2020-20-of-the-best-talents-at-premier-league-clubs">Continue reading...</a> 480 | Football 481 | Sport 482 | Tue, 06 Oct 2020 23:01:22 GMT 483 | https://www.theguardian.com/football/ng-interactive/2020/oct/07/next-generation-2020-20-of-the-best-talents-at-premier-league-clubs 484 | 485 | Illustration: Guardian Design 486 | 487 | 488 | Illustration: Guardian Design 489 | 490 | Marcus Christenson, Jim Powell and Garry Blight 491 | 2020-10-06T23:01:22Z 492 | 493 | 494 | From Ødegaard to Mastour: what happened to Next Generation 2015? 495 | https://www.theguardian.com/football/2020/oct/06/from-degaard-to-mastour-what-happened-to-next-generation-2015 496 | <p>As we prepare to publish our Next Generation 2020 selection, we say goodbye to the class of 2015. So how did they get on? </p><ul><li>Premier League updates from <a href="https://www.theguardian.com/football/ng-interactive/2015/oct/06/next-generation-2015-20-of-the-best-talents-at-premier-league-clubs">2015</a> | <a href="https://www.theguardian.com/football/ng-interactive/2016/oct/04/next-generation-2016-20-of-the-best-talents-at-premier-league-clubs">2016</a> | <a href="https://www.theguardian.com/football/ng-interactive/2017/oct/03/next-generation-2017-20-of-the-best-talents-at-premier-league-clubs">2017</a> | <a href="https://www.theguardian.com/football/ng-interactive/2018/oct/10/next-generation-2018-20-of-the-best-talents-at-premier-league-clubs">2018</a> | <a href="https://www.theguardian.com/football/ng-interactive/2019/oct/09/next-generation-2019-20-of-the-best-talents-at-premier-league-clubs">2019</a></li><li>Worldwide updates from <a href="https://www.theguardian.com/football/ng-interactive/2015/oct/07/next-generation-2015-50-of-the-best-young-talents-in-world-football">2015</a> | <a href="https://www.theguardian.com/football/ng-interactive/2016/oct/05/next-generation-2016-60-of-the-best-young-talents-in-world-football">2016</a> | <a href="https://www.theguardian.com/football/ng-interactive/2017/oct/04/next-generation-2017-60-of-the-best-young-talents-in-world-football">2017</a> | <a href="https://www.theguardian.com/football/ng-interactive/2018/oct/11/next-generation-2018-60-of-the-best-young-talents-in-world-football">2018</a> | <a href="https://www.theguardian.com/football/ng-interactive/2019/oct/10/next-generation-2019-60-of-the-best-young-talents-in-world-football">2019</a></li></ul><p>This is what the Guardian’s Andy Hunter wrote about his 2015 Liverpool player for our series the Next Generation, where we pick one player from each Premier League club in the first-year scholar age group and follow their developments for five years.</p><p>The 16-year-old has received rave reviews not only from Liverpool and England coaches during a rapid rise up the ranks but also from Steven Gerrard, his boyhood hero, in the former Anfield captain’s new autobiography. Gerrard reveals he asked Pepijn Lijnders, the first-team development coach, to always include Alexander-Arnold in his group when taking his ’B’ Licence course, and handed him the captain’s armband during a comeback game in Liverpool’s Under-18s side last season. “It was my way of telling Trent that I believed he could make it for Liverpool one day,” Gerrard writes.</p> <a href="https://www.theguardian.com/football/2020/oct/06/from-degaard-to-mastour-what-happened-to-next-generation-2015">Continue reading...</a> 497 | Football 498 | Sport 499 | Tue, 06 Oct 2020 14:00:07 GMT 500 | https://www.theguardian.com/football/2020/oct/06/from-degaard-to-mastour-what-happened-to-next-generation-2015 501 | 502 | Photograph: Getty Images 503 | 504 | 505 | Photograph: Getty Images 506 | 507 | Marcus Christenson 508 | 2020-10-06T14:00:07Z 509 | 510 | 511 | Next Generation 2019: 60 of the best young talents in world football 512 | https://www.theguardian.com/football/ng-interactive/2019/oct/10/next-generation-2019-60-of-the-best-young-talents-in-world-football 513 | <p>Eidur Gudjohnsen’s son, the new Paul Pogba and Barça’s Ansu Fati are among our 60 most talented players in the world born in 2002. Check the progress of <a href="https://www.theguardian.com/football/ng-interactive/2018/oct/11/next-generation-2018-60-of-the-best-young-talents-in-world-football">our 2018 picks</a> | <a href="https://www.theguardian.com/football/ng-interactive/2017/oct/04/next-generation-2017-60-of-the-best-young-talents-in-world-football">2017</a> | <a href="https://www.theguardian.com/football/ng-interactive/2016/oct/05/next-generation-2016-60-of-the-best-young-talents-in-world-football">2016</a> | <a href="https://www.theguardian.com/football/ng-interactive/2015/oct/07/next-generation-2015-50-of-the-best-young-talents-in-world-football">2015</a> | <a href="https://www.theguardian.com/football/blog/ng-interactive/2014/oct/14/next-generation-2014-40-of-the-best-young-talents-in-world-football">2014 </a></p><p><sup>Photographs by DZfoot, BackpagePix, Club Atlético Belgrano, EFE, EPA, Getty Images, Uwe Gruen/Hoffenheim, AMA/Getty Images, Rex/Shutterstock, Zuma Press/PA, FIFA, Tigres, Damir Krajac/CROPIX, Alamy, Daniel Reyes/Ecuafutbol, Reuters, Atromitos, Imago/PA, fotoBERNAMA, New Straits Times, José Alonso Paredes Sánchez, Agencja Gazeta, David Price/Arsenal FC/Getty, AP, Asian Football Confederation, Danubio FC and Championat Asia</sup><br></p> <a href="https://www.theguardian.com/football/ng-interactive/2019/oct/10/next-generation-2019-60-of-the-best-young-talents-in-world-football">Continue reading...</a> 514 | Football 515 | Sport 516 | Thu, 10 Oct 2019 09:00:14 GMT 517 | https://www.theguardian.com/football/ng-interactive/2019/oct/10/next-generation-2019-60-of-the-best-young-talents-in-world-football 518 | 519 | Illustration: Guardian Design 520 | 521 | 522 | Illustration: Guardian Design 523 | 524 | Marcus Christenson, Jim Powell and Garry Blight 525 | 2019-10-10T09:00:14Z 526 | 527 | 528 | Marcus Rashford given MBE for school meals campaign – video 529 | https://www.theguardian.com/football/video/2020/oct/10/marcus-rashford-given-mbe-for-school-meals-campaign-video 530 | <p>Manchester United and England forward Marcus Rashford has been officially recognised for his efforts to secure free meals for vulnerable children during the coronavirus pandemic. R<a href="https://www.theguardian.com/uk-news/2020/oct/09/marcus-rashford-given-mbe-in-birthday-honours-for-school-meals-campaign">ashford has been made an MBE in the 2020 Queen's Birthday Honours list</a>. The 22 year-old footballer launched a high-profile campaign which resulted in the government changing policy over the issue of free school meals vouchers during lockdown, helping to ensure that children in need did not go hungry over the summer break. England manager Gareth Southgate said Rashford received a round of applause from England's players and staff after being awarded an MBE medal in the Queen's Birthday Honours list. 'For somebody of his age to be able to make the difference he has is a phenomenal achievement,' Southgate said.</p> <a href="https://www.theguardian.com/football/video/2020/oct/10/marcus-rashford-given-mbe-for-school-meals-campaign-video">Continue reading...</a> 531 | Marcus Rashford 532 | England 533 | Food poverty 534 | Football 535 | Sport 536 | Manchester United 537 | Sat, 10 Oct 2020 17:36:59 GMT 538 | https://www.theguardian.com/football/video/2020/oct/10/marcus-rashford-given-mbe-for-school-meals-campaign-video 539 | 540 | Photograph: REX/Shutterstock 541 | 542 | 543 | Photograph: REX/Shutterstock 544 | 545 | 546 | 2020-10-10T17:36:59Z 547 | 548 | 549 | 'I'm not going to be too moralistic': Southgate on England youngsters – video 550 | https://www.theguardian.com/football/video/2020/oct/08/im-not-going-to-be-too-moralistic-southgate-on-england-youngsters-video 551 | <p>England manager Gareth Southgate says he will not be too 'moralistic' towards his young players after&nbsp;<a href="https://www.theguardian.com/football/2020/oct/05/abraham-chilwell-and-sancho-pictured-at-party-in-apparent-covid-breach-england-fa">Tammy Abraham, Ben Chilwell and Jadon Sancho</a>&nbsp;were ruled out of the friendly against Wales on Thursday night as a result of their Covid-19 rules breach last weekend.</p><p>Southgate stressed that the coronavirus pandemic is taking a lot of focus and energy away from the game itself and warned that this can potentially derail the success of a team.&nbsp;</p><ul><li><a href="https://www.theguardian.com/football/2020/oct/07/a-moral-maze-gareth-southgate-tells-young-england-players-the-party-is-over">'A moral maze': Gareth Southgate tells young England players the party is over</a></li></ul> <a href="https://www.theguardian.com/football/video/2020/oct/08/im-not-going-to-be-too-moralistic-southgate-on-england-youngsters-video">Continue reading...</a> 552 | England 553 | Gareth Southgate 554 | Football 555 | Sport 556 | Thu, 08 Oct 2020 10:43:06 GMT 557 | https://www.theguardian.com/football/video/2020/oct/08/im-not-going-to-be-too-moralistic-southgate-on-england-youngsters-video 558 | 559 | Photograph: Football Association 560 | 561 | 562 | Photograph: Football Association 563 | 564 | 565 | 2020-10-08T10:43:06Z 566 | 567 | 568 | The most memorable transfer announcements of the 2020 summer window – video 569 | https://www.theguardian.com/football/video/2020/oct/05/the-most-memorable-transfer-announcements-of-the-2020-summer-window-video 570 | <p>From Rafael dressing up as a Teenage Mutant Ninja Turtle to Ricardo Quaresma riding around a castle on a horse, the 2020 summer transfer window hasn't failed to bring us some great announcement videos, including a great piece of acting from Tottenham's Matt Doherty as he deleted his 'I love Arsenal forever and ever and ever' tweet from 2012</p> <a href="https://www.theguardian.com/football/video/2020/oct/05/the-most-memorable-transfer-announcements-of-the-2020-summer-window-video">Continue reading...</a> 571 | Transfer window 572 | Football 573 | Sport 574 | Mon, 05 Oct 2020 11:19:12 GMT 575 | https://www.theguardian.com/football/video/2020/oct/05/the-most-memorable-transfer-announcements-of-the-2020-summer-window-video 576 | 577 | Photograph: Various 578 | 579 | 580 | Photograph: Various 581 | 582 | Nicholas Williams 583 | 2020-10-05T11:19:12Z 584 | 585 | 586 | 'My worst day': Solskjær and Mourinho on Tottenham's 6-1 thrashing of Manchester United – video 587 | https://www.theguardian.com/football/video/2020/oct/04/my-worst-day-solskjr-and-mourinho-on-tottenhams-6-1-thrashing-of-manchester-united-video 588 | <p>Tottenham Hotspur inflicted a miserable afternoon for Ole Gunnar Solskjær and Manchester United with a 6-1 thrashing at Old Trafford. This was the first time since November 1957 they've conceded four in the first half, equalling their record heaviest defeat to Manchester City in 2011. Despite opening the score through a penalty from Bruno Fernandes it was six without reply from there on. Anthony Martial's red card was the catalyst on an afternoon that got worse and worse for United</p><ul><li><a href="https://www.theguardian.com/football/2020/oct/04/manchester-united-tottenham-premier-league-match-report">Harry Kane stars in Tottenham's 6-1 thrashing of hapless Manchester United</a></li></ul> <a href="https://www.theguardian.com/football/video/2020/oct/04/my-worst-day-solskjr-and-mourinho-on-tottenhams-6-1-thrashing-of-manchester-united-video">Continue reading...</a> 589 | Manchester United 590 | Football 591 | Tottenham Hotspur 592 | Sport 593 | Premier League 594 | Ole Gunnar Solskjaer 595 | José Mourinho 596 | Sun, 04 Oct 2020 19:48:39 GMT 597 | https://www.theguardian.com/football/video/2020/oct/04/my-worst-day-solskjr-and-mourinho-on-tottenhams-6-1-thrashing-of-manchester-united-video 598 | 599 | Photograph: Ian Hodgson NMC Pool 600 | 601 | 602 | Photograph: Ian Hodgson NMC Pool 603 | 604 | 605 | 2020-10-04T19:48:39Z 606 | 607 | 608 | San Diego Loyal players walk off field after alleged homophobic abuse – video report 609 | https://www.theguardian.com/football/video/2020/oct/01/san-diego-loyal-players-walk-off-field-after-alleged-homophobic-abuse-video-report 610 | <p>San Diego Loyal players walked off the pitch at the start of the second half of their game against Phoenix Rising after homophobic abuse was allegedly directed at one of their players. Loyal star Collin Martin came out publicly in June 2018. Loyal were 3-1 up before the game was forfeited. Phoenix player Junior Flemmings has said that the accusations are 'false'</p> <a href="https://www.theguardian.com/football/video/2020/oct/01/san-diego-loyal-players-walk-off-field-after-alleged-homophobic-abuse-video-report">Continue reading...</a> 611 | Football 612 | Sport 613 | San Diego 614 | Thu, 01 Oct 2020 12:13:14 GMT 615 | https://www.theguardian.com/football/video/2020/oct/01/san-diego-loyal-players-walk-off-field-after-alleged-homophobic-abuse-video-report 616 | 617 | Photograph: USL Championship 618 | 619 | 620 | Photograph: USL Championship 621 | 622 | Nicholas Williams 623 | 2020-10-01T12:13:14Z 624 | 625 | 626 | Quick backheel reactions result in last-minute Hartford Athletic winner – video 627 | https://www.theguardian.com/football/video/2020/oct/01/quick-backheel-reactions-result-in-last-minute-hartford-athletic-winner-video 628 | <p>With their USL game fast approaching added time, it looked as though Hartford Athletic had thrown away a 2-0 lead to Philadelphia Union II. However, after the Union goalkeeper had collected the ball from a cross, he attempted to release the ball down the field, only for Hartford's Danny Barrera to stick his leg out backwards to intercept. The result was a perfect looping backheel into the empty net, an inventive way to win all three points</p><ul><li><a href="https://www.theguardian.com/sport/series/amazing-world-of-sport">&nbsp;Watch more from the amazing world of sport series here</a><br></li></ul> <a href="https://www.theguardian.com/football/video/2020/oct/01/quick-backheel-reactions-result-in-last-minute-hartford-athletic-winner-video">Continue reading...</a> 629 | Football 630 | MLS 631 | US sports 632 | Sport 633 | Thu, 01 Oct 2020 15:16:05 GMT 634 | https://www.theguardian.com/football/video/2020/oct/01/quick-backheel-reactions-result-in-last-minute-hartford-athletic-winner-video 635 | 636 | Photograph: @hfdathletic 637 | 638 | 639 | Photograph: @hfdathletic 640 | 641 | 642 | 2020-10-01T15:16:05Z 643 | 644 | 645 | Carl Robinson favourite to take over at Western Sydney Wanderers 646 | https://www.theguardian.com/football/2020/oct/14/carl-robinson-favourite-to-take-over-at-western-sydney-wanderers 647 | <ul><li>Newcastle give Welsh coach permission to enter talks</li><li>Wanderers sacked Jean-Paul de Marigny on Monday </li></ul><p>Carl Robinson has firmed as favourite to take over as coach of Western Sydney Wanderers after Newcastle Jets gave the Welshman permission to open discussions with the former Asian champions.</p><p>Wanderers announced the shock sacking of Jean-Paul de Marigny on Monday, just three months after he was appointed to the role on a permanent basis, and former Wales midfielder Robinson now looks set to replace him.</p> <a href="https://www.theguardian.com/football/2020/oct/14/carl-robinson-favourite-to-take-over-at-western-sydney-wanderers">Continue reading...</a> 648 | A-League 649 | Football 650 | Western Sydney Wanderers 651 | Newcastle Jets 652 | Australia sport 653 | Sport 654 | Wed, 14 Oct 2020 02:16:11 GMT 655 | https://www.theguardian.com/football/2020/oct/14/carl-robinson-favourite-to-take-over-at-western-sydney-wanderers 656 | 657 | Photograph: Darren Pateman/AAP 658 | 659 | 660 | Photograph: Darren Pateman/AAP 661 | 662 | Reuters 663 | 2020-10-14T02:16:11Z 664 | 665 | 666 | Barcelona's transfer blunders bite back on dreadful deadline day | Sid Lowe 667 | https://www.theguardian.com/football/2020/oct/07/barcelonas-transfer-blunders-bite-back-on-dreadful-deadline-day 668 | <p>Barça were left scrabbling for a deal to balance broken books after years of waste on bad signings and mindbending wages</p><p>By the time the transfer window closed, Barcelona had seen <a href="https://www.theguardian.com/football/blog/2020/sep/28/hurricane-luis-suarez-unleashed-in-spectacular-atletico-madrid-arrival-la-liga-sid-lowe">Luis Suárez go to Atlético Madrid</a>, <a href="https://www.theguardian.com/football/2020/sep/02/ivan-rakitic-move-brings-revelry-at-sevilla-and-relief-in-barcelona">Ivan Rakitic to Sevilla</a>, Arturo Vidal to Internazionale, Rafinha to Paris Saint-Germain and Jean-Clair Todibo to Benfica in return for a grand total of €3.5m – and that is the players they managed to get rid of. A couple of hours earlier, the club had been trying to force Ousmane Dembélé to go to Manchester United. He had cost €105m plus a further €45m in variables three years ago; now they hoped to raise €0, but did not manage that either.</p><p>Left without the money to make them happen, nor did they succeed in signing Memphis Depay and Eric García. The lights were still on at the Camp Nou offices well after midnight on the frantic final day of transfer business, but it wasn’t because they were closing the deals their coach, Ronald Koeman, requested, his revolution gathering pace. Instead it painted another portrait of their crisis, Barcelona were stuck, another failure consummated. Koeman admitted this was not the squad he planned for but it is the one he will have to work with.</p> <a href="https://www.theguardian.com/football/2020/oct/07/barcelonas-transfer-blunders-bite-back-on-dreadful-deadline-day">Continue reading...</a> 669 | Barcelona 670 | Football 671 | La Liga 672 | European club football 673 | Sport 674 | Lionel Messi 675 | Wed, 07 Oct 2020 11:00:36 GMT 676 | https://www.theguardian.com/football/2020/oct/07/barcelonas-transfer-blunders-bite-back-on-dreadful-deadline-day 677 | 678 | Photograph: Alejandro García/EPA 679 | 680 | 681 | Photograph: Alejandro García/EPA 682 | 683 | Sid Lowe 684 | 2020-10-07T11:00:36Z 685 | 686 | 687 | Julen Lopetegui's redemption seems complete as he builds a new Sevilla | Sid Lowe 688 | https://www.theguardian.com/football/2020/oct/05/julen-lopeteguis-redemption-seems-complete-as-he-builds-a-new-sevilla 689 | <p>The trauma of the manager’s sacking by Spain and a bitterly brief stay at Real Madrid is all but forgotten with his latest club</p><p>There was a moment late on Sunday night when the camera closed in on Luuk de Jong which seemed to say something about trust and team, and what they’re building together at Sevilla. He had scored at the Camp Nou – as he had done against Real Madrid, Atlético Madrid, Real Betis, Inter and Manchester United – but having opened the scoring inside eight minutes the ball had been back in play just 41 seconds when Philippe Coutinho equalised. Now, withdrawn six minutes from the end of an exhausting evening, the former Newcastle striker sat in the stands gesturing for his teammates to remain calm in the final moments of a 1-1 draw against Barcelona.</p><p> <span>Related: </span><a href="https://www.theguardian.com/football/2020/oct/05/juventus-napoli-covid-no-show-serie-a-covid-court">Juve pretend it is business as usual to put heat on Napoli's Covid no-show | Nicky Bandini</a> </p> <a href="https://www.theguardian.com/football/2020/oct/05/julen-lopeteguis-redemption-seems-complete-as-he-builds-a-new-sevilla">Continue reading...</a> 690 | Sevilla 691 | La Liga 692 | European club football 693 | Football 694 | Sport 695 | Mon, 05 Oct 2020 16:41:15 GMT 696 | https://www.theguardian.com/football/2020/oct/05/julen-lopeteguis-redemption-seems-complete-as-he-builds-a-new-sevilla 697 | 698 | Photograph: AFP7/Getty Images 699 | 700 | 701 | Photograph: AFP7/Getty Images 702 | 703 | Sid Lowe 704 | 2020-10-05T16:41:15Z 705 | 706 | 707 | Juve pretend it is business as usual to put heat on Napoli's Covid no-show | Nicky Bandini 708 | https://www.theguardian.com/football/2020/oct/05/juventus-napoli-covid-no-show-serie-a-covid-court 709 | <p>The result of the biggest match of the season so far may be decided in court after Napoli stayed away because of Covid</p><p>The stage was set for one of the biggest games on the Serie A calendar – Juventus against Napoli, historic rivals from opposite ends of Italy’s boot. The wealthiest team in the country, fresh from their <a href="https://www.theguardian.com/football/2020/jul/26/juventus-claim-ninth-title-in-a-row-as-ronaldo-sets-up-win-over-sampdoria">ninth consecutive title</a>, against opponents who have consistently outperformed their budget to produce some of the most entertaining and effective football on the peninsula, finishing as runners-up in three of the past five years.</p><p>The sub-plots were enticing. Could Andrea Pirlo, in his third game as a manager, answer the questions posed by his former teammate Gennaro Gattuso? Who would shine brighter between an ageing Cristiano Ronaldo and Napoli’s club-record signing Victor Osimhen?</p> <a href="https://www.theguardian.com/football/2020/oct/05/juventus-napoli-covid-no-show-serie-a-covid-court">Continue reading...</a> 710 | Serie A 711 | European club football 712 | Football 713 | Sport 714 | Juventus 715 | Mon, 05 Oct 2020 13:38:45 GMT 716 | https://www.theguardian.com/football/2020/oct/05/juventus-napoli-covid-no-show-serie-a-covid-court 717 | 718 | Photograph: Riccardo Giordano/IPA/REX/Shutterstock 719 | 720 | 721 | Photograph: Riccardo Giordano/IPA/REX/Shutterstock 722 | 723 | Nicky Bandini 724 | 2020-10-05T13:38:45Z 725 | 726 | 727 | Gladbach fly flag at Köln after special win in derby that retains sense of self | Andy Brassell 728 | https://www.theguardian.com/football/2020/oct/05/borussia-monchengladbach-fly-flag-koln-derby-bundesliga 729 | <p>There was confusion over fan attendance but what was clear was that this match still has an edge in strange times</p><p>It has become one of the Bundesliga’s iconic sights. When Borussia Mönchengladbach win, Marcus Thuram picks one of his teammates’ shirts and, wearing a beaming grin, sits it atop one of the corner flags before removing the pole from the turf and flying the makeshift flag in front of the Kurve.</p><p>After this special win, Gladbach’s first of the season and in the derby at Köln to boot, Thuram selected the shirt of Stefan Lainer, the team’s right-back and the scorer of the second goal. Performing the ritual wasn’t easy – as RP’s Jannik Sorgatz pointed out, “Lainer’s jersey was too wet and heavy” after hours of torrential rain but it didn’t dampen the visitors’ mood, and Thuram was not too deterred, as he hadn’t been through a typically industrious afternoon. Neither was the Frenchman put off by the heckles of 300 home fans, whose insults were clearer than normal in a near-empty RheinEnergie Stadion.</p> <a href="https://www.theguardian.com/football/2020/oct/05/borussia-monchengladbach-fly-flag-koln-derby-bundesliga">Continue reading...</a> 730 | Bundesliga 731 | Borussia Mönchengladbach 732 | Cologne 733 | European club football 734 | Football 735 | Sport 736 | Mon, 05 Oct 2020 10:40:25 GMT 737 | https://www.theguardian.com/football/2020/oct/05/borussia-monchengladbach-fly-flag-koln-derby-bundesliga 738 | 739 | Photograph: DeFodi Images/Getty Images 740 | 741 | 742 | Photograph: DeFodi Images/Getty Images 743 | 744 | Andy Brassell 745 | 2020-10-05T10:40:25Z 746 | 747 | 748 | Thomas Tuchel takes aim at PSG over lack of spending in transfer window 749 | https://www.theguardian.com/football/2020/oct/05/thomas-tuchel-takes-aim-at-psg-over-lack-of-spending-in-transfer-window 750 | <p>Tuchel wants reinforcements all over the pitch but sporting director Leonardo says he should be creative with what he has </p><p>By <a href="https://twitter.com/_adam_white_?lang=en">Adam White</a> and <a href="https://twitter.com/ericdevin_">Eric Devin</a> for <a href="http://www.getfootballnewsfrance.com/">Get French Football News</a></p><p>On-field implosions are nothing new for PSG. However, this week they have taken their self-destructive repertoire off the field, with Thomas Tuchel’s increasingly combative relationship with sporting director Leonardo escalating into a public spat. After the manager publicly criticised the club’s haphazard and often glacial business in the transfer market, Leonardo hit back. “We did not like these statements,” said the sporting director after PSG’s 6-1 mauling of Angers on Friday. “The club did not like them and neither did I. If he decides to stay, he needs to respect the board’s strategy.” With his position weakening and circumstances conspiring against him, Tuchel appears to be edging nearer to the exit, with Massimiliano Allegri thought to be Leonardo’s target to replace him.</p><p>Tuchel’s relationship with Leonardo had started cordially. With Leonardo acting as bad cop, the pair subtly handled the Neymar-to-Barcelona saga in the summer of 2019. Honest and forthright, Leonardo was able to manipulate the narrative in the media, allowing Tuchel and his squad to stay close to the player, maintaining the line that proceedings were out of his hands and that he really wanted Neymar to stay. The relationship has subsequently soured.</p> <a href="https://www.theguardian.com/football/2020/oct/05/thomas-tuchel-takes-aim-at-psg-over-lack-of-spending-in-transfer-window">Continue reading...</a> 751 | Paris Saint-Germain 752 | Ligue 1 753 | Football 754 | Sport 755 | European club football 756 | Brest 757 | Angers SCO 758 | Transfer window 759 | Mon, 05 Oct 2020 12:09:22 GMT 760 | https://www.theguardian.com/football/2020/oct/05/thomas-tuchel-takes-aim-at-psg-over-lack-of-spending-in-transfer-window 761 | 762 | Photograph: François Mori/AP 763 | 764 | 765 | Photograph: François Mori/AP 766 | 767 | Adam White and Eric Devin 768 | 2020-10-05T12:09:22Z 769 | 770 | 771 | Sydney FC agree on pay deal with players as A-League closes in on CBA 772 | https://www.theguardian.com/football/2020/oct/07/sydney-fc-agree-on-pay-deal-with-players-as-a-league-closes-in-on-cba 773 | <ul><li>Alex Wilkinson lauds “amicable” Sydney FC discussions</li><li>Sky Blues back in training ahead of A-League three-peat bid</li></ul><p>As the A-League clubs and Professional Footballers Australia close in on a new collective bargaining agreement, reigning champions Sydney FC have reached a pay deal with their players.</p><p>Negotiations have continued since the players’ union members rejected a proposal by clubs in September but they are expected to sign off next season’s CBA in the coming days. The clubs have instead been negotiating pay deals directly, and on Tuesday Sydney confirmed they had reached an agreement with their playing group.</p> <a href="https://www.theguardian.com/football/2020/oct/07/sydney-fc-agree-on-pay-deal-with-players-as-a-league-closes-in-on-cba">Continue reading...</a> 774 | A-League 775 | Sydney FC 776 | Football 777 | Sport 778 | Australia sport 779 | Tue, 06 Oct 2020 23:55:49 GMT 780 | https://www.theguardian.com/football/2020/oct/07/sydney-fc-agree-on-pay-deal-with-players-as-a-league-closes-in-on-cba 781 | 782 | Photograph: Ryan Pierse/Getty Images 783 | 784 | 785 | Photograph: Ryan Pierse/Getty Images 786 | 787 | Australian Associated Press 788 | 2020-10-06T23:55:49Z 789 | 790 | 791 | Is the USMNT in danger of developing into a world-class outfit? 792 | https://www.theguardian.com/football/2020/oct/01/is-the-usmnt-in-danger-of-developing-into-a-world-class-outfit 793 | <p>The US were humiliated after failing to reach the World Cup. But players of real talent are now at Europe’s biggest clubs</p><p>The most encouraging sign for the current iteration of the US men’s national team is that its best, and as a result, most high-profile stars are all aged 22 or under.</p><p>The leading light in this group, Christian Pulisic, is a player who is well on the way to becoming one of the most entertaining attacking players in the world, and more encouragement comes from the fact some of his international teammates look more likely to join him at that level than get left behind.</p> <a href="https://www.theguardian.com/football/2020/oct/01/is-the-usmnt-in-danger-of-developing-into-a-world-class-outfit">Continue reading...</a> 794 | USA 795 | Barcelona 796 | Borussia Dortmund 797 | Juventus 798 | RB Leipzig 799 | European club football 800 | Football 801 | US sports 802 | Sport 803 | Christian Pulisic 804 | Thu, 01 Oct 2020 09:00:05 GMT 805 | https://www.theguardian.com/football/2020/oct/01/is-the-usmnt-in-danger-of-developing-into-a-world-class-outfit 806 | 807 | Photograph: Soccrates Images/Getty Images 808 | 809 | 810 | Photograph: Soccrates Images/Getty Images 811 | 812 | James Nalton 813 | 2020-10-01T09:00:05Z 814 | 815 | 816 | Vinícius Júnior wrestles Real Madrid to victory while Atalanta crush Lazio 817 | https://www.theguardian.com/football/2020/sep/30/european-roundup-lukaku-internazionale-atletico-real-madrid 818 | <ul><li>Brazilian wins ball back to score winner against Valladolid</li><li>Atlético draw blank; Lukaku hits two in Inter’s 5-2 rout</li></ul><p>The <strong>Real Madrid</strong> forward Vinícius Júnior came off the bench to fire his side to a scrappy 1-0 home victory against <strong>Real Valladolid</strong> in La Liga as the champions found a way to win despite failing to sparkle.</p><p>The Brazilian, who replaced the ineffective Luka Jovic, fought to win the ball back on the edge of the area and after it bounced into his path off a Valladolid defender he kept his composure to break the deadlock in the 65th minute. Zinedine Zidane’s side, who lost Eden Hazard to injury on the day of the game and were also without Toni Kroos, again lacked fluidity in attack in their third match of the season but just about deserved the win.</p> <a href="https://www.theguardian.com/football/2020/sep/30/european-roundup-lukaku-internazionale-atletico-real-madrid">Continue reading...</a> 819 | European club football 820 | Real Madrid 821 | Benevento 822 | Internazionale 823 | Serie A 824 | Atlético Madrid 825 | Huesca 826 | La Liga 827 | Atalanta 828 | Valladolid 829 | Lazio 830 | Football 831 | Sport 832 | Thu, 01 Oct 2020 00:10:05 GMT 833 | https://www.theguardian.com/football/2020/sep/30/european-roundup-lukaku-internazionale-atletico-real-madrid 834 | 835 | Photograph: Pierre-Philippe Marcou/AFP/Getty Images 836 | 837 | 838 | Photograph: Pierre-Philippe Marcou/AFP/Getty Images 839 | 840 | Reuters 841 | 2020-10-01T00:10:05Z 842 | 843 | 844 | Arsène Wenger: ‘I try to read everything that helps me understand human beings’ 845 | https://www.theguardian.com/football/2020/oct/11/arsene-wenger-arsenal-manager-football 846 | <p>The erudite Frenchman who transformed English football takes questions from politicians, artists, readers – and José Mourinho. Introduction by <a href="https://www.theguardian.com/profile/timlewis">Tim Lewis</a></p><p>Arsène Wenger often imagines what he will say to God when he dies. In most of these exchanges, God asks Wenger to justify his time on Earth, how he gave meaning to his own life and to others. “I tried to win football matches!” Wenger will explain. God looks at him, sceptical: “That’s all?” Wenger goes on: winning matches is really hard to do. If you do your job well, you bring joy to millions, a collective euphoria and catharsis. And if you don’t… At this point Wenger snaps back to reality.</p><p>“Sometimes I feel I’m scared for having only done football in my life,” says Wenger, who is 70, on a video call from Zurich. “So, when I speak to God, it’s a bit pretentious. It’s just that if God exists and they have a test to see if you go to hell or to heaven, it might look ridiculous to only have dedicated your life to winning football games. And that’s why I came up with that idea. I feel sometimes it could feel meaningless that you dedicated your whole life to that.”</p> <a href="https://www.theguardian.com/football/2020/oct/11/arsene-wenger-arsenal-manager-football">Continue reading...</a> 847 | Arsène Wenger 848 | Arsenal 849 | Football 850 | Sport 851 | Culture 852 | Sun, 11 Oct 2020 07:00:06 GMT 853 | https://www.theguardian.com/football/2020/oct/11/arsene-wenger-arsenal-manager-football 854 | 855 | Photograph: Ed Alcock/The Observer 856 | 857 | 858 | Photograph: Ed Alcock/The Observer 859 | 860 | Guardian Staff 861 | 2020-10-11T07:00:06Z 862 | 863 | 864 | Premier League may not need the pyramid but England and Southgate surely do | Jonathan Liew 865 | https://www.theguardian.com/football/2020/oct/10/premier-league-may-not-need-the-pyramid-but-england-and-southgate-surely-do 866 | <p>Put simply: this is an England team that would simply not exist without the Football League</p><p>The foul was won just inside the Wales half by Danny Ings. Released by Southampton as a teenager for being too small, Ings came through the Bournemouth academy, making his professional debut when they were still in League Two. Ings took the free-kick quickly to Kalvin Phillips, who until this season had played all his football in the Championship with Leeds.</p><p>Phillips found Atlético Madrid’s Kieran Trippier on the right. At 30, Trippier has still played more than half his league football in the EFL, with Barnsley and Burnley. Trippier slipped the ball to Jack Grealish, who credits his three seasons with Aston Villa in the Championship for hardening him mentally and physically. Grealish’s cross found the head of Dominic Calvert-Lewin, a product of the Sheffield United academy, via a loan spell at Northampton.</p> <a href="https://www.theguardian.com/football/2020/oct/10/premier-league-may-not-need-the-pyramid-but-england-and-southgate-surely-do">Continue reading...</a> 867 | England 868 | Football 869 | Premier League 870 | Football League 871 | Championship 872 | Sport 873 | League One 874 | League Two 875 | Sat, 10 Oct 2020 07:00:29 GMT 876 | https://www.theguardian.com/football/2020/oct/10/premier-league-may-not-need-the-pyramid-but-england-and-southgate-surely-do 877 | 878 | Photograph: Xinhua/REX/Shutterstock 879 | 880 | 881 | Photograph: Xinhua/REX/Shutterstock 882 | 883 | Jonathan Liew 884 | 2020-10-10T07:00:29Z 885 | 886 | 887 | Mars beware, my World XI may lack Messi but De Bruyne makes it tick | Jonathan Wilson 888 | https://www.theguardian.com/football/blog/2020/oct/10/mars-beware-my-world-xi-may-lack-messi-but-de-bruyne-makes-it-tick 889 | <p>Picking a lineup is useful, less for who makes the cut than for what the process says about the current state of the game</p><p>The Fifa world rankings rarely fail to raise an eyebrow. Óscar Washington Tabárez is one of the world’s great coaches but are Uruguay, who scraped a 2-1 win over Chile on Thursday, really the sixth-best side in the world right now? Nobody who saw England’s notional first-choice centre-back pairing of Harry Maguire and Joe Gomez in separate action for their clubs last Sunday would feel comfortable with their ranking of fourth. Germany 14th: when do we start talking seriously about Jogi Löw? And Belgium, whom England face on Sunday, top? Even after 12 straight wins before Thursday’s draw with Ivory Coast, even as their Golden Generation lingers at the summit, how many of their side would get in an Earth XI to take on Mars?</p><p>There is a danger in posing such questions of sounding like Michael Owen, boldly insisting that no Croat would get into the England side after Steve McClaren’s team <a href="https://www.theguardian.com/football/2007/jun/04/sport.comment#comment-2092058" title="">had failed to qualify for Euro 2008</a>, twice losing to Croatia. But the exercise of picking a World XI is useful, less for the names included in the final lineup than for what the process says about the state of the game (or at least it does if you do it properly, rather than acting like Florentino Pérez in his <em>gálacticos</em> pomp and just ramming together loads of famous players).</p> <a href="https://www.theguardian.com/football/blog/2020/oct/10/mars-beware-my-world-xi-may-lack-messi-but-de-bruyne-makes-it-tick">Continue reading...</a> 890 | Football 891 | Football tactics 892 | Marcelo Bielsa 893 | Kevin De Bruyne 894 | Robert Lewandowski 895 | Bayern Munich 896 | Liverpool 897 | Sport 898 | Sat, 10 Oct 2020 19:00:44 GMT 899 | https://www.theguardian.com/football/blog/2020/oct/10/mars-beware-my-world-xi-may-lack-messi-but-de-bruyne-makes-it-tick 900 | 901 | Photograph: Getty Images 902 | 903 | 904 | Photograph: Getty Images 905 | 906 | Jonathan Wilson 907 | 2020-10-10T19:00:44Z 908 | 909 | 910 | The Fiver | Increasingly rudderless at a time of unprecedented vulnerability 911 | https://www.theguardian.com/football/2020/oct/13/the-fiver-yes-more-on-project-big-old-picture 912 | <p><a href="https://www.theguardian.com/info/2016/jan/05/the-fiver-email-sign-up">Sign up now! Sign up now! Sign up now? Sign up now</a>!</p><p>As anyone who has visited Giza will attest, English football is not the only pyramid in the world that attracts no end of unsavoury hucksters eager to capitalise on its popularity for a quick and often unscrupulously attained buck. Obviously, the famously altruistic and benevolent American charitable trusts Fenway Sports Group and the Glazer Family are not among them, as their unofficial mouthpiece Rick Parry has been eager to point out this week. Chatting to anyone who would listen on Monday, Rick insisted Project Big Picture is the gift that will keep on giving to endangered clubs outside the Premier League elite. Meanwhile, the general consensus seems to be that it looks suspiciously <a href="https://www.theguardian.com/football/2020/oct/12/project-big-picture-under-pressure-as-premier-league-clubs-fail-to-back-reform">like one that will keep on taking</a>. </p> <a href="https://www.theguardian.com/football/2020/oct/13/the-fiver-yes-more-on-project-big-old-picture">Continue reading...</a> 913 | Football 914 | Sport 915 | Tue, 13 Oct 2020 15:31:32 GMT 916 | https://www.theguardian.com/football/2020/oct/13/the-fiver-yes-more-on-project-big-old-picture 917 | 918 | Photograph: George Wood/Getty Images 919 | 920 | 921 | Photograph: George Wood/Getty Images 922 | 923 | Barry Glendenning 924 | 2020-10-13T15:31:32Z 925 | 926 | 927 | Who is the most recent Premier League footballer to own or run a pub? | The Knowledge 928 | https://www.theguardian.com/football/2020/oct/07/who-is-the-most-recent-premier-league-footballer-to-own-or-run-a-pub-knowledge 929 | <p>Plus: the shortest Premier League career and playing for three relegated teams in one season</p><ul><li><a href="mailto:knowledge@theguardian.com">Mail </a><a href="mailto:knowledge@theguardian.com">us</a> your questions or tweet <a href="https://twitter.com/theknowledge_gu">@TheKnowledge_GU</a></li></ul><p><strong>“It used to be the standard retirement plan for a player to run a pub after leaving the game. Who was the last top-flight player in England known to have done this?” </strong>wonders Ian Robson.</p><p>Well, given the modern-day footballer can’t really go near a pub without causing a “Twitter storm” and generally make a packet of cash, choosing a post-football career ordering in ale and crisps is not as tempting as it used to be. Isn’t that right, Bobby?</p> <a href="https://www.theguardian.com/football/2020/oct/07/who-is-the-most-recent-premier-league-footballer-to-own-or-run-a-pub-knowledge">Continue reading...</a> 930 | Football 931 | Sport 932 | Wed, 07 Oct 2020 08:30:33 GMT 933 | https://www.theguardian.com/football/2020/oct/07/who-is-the-most-recent-premier-league-footballer-to-own-or-run-a-pub-knowledge 934 | 935 | Photograph: Iain Buist/Iain Buist/ncjMedia Ltd 936 | 937 | 938 | Photograph: Iain Buist/Iain Buist/ncjMedia Ltd 939 | 940 | Guardian sport 941 | 2020-10-07T08:30:33Z 942 | 943 | 944 | David Squires on … anarchy in the Premier League and extinct dinosaurs 945 | https://www.theguardian.com/football/ng-interactive/2020/oct/06/david-squires-on-anarchy-in-the-premier-league-and-extinct-dinosaurs 946 | <p>Our cartoonist on epic thrashings for Liverpool and Manchester United, the soaring goal-rate and the end of Gunnersaurus</p><ul><li><a href="https://guardianprintshop.com/collections/david-squires/products/anarchy-in-the-premier-league-and-extinct-dinosaurs">Buy this cartoon in the Guardian print shop</a></li><li><a href="https://www.theguardian.com/football/series/david-squires-on">And take a look through David’s archive of cartoons</a></li></ul> <a href="https://www.theguardian.com/football/ng-interactive/2020/oct/06/david-squires-on-anarchy-in-the-premier-league-and-extinct-dinosaurs">Continue reading...</a> 947 | Football 948 | Sport 949 | Tue, 06 Oct 2020 09:33:39 GMT 950 | https://www.theguardian.com/football/ng-interactive/2020/oct/06/david-squires-on-anarchy-in-the-premier-league-and-extinct-dinosaurs 951 | 952 | Illustration: David Squires/The Guardian 953 | 954 | 955 | Illustration: David Squires/The Guardian 956 | 957 | David Squires 958 | 2020-10-06T09:33:39Z 959 | 960 | 961 | Women’s Super League: talking points from the weekend’s action 962 | https://www.theguardian.com/football/2020/oct/05/womens-super-league-talking-points-from-the-weekends-action 963 | <p>Everton look unstoppable but face competition from the two Manchester clubs – meanwhile, West Ham need to be tougher </p><p><strong>Everton keep on soaring<br></strong>I don’t know what Everton are feeding their players at their Finch Farm training base, but it is working. Like the men’s team, the women have a 100% record and are flying, with Aston Villa the latest to feel the impact in a 6-0 home defeat. The new signings are coming good: Valerie Gauvin, <a href="https://www.theguardian.com/football/2020/aug/06/a-real-coup-everton-women-sign-france-forward-valerie-gauvin">who joined from Montpellier in the summer</a>, came off the bench to score; Hayley Raso joined in January and has become an important part of the team. When I saw them beat Birmingham last week Nicoline Sørensen, another summer arrival, was also brilliant. They are <a href="https://www.theguardian.com/football/2020/sep/30/gauvin-seals-everton-win-over-birmingham-in-womens-fa-cup-semi-final">in the FA Cup final</a>, and it is a pleasure to see my old club back vying for trophies. Willie Kirk, the coach, and his club share a vision, which is to turn the club into one capable of winning the Champions League, and we’re seeing the real impact of their vision now.</p><p><strong>City start to purr after scratchy start<br></strong>Manchester City started the season unconvincingly, losing the Community Shield against Chelsea, edging Aston Villa and drawing at home against Brighton. But I’ve seen them play twice in the last week and they have certainly moved on. Last Thursday they <a href="https://www.theguardian.com/football/2020/oct/01/manchester-city-arsenal-womens-fa-cup-semi-final-match-report">knocked Arsenal out of the FA Cup</a> and the way they rolled over their opponents showed me they had found their groove, with the <a href="https://www.theguardian.com/football/live/2020/oct/04/manchester-city-v-tottenham-womens-super-league-live">performance against Tottenham</a> on Sunday confirmation of that. There were so many changes in the close season – a manager moving on after six years with a very settled squad, bringing and bedding in <a href="https://www.theguardian.com/football/2020/aug/18/manchester-city-women-sign-usa-world-cup-winner-rose-lavelle">Rose Levelle</a> and <a href="https://www.theguardian.com/football/2020/aug/10/manchester-city-women-sign-usa-world-cup-winner-sam-mewis">Sam Mewis</a>, and then getting Alex Greenwood and Lucy Bronze; it was always going to take them some time to settle. This is a different team to the one I watched in the Community Shield. For Spurs the signs were more worrying: they have conceded four in each of their last two games, first against Arsenal in the FA Cup when it was goalless in the 73ed minute, then against City when it was 1-0 after 50 minutes and 4-0 after 70. Top teams keep the pedal down; Spurs seem to switch off, and they need to stop these capitulations from becoming a habit.</p> <a href="https://www.theguardian.com/football/2020/oct/05/womens-super-league-talking-points-from-the-weekends-action">Continue reading...</a> 964 | Women's Super League 965 | Women's football 966 | Football 967 | Sport 968 | Mon, 05 Oct 2020 09:45:53 GMT 969 | https://www.theguardian.com/football/2020/oct/05/womens-super-league-talking-points-from-the-weekends-action 970 | 971 | Composite: Getty/Rex/Shutterstock 972 | 973 | 974 | Composite: Getty/Rex/Shutterstock 975 | 976 | Rachel Brown-Finnis 977 | 2020-10-05T09:45:53Z 978 | 979 | 980 | Premier League: 10 talking points from the weekend's action 981 | https://www.theguardian.com/football/blog/2020/sep/28/premier-league-10-talking-points-from-the-weekend-action 982 | <p>Another handball horror show, Calvert-Lewin is benefiting from Ancelotti effect and sentiment alone will not save Lampard</p><p>Ole Gunnar Solskjær said Manchester United had “three or four weeks to catch up to a few teams”, and how it showed. United could not get out to prevent crosses or track Brighton’s runners. Their lack of match sharpness is a consequence of their lack of a pre-season. It was interesting to hear Gareth Southgate say the players in his England squad in early September who had played in European competition until mid‑August were the fittest because they had, effectively, played all the way through. Solskjær has a different view and feels comfortable in advancing it as mitigation, essentially because it is not his fault, rather that of these unprecedented times. But the message is United cannot do the basics because their bodies will not let them. <strong>David Hytner</strong></p> <a href="https://www.theguardian.com/football/blog/2020/sep/28/premier-league-10-talking-points-from-the-weekend-action">Continue reading...</a> 983 | Premier League 984 | Football 985 | Sport 986 | Manchester United 987 | Brighton & Hove Albion 988 | Burnley 989 | Southampton 990 | Crystal Palace 991 | Everton 992 | Manchester City 993 | Leicester City 994 | Sheffield United 995 | Leeds United 996 | West Bromwich Albion 997 | Chelsea 998 | Tottenham Hotspur 999 | Newcastle United 1000 | Mon, 28 Sep 2020 07:00:06 GMT 1001 | https://www.theguardian.com/football/blog/2020/sep/28/premier-league-10-talking-points-from-the-weekend-action 1002 | 1003 | Composite: PA/Getty/CameraSport 1004 | 1005 | 1006 | Composite: PA/Getty/CameraSport 1007 | 1008 | Guardian sport 1009 | 2020-09-28T07:00:06Z 1010 | 1011 | 1012 | Golden Goal: Lakhdar Belloumi for Algeria v West Germany (1982) | Simon Burnton 1013 | https://www.theguardian.com/football/2020/sep/22/golden-goal-lakhdar-belloumi-for-algeria-v-west-germany-1982 1014 | <p>Belloumi, a great denied a move to Europe by age and violence, stunned an overconfident West Germany at the World Cup</p><p>This year the Premier League posted <a href="https://www.youtube.com/watch?v=e_l35EMxGRI">a video compilation of the fastest </a><a href="https://www.youtube.com/watch?v=e_l35EMxGRI">goals from kick-off</a>. They were all scored within seconds of the game starting, ignoring the mid-match instant post-kick-off goal, but give a taste of the genre as a whole, populated as it almost entirely is by defensive blunders and hopeful hoofs, goals that almost all rely on a convenient ricochet or two at some point in the buildup.</p><p>In 1982, against West Germany, <a href="https://www.youtube.com/watch?v=ek_IfWbtG_U">Algeria scored a goal</a> similar in its speed following a restart, but here there are no hoofs or ricochets, just 23 seconds of teamwork and precision. They produced this in the most exacting circumstances: immediately after conceding an equaliser against massively favoured European giants, in their country’s first World Cup finals fixture. “We were,” the goalscorer, Lakhdar Belloumi, later said, “the Brazilians of Africa.” And for at least half a minute in Gijón, the world saw it.</p> <a href="https://www.theguardian.com/football/2020/sep/22/golden-goal-lakhdar-belloumi-for-algeria-v-west-germany-1982">Continue reading...</a> 1015 | Algeria football team 1016 | World Cup 1017 | Football 1018 | Sport 1019 | Tue, 22 Sep 2020 11:00:12 GMT 1020 | https://www.theguardian.com/football/2020/sep/22/golden-goal-lakhdar-belloumi-for-algeria-v-west-germany-1982 1021 | 1022 | Photograph: AP 1023 | 1024 | 1025 | Photograph: AP 1026 | 1027 | Simon Burnton 1028 | 2020-09-22T11:00:12Z 1029 | 1030 | 1031 | Buy a classic sport photograph – Cantona bosses Liverpool 1032 | https://www.theguardian.com/artanddesign/2020/sep/12/buy-a-classic-sport-photograph-cantona-bosses-liverpool 1033 | <p>The latest in a Guardian Print Shop <a href="https://guardianprintshop.com/collections/the-big-sport-picture">series</a> featuring classic sports images. This week’s picture captures the joy of Leeds United beating Liverpool in a seven-goal Charity Shield thriller, on the eve of the first ever Premier League season</p><p>When Leeds United and Liverpool met in the Charity Shield in the curtain raiser for the inaugural Premier League season in 1992, Leeds were the reigning First Division champions and Liverpool, winners two years prior, were the FA Cup holders. Leeds arrived at Wembley boasting a formidable squad including the likes of Gary McAllister, John Lukic, Gordon Strachan, Gary Speed, Lee Chapman and Eric Cantona. The enigmatic Frenchman (pictured here) would guide Leeds to a 4-3 victory with a hat-trick, and weeks later would become the first player to score three in a single Premier League match. However, Leeds would ultimately lose Cantona to Manchester United in November that season – an irreconcilable loss – and limp to a 17th-place finish, only narrowly avoiding the drop; meanwhile, Liverpool would finish sixth and endure a further 27 years of domestic heartbreak before landing the big one last term. Now, these two rejuvenated titans will face one another in the league for the first time in 16 years, as the 2020/21 Premier League season gets underway.</p> <a href="https://www.theguardian.com/artanddesign/2020/sep/12/buy-a-classic-sport-photograph-cantona-bosses-liverpool">Continue reading...</a> 1034 | Sport 1035 | Photography 1036 | Art and design 1037 | Culture 1038 | Eric Cantona 1039 | Leeds United 1040 | Football 1041 | Sat, 12 Sep 2020 08:53:50 GMT 1042 | https://www.theguardian.com/artanddesign/2020/sep/12/buy-a-classic-sport-photograph-cantona-bosses-liverpool 1043 | 1044 | Photograph: Mark Leech/Offside 1045 | 1046 | 1047 | Photograph: Mark Leech/Offside 1048 | 1049 | 1050 | 2020-09-12T08:53:50Z 1051 | 1052 | 1053 | Champions League final quiz: who was voted man of the match? 1054 | https://www.theguardian.com/football/2020/aug/22/champions-league-final-quiz-man-of-the-man-award 1055 | <p>Every year, Uefa ask a group of players and managers to pick a standout performer from the final. Who has won the award?</p><p class="question__text">Who was the man of the match in the 2019 final?</p><p class="answer__text">Mo Salah </p><p class="answer__text">Jordan Henderson </p><p class="answer__text">Virgil van Dijk </p><p class="answer__text">Sadio Mané </p><p class="question__text">Who was the man of the match in the 2018 final?</p><p class="answer__text">Gareth Bale</p><p class="answer__text">Luka Modric </p><p class="answer__text">Isco</p><p class="answer__text">Loris Karius </p><p class="question__text">Who was the man of the match in the 2017 final?</p><p class="answer__text">Casemiro</p><p class="answer__text">Cristiano Ronaldo</p><p class="answer__text">Mario Mandzukic </p><p class="answer__text">Karim Benzema </p><p class="question__text">Who was the man of the match in the 2016 final?</p><p class="answer__text">Sergio Ramos</p><p class="answer__text">Toni Kroos </p><p class="answer__text">Antoine Griezmann </p><p class="answer__text">Jan Oblak </p><p class="question__text">Who was the man of the match in the 2015 final?</p><p class="answer__text">Andrés Iniesta</p><p class="answer__text">Neymar</p><p class="answer__text">Javier Mascherano </p><p class="answer__text">Luis Suárez </p><p class="question__text">Who was the man of the match in the 2014 final?</p><p class="answer__text">Cristiano Ronaldo </p><p class="answer__text">Ángel Di María </p><p class="answer__text">Gareth Bale </p><p class="answer__text">Marcelo</p><p class="question__text">Who was the man of the match in the 2013 final?</p><p class="answer__text">Thomas Müller </p><p class="answer__text">Mario Mandzukic </p><p class="answer__text">Arjen Robben</p><p class="answer__text">Ilkay Gündogan </p><p class="question__text">Who was the man of the match in the 2012 final?</p><p class="answer__text">Didier Drogba</p><p class="answer__text">Frank Lampard </p><p class="answer__text">John Terry </p><p class="answer__text">Thomas Müller </p><p class="question__text">Who was the man of the match in the 2011 final?</p><p class="answer__text">Lionel Messi</p><p class="answer__text">Xavi</p><p class="answer__text">David Villa </p><p class="answer__text">Pedro</p><p class="question__text">Who was the man of the match in the 2010 final? </p><p class="answer__text">Diego Milito</p><p class="answer__text">Wesley Sneijder </p><p class="answer__text">Javier Zanetti </p><p class="answer__text">Samuel Eto’o </p><p class="question__text">Who was the man of the match in the 2009 final?</p><p class="answer__text">Xavi </p><p class="answer__text">Thierry Henry</p><p class="answer__text">Samuel Eto'o</p><p class="answer__text">Sergio Busquets</p><p class="question__text">Who was the man of the match in the 2008 final?</p><p class="answer__text">Cristiano Ronaldo </p><p class="answer__text">Edwin van der Sar</p><p class="answer__text">Didier Drogba </p><p class="answer__text">Rio Ferdinand </p><p class="question__text">Who was the man of the match in the 2007 final? </p><p class="answer__text">Filippo Inzaghi</p><p class="answer__text">Paolo Maldini </p><p class="answer__text">Pepe Reina </p><p class="answer__text">Kaká</p><p class="question__text">Who was the man of the match in the 2006 final?</p><p class="answer__text">Sol Campbell </p><p class="answer__text">Henrik Larsson </p><p class="answer__text">Samuel Eto’o</p><p class="answer__text">Ronaldinho</p><p class="question__text">Who was the man of the match in the 2005 final?</p><p class="answer__text">Steven Gerrard</p><p class="answer__text">Hernán Crespo </p><p class="answer__text">Dietmar Hamann </p><p class="answer__text">Xabi Alonso </p><p class="question__text">Who was the man of the match in the 2004 final?</p><p class="answer__text">Paulo Ferreira </p><p class="answer__text">Deco</p><p class="answer__text">Ricardo Carvalho</p><p class="answer__text">Patrice Evra </p><p class="question__text">Who was the man of the match in the 2003 final?</p><p class="answer__text">Andriy Shevchenko </p><p class="answer__text">Edgar Davids </p><p class="answer__text">Paolo Maldini</p><p class="answer__text">Alessandro Del Piero </p><p class="question__text">Who was the man of the match in the 2002 final? </p><p class="answer__text">Raúl</p><p class="answer__text">Luís Figo</p><p class="answer__text">Michael Ballack</p><p class="answer__text">Zinédine Zidane</p><p class="score__min-score">5 and above.</p><p class="score__title">Enjoy the final on Sunday</p><p class="score__min-score">6 and above.</p><p class="score__title">Enjoy the final on Sunday</p><p class="score__min-score">7 and above.</p><p class="score__title">Enjoy the final on Sunday</p><p class="score__min-score">8 and above.</p><p class="score__title">Enjoy the final on Sunday</p><p class="score__min-score">4 and above.</p><p class="score__title">Enjoy the final on Sunday</p><p class="score__min-score">3 and above.</p><p class="score__title">Enjoy the final on Sunday</p><p class="score__min-score">2 and above.</p><p class="score__title">Enjoy the final on Sunday</p><p class="score__min-score">1 and above.</p><p class="score__title">Enjoy the final on Sunday</p><p class="score__min-score">9 and above.</p><p class="score__title">Well played. Enjoy the final on Sunday</p><p class="score__min-score">10 and above.</p><p class="score__title">Well played. Enjoy the final on Sunday</p><p class="score__min-score">11 and above.</p><p class="score__title">Well played. Enjoy the final on Sunday</p><p class="score__min-score">12 and above.</p><p class="score__title">Well played. Enjoy the final on Sunday</p><p class="score__min-score">13 and above.</p><p class="score__title">Well played. Enjoy the final on Sunday</p><p class="score__min-score">14 and above.</p><p class="score__title">Well played. Enjoy the final on Sunday</p><p class="score__min-score">15 and above.</p><p class="score__title">Well played. Enjoy the final on Sunday</p><p class="score__min-score">16 and above.</p><p class="score__title">Well played. Enjoy the final on Sunday</p><p class="score__min-score">17 and above.</p><p class="score__title">Well played. Enjoy the final on Sunday</p><p class="score__min-score">0 and above.</p><p class="score__title">Enjoy the final on Sunday</p><p class="score__min-score">18 and above.</p><p class="score__title">Well played. Enjoy the final on Sunday</p> <a href="https://www.theguardian.com/football/2020/aug/22/champions-league-final-quiz-man-of-the-man-award">Continue reading...</a> 1056 | Football 1057 | Champions League 1058 | Sport 1059 | European club football 1060 | Sat, 22 Aug 2020 09:00:22 GMT 1061 | https://www.theguardian.com/football/2020/aug/22/champions-league-final-quiz-man-of-the-man-award 1062 | 1063 | Photograph: Alex Livesey - Danehouse/Getty Images 1064 | 1065 | 1066 | Photograph: Alex Livesey - Danehouse/Getty Images 1067 | 1068 | Paul Campbell 1069 | 2020-08-22T09:00:22Z 1070 | 1071 | 1072 | Nicklas Bendtner: 'I became too fond of the lifestyle that came with the money' | Donald McRae 1073 | https://www.theguardian.com/football/2020/oct/09/nicklas-bendtner-i-became-too-fond-of-the-lifestyle-that-came-with-the-money 1074 | <p>The former Arsenal and Denmark striker on how he lost his way as a professional footballer and a person, why he does not blame Arsène Wenger and his own hopes for a management career<br></p><p>About 3am one morning in the summer of 2011, when he was still only 23 and his promising career at Arsenal had begun to slip away, Nicklas Bendtner arrived at his favourite casino in London. “I’m way too drunk to sit at a table,” Bendtner remembers. “That much I get. But roulette is a different matter. Red, black, red, black. How hard can it be?</p><p>“After 90 minutes I’ve lost £400,000. Money I don’t have. My bank account is overdrawn and I’m bankrupt if my luck doesn’t turn. I stagger into the loos and splash water on my face. Then I find a cashier and get another £50,000 of chips.”</p> <a href="https://www.theguardian.com/football/2020/oct/09/nicklas-bendtner-i-became-too-fond-of-the-lifestyle-that-came-with-the-money">Continue reading...</a> 1075 | Football 1076 | Arsenal 1077 | Denmark 1078 | Sport 1079 | Fri, 09 Oct 2020 20:00:16 GMT 1080 | https://www.theguardian.com/football/2020/oct/09/nicklas-bendtner-i-became-too-fond-of-the-lifestyle-that-came-with-the-money 1081 | 1082 | Photograph: Vegard Wivestad Grøtt/Imago/PA Images 1083 | 1084 | 1085 | Photograph: Vegard Wivestad Grøtt/Imago/PA Images 1086 | 1087 | Donald McRae 1088 | 2020-10-09T20:00:16Z 1089 | 1090 | 1091 | When fair becomes foul in the make-believe world of Ifab's chief David Elleray 1092 | https://www.theguardian.com/football/2020/oct/09/fair-can-become-foul-in-the-tin-whistle-world-of-david-elleray-referee-ifab 1093 | <p>The ruling body has a major hand in tinkering with the rules every season but the results are often to the detriment of the spectacle and sometimes the safety of its match officials</p><p>At the end of a cavernous room sits an enormous armchair. Beyond it hundreds of giant screens – each of them rolling footage back and forth in super slo-mo of professional footballers’ arms. Arms everywhere, all in dangerous proximity to the ball.</p><p>At regular intervals a stern, clipped Home Counties voice can be heard uttering the same two words over and over again. “Unnaturally bigger, unnaturally bigger, unnaturally bigger.”</p> <a href="https://www.theguardian.com/football/2020/oct/09/fair-can-become-foul-in-the-tin-whistle-world-of-david-elleray-referee-ifab">Continue reading...</a> 1094 | Referees 1095 | Football 1096 | Sport 1097 | Laws of football 1098 | Fri, 09 Oct 2020 16:00:11 GMT 1099 | https://www.theguardian.com/football/2020/oct/09/fair-can-become-foul-in-the-tin-whistle-world-of-david-elleray-referee-ifab 1100 | 1101 | Illustration: Matthew Green 1102 | 1103 | 1104 | Illustration: Matthew Green 1105 | 1106 | Max Rushden 1107 | 2020-10-09T16:00:11Z 1108 | 1109 | 1110 | Less money but lots of ideas: how the pandemic transfer window unfolded | Fabrizio Romano 1111 | https://www.theguardian.com/football/2020/oct/11/less-money-but-lots-of-ideas-how-the-pandemic-transfer-window-unfolded 1112 | <p>A unique window saw Chelsea spend heavily, Liverpool make the signing of the summer and the Carlo Ancelotti factor work well</p><p>It was the end of April and Juventus’s sporting director, Fabio Paratici, was talking about the upcoming transfer window for the first time: “We will have to be creative, imaginative.” He was absolutely right. More ideas, less money.</p><p>Five months have passed since then and we have just been through an extremely long and intense transfer window. It was unique because the circumstances had changed. There were some great ideas, although not all of them came through. It was a stop-start window, at times coming to a complete standstill, at others exhilarating. Above all, it was a window in line with the summer of a pandemic – it changed the world and therefore the transfer market.</p> <a href="https://www.theguardian.com/football/2020/oct/11/less-money-but-lots-of-ideas-how-the-pandemic-transfer-window-unfolded">Continue reading...</a> 1113 | Transfer window 1114 | Finances 1115 | Business 1116 | Football 1117 | Sport 1118 | Sun, 11 Oct 2020 07:00:06 GMT 1119 | https://www.theguardian.com/football/2020/oct/11/less-money-but-lots-of-ideas-how-the-pandemic-transfer-window-unfolded 1120 | 1121 | Photograph: Stuart MacFarlane/Arsenal FC/Getty Images 1122 | 1123 | 1124 | Photograph: Stuart MacFarlane/Arsenal FC/Getty Images 1125 | 1126 | Fabrizio Romano 1127 | 2020-10-11T07:00:06Z 1128 | 1129 | 1130 | Manchester United lack leadership and transfer PR fixes won't change that 1131 | https://www.theguardian.com/football/2020/oct/05/manchester-united-lack-leadership-transfer-pr-fixes-solskjaer-pat-head-tottenham-6-1-decline 1132 | <p>Tottenham’s 6-1 win caps a miserable decline and Solskjær’s pat on the head from Mourinho reflects manager’s lack of authority</p><p>By the time the final whistle blew at Villa Park on Sunday evening, the temptation was to laugh and shrug and write off the previous nine hours as just one of those days. </p><p>Freakishness can breed freakishness as though the forces of chaos, once out of the cage, can be very hard to recapture. <a href="https://www.theguardian.com/football/2020/oct/04/manchester-united-tottenham-premier-league-match-report">Manchester United had been hammered at home</a>! By Tottenham! <a href="https://www.theguardian.com/football/2020/oct/04/aston-villa-liverpool-premier-league-match-report">Liverpool had been battered away</a>! West Ham had won <a href="https://www.theguardian.com/football/2020/oct/04/leicester-west-ham-premier-league-match-report">a second game in a row</a>! The temptation perhaps was to repeat the lie that in the Premier League anybody can beat anybody on their day. Or, more realistically, consideration was perhaps given to the extent to which the breakdown of order this autumn has been caused by fatigue, a lack of preparation time and the absence of fans.</p> <a href="https://www.theguardian.com/football/2020/oct/05/manchester-united-lack-leadership-transfer-pr-fixes-solskjaer-pat-head-tottenham-6-1-decline">Continue reading...</a> 1133 | Manchester United 1134 | Ole Gunnar Solskjaer 1135 | Football 1136 | Sport 1137 | Mon, 05 Oct 2020 09:13:49 GMT 1138 | https://www.theguardian.com/football/2020/oct/05/manchester-united-lack-leadership-transfer-pr-fixes-solskjaer-pat-head-tottenham-6-1-decline 1139 | 1140 | Photograph: Ian Hodgson/Ian Hodgson NMC Pool 1141 | 1142 | 1143 | Photograph: Ian Hodgson/Ian Hodgson NMC Pool 1144 | 1145 | Jonathan Wilson 1146 | 2020-10-05T09:13:49Z 1147 | 1148 | 1149 | 1150 | 1151 | -------------------------------------------------------------------------------- /index.adoc: -------------------------------------------------------------------------------- 1 | = NLP and Knowledge Graphs 2 | 3 | == NLP and Knowledge Graphs 4 | 5 | In this guide we will use neosemantics and APOC NLP to create a software knowledge graph. 6 | 7 | == neosemantics (n10s) 8 | 9 | image::https://s3.amazonaws.com/dev.assets.neo4j.com/wp-content/uploads/n10s-logo.png[float="right", width="300px"] 10 | 11 | neosemantics (n10s) is a plugin that enables the use of RDF and its associated vocabularies like (OWL,RDFS,SKOS and others) in Neo4j. 12 | 13 | You can use n10s to easily build integrations with RDF-generating / RDF-consuming components. You can also use it to validate your graph against constraints expressed in SHACL or to run basic inferencing. 14 | 15 | https://neo4j.com/labs/neosemantics-rdf/[Learn more^, role="medium button"] 16 | 17 | == Wikidata SPARQL API 18 | 19 | Wikidata is a free and open knowledge base that can be read and edited by both humans and machines. 20 | It acts as central storage for the structured data of its Wikimedia sister projects including Wikipedia. 21 | 22 | image::https://s3.amazonaws.com/dev.assets.neo4j.com/wp-content/uploads/20200812/Screenshot+from+2020-08-12+11-32-46.png[] 23 | 24 | https://query.wikidata.org/#prefix%20neo%3A%20%3Cneo4j%3A%2F%2Fvoc%23%3E%20%0A%23Cats%0A%23SELECT%20%3Fitem%20%3Flabel%20%0ACONSTRUCT%20%7B%0A%3Fitem%20a%20neo%3ACategory%20%3B%20neo%3AsubCatOf%20%3FparentItem%20.%20%20%0A%20%20%3Fitem%20neo%3Aname%20%3Flabel%20.%0A%20%20%3FparentItem%20a%20neo%3ACategory%3B%20neo%3Aname%20%3FparentLabel%20.%0A%20%20%3Farticle%20a%20neo%3AWikipediaPage%3B%20neo%3Aabout%20%3Fitem%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20%0A%7D%0AWHERE%20%0A%7B%0A%20%20%3Fitem%20%28wdt%3AP31%7Cwdt%3AP279%29%2a%20wd%3AQ2429814%20.%0A%20%20%3Fitem%20wdt%3AP31%7Cwdt%3AP279%20%3FparentItem%20.%0A%20%20%3Fitem%20rdfs%3Alabel%20%3Flabel%20.%0A%20%20filter%28lang%28%3Flabel%29%20%3D%20%22en%22%29%0A%20%20%3FparentItem%20rdfs%3Alabel%20%3FparentLabel%20.%0A%20%20filter%28lang%28%3FparentLabel%29%20%3D%20%22en%22%29%0A%20%20%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%20%20%3Farticle%20schema%3Aabout%20%3Fitem%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20schema%3AinLanguage%20%22en%22%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20schema%3AisPartOf%20%3Chttps%3A%2F%2Fen.wikipedia.org%2F%3E%20.%0A%20%20%20%20%7D%0A%20%20%0A%7D[Query the API^, role="medium button"] 25 | 26 | == Configuring n10s 27 | 28 | [source, cypher] 29 | ---- 30 | include::cypher/queries.cypher[tag="constraint"] 31 | 32 | include::cypher/queries.cypher[tag="init"] 33 | 34 | include::cypher/queries.cypher[tag="mappings"] 35 | ---- 36 | 37 | == Importing Wikidata's Software Taxonomy into Neo4j 38 | 39 | .Software systems 40 | [source,cypher] 41 | ---- 42 | include::cypher/queries.cypher[tag="software-systems"] 43 | ---- 44 | 45 | .Programming languages 46 | [source,cypher] 47 | ---- 48 | include::cypher/queries.cypher[tag="programming-languages"] 49 | ---- 50 | 51 | .Data formats 52 | [source,cypher] 53 | ---- 54 | include::cypher/queries.cypher[tag="data-formats"] 55 | ---- 56 | 57 | == Querying the Software Taxonomy - Finding all children 58 | 59 | [source, cypher] 60 | ---- 61 | include::cypher/queries.cypher[tag="version-control"] 62 | ---- 63 | 64 | == Querying the Software Taxonomy - Finding siblings 65 | 66 | [source,cypher] 67 | ---- 68 | MATCH path = (:Category {name: "Neo4j"})-[:SUB_CAT_OF*]->(root)<-[:SUB_CAT_OF]-(sibling) 69 | WHERE not((root)-[:SUB_CAT_OF]->()) 70 | RETURN path 71 | LIMIT 50; 72 | ---- 73 | 74 | == dev.to 75 | 76 | image::https://thepracticaldev.s3.amazonaws.com/i/6hqmcjaxbgbon8ydw93z.png[] 77 | 78 | link:https://dev.to[dev.to^, role="medium button"] 79 | 80 | == Importing dev.to articles 81 | 82 | We're going to some dev.to articles into Neo4j. 83 | https://github.com/mneedham/nlp-knowledge-graph/blob/master/import/articles.csv[`articles.csv`^] contains some blog posts about popular tech topics: 84 | 85 | [source,cypher] 86 | ---- 87 | include::cypher/queries.cypher[tag="dev-to-articles"] 88 | ---- 89 | 90 | == Importing dev.to articles 91 | 92 | We're going to use the `apoc.load.html` procedure to extract the body and title from each of these articles. 93 | We'll wrap the call to `apoc.load.html` with a call to `apoc.periodic.iterate` so that we can process the articles concurrently: 94 | 95 | [source, cypher] 96 | ---- 97 | include::cypher/queries.cypher[tag="dev-to-import"] 98 | ---- 99 | 100 | == Querying dev.to articles 101 | 102 | [source,cypher] 103 | ---- 104 | MATCH (a:Article) 105 | RETURN a.uri, a.title, a.body, a.datetime 106 | ORDER BY a.datetime DESC; 107 | ---- 108 | 109 | == Entity extraction with APOC NLP 110 | 111 | APOC is Neo4j's standard utility library. 112 | It includes over 450 standard procedures, providing functionality for utilities, conversions, graph updates, and more. 113 | 114 | It has procedures that wrap the Natural Language Processing APIs for the major cloud providers, AWS, GCP, and Azure. 115 | 116 | image::https://s3.amazonaws.com/dev.assets.neo4j.com/wp-content/uploads/20200812/apoc_route3_colour.jpg[width="400px"] 117 | 118 | link:https://neo4j.com/docs/labs/apoc/current/nlp/gcp/[APOC NLP - GCP^, role="medium button"] 119 | 120 | == Specifying credentials 121 | 122 | [source,cypher] 123 | ---- 124 | include::cypher/queries.cypher[tag="set-key"] 125 | ---- 126 | 127 | == Connecting dev.to and the Software Taxonomy 128 | 129 | [source,cypher] 130 | ---- 131 | include::cypher/queries.cypher[tag="nlp-import"] 132 | ---- 133 | 134 | == Querying the Knowledge Graph - Semantic Search 135 | 136 | We can write a query that starts from a top level category and finds all the articles attached to the underlying taxonomy. 137 | The `n10s.inference.nodesInCategory` procedure automates this for us, as shown below: 138 | 139 | [source,cypher] 140 | ---- 141 | include::cypher/queries.cypher[tag="semantic-search"] 142 | ---- 143 | 144 | == Querying the Knowledge Graph - Similar articles 145 | 146 | [source, cypher] 147 | ---- 148 | include::cypher/queries.cypher[tag="similar-articles-1"] 149 | ---- 150 | 151 | == Querying the Knowledge Graph - Similar articles 152 | 153 | [source, cypher] 154 | ---- 155 | include::cypher/queries.cypher[tag="similar-articles-2"] 156 | ---- 157 | 158 | == Adding a custom ontology 159 | 160 | We're now going to add a custom ontology of the GRANDstack. 161 | 162 | [source, cypher] 163 | ---- 164 | include::cypher/queries.cypher[tag="custom-ontology-init"] 165 | ---- 166 | 167 | [source, cypher] 168 | ---- 169 | include::cypher/queries.cypher[tag="custom-ontology-preview"] 170 | ---- 171 | 172 | [source, cypher] 173 | ---- 174 | include::cypher/queries.cypher[tag="custom-ontology-import"] 175 | ---- 176 | 177 | 178 | == Querying the Knowledge Graph - Similar articles 179 | 180 | And now if we try our similarity query again, we'll see articles from other tools in the GRANDstack 181 | 182 | [source, cypher] 183 | ---- 184 | MATCH (a:Article {uri: "https://dev.to/qainsights/performance-testing-neo4j-database-using-bolt-protocol-in-apache-jmeter-1oa9"}), 185 | entityPath = (a)-[:HAS_ENTITY]->(wiki)-[:ABOUT]->(cat), 186 | path = (cat)-[:SUB_CAT_OF]->(parent)<-[:SUB_CAT_OF]-(otherCat), 187 | otherEntityPath = (otherCat)<-[:ABOUT]-(otherWiki)<-[:HAS_ENTITY]-(other) 188 | RETURN other.title, other.uri, 189 | [(other)-[:HAS_ENTITY]->()-[:ABOUT]->(entity) | entity.name] AS otherCategories, 190 | collect([node in nodes(path) | node.name]) AS pathToOther; 191 | ---- 192 | -------------------------------------------------------------------------------- /knowledge-graphs-nodes2020.adoc: -------------------------------------------------------------------------------- 1 | = NLP and Knowledge Graphs 2020 2 | 3 | == NLP and Knowledge Graphs 2020 4 | 5 | In this guide we will use neosemantics and APOC NLP to create a sports knowledge graph. 6 | 7 | == neosemantics (n10s) 8 | 9 | image::https://s3.amazonaws.com/dev.assets.neo4j.com/wp-content/uploads/n10s-logo.png[float="right", width="300px"] 10 | 11 | neosemantics (n10s) is a plugin that enables the use of RDF and its associated vocabularies like (OWL,RDFS,SKOS and others) in Neo4j. 12 | 13 | You can use n10s to easily build integrations with RDF-generating / RDF-consuming components. You can also use it to validate your graph against constraints expressed in SHACL or to run basic inferencing. 14 | 15 | https://neo4j.com/labs/neosemantics-rdf/[Learn more^, role="medium button"] 16 | 17 | == Wikidata SPARQL API 18 | 19 | Wikidata is a free and open knowledge base that can be read and edited by both humans and machines. 20 | It acts as central storage for the structured data of its Wikimedia sister projects including Wikipedia. 21 | 22 | image::https://s3.amazonaws.com/dev.assets.neo4j.com/wp-content/uploads/20200812/Screenshot+from+2020-08-12+11-32-46.png[] 23 | 24 | https://query.wikidata.org/#prefix%20neo%3A%20%3Cneo4j%3A%2F%2Fvoc%23%3E%20%0ACONSTRUCT%20%7B%0A%20%20%3Fitem%20neo%3Aname%20%3Flabel%3B%0A%20%20%20%20%20%20%20%20neo%3Apart_of%20%3Fclub%3B%0A%20%20%20%20%20%20%20%20a%20neo%3AHuman.%0A%20%20%3Farticle%20a%20neo%3AWikipediaPage%3B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20neo%3Aabout%20%3Fitem%20%3B%20%20%20.%0A%20%20%3Fclub%20a%20neo%3AClub%20%3B%20%0A%20%20%20%20%20%20%20%20%20%20neo%3Aname%20%3FclubName%20%3B%0A%20%20%20%20%20%20%20%20%20%20neo%3Apart_of%20%3Fleague%20.%0A%20%20%3Fleague%20a%20neo%3ALeague%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20neo%3Aname%20%3FleagueName%20.%0A%20%20%0A%20%20%3FclubArticle%20a%20neo%3AWikipediaPage%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20neo%3Aabout%20%3Fclub%20.%20%20%20%20%20%20%0A%7D%0AWHERE%20%0A%7B%0A%20%20%3Fclub%20wdt%3AP118%20wd%3AQ324867%2C%20%3Fleague%20.%0A%20%20%0A%20%20%3Fitem%20wdt%3AP106%20wd%3AQ937857%20%3B%20wdt%3AP569%20%3Fdob%20.%0A%20%20FILTER%28xsd%3Adate%28%3Fdob%29%20%3E%3D%20%221970-01-01%22%5E%5Exsd%3Adate%20%29%0A%20%20%3Fitem%20wdt%3AP54%20%3Fclub%20.%0A%20%20%0A%20%20%0A%20%20%3Fitem%20rdfs%3Alabel%20%3Flabel%20.%0A%20%20filter%28lang%28%3Flabel%29%20%3D%20%22en%22%29%0A%20%20%0A%20%20%3Fclub%20rdfs%3Alabel%20%3FclubName%20.%0A%20%20filter%28lang%28%3FclubName%29%20%3D%20%22en%22%29%0A%20%20%0A%20%20%3Fleague%20rdfs%3Alabel%20%3FleagueName%20.%0A%20%20filter%28lang%28%3FleagueName%29%20%3D%20%22en%22%29%0A%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%20%20%3Farticle%20schema%3Aabout%20%3Fitem%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20schema%3AinLanguage%20%22en%22%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20schema%3AisPartOf%20%3Chttps%3A%2F%2Fen.wikipedia.org%2F%3E%20.%0A%20%20%7D%0A%20%20%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%20%20%3FclubArticle%20schema%3Aabout%20%3Fclub%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20schema%3AinLanguage%20%22en%22%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20schema%3AisPartOf%20%3Chttps%3A%2F%2Fen.wikipedia.org%2F%3E%20.%20%20%20%0A%20%20%20%20%7D%0A%20%20%7D%20[Query the API^, role="medium button"] 25 | 26 | == Configuring n10s 27 | 28 | [source, cypher] 29 | ---- 30 | CREATE CONSTRAINT n10s_unique_uri ON (r:Resource) ASSERT r.uri IS UNIQUE; 31 | 32 | CALL n10s.graphconfig.init({handleVocabUris: "MAP"}); 33 | 34 | CALL n10s.nsprefixes.add('neo','neo4j://voc#'); 35 | CALL n10s.mapping.add("neo4j://voc#about","ABOUT"); 36 | CALL n10s.mapping.add("neo4j://voc#part_of","PART_OF"); 37 | ---- 38 | 39 | == Importing Wikidata's Sports Taxonomy into Neo4j 40 | 41 | .Players 42 | [source,cypher] 43 | ---- 44 | UNWIND ["Q324867","Q9448","Q15804"] as leagueId with leagueId 45 | CALL n10s.rdf.import.fetch( 46 | 'https://query.wikidata.org/sparql?query=prefix%20neo%3A%20%3Cneo4j%3A%2F%2Fvoc%23%3E%20%0ACONSTRUCT%20%7B%0A%20%20%3Fitem%20neo%3Aname%20%3Flabel%3B%0A%20%20%20%20%20%20%20%20neo%3Apart_of%20%3Fclub%3B%0A%20%20%20%20%20%20%20%20a%20neo%3AHuman.%0A%20%20%3Farticle%20a%20neo%3AWikipediaPage%3B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20neo%3Aabout%20%3Fitem%20%3B%20%20%20.%0A%20%20%3Fclub%20a%20neo%3AClub%20%3B%20%0A%20%20%20%20%20%20%20%20%20%20neo%3Aname%20%3FclubName%20%3B%0A%20%20%20%20%20%20%20%20%20%20neo%3Apart_of%20%3Fleague%20.%0A%20%20%3Fleague%20a%20neo%3ALeague%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20neo%3Aname%20%3FleagueName%20.%0A%20%20%0A%20%20%3FclubArticle%20a%20neo%3AWikipediaPage%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20neo%3Aabout%20%3Fclub%20.%20%20%20%20%20%20%0A%7D%0AWHERE%20%0A%7B%0A%20%20%3Fclub%20wdt%3AP118%20wd%3A' + leagueId + '%2C%20%3Fleague%20.%0A%20%20%0A%20%20%3Fitem%20wdt%3AP106%20wd%3AQ937857%20%3B%20wdt%3AP569%20%3Fdob%20.%0A%20%20FILTER(xsd%3Adate(%3Fdob)%20%3E%3D%20%221970-01-01%22%5E%5Exsd%3Adate%20)%0A%20%20%3Fitem%20wdt%3AP54%20%3Fclub%20.%0A%20%20%0A%20%20%0A%20%20%3Fitem%20rdfs%3Alabel%20%3Flabel%20.%0A%20%20filter(lang(%3Flabel)%20%3D%20%22en%22)%0A%20%20%0A%20%20%3Fclub%20rdfs%3Alabel%20%3FclubName%20.%0A%20%20filter(lang(%3FclubName)%20%3D%20%22en%22)%0A%20%20%0A%20%20%3Fleague%20rdfs%3Alabel%20%3FleagueName%20.%0A%20%20filter(lang(%3FleagueName)%20%3D%20%22en%22)%0A%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%20%20%3Farticle%20schema%3Aabout%20%3Fitem%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20schema%3AinLanguage%20%22en%22%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20schema%3AisPartOf%20%3Chttps%3A%2F%2Fen.wikipedia.org%2F%3E%20.%0A%20%20%7D%0A%20%20%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%20%20%3FclubArticle%20schema%3Aabout%20%3Fclub%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20schema%3AinLanguage%20%22en%22%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20schema%3AisPartOf%20%3Chttps%3A%2F%2Fen.wikipedia.org%2F%3E%20.%20%20%20%0A%20%20%20%20%7D%0A%20%20%7D%20', 47 | 'Turtle' , 48 | { headerParams: { Accept: "application/x-turtle" } } 49 | ) yield terminationStatus, triplesLoaded, triplesParsed, namespaces, extraInfo, callParams 50 | return leagueId, terminationStatus, triplesLoaded, triplesParsed, namespaces, extraInfo, callParams 51 | ---- 52 | 53 | .Leagues 54 | [source,cypher] 55 | ---- 56 | CALL n10s.rdf.import.fetch("https://query.wikidata.org/sparql?query=prefix%20neo%3A%20%3Cneo4j%3A%2F%2Fvoc%23%3E%20%0ACONSTRUCT%20%7B%0A%20%20%3Fleague%20a%20neo%3ALeague%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20neo%3Aname%20%3FleagueName%20.%0A%20%20%0A%20%20%3FleagueArticle%20a%20neo%3AWikipediaPage%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20neo%3Aabout%20%3Fleague%20.%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%7D%0AWHERE%20%0A%7B%0A%20%20%3Fclub%20wdt%3AP118%20%3Fleague%20.%0A%20%0A%20%20FILTER%20(%3Fleague%20IN%20(wd%3AQ324867%2C%20wd%3AQ9448%2C%20wd%3AQ15804%20)%20)%20%20%0A%20%20%0A%20%20%3Fleague%20rdfs%3Alabel%20%3FleagueName%20.%0A%20%20filter(lang(%3FleagueName)%20%3D%20%22en%22)%0A%0A%20%20OPTIONAL%20%7B%20%20%20%20%0A%20%20%20%20%20%20%3FleagueArticle%20schema%3Aabout%20%3Fleague%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20schema%3AinLanguage%20%22en%22%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20schema%3AisPartOf%20%3Chttps%3A%2F%2Fen.wikipedia.org%2F%3E%20.%20%20%20%20%0A%20%20%20%20%7D%0A%20%20%7D", 'Turtle' , { headerParams: { Accept: "application/x-turtle" } }) 57 | ---- 58 | 59 | .Managers 60 | [source,cypher] 61 | ---- 62 | CALL n10s.rdf.import.fetch("https://query.wikidata.org/sparql?query=prefix%20neo%3A%20%3Cneo4j%3A%2F%2Fvoc%23%3E%20%0ACONSTRUCT%20%7B%0A%20%20%3Fitem%20neo%3Aname%20%3Flabel%3B%0A%20%20%20%20%20%20%20%20neo%3Apart_of%20%3Fclub%3B%0A%20%20%20%20%20%20%20%20a%20neo%3AHuman.%0A%20%20%3Farticle%20a%20neo%3AWikipediaPage%3B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20neo%3Aabout%20%3Fitem%20%3B%20%20%20.%0A%20%20%3Fclub%20a%20neo%3AClub%20%3B%20%0A%20%20%20%20%20%20%20%20%20%20neo%3Aname%20%3FclubName%20%3B%0A%20%20%20%20%20%20%20%20%20%20neo%3Apart_of%20%3Fleague%20.%0A%20%20%3Fleague%20a%20neo%3ALeague%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20neo%3Aname%20%3FleagueName%20.%0A%20%20%0A%20%20%3FclubArticle%20a%20neo%3AWikipediaPage%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20neo%3Aabout%20%3Fclub%20.%20%20%20%20%20%20%20%20%20%0A%7D%0AWHERE%20%0A%7B%0A%20%20%3Fitem%20wdt%3AP106%20wd%3AQ628099%20.%0A%20%20%3Fitem%20wdt%3AP6087%20%3Fclub%20.%0A%20%20%3Fclub%20wdt%3AP118%20%3Fleague%20.%0A%20%20%0A%20%20FILTER%20(%3Fleague%20IN%20(wd%3AQ324867%2C%20wd%3AQ9448%2C%20wd%3AQ15804%20)%20)%20%20%0A%0A%20%20%0A%20%20%3Fitem%20rdfs%3Alabel%20%3Flabel%20.%0A%20%20filter(lang(%3Flabel)%20%3D%20%22en%22)%0A%20%20%0A%20%20%3Fclub%20rdfs%3Alabel%20%3FclubName%20.%0A%20%20filter(lang(%3FclubName)%20%3D%20%22en%22)%0A%20%20%0A%20%20%3Fleague%20rdfs%3Alabel%20%3FleagueName%20.%0A%20%20filter(lang(%3FleagueName)%20%3D%20%22en%22)%0A%0A%20%20OPTIONAL%20%7B%0A%20%20%20%20%20%20%3Farticle%20schema%3Aabout%20%3Fitem%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20schema%3AinLanguage%20%22en%22%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20schema%3AisPartOf%20%3Chttps%3A%2F%2Fen.wikipedia.org%2F%3E%20.%0A%20%20%20%20%0A%20%20%20%20%20%20%3FclubArticle%20schema%3Aabout%20%3Fclub%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20schema%3AinLanguage%20%22en%22%20%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20schema%3AisPartOf%20%3Chttps%3A%2F%2Fen.wikipedia.org%2F%3E%20.%0A%20%20%20%20%7D%0A%20%20%7D", 'Turtle' , { headerParams: { Accept: "application/x-turtle" } }); 63 | ---- 64 | 65 | == Querying the Software Taxonomy - Finding all children 66 | 67 | [source, cypher] 68 | ---- 69 | MATCH path = (c:Resource {name: "Premier League"})<-[:PART_OF*]-(child) 70 | RETURN path 71 | LIMIT 25; 72 | ---- 73 | 74 | == Querying the Software Taxonomy - Finding siblings 75 | 76 | [source,cypher] 77 | ---- 78 | MATCH path = (:Resource {name: "Manchester United F.C."})-[:PART_OF*]->(root)<-[:PART_OF]-(sibling) 79 | WHERE not((root)-[:PART_OF]->()) 80 | RETURN path 81 | LIMIT 50; 82 | ---- 83 | 84 | == Guardian Football 85 | 86 | image::https://dist.neo4j.com/wp-content/uploads/20201012052039/Screenshot-from-2020-10-12-13-20-27.png[] 87 | 88 | link:https://www.theguardian.com/football[Guardian Football^, role="medium button"] 89 | 90 | == Importing Guardian Football articles 91 | 92 | We're going to some articles from the Guardian football section into Neo4j. 93 | We can access an RSS feed of the articles are https://www.theguardian.com/football/rss 94 | 95 | [source,cypher] 96 | ---- 97 | CALL apoc.load.xml('https://www.theguardian.com/football/rss','rss/channel/item') 98 | YIELD value 99 | WITH value WHERE value._type = 'item' 100 | RETURN value AS c; 101 | ---- 102 | 103 | == Importing Guardian articles 104 | 105 | We're going to use the `apoc.load.xml` procedure to extract the body and title from each of these articles. 106 | We'll wrap the call to `apoc.load.xml` with a call to `apoc.periodic.iterate` so that we can process the articles concurrently: 107 | 108 | [source,cypher] 109 | ---- 110 | CREATE CONSTRAINT on (c:Category) 111 | ASSERT c.name is UNIQUE; 112 | 113 | CREATE CONSTRAINT on (a:Article) 114 | ASSERT a.uri is UNIQUE; 115 | ---- 116 | 117 | Import this static feed for predictable results: https://raw.githubusercontent.com/neo4j-examples/nlp-knowledge-graph/master/import/guardian.football.rss.xml 118 | 119 | [source, cypher] 120 | ---- 121 | CALL apoc.periodic.iterate( 122 | "CALL apoc.load.xml('https://www.theguardian.com/football/rss','rss/channel/item') 123 | YIELD value 124 | WITH value WHERE value._type = 'item' 125 | RETURN value AS c", 126 | "WITH c, [i in c._children where i._type = 'title' | i][0]._text AS title, 127 | [i in c._children where i._type = 'link' | i][0]._text AS link, 128 | [i in c._children where i._type = 'description' | i][0]._text AS description, 129 | [i in c._children where i._type = 'date' | i][0]._text AS date, 130 | [cat in [i in c._children where i._type = 'category' | i] | cat._text] AS categories 131 | MERGE (a:Article {uri: link}) 132 | SET a.body = apoc.text.regreplace(description, '<[^>]*>', ' ') , a.title = title, a.datetime = datetime(date) 133 | FOREACH(c in categories | MERGE (category:Category {name: c}) MERGE (a)-[:IN_CATEGORY]->(category) )", 134 | {batchSize: 5, parallel: false} 135 | ) 136 | YIELD batches, total, timeTaken, committedOperations 137 | RETURN batches, total, timeTaken, committedOperations; 138 | ---- 139 | 140 | == Querying articles 141 | 142 | [source,cypher] 143 | ---- 144 | MATCH (a:Article) 145 | RETURN a.uri, a.title, a.body, a.datetime 146 | ORDER BY a.datetime DESC; 147 | ---- 148 | 149 | [source,cypher] 150 | ---- 151 | MATCH (n:Article) 152 | RETURN n.uri, n.title, 153 | [(n)-[:IN_CATEGORY]->(c) | c.name] AS categories; 154 | ---- 155 | 156 | == Entity extraction with APOC NLP 157 | 158 | APOC is Neo4j's standard utility library. 159 | It includes over 450 standard procedures, providing functionality for utilities, conversions, graph updates, and more. 160 | 161 | It has procedures that wrap the Natural Language Processing APIs for the major cloud providers, AWS, GCP, and Azure. 162 | 163 | image::https://s3.amazonaws.com/dev.assets.neo4j.com/wp-content/uploads/20200812/apoc_route3_colour.jpg[width="400px"] 164 | 165 | link:https://neo4j.com/docs/labs/apoc/current/nlp/gcp/[APOC NLP - GCP^, role="medium button"] 166 | 167 | == Specifying credentials 168 | 169 | [source,cypher] 170 | ---- 171 | :params key => ("") 172 | ---- 173 | 174 | == Connecting sports articles and the Sports Taxonomy 175 | 176 | [source,cypher] 177 | ---- 178 | CALL apoc.periodic.iterate( 179 | "MATCH (a:Article) 180 | WHERE not(exists(a.processed)) 181 | RETURN a", 182 | "CALL apoc.nlp.gcp.entities.stream([item in $_batch | item.a], { 183 | nodeProperty: 'body', 184 | key: $key 185 | }) 186 | YIELD node, value 187 | SET node.processed = true 188 | WITH node, value 189 | UNWIND value.entities AS entity 190 | WITH entity, node 191 | WHERE not(entity.metadata.wikipedia_url is null) 192 | WITH node, entity.metadata.wikipedia_url AS uri 193 | MERGE (page:Resource {uri: 'https://en.wikipedia.org/wiki/' + apoc.text.urlencode(n10s.rdf.getIRILocalName(uri))}) 194 | SET page:WikipediaPage 195 | MERGE (node)-[:HAS_ENTITY]->(page)", 196 | {batchMode: "BATCH_SINGLE", batchSize: 10, params: {key: $key}}); 197 | ---- 198 | 199 | == Removing redundant structure 200 | 201 | [source, cypher] 202 | ---- 203 | MATCH (a:Article)-[:HAS_ENTITY]->()-[:ABOUT]->(category)-[:PART_OF*]->(parent), 204 | (a)-[parentEntity:HAS_ENTITY]->()-[:ABOUT]->(parent) 205 | DELETE parentEntity; 206 | ---- 207 | 208 | == Querying the Knowlege Graph - Basic Search 209 | 210 | [source,cypher] 211 | ---- 212 | MATCH (n:Article) 213 | RETURN n.uri, n.title, 214 | [(n)-[:IN_CATEGORY]->(c) | c.name] AS categories, 215 | [(n)-[:HAS_ENTITY]->(e) | apoc.text.urldecode(n10s.rdf.getIRILocalName(e.uri))] AS entities; 216 | ---- 217 | 218 | == Querying the Knowledge Graph - Semantic Search 219 | 220 | We can write a query that starts from a top level category and finds all the articles attached to the underlying taxonomy. 221 | The `n10s.inference.nodesInCategory` procedure automates this for us, as shown below: 222 | 223 | [source,cypher] 224 | ---- 225 | MATCH (c:Resource { name : "Real Madrid CF" }) 226 | CALL n10s.inference.nodesInCategory(c, { 227 | inCatRel: "ABOUT", 228 | subCatRel: "PART_OF" 229 | }) 230 | YIELD node 231 | MATCH (node)<-[:HAS_ENTITY]-(article) 232 | RETURN article.uri AS uri, article.title AS title, article.datetime AS date, 233 | collect([ p in (node)-[:ABOUT]->() | nodes(p)[-1].name][0]) as connectingTopics, 234 | [ p in (article)-[:HAS_ENTITY]->()-[:ABOUT]->() | nodes(p)[-1].name ] as allTopics 235 | ORDER BY date DESC 236 | ---- 237 | 238 | == Querying the Knowledge Graph - Similar articles 239 | 240 | [source, cypher] 241 | ---- 242 | MATCH (a:Article {uri: "https://www.theguardian.com/football/2020/oct/14/weston-mckinnie-juventus-covid-19-cristiano-ronaldo-coronavirus"}), 243 | path = (a)-[:HAS_ENTITY]->(wiki)-[:ABOUT]->(cat), 244 | otherPath = (wiki)<-[:HAS_ENTITY]-(other) 245 | return path, otherPath; 246 | ---- 247 | 248 | == Querying the Knowledge Graph - Similar articles 249 | 250 | We are exploring the `:PART_OF` hierarchy up to two levels deep `-[:PART_OF*..2]-` but we are excluding top level nodes `none(x in nodes(path) where x:League)` as they are too "noisy" 251 | [source, cypher] 252 | ---- 253 | MATCH (a:Article {uri: "https://www.theguardian.com/football/2020/oct/14/weston-mckinnie-juventus-covid-19-cristiano-ronaldo-coronavirus"}), 254 | entityPath = (a)-[:HAS_ENTITY]->(wiki)-[:ABOUT]->(cat), 255 | path = (cat)-[:PART_OF*..2]->(parent)<-[:PART_OF*..2]-(otherCat), 256 | otherEntityPath = (otherCat)<-[:ABOUT]-(otherWiki)<-[:HAS_ENTITY]-(other) 257 | WHERE other <> a and none(x in nodes(path) where x:League) 258 | RETURN [(a)-[:HAS_ENTITY]->()-[:ABOUT]->(entity) | entity.name] AS articlesEntities, other.title as similarArticle, other.uri, 259 | [(other)-[:HAS_ENTITY]->()-[:ABOUT]->(entity) | entity.name] AS similarArticleEntities, 260 | count(path) as weight, 261 | collect(substring(reduce(res = "", node in nodes(path) | res + "--(" + node.name + ")"),2)) AS explanation 262 | ORDER by weight DESC; 263 | ---- 264 | 265 | == Querying the Knowledge Graph - Similar articles 266 | 267 | For other articles we get no similarities at all. 268 | This one in particular (https://www.theguardian.com/football/ng-interactive/2020/oct/06/david-squires-on-anarchy-in-the-premier-league-and-extinct-dinosaurs) is about Manchester United and Liverpool FC 269 | 270 | [source, cypher] 271 | ---- 272 | MATCH (a:Article {uri: "https://www.theguardian.com/football/ng-interactive/2020/oct/06/david-squires-on-anarchy-in-the-premier-league-and-extinct-dinosaurs"}), 273 | entityPath = (a)-[:HAS_ENTITY]->(wiki)-[:ABOUT]->(cat), 274 | path = (cat)-[:PART_OF*..2]->(parent)<-[:PART_OF*..2]-(otherCat), 275 | otherEntityPath = (otherCat)<-[:ABOUT]-(otherWiki)<-[:HAS_ENTITY]-(other) 276 | WHERE other <> a and none(x in nodes(path) where x:League) 277 | RETURN [(a)-[:HAS_ENTITY]->()-[:ABOUT]->(entity) | entity.name] AS articlesEntities, 278 | other.title as similarArticle, 279 | other.uri, 280 | [(other)-[:HAS_ENTITY]->()-[:ABOUT]->(entity) | entity.name] AS similarArticleEntities, 281 | count(path) as weight, 282 | collect(substring(reduce(res = "", node in nodes(path) | res + "--(" + node.name + ")"),2)) AS explanation 283 | ORDER by weight DESC; 284 | ---- 285 | 286 | == Adding a custom ontology 287 | 288 | We're now going to add a custom ontology of football rivalries. 289 | 290 | [source, cypher] 291 | ---- 292 | CALL n10s.nsprefixes.add('skos','http://www.w3.org/2004/02/skos/core#'); 293 | CALL n10s.nsprefixes.add('rdfs','http://www.w3.org/2000/01/rdf-schema#'); 294 | CALL n10s.mapping.add("http://www.w3.org/2004/02/skos/core#broader","PART_OF"); 295 | CALL n10s.mapping.add("http://www.w3.org/2000/01/rdf-schema#label","name"); 296 | CALL n10s.mapping.add("http://www.w3.org/2004/02/skos/core#Concept","Concept"); 297 | ---- 298 | 299 | [source, cypher] 300 | ---- 301 | call n10s.rdf.preview.fetch("http://www.nsmntx.org/2020/10/fo-riv",'Turtle') 302 | ---- 303 | 304 | [source, cypher] 305 | ---- 306 | call n10s.rdf.import.fetch("http://www.nsmntx.org/2020/10/fo-riv",'Turtle') 307 | YIELD terminationStatus, triplesLoaded, triplesParsed, namespaces, callParams 308 | RETURN terminationStatus, triplesLoaded, triplesParsed, namespaces, callParams; 309 | ---- 310 | 311 | 312 | == Querying the Knowledge Graph - Similar articles 313 | 314 | And now if we try our similarity query again with the article that returned no similar ones, we'll see articles popping up based on the relationships defined in the football rivalry ontology. 315 | 316 | [source, cypher] 317 | ---- 318 | MATCH (a:Article {uri: "https://www.theguardian.com/football/ng-interactive/2020/oct/06/david-squires-on-anarchy-in-the-premier-league-and-extinct-dinosaurs"}), 319 | entityPath = (a)-[:HAS_ENTITY]->(wiki)-[:ABOUT]->(cat), 320 | path = (cat)-[:PART_OF*0..2]->(parent)<-[:PART_OF*0..2]-(otherCat), 321 | otherEntityPath = (otherCat)<-[:ABOUT]-(otherWiki)<-[:HAS_ENTITY]-(other) 322 | WHERE other <> a and none(x in nodes(path) where x:League) 323 | RETURN [(a)-[:HAS_ENTITY]->()-[:ABOUT]->(entity) | entity.name] AS articlesEntities, 324 | other.title as similarArticle, 325 | other.uri, 326 | [(other)-[:HAS_ENTITY]->()-[:ABOUT]->(entity) | entity.name] AS similarArticleEntities, 327 | count(path) as weight, 328 | collect(substring(reduce(res = "", node in nodes(path) | res + "--(" + node.name + ")"),2)) AS explanation 329 | ORDER by weight DESC; 330 | ---- 331 | 332 | Some of the articles ranking at the top are connected to the initial article via the `Team Rivalry`, which isn't a good measure of similarity. 333 | Let's fix that. 334 | 335 | == Querying the Knowledge Graph - Similar articles 336 | 337 | Let's remove any paths that contain the `Concept` label, which will sort out that problem. 338 | 339 | [source, cypher] 340 | ---- 341 | MATCH (a:Article {uri: "https://www.theguardian.com/football/ng-interactive/2020/oct/06/david-squires-on-anarchy-in-the-premier-league-and-extinct-dinosaurs"}), 342 | entityPath = (a)-[:HAS_ENTITY]->(wiki)-[:ABOUT]->(cat), 343 | path = (cat)-[:PART_OF*0..2]->(parent)<-[:PART_OF*0..2]-(otherCat), 344 | otherEntityPath = (otherCat)<-[:ABOUT]-(otherWiki)<-[:HAS_ENTITY]-(other) 345 | WHERE other <> a and none(x in nodes(path) where x:League OR x:Concept) 346 | RETURN [(a)-[:HAS_ENTITY]->()-[:ABOUT]->(entity) | entity.name] AS articlesEntities, 347 | other.title as similarArticle, 348 | other.uri, 349 | [(other)-[:HAS_ENTITY]->()-[:ABOUT]->(entity) | entity.name] AS similarArticleEntities, 350 | count(path) as weight, 351 | collect(substring(reduce(res = "", node in nodes(path) | res + "--(" + node.name + ")"),2)) AS explanation 352 | ORDER by weight DESC; 353 | ---- 354 | 355 | That looks better. 356 | At the moment we're ordering the results by the number of paths that exist between the articles. 357 | Let's update that so that we favour articles with shorter paths. 358 | 359 | == Querying the Knowledge Graph - Similar articles 360 | 361 | We'll build a score that sums the inverse path lengths. 362 | This means that: 363 | 364 | * A path of length 5 adds (1/5) to the score 365 | * A path of length 2 adds (1/2) to the score 366 | 367 | [source,concept] 368 | ---- 369 | MATCH (a:Article {uri: "https://www.theguardian.com/football/ng-interactive/2020/oct/06/david-squires-on-anarchy-in-the-premier-league-and-extinct-dinosaurs"}), 370 | entityPath = (a)-[:HAS_ENTITY]->(wiki)-[:ABOUT]->(cat), 371 | path = (cat)-[:PART_OF*0..2]->(parent)<-[:PART_OF*0..2]-(otherCat), 372 | otherEntityPath = (otherCat)<-[:ABOUT]-(otherWiki)<-[:HAS_ENTITY]-(other) 373 | WHERE other <> a and none(x in nodes(path) where x:League OR x:Concept) 374 | WITH [(a)-[:HAS_ENTITY]->()-[:ABOUT]->(entity) | entity.name] AS articlesEntities, 375 | other.title as similarArticle, 376 | other.uri AS uri, 377 | [(other)-[:HAS_ENTITY]->()-[:ABOUT]->(entity) | entity.name] AS similarArticleEntities, 378 | count(path) as weight, 379 | collect(DISTINCT substring(reduce(res = "", node in nodes(path) | res + "--(" + node.name + ")"),2)) AS explanation, 380 | collect(path) AS paths 381 | RETURN articlesEntities, 382 | similarArticle, uri, 383 | similarArticleEntities, weight, 384 | explanation, 385 | reduce(score=0.0, x in paths | score + 1.0/length(x)) AS weightedScore 386 | ORDER by weightedScore DESC; 387 | ---- 388 | 389 | Hmmm, our top ranking article is still a quiz that contains the names of lots of ex Liverpool and Manchester United players. 390 | That probably isn't the most relevant article, so let's dampen the score by the number of entities that an article has. 391 | 392 | == Querying the Knowledge Graph - Similar articles 393 | 394 | We can do this by dividing the `weightedScore` by the size of `similarArticleEntities`: 395 | 396 | [source,concept] 397 | ---- 398 | MATCH (a:Article {uri: "https://www.theguardian.com/football/ng-interactive/2020/oct/06/david-squires-on-anarchy-in-the-premier-league-and-extinct-dinosaurs"}), 399 | entityPath = (a)-[:HAS_ENTITY]->(wiki)-[:ABOUT]->(cat), 400 | path = (cat)-[:PART_OF*0..2]->(parent)<-[:PART_OF*0..2]-(otherCat), 401 | otherEntityPath = (otherCat)<-[:ABOUT]-(otherWiki)<-[:HAS_ENTITY]-(other) 402 | WHERE other <> a and none(x in nodes(path) where x:League OR x:Concept) 403 | WITH [(a)-[:HAS_ENTITY]->()-[:ABOUT]->(entity) | entity.name] AS articlesEntities, 404 | other.title as similarArticle, 405 | other.uri AS uri, 406 | [(other)-[:HAS_ENTITY]->()-[:ABOUT]->(entity) | entity.name] AS similarArticleEntities, 407 | count(path) as weight, 408 | collect(DISTINCT substring(reduce(res = "", node in nodes(path) | res + "--(" + node.name + ")"),2)) AS explanation, 409 | collect(reduce(res = [], l in [node in nodes(path) | [l in labels(node) where l <> "Resource"]] | res + l)) AS nodeTypes 410 | RETURN articlesEntities, 411 | similarArticle, uri, 412 | similarArticleEntities, weight, 413 | explanation, 414 | reduce(score=0.0, x in nodeTypes | score + 1.0/size(x)) / size(similarArticleEntities) AS weightedScore 415 | ORDER by weightedScore DESC; 416 | ---- 417 | -------------------------------------------------------------------------------- /render_guide.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo "Usage: sh render.sh [publish]" 4 | GUIDES=neo4j-guides 5 | # git clone http://github.com/jexp/neo4j-guides $GUIDES 6 | 7 | function render { 8 | $GUIDES/run.sh index.adoc index.html +1 "$@" 9 | } 10 | 11 | # -a env-training is a flag to enable full content, if you comment it out, the guides are rendered minimally e.g. for a presentation 12 | if [ "$1" == "publish" ]; then 13 | URL=guides.neo4j.com/nlp_knowledge_graphs 14 | render http://$URL -a env-training -a img=https://$URL/images 15 | s3cmd put --recursive -P *.html images s3://${URL}/ 16 | s3cmd put -P index.html s3://${URL} 17 | echo "Publication Done" 18 | else 19 | URL=localhost:8001 20 | # copy the csv files to $NEO4J_HOME/import 21 | render http://$URL -a env-training -a img=http://$URL/images 22 | echo "Starting Websever at $URL Ctrl-c to stop" 23 | python $GUIDES/http-server.py 24 | # python -m SimpleHTTPServer 25 | fi 26 | -------------------------------------------------------------------------------- /render_nodes2020_guide.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo "Usage: sh render.sh [publish]" 4 | GUIDES=neo4j-guides 5 | # git clone http://github.com/jexp/neo4j-guides $GUIDES 6 | 7 | function render { 8 | $GUIDES/run.sh knowledge-graphs-nodes2020.adoc index.html +1 "$@" 9 | } 10 | 11 | # -a env-training is a flag to enable full content, if you comment it out, the guides are rendered minimally e.g. for a presentation 12 | if [ "$1" == "publish" ]; then 13 | URL=guides.neo4j.com/nlp_knowledge_graphs_nodes2020 14 | render http://$URL -a env-training -a img=https://$URL/images 15 | s3cmd put --recursive -P *.html images s3://${URL}/ 16 | s3cmd put -P index.html s3://${URL} 17 | echo "Publication Done" 18 | else 19 | URL=localhost:8001 20 | # copy the csv files to $NEO4J_HOME/import 21 | render http://$URL -a env-training -a img=http://$URL/images 22 | echo "Starting Websever at $URL Ctrl-c to stop" 23 | python $GUIDES/http-server.py 24 | # python -m SimpleHTTPServer 25 | fi 26 | --------------------------------------------------------------------------------