├── 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 <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> 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. </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"> 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 |
--------------------------------------------------------------------------------