Using `dogesr` to work with Venetian doges family types

knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)

Introduction

For the longest part of its existence, Venetian noble families used marriage tactically [@Telek2017MarryingTR] 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 [@dogesr], 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(".")
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)

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)

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 [@serrata] times.

Let's look at this in a Sankey diagram

library(tidyr)
library(dplyr)
library(tibble)
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 [@dogesr] 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



Try the dogesr package in your browser

Any scripts or data that you put into this service are public.

dogesr documentation built on June 25, 2025, 5:11 p.m.