Using dogesr to work with Venetian doges family types

Introduction

For the longest part of its existence, Venetian noble families used tactical marriage (Telek 2017) to improve the lot of their case or dynasties. Since access to nobility was closed by the beginning of the XIV century, and then enlarged little by little, there was a kind of stratification in the nobility, and marrying older families was a way of improving the political, commercial and social prospects for your own family.

Using data from dogesr (Merelo-Guervós 2022), we will, in this vignette, see to what extent that happened and how different types of families married with each other.

Set up

We load the datasets needed; doges describes doges and their marriages, families includes data for every noble family.

devtools::load_all(".")
#> ℹ Loading dogesr
data("doges")
data("families")

This will import the data from the dogesr package into the data.doges data frame, and family data in the family.types list. Let’s merge them into a single data frame. The table of all family names and their corresponding family type is shown below.`

marriages.types <- 
  data.frame( doge.family = data.doges$Family.doge,
              dogaressa.family = data.doges$Family.dogaressa,
              fam.type.doge = unname( unlist ( family.types[ data.doges$Family.doge ] )),
              fam.type.dogaressa = unname( unlist ( family.types[ data.doges$Family.dogaressa ] ))
)
knitr::kable(marriages.types)
doge.family dogaressa.family fam.type.doge fam.type.dogaressa
Orso Nuovissime NA
Leone Unknown NA
Cornicula Unknown NA
Teodato Unknown NA
Gioviano Unknown NA
Fabriciaco Nuove NA
Teodato Unknown NA
Gaulo Unknown NA
Monegario Estinte NA
Galbaio Estinte NA
Galbaio Estinte NA
Antenoreo Unknown NA
Participazio Estinte NA
Participazio Estinte NA
Participazio Estinte NA
Tradonico Estinte NA
Participazio Estinte NA
Participazio Estinte NA
Candiano Estinte NA
Pietro Sanudo Unknown Apostoliche
Participazio Estinte NA
Candiano Estinte NA
Participazio Estinte NA
Candiano Candiano Estinte Estinte
Candiano Candiano Estinte Estinte
Candiano diToscana Estinte NA
Orseolo Malipiero Estinte Ducali
Candiano Estinte NA
Memmo Candiano Apostoliche Estinte
Orseolo Candiano Estinte Estinte
Orseolo dUngheria Estinte NA
Barbolano Unknown NA
Flabanico Estinte NA
Contarini Apostoliche NA
Selvo Selvo Nuove Nuove
Faliero Bembo Apostoliche Evangeliche
Michiel Corner Apostoliche Evangeliche
Faliero Faliero Apostoliche Apostoliche
Michiel Michiel Apostoliche Apostoliche
Polani Michiel Apostoliche Apostoliche
Morosini Apostoliche NA
Michiel diBoemodo Apostoliche NA
Ziani Vecchie NA
Malipiero Ducali NA
Dandolo Bembo Apostoliche Evangeliche
Dandolo Minotto Apostoliche Nuove
Ziani diSicilia Vecchie NA
Tiepolo Storlato Apostoliche NA
Tiepolo diSicilia Apostoliche NA
Morosini Apostoliche NA
Zeno daPrata Vecchie NA
Tiepolo Ghisi Apostoliche Nuove
Tiepolo diBrienne Apostoliche NA
Contarini Apostoliche NA
Dandolo Apostoliche NA
Gradenigo Morosini Apostoliche Apostoliche
Gradenigo Zantani Apostoliche Nuove
Zorzi Vecchie NA
Soranzo Vecchie NA
Dandolo Contarini Apostoliche Apostoliche
Gradenigo Cappello Apostoliche Nuove
Dandolo Morosini Apostoliche Apostoliche
Faliero Gradenigo Apostoliche Apostoliche
Faliero Contarini Apostoliche Apostoliche
Gradenigo Cappello Apostoliche Nuove
Gradenigo Borromeo Apostoliche NA
Dolfin Apostoliche NA
Celsi Ghisi Nuove Nuove
Corner Corner Evangeliche Evangeliche
Contarini Apostoliche NA
Morosini Condulmiero Apostoliche Nuovissime
Venier daMosto Ducali NA
Steno Galina Nuove NA
Mocenigo Cappello Ducali Nuove
Foscari Priuli Ducali Ducali
Foscari Nani Ducali Nuove
Malipiero Dandolo Ducali Apostoliche
Moro Sanudo Ducali Apostoliche
Tron Morosini Ducali Apostoliche
Marcello Barbarigo Ducali Ducali
Marcello Contarini Ducali Apostoliche
Mocenigo Zorzi Ducali Vecchie
Vendramin Gradenigo Nuovissime Apostoliche
Mocenigo Michiel Ducali Apostoliche
Barbarigo Ruzzini Ducali Nuove
Barbarigo Soranzo Ducali Vecchie
Loredan Giustinian Ducali Evangeliche
Grimani Loredan Ducali Ducali
Gritti Vendramin Ducali Nuovissime
Lando Pasqualigo Ducali Nuove
Donato Giustinian Ducali Evangeliche
Donato Da Mula Ducali Nuove
Trivisan Ducali NA
Venier Ducali NA
Priuli Dandolo Ducali Apostoliche
Priuli Diedo Ducali Nuove
Loredan Pasqualigo Ducali Nuove
Loredan Cappello Ducali Nuove
Mocenigo Marcello Ducali Ducali
Venier Contarini Ducali Apostoliche
Da Ponte Canali Nuove NA
Cicogna Morosini Nuovissime Apostoliche
Grimani Morosini Ducali Apostoliche
Donato Ducali NA
Memmo Apostoliche NA
Bembo Evangeliche NA
Donato Ducali NA
Priuli Barbarigo Ducali Ducali
Contarini Apostoliche NA
Corner Delfino Evangeliche NA
Contarini Apostoliche NA
Erizzo Nuove NA
Molin Nuove NA
Contarini Loredan Apostoliche Ducali
Corner Priuli Evangeliche Ducali
Valier Pisani Nuove Nuove
Pesaro Barbarigo Nuove Ducali
Contarini Apostoliche NA
Sagredo Nuove NA
Contarini Apostoliche NA
Giustinian Evangeliche NA
Morosini Apostoliche NA
Valier Querini Nuove Vecchie
Mocenigo Ducali NA
Corner Corner Evangeliche Evangeliche
Mocenigo Ducali NA
Ruzzini Nuove NA
Pisani Badoero Nuove Evangeliche
Grimani Ducali NA
Loredan Ducali NA
Foscarini Nuove NA
Mocenigo Corner Ducali Evangeliche
Mocenigo Contarini Ducali Apostoliche
Renier Donato Nuovissime Ducali
Renier Dalmet Nuovissime NA
Manin Grimani Soldo Ducali

Let’s create an adjacency matrix for this

marriages.just.types <- marriages.types
marriages.just.types$doge.family <- NULL
marriages.just.types$dogaressa.family <- NULL
marriages.just.types$fam.type.doge <- paste0(marriages.just.types$fam.type.doge,"♂")
marriages.just.types$fam.type.dogaressa <- paste0(marriages.just.types$fam.type.dogaressa,"♀")
levs <- c(unique(unlist(marriages.just.types$fam.type.doge, use.names = FALSE)),unique(unlist(marriages.just.types$fam.type.dogaressa, use.names = FALSE)))
types.adjacency <- table(lapply(marriages.just.types, factor, levs))
types.adjacency <- types.adjacency[,-c(1:9)]
types.adjacency <- types.adjacency[-c(10:18),]
knitr::kable(types.adjacency)
NA♀ Apostoliche♀ Estinte♀ Ducali♀ Nuove♀ Evangeliche♀ Nuovissime♀ Vecchie♀
Nuovissime♂ 2 2 0 1 0 0 0 0
Unknown♂ 8 1 0 0 0 0 0 0
Nuove♂ 8 0 0 1 3 1 0 1
Estinte♂ 17 0 3 1 0 0 0 0
Apostoliche♂ 18 8 1 1 5 3 1 0
Vecchie♂ 5 0 0 0 0 0 0 0
Ducali♂ 10 9 0 5 8 3 1 2
Evangeliche♂ 3 0 0 1 0 2 0 0
Soldo♂ 0 0 0 1 0 0 0 0

The heaviest link seem to be between the evangeliche and apostoliche cases, although “Not available” is the heaviest column for doges, who either did not marry or married some non-patrician family; this happened most frequently in the pre-Serrata (Puga and Trefler 2014) times.

Let’s look at this in a Sankey diagram

library(tidyr)
#> 
#> Attaching package: 'tidyr'
#> The following object is masked from 'package:testthat':
#> 
#>     matches
#> The following object is masked from 'package:igraph':
#> 
#>     crossing
library(dplyr)
#> 
#> Attaching package: 'dplyr'
#> The following object is masked from 'package:testthat':
#> 
#>     matches
#> The following objects are masked from 'package:igraph':
#> 
#>     as_data_frame, groups, union
#> The following objects are masked from 'package:stats':
#> 
#>     filter, lag
#> The following objects are masked from 'package:base':
#> 
#>     intersect, setdiff, setequal, union
library(tibble)
#> 
#> Attaching package: 'tibble'
#> The following object is masked from 'package:igraph':
#> 
#>     as_data_frame
links <- types.adjacency  %>% as.data.frame() 
nodes <- data.frame(
  name=c(as.character(links$fam.type.doge), as.character(links$fam.type.dogaressa)) %>% 
    unique()
  )
links$IDsource <- match(links$fam.type.doge, nodes$name)-1 
links$IDtarget <- match(links$fam.type.dogaressa, nodes$name)-1

library(networkD3)
links <- links[ links$Freq > 0,]
sankeyNetwork(Links = links, Nodes = nodes,
                     Source = "IDsource", Target = "IDtarget",
                     Value = "Freq", NodeID = "name", 
                     sinksRight=FALSE)

We are mostly interested, however, in the social links formed by different types of noble families, so we will simply eliminate those rows and columns to have a clearer picture.

types.adjacency <- types.adjacency[-1,-1]
links2 <- types.adjacency  %>% as.data.frame() 
nodes2 <- data.frame(
  name=c(as.character(links2$fam.type.doge), as.character(links2$fam.type.dogaressa)) %>% 
    unique()
  )
links2$IDsource <- match(links2$fam.type.doge, nodes2$name)-1 
links2$IDtarget <- match(links2$fam.type.dogaressa, nodes2$name)-1
links2 <- links2[ links2$Freq > 0,]
sankeyNetwork(Links = links2, Nodes = nodes2,
                     Source = "IDsource", Target = "IDtarget",
                     Value = "Freq", NodeID = "name")

What we see here is the popularity of apostoliche dogaresse, and of ducali doges. But also how common marrying up was. Apostolochie families couldn’t marry up, since they were in the first post-Serrata batch, so they married with other similar families as well as evangeliche. These, despite being only four families, were quite popular in terms of providing wives for other doges.

Ducali families, being newer to the noble families pool, married preferably up: apostoliche, vecchie and evangeliche, as well as their own class. Only a relative minority married other nuove families. Nuove families, however, did not manage to marry into any apostoliche family; while the few nuovissime and soldo (paid positions) also married up, to apostoliche and ducali families, respectively.

Conclusions

In (Merelo-Guervós 2022) we hinted at the possibility that marrying in Venetian nobles families was done tactically, so that the commercial and political prospects of both families were enhanced. What we examine in this report is how intermarriage among the different types of families work, and found that, in general, family classes tended to marry older families, thus improving their position in the social network and/or solidifying it by making links to families with higher social capital.

References

Merelo-Guervós, J. J. 2022. “What Is a Good Doge? Analyzing the Patrician Social Network of the Republic of Venice.” arXiv. https://doi.org/10.48550/ARXIV.2209.07334.
Puga, Diego, and Daniel Trefler. 2014. International Trade and Institutional Change: Medieval Venice’s Response to Globalization.” The Quarterly Journal of Economics 129 (2): 753–821. https://doi.org/10.1093/qje/qju006.
Telek, Ádám. 2017. “Marrying the Right One – Evidence on Social Network Effects in Politics from the Venetian Republic.” https://editorialexpress.com/cgi-bin/conference/download.cgi?db\_name=SAEe2017\&paper\_id=520.