MigrationsKB

The Knowledge Base of Migration related annotated Tweets.

MigrationsKB

1. Introduction

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.

2. RDF/S Model

Overall Schema

Schema for Economic Indicators and Provenance Information

Financial Industry Business Ontology (FIBO) representing Economic Indicators of EU
  • The class fibo-ind-ei-ei:GrossDomesticProduct represents the GDPR of the country of the tweet in a certain year, which are specified by the properties schema:addressCountry and dc:datefrom DCMI, and the value of this indicator is represented by fibo-ind-ei-ei:hasIndicatorValue
  • The class fibo-ind-ei-ei:UnemploymentRate represents the unemployment rate in the country of the tweet in a certain year, represented with the help of the same properties, i.e., schema:addressCountry, dc:date, and fibo-ind-ei-ei:hasIndicatorValue.
  • The class fibo-ind-ei-ei:UnemployedPopulation is used to specify the population of the unemployment rate.
  • The class fibo-fnd-dt-fd:ExplicitDate represents the date when the statistics are last updated as a literal with the help of the property fibo-fnd-dt-fd:hasDateValue.
  • The property fibo-fnd-rel-rel:isCharacterizedBy is used to associate a tweet with the economic indicators.
PROV-O representing Provenance Information

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.

Further extensions
  • dc:subject represents a topic of a tweet resulting from topic modeling.
  • wna:neutral-emotion represents the neutral sentiment of the tweet by applying sentiment analysis.
  • wna:hate, mgkb:offensive and mgkb:normal represent the hate speeches, offensive speeches and normal speeches from hate speech detection of the tweets.
  • schema:ReplyAction represents the action of reply regarding a tweet.
  • mgkb:EconomicIndicators represents the economic indicators, which has the subclasses fibo-ind-ei-ei:GrossDomesticProduct and fibo-ind-ei-ei:UnemploymentRate.
  • t mgkb:YouthUnemploymentRate and mgkb:TotalUnemploymentRate represent the unemployment rates with respect to the population, i.e., the youth unemployment population and the total unemployed population.

:clipboard: Documentation of RDF Model

:pencil: Codes

:open_file_folder: Data

:question: SPARQL endpoint

:page_with_curl: Technical Report (arXiv)

3. Overall Framework

3. Purpose

4. Geo Map of The Tweets

Download MapOfTweets

5. MGKB at a glance

Classes: EconomicIndicators | UnemploymentRate | LongTermUnemploymentRate | TotalUnemploymentRate | YouthUnemploymentRate | Income | DisposableIncome |

Individuals: offensive | normal

5.1 MGKB Classes and Properties

Class: mgkb:EconomicIndicators


Class: mgkb:UnemploymentRate


Class: mgkb:LongTermUnemploymentRate


Class: mgkb:TotalUnemploymentRate


Class: mgkb:YouthUnemploymentRate


Class: mgkb:Income


Class: mgkb:DisposableIncome


mgkb:offensive


mgkb:normal

  1. Statistics and Plots </a>

6.1. Statistics of the EU countries with the most first time asylum applicants

source

Table
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

6.2. Statistics of Tweets before and after ETM

The distribution of maximal probability scores of tweets regarding migration-related topics before filtering dist_before_filtering
The distribution of maximal probability scores of tweets regarding migration-related topics after filtering dist_after_filtering

6.3. Topics from ETM

The 50 topics of MGKB from ETM The colored topics are migration-related topics. </tr>
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
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

6.4. Correlations of the Negative Public Attitudes and The Economic Indicators

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.

Figure percentage_coorelations

The following figure shows the pairwise correlation between the economic indicators and the posts with negative sentiments and offensive/hate speeches.

7. Sparql Queries

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
Answer top20_hashtags_refugee_immigrant

7.2. The following query retrieve a list of top 10 the entity labels which contain “refugee” and its frequency of detected entity mentions.

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
Answer entity_mentions_containing_refugee

7.3. The following query retrieves a list of emotion categories (neutral/positive/negative sentiment, and hate speeches/offensive/normal) of tweets where the labels of detected entity mentions containing “refugee camp”.

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
Answer emotions_entity_containing_refugee_camp

7.4. The following query requests the top-10 hashtags co-occurring with the entity label containing “refugee”.

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
Answer top10_coocur_hashtags_with_entity_refugee

7.5. The following query retrieves GDPR indicator values and the number of tweet hate speeches in the United Kingdom.

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)
Answer gdpr_hate_speech_GB

7.6. The following query retrieves average GDPR indicator values and the number of tweet hate speeches in 11 destination countries.

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)
Answer avgRGDPR_hate

7.7. The following query retrieve a list of all the entity labels which contain “refugee camp” and its frequency of detected entity mentions.

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)
Answer num_of_entities_refugee_camp

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
Answer emotion_category_hashtag_containing_refugee

7.9. The following query retrieves GDPR indicator values and the number of negative sentiment tweets in the United Kingdom.

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)
Answer negative-emotion-gdpr-GB

7.10. The following query requests the top-10 hashtags co-occurring with the entity label containing “refugee camp”.

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
Answer top10_coocur_hashtags_with_entity_refugee_camp

7.11. The following query retrieves a list of emotion categories (neutral/positive/negative sentiment, and hate speeches/offensive/normal) of tweets where the labels of detected entity mentions containing “refugeecamp”.

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

Answer emotion_categories_hashtag_refugee_camp

7.12. The following query retrieves the number of tweets about a particular refugee camp “zaatari refugee camp”.

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").
 }
Answer num_of_tweets_entity_zaatari

Citation

@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}
}

Acknowledgement

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.

License

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.