The Knowledge Base of Migration related annotated Tweets.
MigrationsKB(MGKB) is a public Knowledge Base of anonymized Migration related annotated tweets. The MGKB currently contains over 200 thousand tweets, spanning over 9 years (January 2013 to July 2021), filtered with 11 European countries of the United Kingdom, Germany, Spain, Poland, France, Sweden, Austria, Hungary, Switzerland, Netherlands and Italy. Metadata information about the tweets, such as Geo information (place name, coordinates, country code). MGKB contains entities, sentiments, hate speeches, topics, hashtags, encrypted user mentions in RDF format. The schema of MGKB is an extension of TweetsKB for migrations related information. Moreover, to associate and represent the potential economic and social factors driving the migration flows such as eurostat, statista, etc. FIBO ontology was used. The extracted economic indicators, such as GDP Growth Rate, are connected with each Tweet in RDF using geographical and temporal dimensions. The user IDs and the tweet texts are encrypted for privacy purposes, while the tweet IDs are preserved.
To represent the provenance information about the economic indicators, i.e., Eurostat, Statista, UK parliament, and Office of National Statistics, PROV-O is used. The class prov:Activity defines an activity that occurs over a period of time and acts upon entities, which are defined by the class prov:Entity. The class fibo-fnd-arr-asmt:AssessmentActivity represents an assessment activity involving the evaluation and estimation of the economic indicators, which is a subclass of the class prov:Activity. The class prov:Organization represents a governmental organization or a company that is associated with the assessment activity, which is a subclass of the class prov:Agent.
Classes: EconomicIndicators | UnemploymentRate | LongTermUnemploymentRate | TotalUnemploymentRate | YouthUnemploymentRate | Income | DisposableIncome |
Individuals: offensive | normal
Class: mgkb:EconomicIndicators
Class: mgkb:LongTermUnemploymentRate
Class: mgkb:TotalUnemploymentRate
Class: mgkb:YouthUnemploymentRate
Country | 2013 | 2014 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | SUM |
---|---|---|---|---|---|---|---|---|---|
Germany | 126705 | 202645 | 476510 | 745160 | 222565 | 184180 | 165615 | 121955 | 2245335 |
Spain | 4485 | 5615 | 14780 | 15755 | 36610 | 54050 | 117800 | 88530 | 337625 |
Poland | 15240 | 8020 | 12190 | 12305 | 5045 | 4110 | 4070 | 2785 | 63765 |
France | 66265 | 64310 | 76165 | 84270 | 99330 | 137665 | 151070 | 93470 | 772545 |
Sweden | 54270 | 81185 | 162450 | 28795 | 26330 | 21560 | 26255 | 16225 | 417070 |
United Kingdom | 30585 | 32785 | 40160 | 39735 | 34780 | 38840 | 46055 | 36041 | 298981 |
Austria | 17500 | 28035 | 88160 | 42255 | 24715 | 13710 | 12860 | 14180 | 241415 |
Hungary | 18895 | 42775 | 177135 | 29430 | 3390 | 670 | 500 | 115 | 272910 |
Switzerland | 21305 | 23560 | 39445 | 27140 | 18015 | 15160 | 14195 | 10990 | 169810 |
Netherlands | 13065 | 24495 | 44970 | 20945 | 18210 | 24025 | 25200 | 15255 | 186165 |
Italy | 26620 | 64625 | 83540 | 122960 | 128850 | 59950 | 43770 | 26535 | 556850 |
0 | immigrant, war, free, amazing, etc, far, cross, iameuropean, boat, play, maybe, book, wrong, fuck, like, daily, hate, greece, islam, escape |
---|---|
1 | refugee, iraq, humanrights, stand, important, poor, citizen, economic, flee, iran, join, instagram, parliament, donate, try, al, worry, end, fake, dover |
2 | immigrant, muslim, save, god, offer, govt, racism, abuse, value, india, bill, dead, interview, eat, china, landscape, obama, eastern, complain, dear |
3 | asylum, aid, spend, union, aliens, heart, shame, block, refugeeweek, zone, rid, entry, search, field, worldrefugeeday, tune, produce, ha, eg, wednesday |
4 | europe, budapest, hungary, eurotrip, miss, small, enjoy, outside, rain, throwback, tbt, song, inside, europetour, coffee, individual, canada, petition, look, driver |
5 | eu, migrant, send, pm, ukip, plan, crime, criminal, increase, simply, contribute, rights, charity, milano, ship, special, date, responsible, settle, joke |
6 | man, law, come, see, job, debate, public, listen, gay, eye, create, result, status, voter, east, yeah, warsaw, opinion, include, catch |
7 | year, love, uk, people, ago, police, month, black, set, hand, festival, message, bridge, imagine, mr, second, colleague, fit, stage, arkham |
8 | refugee, seeker, kill, alien, video, enter, experience, deport, check, list, regime, pretty, genuine, picture, artist, currently, fly, chance, later, activist |
9 | europe, head, nation, sunset, strong, close, promise, ok, sit, fun, euro, garden, steal, cathedral, defend, baby, minute, let, europetravel, wine |
10 | migrant, week, open, film, lie, peace, africa, late, join, israel, rescue, land, term, climate, tourism, final, court, couple, streetphotography, flag |
11 | italy, germany, european, place, travel, night, venice, street, instagood, march, sad, class, tour, wonderful, fire, picoftheday, photographer, frankfurt, powerful, center |
12 | work, refugee, covid, border, woman, long, uk, young, hard, poland, power, photooftheday, politic, foreign, deny, traveler, session, ppl, pride, test |
13 | day, support, refugee, exile, yes, mass, action, door, kind, spring, brilliant, continue, birthday, meeting, receive, decide, fantastic, monday, reach, pressure |
14 | new, give, architecture, group, united, come, challenge, yourewelcome, matter, break, centre, welcomehome, fashion, difference, church, include, risk, blue, visa, record |
15 | home, come, immigration, bad, french, food, fact, business, sure, russia, sun, humanitarian, refuge, trade, security, consider, religion, dinner, hundred, surely |
16 | live, brexit, rome, immigration, run, migration, million, happen, number, probably, green, hell, treat, past, lake, fund, foreigner, today, look, finish |
17 | family, friend, labour, allow, st, channel, international, drink, remember, actually, guy, beer, cut, campaign, tower, sorry, mp, patel, sell, bloody |
18 | immigration, people, policy, community, proud, thousand, buy, glasgow, game, impact, common, brother, tomorrow, available, officer, affect, nd, vulnerable, ignore, queue |
19 | camp, vienna, racist, tory, fight, share, case, member, hear, lead, office, forget, tweet, council, solidarity, celebrate, resident, rest, approach, one |
20 | happy, care, make, view, walk, low, vacation, social, article, clear, dog, staff, wage, main, australia, rt, boy, greek, round, go |
21 | syria, europe, trip, sky, isis, die, pro, threat, choose, assad, unitedkingdom, passport, destroy, travel, river, torture, youth, skilled, humanrightsviolation, load |
22 | way, uk, thing, get, immigrant, issue, have, wait, mean, deal, arrive, minister, homeless, guess, present, keep, whilst, mile, press, company |
23 | say, think, rule, america, person, travelgram, water, politician, explain, fair, race, act, instatravel, mother, life, completely, referendum, official, generation, way |
24 | help, today, thank, berlin, learn, team, refugees, calais, mountain, spanish, victim, munich, bit, go, region, thought, ukraine, rape, ill, deportation |
25 | country, british, let, nhs, safe, bear, try, show, society, beach, sound, forward, irish, early, christmas, geneva, response, majority, put, think |
26 | spain, life, be, story, money, photo, photography, german, true, pariah, raise, sea, project, castle, ready, moment, refuse, lol, bird, poll |
27 | right, need, government, syrian, follow, idea, hold, culture, freedom, global, rise, wing, huge, wife, arrest, target, fill, supporter, live, shut |
28 | france, london, paris, england, music, light, migraine, winter, yesterday, train, building, begin, snow, weather, launch, manage, targetedindividual, grand, migrants, urban |
29 | refugee, crisis, lose, real, turn, force, europeanelection, kingdom, exile, selfie, student, unhcr, possible, work, role, process, awesome, muslims, idiot, training |
30 | time, world, humanity, beautiful, humanright, evening, sort, conference, journey, mention, flight, worldwide, mate, suspect, cash, tear, good, decade, austerity, zurich |
31 | not, like, know, well, feel, house, change, white, weekend, understand, answer, course, terrorist, life, conservative, leadership, bank, influx, accommodation, collaboration |
32 | immigrant, migrant, art, history, win, service, lot, europeanelections, able, focus, dream, like, military, room, large, mental, cause, mind, style, cameron |
33 | state, read, explore, local, leader, europe, fail, sign, national, lunatic, population, fear, concern, democracy, spot, age, step, space, university, wake |
34 | welcome, refugee, uk, problem, refugeeswelcome, seek, word, hotel, base, tax, cloud, car, life, instead, autumn, la, evidence, partner, promote, integration |
35 | solution, den, jewish, identity, episode, stigmabase, gun, afghan, convention, belief, seekers, manifesto, sight, anger, scary, inclusive, location, seville, soft, quota |
36 | migrant, leave, control, worker, report, ask, use, away, return, political, reason, accept, turkey, president, pass, key, army, prove, require, humantrafficking |
37 | look, go, child, start, benefit, school, roma, end, housing, event, interesting, move, somalia, write, cover, tv, treatment, suggest, abroad, form |
38 | human, news, watch, tonight, attack, morocco, travelphotography, museum, bbc, red, self, provide, line, lgbt, parent, rich, violence, single, smile, season | 39 | good, old, morning, face, nice, english, speak, venezuela, nature, soon, death, language, lovely, ireland, add, poverty, european, cool, laugh, hamburg | </tr>
40 | uk, netherlands, point, scotland, barcelona, system, believe, trump, visit, adventure, post, milan, boris, education, tories, italian, firenze, piece, exist, positive |
41 | talk, immigration, bring, tell, stay, build, oh, girl, south, african, florence, wish, respect, colour, economy, need, wonder, comment, nigel, truth |
42 | vote, people, immigration, anti, blame, remain, agree, will, election, protect, little, johnson, medium, grow, middle, plus, market, movement, expect, skill |
43 | stop, find, austria, claim, big, high, future, country, situation, american, level, stockholm, friday, europeanunion, traveleurope, doctor, desperate, ground, current, example |
44 | people, take, uk, health, hope, un, try, shoot, easy, finally, cost, tourist, especially, justice, absolutely, hospital, bbcqt, host, football, drop |
45 | immigration, party, area, en, th, hour, access, wall, link, twitter, lockdown, coronavirus, research, sense, realise, scottish, vs, model, perfect, earth |
46 | europe, city, summer, holiday, holland, usa, espaa, online, fall, road, cold, canal, coast, deutschland, somali, flower, polish, colosseum, palace, celiogermanydesk |
47 | great, call, immigration, question, town, airport, protest, north, discuss, europa, discussion, club, islamic, west, turkish, decision, dutch, throw, half, secretary |
48 | immigrant, illegal, want, britain, pay, legal, shit, work, park, island, station, taxis, manchester, give, blair, waste, recently, relax, danger, brown |
49 | travel, amsterdam, switzerland, sweden, farage, meet, italia, kid, madrid, apply, de, wanderlust, non, alllivesmatter, left, travelblogger, expat, memory, folk, europedebate |
More plots for each destination country
To learn the potential cause of the negative public attitudes towards migrations, the factors such as unemployment rate including youth unemployment rate and totla unemployment rate, and gross domestic product growth rate (GDPR) were studied. This data was collected from Eurostat, Statista, UK Parliament, and Office for National Statistics.
The following figure shows the comparison between the factors (such as youth unemployment rate, total unemployment rate, and real GDPR) and the negative attitudes (i.e., negative sentiment and hate speech) in all the extracted tweets. On average in all 11 destination countries, the percentages of hate speech and negative sentiment of the public towards immigration are negatively correlated with the real GDPR and positively correlated with total/youth unemployment rate, from 2013 to 2018 and from 2019 to 2020. In 2019, the percentages of hateful tweets and negative tweets are rapidly increased by about 2% and 1% respectively compared to 2018.
The following figure shows the pairwise correlation between the economic indicators and the posts with negative sentiments and offensive/hate speeches.
Online SPARQL endpoint Query example.
nt
file for MGKB on Zenodo.prefix mgkb: <https://migrationsKB.github.io/MGKB#>
prefix dc: <http://purl.org/dc/elements/1.1/>
prefix fibo_fnd_arr_asmt: <https://spec.edmcouncil.org/fibo/ontology/FND/Arrangements/Assessments/>
prefix fibo_fnd_arr_rep: <https://spec.edmcouncil.org/fibo/ontology/FND/Arrangements/Reporting/>
prefix fibo_fnd_dt_fd: <https://spec.edmcouncil.org/fibo/ontology/FND/DatesAndTimes/FinancialDates/>
prefix fibo_fnd_rel_rel: <https://spec.edmcouncil.org/fibo/ontology/FND/Relations/Relations/>
prefix fibo_fnd_utl_alx: <https://spec.edmcouncil.org/fibo/ontology/FND/Utilities/Analytics/>
prefix fibo_ind_ei_ei: <https://spec.edmcouncil.org/fibo/ontology/IND/EconomicIndicators/EconomicIndicators/>
prefix fibo_ind_acc_cat: <https://spec.edmcouncil.org/fibo/ontology/FND/Accounting/CurrencyAmount/>
prefix nee: <http://www.ics.forth.gr/isl/oae/core#>
prefix onyx: <http://www.gsi.dit.upm.es/ontologies/onyx/ns#>
prefix owl: <http://www.w3.org/2002/07/owl#>
prefix prov: <https://www.w3.org/TR/prov-o/#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix rdf: <https://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix schema: <http://schema.org/>
prefix sioc: <http://rdfs.org/sioc/ns#>
prefix sioc_t: <http://rdfs.org/sioc/types#>
prefix wna: <http://www.gsi.dit.upm.es/ontologies/wnaffect/ns#>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
prefix lcc_lr: <https://spec.edmcouncil.org/fibo/ontology/FND/Accounting/CurrencyAmount/>
prefix cidoc_crm: <https://cidoc-crm.org/html/cidoc_crm_v7.1.1.html#>
prefix dcterms: <http://purl.org/dc/terms/>
7.1. The following query retrieve a list of top 20 hashtags which contain “refugee” or “immigrant”.
SELECT ?hashtagLabel (count(distinct ?tweet) as ?num) WHERE {
?tweet schema:mentions ?hashtag.
?hashtag a sioc_t:Tag ; rdfs:label ?hashtagLabel. FILTER( regex(?hashtagLabel, "refugee", "i") || lcase(str(?hashtagLabel))="refugee" || regex(?hashtagLabel, "immigrant", "i") || lcase(str(?hashtagLabel))="immigrant").
} GROUP BY ?hashtagLabel ORDER BY DESC(?num) LIMIT 20
SELECT ?entityLabel (count(?entityLabel) as ?numOfEntityMentions) where{
?tweet schema:mentions ?entity.
?entity a nee:Entity; nee:hasMatchedURI ?uri.
?uri a rdfs:Resource; rdfs:label ?entityLabel. FILTER( regex(?entityLabel, "refugee", "i") || lcase(str(?entityLabel))="refugee").
}GROUP BY ?entityLabel ORDER BY DESC(?numOfEntityMentions) LIMIT 10
SELECT ?EmotionCategory (count(?tweet) as ?numOfTweets) where{
?tweet schema:mentions ?entity.
?entity a nee:Entity; nee:hasMatchedURI ?uri.
?uri a rdfs:Resource; rdfs:label ?x. FILTER( regex(?x, "refugee camp", "i") || lcase(str(?x))="refugee camp").
?tweet onyx:hasEmotionSet ?y.
?y a onyx:EmotionSet; onyx:hasEmotion ?z.
?z a onyx:Emotion; onyx:hasEmotionCategory ?EmotionCategory.
} GROUP BY ?EmotionCategory
SELECT ?hastagLabel (count(distinct ?tweet) as ?num) WHERE {
?tweet schema:mentions ?entity .
?entity a nee:Entity ; nee:hasMatchedURI ?uri .
?uri a rdfs:Resource; rdfs:label ?x. FILTER( regex(?x, "refugee", "i") || lcase(str(?x))="refugee").
?tweet schema:mentions ?hashtag.
?hashtag a sioc_t:Tag ; rdfs:label ?hastagLabel
} GROUP BY ?hastagLabel ORDER BY DESC(?num) LIMIT 10
SELECT ?year ?IndicatorValue (count(?tweet) as ?numOfTweets) where {
?tweet fibo_fnd_rel_rel:isCharacterizedBy ?gdpr.
?gdpr a fibo_ind_ei_ei:GrossDomesticProduct.
?gdpr schema:addressCountry "GB".
?gdpr dc:date ?year.
?gdpr fibo_ind_ei_ei:hasIndicatorValue ?IndicatorValue.
?tweet onyx:hasEmotionSet ?y.
?y a onyx:EmotionSet; onyx:hasEmotion ?z.
?z a onyx:Emotion; onyx:hasEmotionCategory wna:hate.
}GROUP BY ?year ?IndicatorValue ORDER BY DESC(?year)
SELECT ?year (AVG(?IndicatorValue) AS ?avgIndicatorValue) (count(?tweet) as ?numOfTweets) where {
?tweet fibo_fnd_rel_rel:isCharacterizedBy ?gdpr.
?gdpr a fibo_ind_ei_ei:GrossDomesticProduct.
?gdpr dc:date ?year.
?gdpr fibo_ind_ei_ei:hasIndicatorValue ?IndicatorValue.
?tweet onyx:hasEmotionSet ?y.
?y a onyx:EmotionSet; onyx:hasEmotion ?z.
?z a onyx:Emotion; onyx:hasEmotionCategory wna:hate.
}GROUP BY ?year ORDER BY DESC(?year)
SELECT ?EntityLabel(count(?EntityLabel) as ?NumberOfMentions) where{
?tweet schema:mentions ?entity.
?entity a nee:Entity; nee:hasMatchedURI ?uri.
?uri a rdfs:Resource; rdfs:label ?EntityLabel. FILTER( regex(?EntityLabel, "refugee camp", "i") || lcase(str(?EntityLabel))="refugee camp").
}GROUP BY ?EntityLabel ORDER BY DESC(?NumberOfMentions)
7.8. The following query retrieve emotions regarding the hashtags containing “refugee”.
SELECT ?EmotionCategory (count(?tweet) as ?numOfTweets) where{
?tweet schema:mentions ?hashtag.
?hashtag a sioc_t:Tag; rdfs:label ?x. FILTER( regex(?x, "refugee", "i") || lcase(str(?x))="refugee").
?tweet onyx:hasEmotionSet ?y.
?y a onyx:EmotionSet; onyx:hasEmotion ?z.
?z a onyx:Emotion; onyx:hasEmotionCategory ?EmotionCategory.
} GROUP BY ?EmotionCategory
SELECT ?year ?IndicatorValue (count(?tweet) as ?numOfTweets) where {
?tweet fibo_fnd_rel_rel:isCharacterizedBy ?gdpr.
?gdpr a fibo_ind_ei_ei:GrossDomesticProduct.
?gdpr schema:addressCountry "GB".
?gdpr dc:date ?year.
?gdpr fibo_ind_ei_ei:hasIndicatorValue ?IndicatorValue.
?tweet onyx:hasEmotionSet ?y.
?y a onyx:EmotionSet; onyx:hasEmotion ?z.
?z a onyx:Emotion; onyx:hasEmotionCategory wna:negative-emotion.
}GROUP BY ?year ?IndicatorValue ORDER BY DESC(?year)
SELECT ?hastagLabel (count(distinct ?tweet) as ?num) WHERE {
?tweet schema:mentions ?entity .
?entity a nee:Entity ; nee:hasMatchedURI ?uri .
?uri a rdfs:Resource; rdfs:label ?x. FILTER( regex(?x, "refugee camp", "i") || lcase(str(?x))="refugee camp").
?tweet schema:mentions ?hashtag.
?hashtag a sioc_t:Tag ; rdfs:label ?hastagLabel
} GROUP BY ?hastagLabel ORDER BY DESC(?num) LIMIT 10
SELECT ?EmotionCategory (count(?tweet) as ?numOfTweets) where{
?tweet schema:mentions ?hashtag.
?hashtag a sioc_t:Tag; rdfs:label ?x. FILTER( regex(?x, "refugeecamp", "i") || lcase(str(?x))="refugeecamp").
?tweet onyx:hasEmotionSet ?y.
?y a onyx:EmotionSet; onyx:hasEmotion ?z.
?z a onyx:Emotion; onyx:hasEmotionCategory ?EmotionCategory.
} GROUP BY ?EmotionCategory
SELECT (count(?tweet) as ?num) where{
?tweet schema:mentions ?entity.
?entity a nee:Entity; nee:hasMatchedURI ?uri.
?uri a rdfs:Resource; rdfs:label ?x. FILTER( lcase(str(?x))="zaatari refugee camp").
}
@misc{chen2021migrationskb,
title={MigrationsKB: A Knowledge Base of Public Attitudes towards Migrations and their Driving Factors},
author={Yiyi Chen and Harald Sack and Mehwish Alam},
year={2021},
eprint={2108.07593},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
This work is a part of ITFlows project. This project has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement No 882986.
This work is licensed under a Creative Commons Attribution 4.0 International License.