# Data Integration for journalism: challenges and steps toward pragmatic solutions (invited keynote)

Ioana Manolescu

<figure><img src="image_1.png" /></figure>

## ► To cite this version:

Ioana Manolescu. Data Integration for journalism: challenges and steps toward pragmatic solutions (invited keynote). ICFCA 2021 - International Conference on Formal Concept Analysis, Jun 2021, Strasbourg / Virtual, France. hal-05363469

HAL Id: hal-05363469

https://inria.hal.science/hal-05363469v1

Submitted on 13 Nov 2025

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_2.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
Inria

<figure><img src="image_3.png" /></figure>

# Data Integration for journalism: challenges and steps toward pragmatic solutions

Ioana Manolescu

Inria Saclay-Île-de-France and Institut Polytechnique de Paris

U

LISBOA

UNIVERSIDADE
DE LISBOA

<figure><img src="image_4.png" /></figure>

<figure><img src="image_5.png" /></figure>

INSTITUT
POLYTECHNIQUE
DE PARIS
# Outline

1. Motivation: why journalism?

2. Data integration problems raised by data journalism

3. Graph-based data integration in ConnectionLens

4. Related work and perspective
# Motivation: Why journalism?
# Democratic societies crucially need the press

☐ To debate and express dissent

<figure><img src="image_6.png" /><figcaption>Socialist Romania, 1984</figcaption></figure>

☐ To analyze, confim or refute public statements

Fact-checking

(Data) journalism

☐ To expose and explain society functioning

<figure><img src="image_7.png" /></figure>
Fact-checking

Not everyone agrees, however, that Democrats are not flip-flopping on the issue.

Mark Krikorian, executive director of the Center for Immigration Studies, a think tank that advocates for lower immigration, said that because the public doesn't know exactly what border barriers the Trump administration wants to build, Mulvaney's statement is not an "exact" comparison. But, he said, to dismiss it simply on that basis would be "tendentiously literal."

"The fact is that, other than the 'Mexico will pay for it' stuff, Trump is simply channeling the 2006 Secure Fence Act, and Schumer et al. who voted for it out of political calculation are indeed hypocrites for opposing the attempt to finally bring that law to fruition," Krikorian told us via email.

At the surface level, it is true in a broad sense that Democrats including Schumer, Obama and Clinton have in the past supported border fencing. All three voted for the Secure Fence Act of 2006, and all three supported the 2013 Senate immigration overhaul that passed the Senate, and which called for tougher border security including some additional fencing. But to claim that those measures are the same as what Trump is proposing is a stretch.

Share The Facts

<figure><img src="image_8.png" /></figure>

Mick Mulvaney

Director, Office of Management and Budget

MISLEADING

"We don't understand why the Democrats are so wholeheartedly against [President Trump's border wall]. They voted for it in 2006."

Fox News Sunday – Sunday, April 23, 2017

SHARE

READ MORE

<figure><img src="image_9.png" /></figure>

FACTCHECK.ORG

<figure><img src="image_10.png" /></figure>

<figure><img src="image_11.png" /></figure>
# Data journalism

## Panama Papers (International Consortium of Investigative Journalism, ICIJ)

<figure><img src="image_12.png" /></figure>
Projects and collaborations

**Google Award (2015)** with X. Tannier (U. Paris Sud)

**ANR ContentCheck (2016-2020)** with
Sorbonne Université, U. Lyon, U. Rennes 1,
Les Décodeurs (Le Monde) https://contentcheck.inria.fr

**Inria Associated Team WebClaimExplain (2017-2019)**,
with AIST Japan (Julien Leblay)

Collaboration with H. Galhardas (University of Lisbon),
A. Anadiotis, O. Balalau (CEDAR), E. Pietriga (ILDA)

**ANR SourcesSay AI Chair (2020-2023)**,
with Le Monde and WeDoData https://sourcessay.inria.fr

<figure><img src="image_13.png" /></figure>

Le Monde

LES DÉCODEURS
VENONS-EN AUX FAITS

<figure><img src="image_14.png" /></figure>

<figure><img src="image_15.png" /></figure>

AIST

<figure><img src="image_16.png" /></figure>

TÉCNICO
LISBOA
# Project discussed with Les Décodeurs: Twitter monitoring for analyzing political communication

