Exploring ESC Winners with Nested Diagrams

arXiv cs.AI Papers

Summary

This paper introduces ConceptFlow, a scikit-learn-compatible Python library for Formal Concept Analysis that generates nested line diagrams, applied to analyze voting patterns and musical characteristics of Eurovision Song Contest winners.

arXiv:2608.13630v1 Announce Type: new Abstract: We present ConceptFlow, a scikit-learn-compatible Python library for Formal Concept Analysis that constructs and renders nested line diagrams from many-valued formal contexts. Given a many-valued context and a partition of its attributes into conceptual scales, ConceptFlow performs conceptual scaling, computes the factor lattices, identifies filled nodes of the corresponding subdirect product, and produces an interactive visualization. We apply ConceptFlow to the winners of the Eurovision Song Contest from 1975 to 2025, exploring relationships between voting patterns and musical characteristics. Voting support is captured by an outer scale spanning regional, cultural, historical, and political dimensions, while an inner scale captures musical characteristics via tempo and key. The resulting nested line diagram reveals implications across both scales, exposing dependencies between how winning entries were voted for and the musical properties they share.
Original Article
View Cached Full Text

Cached at: 08/17/26, 09:48 AM

# Exploring ESC Winners with Nested Diagrams
Source: [https://arxiv.org/html/2608.13630](https://arxiv.org/html/2608.13630)
Anurag SharmaAffiliation:Knowledge & Data Engineering Group \(KDE\), University of Kassel, GermanyAffiliation:Interdisciplinary Research Center for Information Systems Design \(ITeG\), University of Kassel, GermanyE\-mail[\{sharma,noehre,stumme\}@cs\.uni\-kassel\.de](mailto:{sharma,noehre,stumme}@cs.uni-kassel.de)Marcel NöhreAffiliation:Knowledge & Data Engineering Group \(KDE\), University of Kassel, GermanyAffiliation:Interdisciplinary Research Center for Information Systems Design \(ITeG\), University of Kassel, GermanyE\-mail[\{sharma,noehre,stumme\}@cs\.uni\-kassel\.de](mailto:{sharma,noehre,stumme}@cs.uni-kassel.de)Gerd StummeAffiliation:Knowledge & Data Engineering Group \(KDE\), University of Kassel, GermanyAffiliation:Interdisciplinary Research Center for Information Systems Design \(ITeG\), University of Kassel, GermanyE\-mail[\{sharma,noehre,stumme\}@cs\.uni\-kassel\.de](mailto:{sharma,noehre,stumme}@cs.uni-kassel.de)

###### Abstract

We present*ConceptFlow*, a scikit\-learn\-compatible Python library for Formal Concept Analysis that constructs and renders nested line diagrams from many\-valued formal contexts\. Given a many\-valued context and a partition of its attributes into conceptual scales, ConceptFlow performs conceptual scaling, computes the factor lattices, identifies filled nodes of the corresponding subdirect product, and produces an interactive visualization\.

We apply ConceptFlow to the winners of the Eurovision Song Contest from 1975 to 2025, exploring relationships between voting patterns and musical characteristics\. Voting support is captured by an outer scale spanning regional, cultural, historical, and political dimensions, while an inner scale captures musical characteristics via tempo and key\. The resulting nested line diagram reveals implications across both scales, exposing dependencies between how winning entries were voted for and the musical properties they share\.

###### Keywords:

ConceptFlow Formal Concept Analysis Nested Line Diagrams Eurovision Song Contest

## 1Introduction

The Eurovision Song Contest \(ESC\) is a yearly music competition where each participating country enters a song and judges the songs of all other countries\. Since 1975, every country distributes the scores 1\-8, 10, and 12 to its ten favourite performances, never voting for itself\. How those scores are decided, by juries, public televoting, or a combination, has changed repeatedly over the decades\. The contest also has a long\-standing reputation for biased voting, with persistent alliances between countries\. Greece and Cyprus, for instance, reliably award each other 12 points\[[3](https://arxiv.org/html/2608.13630#bib.bib1)\]\.

Formal Concept Analysis \(FCA\) provides a natural framework for studying such relationships, representing voting patterns and musical characteristics within a single conceptual structure\. In this paper, we present the nested line diagram functionality of*ConceptFlow*\[[6](https://arxiv.org/html/2608.13630#bib.bib7)\], a scikit\-learn\-compatible Python library for Formal Concept Analysis whose components follow the scikit\-learn estimator interface\. We demonstrate its use by analyzing ESC winners\. The outer scale captures voting support across taxonomic clusters, while the inner scale captures musical characteristics\. The resulting formal context reveals implications between these two dimensions, exposing dependencies between how winning entries were voted for and the musical properties they share\.

## 2Background

We assume familiarity with FCA\[[2](https://arxiv.org/html/2608.13630#bib.bib2)\]\. Briefly, a*formal context*\(G,M,𝐼\)\(G,M,\\mathrel\{I\}\)consists of a setGGof objects, a setMMof attributes, and a relationI⊆G×MI\\subseteq G\\times M\. A*formal concept*is a pair\(A,B\)\(A,B\)of a maximal object set and the attributes they share; ordered by extent inclusion, these concepts form the*concept lattice*𝔅¯\(G,M,𝐼\)\\underline\{\{\\mathfrak\{B\}\}\}\(G,M,\\mathrel\{I\}\)\.

Let𝕂=𝕂outer\|𝕂inner\\mathbb\{K\}=\\mathbb\{K\}\_\{\\mathrm\{outer\}\}\\mid\\mathbb\{K\}\_\{\\mathrm\{inner\}\}denote the apposition of two formal contexts\. The concept lattice𝔅¯​\(𝕂\)\\underline\{\\mathfrak\{B\}\}\(\\mathbb\{K\}\)is isomorphic to a subdirect join\-semilattice product of the factor lattices𝔅¯​\(𝕂outer\)\\underline\{\\mathfrak\{B\}\}\(\\mathbb\{K\}\_\{\\mathrm\{outer\}\}\)and𝔅¯​\(𝕂inner\)\\underline\{\\mathfrak\{B\}\}\(\\mathbb\{K\}\_\{\\mathrm\{inner\}\}\)\[[2](https://arxiv.org/html/2608.13630#bib.bib2)\]\. Thus, every formal concept\(A,B\)∈𝔅⁡\(𝕂\)\(A,B\)~\\in~\\mathfrak\{B\}\(\\mathbb\{K\}\)is represented by exactly one pair consisting of an outer concept and an inner concept\.

A*line diagram*of𝔅¯\(G,M,𝐼\)\\underline\{\{\\mathfrak\{B\}\}\}\(G,M,\\mathrel\{I\}\)represents each formal concept by a node and connects two nodes by a straight segment whenc1≤c2c\_\{1\}\\leq c\_\{2\}is in the transitive reduction of≤\\leq, drawing the smaller concept strictly below the larger\. Each node is assigned coordinates inℝ2\\mathbb\{R\}^\{2\}, which determine the position of the corresponding concept in the drawing\.*Doubly\-additive*line diagrams form a special class: each concept’s position inℝ2\\mathbb\{R\}^\{2\}is the sum of the vectors of the objects in its extent and the attributes in its complement intent, where positiveyy\-components ensure the vertical order respects the order relation≤\\leq\. It suffices to assign vectors to the irreducibles of the reduced context\. In this work, we considerDimFlux\[[5](https://arxiv.org/html/2608.13630#bib.bib3)\], which projects*DimDraw*coordinates into the additive space and refines them for readability using a force\-based model\.

*Nested line diagrams*visualize the concept lattice of a formal context by decomposing its attribute set into several*scales*\. Rather than constructing a single concept lattice over all attributes, the context is viewed as the apposition of subcontexts sharing the same object set\. One factor lattice is displayed as the*outer*diagram, while a copy of another factor lattice is placed inside each of its concepts\[[2](https://arxiv.org/html/2608.13630#bib.bib2)\]\. The construction of such a nested line diagram is described in detail in Section[4](https://arxiv.org/html/2608.13630#S4)\.

## 3ESC Dataset and Scale Construction

We analyse the 50 winners of the Eurovision Song Contest from 1975 to 2025, excluding the cancelled 2020 contest\. Voting results and song metadata come from the publicly available Eurovision Song Contest Dataset111[https://github\.com/EurovisionAPI/dataset](https://github.com/EurovisionAPI/dataset)\. For each winner, we collect the final voting results222Before 2016, the ESC reports only a combined voting result\. Since 2016, jury and public televoting are reported separately\. For consistency, we represent each winner by a single voting profile: the combined score before 2016, and thereafter whichever of jury or televote awards the larger total number of points\.together with musical metadata, including the song’s BPM and key\. The resulting many\-valued context forms the input for the conceptual scaling process described below\.

The outer scale captures whether a winning entry received strong support from countries to which it has strong ties\. We studied four different types of ties:*regional*,*cultural*,*historical*, and*political*\. For each of the four types, we manually clustered the set of participating countries, as described in our blog333[https://www\.kde\.cs\.uni\-kassel\.de/blogs/esc](https://www.kde.cs.uni-kassel.de/blogs/esc), to reflect commonly discussed sources of voting affinity\[[3](https://arxiv.org/html/2608.13630#bib.bib1),[7](https://arxiv.org/html/2608.13630#bib.bib5)\]\. For each winning entryggand clustermmin any of the four clusterings, we set\(g,m\)∈I\(g,m\)\\in Iif winnerggreceived at least eight points on average from the eligible countries inmm\.

The inner scale captures two musical properties of the winning songs: tempo and key\. Tempo is transformed using a threshold scale with thresholds at 100 and 150 BPM, yielding the Boolean attributes*≥\\geq100 BPM*and*≥\\geq150 BPM*\[[4](https://arxiv.org/html/2608.13630#bib.bib6)\]\. Since the scale is ordinal, every song with tempo at least 150 BPM also satisfies*≥\\geq100 BPM*\. Key is represented by a dichotomic scale with the mutually exclusive attributes*major*and*minor*\.

## 4Constructing the Nested Line Diagram

In this work, we present*ConceptFlow*, a scikit\-learn\-compatible Python library for Formal Concept Analysis providing FCA basics, conceptual scaling, and visualization tools\[[6](https://arxiv.org/html/2608.13630#bib.bib7)\]\. Given a many\-valued formal context \(such as the ESC dataset described in Section[3](https://arxiv.org/html/2608.13630#S3)\), we independently construct the outer and inner formal contexts by conceptual scaling and compute their corresponding concept lattices\.

### 4\.1Building the Factor Lattices

The construction begins with a many\-valued context whose object setGGconsists of the 50 ESC winners\. Conceptual scaling is then applied to derive two formal contexts,𝕂outer=\(G,Mouter,Iouter\)\\mathbb\{K\}\_\{\\mathrm\{outer\}\}=\(G,M\_\{\\mathrm\{outer\}\},I\_\{\\mathrm\{outer\}\}\)and𝕂inner=\(G,Minner,Iinner\)\\mathbb\{K\}\_\{\\mathrm\{inner\}\}=\(G,M\_\{\\mathrm\{inner\}\},I\_\{\\mathrm\{inner\}\}\), whereMouterM\_\{\\mathrm\{outer\}\}contains all country clusters of the four clusterings, whileMinner=\{≥100BPM,≥150BPM,minor,major\}M\_\{\\mathrm\{inner\}\}=\\\{\\geq 100\\,\\textrm\{BPM\},\\geq 150\\,\\textrm\{BPM\},\\textrm\{minor\},\\textrm\{major\}\\\}\.

The concept lattices of𝕂outer\\mathbb\{K\}\_\{\\mathrm\{outer\}\}and𝕂inner\\mathbb\{K\}\_\{\\mathrm\{inner\}\}provide the factor lattices of the nested line diagram\. Since both contexts share the same object set, they satisfy the apposition condition described in Section[2](https://arxiv.org/html/2608.13630#S2)\.

### 4\.2Computing Filled Nodes

Rather than constructing the concept lattice of the full apposition explicitly, we compute the filled nodes directly from the two factor lattices\. For every objectg∈Gg\\in G, we determine its object conceptsγouter​\(g\)\\gamma\_\{\\mathrm\{outer\}\}\(g\)andγinner​\(g\)\\gamma\_\{\\mathrm\{inner\}\}\(g\), which form the initial set of atomic coordinate pairs

P0=\{\(γouter\(g\),γinner\(g\)\)∣g∈G\}∪\{\(⊥outer,⊥inner\)\}\.P\_\{0\}=\\left\\\{\(\\gamma\_\{\\mathrm\{outer\}\}\(g\),\\gamma\_\{\\mathrm\{inner\}\}\(g\)\)\\mid g\\in G\\right\\\}\\cup\\left\\\{\(\\bot\_\{\\mathrm\{outer\}\},\\bot\_\{\\mathrm\{inner\}\}\)\\right\\\}\.We add\(⊥outer,⊥inner\)\(\\bot\_\{\\mathrm\{outer\}\},\\bot\_\{\\mathrm\{inner\}\}\)explicitly, since it represents\(M′,M\)\(M^\{\\prime\},M\), which is always included in the subdirect product\. Equivalently, it is the join \(supremum\) of the empty set and therefore cannot be generated from the atomic pairs by taking non\-empty joins\.

We then repeatedly compute the componentwise joins of all coordinate pairs until no new pairs are generated\. The resulting fixpoint is exactly the image of the subdirect join\-preserving embedding

φ:𝔅¯​\(𝕂\)→𝔅¯​\(𝕂outer\)×𝔅¯​\(𝕂inner\),\\varphi:\\underline\{\\mathfrak\{B\}\}\(\\mathbb\{K\}\)\\rightarrow\\underline\{\\mathfrak\{B\}\}\(\\mathbb\{K\}\_\{\\mathrm\{outer\}\}\)\\times\\underline\{\\mathfrak\{B\}\}\(\\mathbb\{K\}\_\{\\mathrm\{inner\}\}\),identifying the inner formal concepts to be filled in the nested line diagram\.

### 4\.3Rendering

After the filled nodes have been determined, both factor lattices are laid out using DimFlux\[[5](https://arxiv.org/html/2608.13630#bib.bib3)\]\. The outer lattice is drawn once, while the inner lattice’s layout is computed only once and then reused as a fixed template inside every outer concept\. As a result, corresponding inner concepts occupy identical relative positions throughout the visualization, so that differences between outer concepts are visible solely through which nodes are filled\.

The complete nested line diagram is then exported as a JSON representation containing node positions, edges, labels, and filled coordinate pairs\. This representation is rendered as an interactive D3\.js\[[1](https://arxiv.org/html/2608.13630#bib.bib4)\]visualization, cleanly separating the visualization layer from the underlying FCA implementation, so that the rendering component remains independent of the construction algorithms\.

## 5Results

![Refer to caption](https://arxiv.org/html/2608.13630v1/outer_lattice.png)Figure 1:Nested line diagram of the ESC winners generated with ConceptFlow\. Filled nodes represent concepts of the original context, whereas hollow nodes correspond to implications visible in the combined context\.Filled nodes represent the concepts of the original context after decomposing it into outer and inner scales\. Unfilled nodes correspond to implications\. To determine what an unfilled node implies, one locates the unique largest filled node below it, either within the same inner lattice or, if necessary, in a lower outer concept\. Since the attributes of the unfilled node are contained in those of this filled node, the additional attributes introduced constitute the implication\.

The nested line diagram \(Figure[1](https://arxiv.org/html/2608.13630#S5.F1)\)444An interactive version of the nested line diagram and a companion blog post with a more detailed discussion of the methodology, results, and implications are available at[https://www\.kde\.cs\.uni\-kassel\.de/blogs/esc](https://www.kde.cs.uni-kassel.de/blogs/esc)\.makes several implications between voting patterns and musical characteristics visible that hold in the analyzed dataset\. Among the 50 ESC winners considered, every winning song with a tempo of at least150150BPM also received cultural support\. Another dependency relates to tempo and key mode\. Among winners receiving regional or cultural support, every minor\-key song has a tempo of at least100100BPM\. This is reflected by the absence of the corresponding node for a slow minor\-key song, whereas the node representing minor\-key songs with a tempo of at least100100BPM is filled\.

The diagram also reveals relationships involving combinations of voting\-support attributes\. In particular, winners that combine cultural support with a minor key and a tempo of at least150150BPM also receive political and historical support\. The absence of the corresponding node in the nested diagram therefore indicates that this combination never occurs without the additional voting\-support attributes\.

These observations illustrate how the nested representation localises implications within particular nodes of the subdirect product\. Rather than listing implications algebraically, the diagram shows where musical combinations are possible and where they are excluded by additional voting\-support conditions\.

## 6Conclusion

We presented*ConceptFlow*, a scikit\-learn\-compatible Python library for Formal Concept Analysis supporting conceptual scaling, concept lattice construction, and interactive nested line diagrams\. Using the Eurovision Song Contest as a case study, we demonstrated how nested line diagrams combine multiple conceptual scales into a single visualization, making relationships and implications between voting patterns and musical characteristics directly accessible\. The ESC analysis serves as a demonstration of the library’s capabilities rather than as a comprehensive statistical study of ESC voting behaviour\.

Future work will extend ConceptFlow with additional conceptual scales, support for implication theory, and further interactive visualization capabilities\. In particular, we plan to compute canonical implication bases and integrate them into the interactive interface, allowing users to inspect the implications associated with concepts and unfilled regions of the diagrams directly within the visualization\. This will further strengthen the connection between visualization and knowledge discovery in Formal Concept Analysis\.

## References

- \[1\]\(2011\)D3: data\-driven documents\.IEEE Transactions on Visualization and Computer Graphics17\(12\),pp\. 2301–2309\.External Links:[Document](https://dx.doi.org/10.1109/TVCG.2011.185)Cited by:[§4\.3](https://arxiv.org/html/2608.13630#S4.SS3.p2.1)\.
- \[2\]B\. Ganter and R\. Wille\(2024\)Formal concept analysis \- mathematical foundations\.2nd edition,Springer\.External Links:ISBN 978\-3\-031\-63421\-5Cited by:[§2](https://arxiv.org/html/2608.13630#S2.p1.1),[§2](https://arxiv.org/html/2608.13630#S2.p2.1),[§2](https://arxiv.org/html/2608.13630#S2.p4.1)\.
- \[3\]D\. Gatherer\(2006\)Comparison of eurovision song contest simulation with actual results reveals shifting patterns of collusive voting alliances\.\.Journal of Artificial Societies and Social Simulation9\(2\),pp\. 1\.External Links:ISSN 1460\-7425,[Link](https://www.jasss.org/9/2/1.html)Cited by:[§1](https://arxiv.org/html/2608.13630#S1.p1.1),[§3](https://arxiv.org/html/2608.13630#S3.p2.1)\.
- \[4\]G\. Madison and J\. Paulin\(2010\)Ratings of speed in real music as a function of both original and manipulated beat tempo\.The Journal of the Acoustical Society of America128\(5\),pp\. 3032–3040\.External Links:[Document](https://dx.doi.org/10.1121/1.3493462),[Link](https://pubmed.ncbi.nlm.nih.gov/21110598/)Cited by:[§3](https://arxiv.org/html/2608.13630#S3.p3.1)\.
- \[5\]M\. Nöhre, D\. Dürrschnabel, B\. Ganter, and G\. Stumme\(2026\)DimFlux: force\-directed additive line diagrams\.International Journal of Approximate Reasoning197,pp\. 109734\.External Links:ISSN 0888\-613X,[Document](https://dx.doi.org/10.1016/j.ijar.2026.109734),[Link](https://www.sciencedirect.com/science/article/pii/S0888613X2600109X)Cited by:[§2](https://arxiv.org/html/2608.13630#S2.p3.1),[§4\.3](https://arxiv.org/html/2608.13630#S4.SS3.p1.1)\.
- \[6\]A\. Sharma\(2026\)ConceptFlow: a scikit\-learn\-compatible Python library for formal concept analysis\.Note:[https://github\.com/anuragxorma/conceptflow](https://github.com/anuragxorma/conceptflow)GitHub repositoryCited by:[§1](https://arxiv.org/html/2608.13630#S1.p2.1),[§4](https://arxiv.org/html/2608.13630#S4.p1.1)\.
- \[7\]G\. Yair\(1995\)‘Unite Unite Europe’: the political and cultural structures of europe as reflected in the eurovision song contest\.Social Networks17\(2\),pp\. 147–161\.External Links:[Document](https://dx.doi.org/10.1016/0378-8733%2895%2900253-K),[Link](https://www.sciencedirect.com/science/article/pii/037887339500253K)Cited by:[§3](https://arxiv.org/html/2608.13630#S3.p2.1)\.

Similar Articles

SciForma: Structure-Faithful Generation of Scientific Diagrams

Hugging Face Daily Papers

Introduces SciForma, a framework for generating scientific methodology diagrams with high structural fidelity, using multi-dimensional conjunctive preference optimization (M-DPO) and a structural inventory to ensure correctness across component, arrow, and text axes. The 9B model surpasses open-source baselines and GPT-Image-1.5 on benchmark evaluations.