**Social media** (Twitter and FB): (semi)structured data (JSON)

* Author, date, content, retweet no., whether it's a retweet etc.

**Décodeurs'** database of French public figures (Excel)

* First name, last name, Twitter ID, position, political party when known

**Wikipedia (RDF)**

* Information about some best-known public figures, parties

**Question:** How do public figures communicate on Twitter?

<figure><img src="image_17.png" /></figure>

<figure><img src="image_18.png" /></figure>
# Twitter monitoring for analyzing political communication

**Main challenge: data heterogeneity**

Solution: Tatooine mediator [Bonaque et al., VLDB 2016]

<figure><img src="image_19.png" /></figure>

* Handles heterogeneous data

* Integrates ML classifiers as UDFs
# Twitter monitoring for analyzing political communication

Tag clouds of French political tweets, Nov 2015: **left**, **right**, **green** parties

<figure><img src="image_20.png" /></figure>

13-18 novembre

<figure><img src="image_21.png" /></figure>

19-24 novembre

<figure><img src="image_22.png" /></figure>

25-30 novembre

<figure><img src="image_23.png" /></figure>

1-6 décembre

<figure><img src="image_24.png" /></figure>

7-12 décembre

<figure><img src="image_25.png" /></figure>

13-18 décembre
# Twitter monitoring for analyzing political communication

Tatooine mediator [Bonaque et al., VLDB 2016]

<figure><img src="image_26.png" /></figure>

Tatooine solution analysis:

✓ Handles heterogeneous data

✓ Integrates ML classifiers as UDFs

X No query language; need to write dedicated sub-queries in each underlying lg. + mediator (combination) plan

X Too complicated to install and use (many sub-systems)
Another project discussed with Les Décodeurs:
fake new detection and propagation on Twitter

**Online fact-checks:** (semi)structured data sources (JSON, XML) listing

* Link to claim (media, social network etc.), **claim author**

* **Fact-check**, containing: analysis (details), final assessment, fc author, date, institution

<figure><img src="image_27.png" /></figure>

Among the first published: https://www.lemonde.fr/webservice/decodex/updates

Years later: **ClaimReview** by Google and others (https://www.claimreviewproject.com/)
# Another project discussed with Les Décodeurs: fake new detection and propagation on Twitter

**Online fact-checks:** (semi)structured data sources (JSON, XML) listing

* Link to claim (media, social network etc.), **claim author**

* **Fact-check**, containing: analysis (details), final assessment, fc author, date

**Décodeurs' database of French public figures (Excel)**

* First name, last name, Twitter ID, position, political party when known

**Question:** When does a fake news post first cross into a supposedly legitimate community (e.g. members of the Parliament)?

* Looking for tweets connected to a fake news author, and to a community member; both connections are arbitrary paths (chains of author/likes/retweets/inParty/...)

<figure><img src="image_28.png" /></figure>

<figure><img src="image_29.png" /></figure>

<figure><img src="image_30.png" /></figure>

<figure><img src="image_31.png" /></figure>
Integrating heterogeneous
journalistic datasets

https://team.inria.fr/cedar connectionlens/
Graph-based integration of
heterogeneous data sources

☐ The sources are **not RDF**. They can be
**(semi)structured**, or **unstructured** (text).

☐ The sources may be very **dynamic** (projects started and abandoned as per news cycle and data availability).

☐ There is no schema. Data producers often uncollaborative.

☐ For most journalists, databases do not come naturally, and IT support is limited. They know keyword-based search...

<figure><img src="image_32.png" /></figure>

Integrate heterogeneous sources within a graph, query w/ keywords

<figure><img src="image_33.png" /></figure>

<figure><img src="image_34.png" /></figure>

<figure><img src="image_35.png" /></figure>

<figure><img src="image_36.png" /></figure>

<figure><img src="image_37.png" /></figure>

<figure><img src="image_38.png" /></figure>

<figure><img src="image_39.png" /></figure>

<figure><img src="image_40.png" /></figure>

neo4j
# ConnectionLens: graph-based integration of heterogeneous data sources

https://team.inria.fr/cedar/connectionlens/

**Joint work with:** J. Leblay (AIST Japan),
H. Galhardas and C. Conceição (U. Portugal),
A. Anadiotis, O. Balalau, N. Barret, T. Bouganim,
F. Chimienti, M.-Y. Haddad, T. Merabti,
P. Upadhyay (CEDAR) + interns

S.Horel (Le Monde, European Press Prize
"Investigative Reporting Award 2018")

Ongoing work in ANR/DGA AI Chair SourcesSay
(https://sourcesay.inria.fr), DIM RFSI

<figure><img src="image_41.png" /></figure>
ConnectionLens principles [Chanial et al., 2018]

Integrate **any kind of data** into a **graph**

**Extract entities** from any text node (regardless of the model of the data source where the text comes from)

☐ Same entity in two different text nodes =
link among the text nodes (*densification* of the graph)

The graph is **heterogeneous** and **irregular** →

Query it through **keywords**: find trees that connect 1 node matching each kwd

☐ Closely related to the Group Steiner Tree Problem (GSTP)
ConnectionLens principles [Chanial et al., 2018]

Integrate **any kind of data** into a **graph**

**Extract entities** from any text node (regardless of the model of the data source where the text comes from)

☐ Same entity in two different text nodes =
link among the text nodes (*densification* of the graph)

The graph is **heterogeneous** and **irregular** →

Quer Rest of the talk based on state of the project 2+ years later:

https://arxiv.org/abs/2007.12488 [BDA 2020]

<figure><img src="image_42.png" /></figure>

https://arxiv.org/abs/2009.04283 [BDA 2020]

https://arxiv.org/abs/2012.08830 [To appear in Elsevier Information Systems]

https://arxiv.org/abs/2102.04141
ConnectionLens graph
construction
# The Balkany and their African connections

<figure><img src="image_43.png" /></figure>
# The Balkany and their African connections

<figure><img src="image_44.png" /></figure>
# The Balkanys and their African connections

## Public officials transparency high authority (CSV)

<table><thead><tr><td>Name</td><td>Owner</td><td>Location</td><td>Type</td></tr></thead><tbody><tr><td>Dar Gyucy</td><td>P. Balkany</td><td>Marrakech</td><td>Real Estate</td></tr><tr><td>Moulin Cossy</td><td>I. Balkany</td><td>Giverny</td><td>Real Estate</td></tr></tbody></table>
# The Balkanys and their African connections

## Public officials transparency high authority (CSV)

<table><thead><tr><td>Name</td><td>Owner</td><td>Location</td><td>Type</td></tr></thead><tbody><tr><td>Dar Gyucy</td><td>P. Balkany</td><td>Marrakech</td><td>Real Estate</td></tr><tr><td>Moulin Cossy</td><td>I. Balkany</td><td>Giverny</td><td>Real Estate</td></tr></tbody></table>

## National Directory of Elected Officials (JSON)

```json
[
  {
    name: "Levallois-Perret",
    mayor: "P. Balkany",
    city-council: [
      {name: "I. Balkany"},
      ...
    ]
  }, ...
]
```
# The Balkanys and their African connections

## Public officials transparency high authority (CSV)

<table><thead><tr><td>Name</td><td>Owner</td><td>Location</td><td>Type</td></tr></thead><tbody><tr><td>Dar Gyucy</td><td>P. Balkany</td><td>Marrakech</td><td>Real Estate</td></tr><tr><td>Moulin Cossy</td><td>I. Balkany</td><td>Giverny</td><td>Real Estate</td></tr></tbody></table>

dbpedia.org (RDF)

```json
{
  dbr:Marrakech
dbr:name "Marrakech"
rdf:type dbo:City ;
dbo:country dbr:Morrocco .
dbr:Morocco
dbr:name "Morocco"
rdf:type dbo:Country
dbo:locatedIn dbr:Africa .
dbr:CentralAfricanRepublic
dbr:name "Central African Republic"
dbo:locatedIn dbr:Africa .
}
```

## National Directory of Elected Officials (JSON)

```json
[
  {
    name: "Levallois-Perret",
    mayor: "P. Balkany",
    city-council: [
      {name: "I. Balkany"},
      ...
    ]
  }, ...
]
```
# The Balkanys and their African connections

## Public officials transparency high authority (CSV)

<table><thead><tr><td>Name</td><td>Owner</td><td>Location</td><td>Type</td></tr></thead><tbody><tr><td>Dar Gyucy</td><td>P. Balkany</td><td>Marrakech</td><td>Real Estate</td></tr><tr><td>Moulin Cossy</td><td>I. Balkany</td><td>Giverny</td><td>Real Estate</td></tr></tbody></table>

dbpedia.org (RDF)

```json
{
  dbr:Marrakech
dbr:name "Marrakech"
rdf:type dbo:City ;
dbo:country dbr:Morocco .
dbr:Morocco
dbr:name "Morocco"
rdf:type dbo:Country
dbo:locatedIn dbr:Africa .
dbr:CentralAfricanRepublic
dbr:name "Central African Republic"
dbo:locatedIn dbr:Africa .
}
```

## National Directory of Elected Officials (JSON)

```json
[
  {
    name: "Levallois-Perret",
    mayor: "P. Balkany",
    city-council: [
      {name: "I. Balkany"},
      ...
    ]
  }, ...
]
```

Libération – Nov. 13, 2014 (Text)

### Balkany mineur de fonds

L'élu de Levallois-Perret est soupçonné d'avoir touché 5 millions de dollars de commission en 2009 grâce à son rôle d'intermédiaire entre Areva et la Centrafrique dans le dossier Uramin. [...]
# How is Levallois-Perret connected to Africa and "real estate"?

## Public officials transparency high authority (CSV)

<table><thead><tr><td>Name</td><td>Owner</td><td>Location</td><td>Type</td></tr></thead><tbody><tr><td>Dar Gyucy</td><td>P. Balkany</td><td>Marrakech</td><td>Real Estate</td></tr><tr><td>Moulin Cossy</td><td>I. Balkany</td><td>Giverny</td><td>Real Estate</td></tr></tbody></table>

dbpedia.org (RDF)

```json
{
  dbr:Marrakech
dbr:name "Marrakech"
rdf:type dbo:City ;
dbo:country dbr:Morocco .
dbr:Morocco
dbr:name "Morocco"
rdf:type dbo:Country
dbo:locatedIn dbr:Africa .
dbr:CentralAfricanRepublic
dbr:name "Central African Republic"
dbo:locatedIn dbr:Africa .
}
```

## National Directory of Elected Officials (JSON)

```json
[
  {
    name: "Levallois-Perret",
    mayor: "P. Balkany",
    city-council: [
      {name: "I. Balkany"},
      ...
    ]
  }, ...
]
```

Libération – Nov. 13, 2014 (Text)

### Balkany mineur de fonds

L'élu de Levallois-Perret est soupçonné d'avoir touché 5 millions de dollars de commission en 2009 grâce à son rôle d'intermédiaire entre Areva et la Centrafrique dans le dossier Uramin. [...]
Idea: integrate all data sources into a heterogeneous graph

<figure><img src="image_45.png" /></figure>
# Graph construction stages

## 1. Primary node and edge construction

- Direct for XML, JSON, RDF, HTML

- 1 relational tuple=1 node;
  primary keys-foreign keys as links

- Convert information from PDF into:

- JSON for text content

- RDF describing tables

<figure><img src="image_46.png" /></figure>
# Graph construction stages

## 1. Primary node and edge construction

- Direct for XML, JSON, RDF, HTML

- 1 relational tuple=1 node; PK-FKs as links

- [Optional] segment text documents

- Extract information from PDF into: (a) JSON, and (b) RDF describing tables

## 2. Entity extraction

- From all text nodes of all the sources: **entity node** child of text node

- [VLDB2018]: based on Stanford NER

- [BDA2020] Developed and trained new entity extractor from French, based on Flair framework

<figure><img src="image_47.png" /></figure>
<figure><img src="image_48.png" /></figure>
# Graph construction stages

## 2. Entity extraction

* From all text nodes of all the sources: **entity node** child of text node

* [VLDB2018]: based on Stanford NER

* [BDA2020] Developed and trained new entity extractor from French, based on Flair framework

<figure><img src="image_49.png" /></figure>

## 3. Entity disambiguation

* For each recognized entity, e.g., "Hollande" the place or the person?

* Built novel disambiguation pipeline for French, based on Ambiverse framework

* Based on knowledge bases (WikiData, YAGO) and Wikipedia

* Helpful on well-known entities

<figure><img src="image_50.png" /></figure>
# Graph construction stages

## 4. Node matching

* ☐ To create **sameAs edges**:

* ☐ Strong sameAs edges: equivalent nodes 1.

* ☐ Weak sameAs edges: similar nodes .85

* ☐ Appropriate distance functions

* ☐ New: more normalization → better matching

* ☐ Remains quadratic at the core 😞, so...

<figure><img src="image_51.png" /></figure>

**Node factorization (heuristic):** create only one node per label per document (or per graph)
ConnectionLens graph
querying
Querying problem statement

- Given the graph G = (N, E) built out of the datasets D and a query Q= {w1, ...,wm},
  return the k highest-score minimal answer trees.

- An answer tree is a set of edges which (i) form a tree (ii) contain at least one node
  whose label matches each keyword wi.

- We are interested in **minimal answer trees**, that is:

- Removing an edge from the tree should make it lack some keyword(s).

- If a keyword matches more than one nodes in the answer tree, then all these
  matching nodes must be equivalent.
# Search space and complexity

☐ Problem related to the **(Group) Steiner Tree Problem**

☐ Given graph G, and nodes n1, ..., nm, the Steiner Tree Problem (STP) requires the smallest tree in G that connects all the nodes. Known NP-hard problem in |G|

☐ Group STP: start with m groups of nodes

☐ **Differences with our problem:**

☐ Each edge can be taken in **both directions**: exponential increase in search space size

☐ We need the **k smallest-cost trees**, not just one.

☐ Score function may be non-monotonous; no optimal sub-structure property

☐ **Large literature on kwd search in text, resp. structured data.**

☐ Differ in search space and/or make limitative assumptions on score

☐ **Our approach: enumerate solutions until time-out or max number of solutions reached.**

☐ Return best k solutions found
# GAM (Grow and Aggressive Merge) Algorithm

* Builds trees "backward" from the keyword matches

* **GROW** adds an edge to the root of a tree, **MERGE** merges trees with the same root

* Exploration (GROW) order:

1. Favor trees matching the largest number of query keywords

2. To break ties, favor smaller trees

3. To break second tie between (t1, e1), (t2, e2), we prefer the pair with the higher specificity edge.

<figure><img src="image_52.png" /></figure>

Special measures to handle equivalence clusters efficiently
Sample query answers

<figure><img src="image_53.png" /></figure>

ConnectionLens

Database: default

Import

About

<figure><img src="image_54.png" /></figure>

<figure><img src="image_55.png" /></figure>

<figure><img src="image_56.png" /></figure>

briand tonolli ruffin

<figure><img src="image_57.png" /></figure>

<figure><img src="image_58.png" /></figure>

Search Q

Rank: #1 Size: 10 Score: 0.28 2 sources

<figure><img src="image_59.png" /></figure>

Rank: #2 Size: 9 Score: 0.28 1 source

Rank: #3 Size: 9 Score: 0.28 1 source

Rank: #4 Size: 9 Score: 0.28 1 source

Rank: #5 Size: 10 Score: 0.27 1 source

Rank: #6 Size: 10 Score: 0.26 1 source

Rank: #7 Size: 11 Score: 0.25 1 source

Rank: #8 Size: 10 Score: 0.23 1 source

<figure><img src="image_60.png" /></figure>
ConnectionLens architecture
and performance
# Implementation

- ☐ Java (220 classes/40K LOC), Python (25 classes/2700 LOC), JS + CSS

- ☐ Available online: https://gitlab.inria.fr/cedar connectionlens

<figure><img src="image_61.png" /></figure>
Implementation https://arxiv.org/abs/2012.08830

☐ Graph creation time mostly **linear in the size of the data**

☐ Costliest operations involve ML (disambiguation, extraction)

☐ **Batch extraction**: 20x speed-up on GPU, 2x speed-up on regular server

☐ **Extraction policies** replace or avoid extraction in some parts of the data
Graph creation performance: storage, extraction, disambiguation https://arxiv.org/abs/2012.08830

<figure><img src="image_62.png" /><figcaption>Figure 6: Graph construction time (seconds).</figcaption></figure>
Graph creation performance: batch extraction

https://arxiv.org/abs/2012.08830

<figure><img src="image_63.png" /><figcaption>Figure 7: YAGO loading time (minutes) using Flair.</figcaption></figure>

<figure><img src="image_64.png" /></figure>
Application: conflicts of interest in the biomedical
domain https://arxiv.org/abs/2102.04141

Collaboration with Stéphane Horel (Le Monde)

Data: XML, PDF→JSON, HTML

<table><caption>Table 3: Statistics on Conflict of Interest application graph.</caption><thead><tr><th>|N|</th><th>|E|</th><th>|N|</th><th>|N<sub>P</sub>|</th><th>|N<sub>O</sub>|</th><th>|N<sub>L</sub>|</th></tr></thead><tbody><tr><td>XML</td><td>32,028,429</td><td>19,851,904</td><td>1,483,631</td><td>584,734</td><td>126,629</td></tr><tr><td>JSON</td><td>1,025,307</td><td>432,303</td><td>75,297</td><td>7,320</td><td>4,139</td></tr><tr><td>HTML</td><td>246,636</td><td>185,479</td><td>3,726</td><td>7,227</td><td>320</td></tr><tr><td>Total</td><td>33,300,372</td><td>20,469,686</td><td>1,562,654</td><td>665,167</td><td>131,088</td></tr></tbody></table>
Application: conflicts of interest in the biomedical
domain https://arxiv.org/abs/2102.04141

Collaboration with Stéphane Horel (Le Monde)

<figure><img src="image_65.png" /></figure>
# Graph quality experiments

https://arxiv.org/abs/2012.08830

- [ ] PDF extraction accuracy: 63%

- [ ] F1 score for entity extraction from French:

- [ ] Flair stacked forward and backward embeddings with French fastText embeddings: 73%

- [ ] Spacy: 63%

- [ ] StanfordNER: 45%

- [ ] F1 score of disambiguation: 86%
ConnectionLens in the
scientific landscape
# ConnectionLens in the scientific landscape (1)

**Data integration** for structured, semistructured and unstructured data

- "Ad-hoc" (combinations of sources to be unioned, joined, or chained)

- No schema, ontologies, queries known in advance

- Mediator previously developed [Bonaque et al., VLDB 2016] inappropriate due to complexity, lack of structure, and performance → graph warehouse

- Lack of structure forces reachability queries instead of join

- ☐ Price to pay for powerful integration

**Data cleaning** aspects: Similarity links require value or entity matching

- ☐ Avoid constructing structured objects ("clean tuples"): don't seem necessary
# ConnectionLens in the scientific landscape (2)

## Graph construction

- ☐ Users of **entity extraction** modules, trained a model for French

## Keyword search on structured data

- ☐ Previously studied for relational, graph, or XML databases

- ☐ Typically assume structure/regularity in the graph

- ☐ Exploit favorable properties of the score function

- ☐ First keyword search algorithm **across heterogeneous data sources**, w/o assumptions on score, w/o sub-optimal structure prop., w/ bidirectional search

- ☐ In-memory graph store and parallel query processor (200x speed-up)
Ongoing work

☐ Extending and improving the in-memory query processor (A. Anadiotis, F. Chimienti, IM)

☐ Relationship extraction (O. Balalau, M. Mohanty, IM)

☐ Natural language querying of the graph (O. Balalau, P. Upadhyay, IM + PhD in fall 2021)

☐ Improving the quality of graph linking (T. Bouganim, H. Galhardas, IM)

☐ Abstracting CL graphs (N. Barret, H. Galhardas, P. Upadhyay, IM)

☐ Applications:

☐ Conflicts of Interests in the biomedical domain (w/ S. Horel and G. Fooks, Aston U., UK)

☐ Mediacités (w/ WeDoData)
# Why data journalism?

Because I grew up in a dictatorship, and I value free press

Because journalists are threatened and killed still today in Europe

<figure><img src="image_66.png" /><figcaption>Daphne Galizia, 1964-2017</figcaption></figure>

<figure><img src="image_67.png" /><figcaption>Jan Kuciak, 1990-2018</figcaption></figure>

Because the press' economic model is threatened by IT giants

Because this industry is currently underserved by IT – and we could really make an impact!
Thank you

Questions?

ConnectionLens: https://team.inria.fr/cedar connectionlens/