people
in the EDH
datasetvignettes/Encoding.Rmd
Encoding.Rmd
Install and load a version of "sdam"
package.
install.packages("sdam") # from CRAN
devtools::install_github("sdam-au/sdam") # development version
devtools::install_github("mplex/cedhar", subdir="pkg/sdam") # legacy version R 3.6.x
# load and check versions
library(sdam)
packageVersion("sdam")
[1] '1.1.1'
EDH
is a dataset in "sdam"
that contains the texts of Latin and Latin-Greek inscriptions of the Roman Empire, which have been retrieved from the Epigraphic Database Heidelberg API repository through routines get.edh()
and get.edhw()
.Since the year 2022 and still today, the API repository does not support people variables, and the EDH
dataset serves as an alternative for the analysis of people-related inscriptions.
One challenge with people variables in EDH
is that some records contain characters in Greek and Latin extended that need re-encoding for a proper rendering and display.
people
in EDH
Ancient inscriptions in some Roman provinces have Greek characters written and, due to encoding and decoding steps in the process of extraction, loading, and transformation of the data (perhaps Treating UTF-8 Bytes as Windows-1252?), Greek and other Latin characters are not displayed properly with the actual version of the EDH
dataset. Most of the encoding issues are in variables related to people, and some examples with inscriptions in Roman provinces are next.
The Roman province of Achaia in the EDH
dataset has inscriptions related to people.
Function edhw()
is to obtain the available inscriptions per province in the EDH dataset, which is a list that is the input for the same function to extract people
variables cognomen and nomen. In this case, the 'province'
argument is Ach
that stands for Achaia
.
# select two people variables from Achaia
Ach <- edhw(province="Ach") |>
edhw(vars="people", select=c("cognomen","nomen"))
There are 1539 records with people in Ach
that corresponds to the number of rows in this data frame.
# number of people entries in Achaia
nrow(Ach)
[1] 1539
However, some records have either missing data or are inscriptions where cognomen and nomen are not available.
# also remove NAs
Ach <- edhw(province="Ach") |>
edhw(vars="people", select=c("cognomen","nomen"), na.rm=TRUE)
nrow(Ach)
[1] 1465
Treating with people
attribute variables requires many times re-encoding that is one option in function cln()
. For instance, values in cognomen in the first entries of Ach
are likely in Greek.
# some people entries in Achaia
head(Ach)
id cognomen nomen
1 HD001917 Rufus Ponponius (= Pomponius)
2 HD001917 Eia Ponponia (= Pomponia)
3 HD001917 Î<U+0094>όξα Î\235ίκη <NA>
4 HD002097 Î<U+0092>αλλενÏ<U+0084>ινιανόÏ<U+0082>+ <NA>
5 HD002097 Î<U+0092>άληÏ<U+0082> <NA>
6 HD002097 Arcadius+ <NA>
Function cln()
serves to re-encode Greek and Latin characters to render Greek, Greek extended, and Latin extended glyphs.
cognomen
Rufus
Eia
ΔόξαΝίκη
Βαλλεντινιανός+
Βάλης
Arcadius+
For cognomen in the last people entries in Achaia
.
# last entries
tail(Ach)
id cognomen
1534 HD068263 Î<U+009A>άλλÏ<U+0085>Ï<U+0082>
1535 HD068315 ΦÏ\201ονÏ<U+0084>εá¿<U+0096>νοÏ<U+0082> Î\235εικήÏ\201αÏ<U+0084>οÏ<U+0082>
1536 HD068319 ΦÏ\201ονÏ<U+0084>εá¿<U+0096>νοÏ<U+0082> Î\235εικήÏ\201αÏ<U+0084>οÏ<U+0082>
1537 HD072342 Î<U+0091>ἰμιλιανόÏ<U+0082>+
1538 HD072342 Î<U+009A>αιλιανόÏ<U+0082>+
1539 HD078079 Eburo
nomen
1534 <NA>
1535 Î<U+009A>λαύδιοÏ<U+0082>
1536 Î<U+009A>λαύδιοÏ<U+0082>
1537 Î<U+009F>á½\220á½±Ï\201ιοÏ<U+0082>+
1538 <NA>
1539 <NA>
After re-encoding the last records in Ach
with cln()
, it is easier to see, for example, that some have identical cognomen where entries having <NA>
in the input become NA
.
In the case of the province of Aegyptus, three people variables have a mixing og Greek and Latin characters scripted that need re-codification as well.
cognomen
81 Augustus+ / ΣεβαÏ<U+0083>Ï<U+0084>á½¹Ï<U+0082>
82 Aquila / á¼<U+0088>κύλα
83 Traianus Hadrianus / ΤÏ\201αιανὸÏ<U+0082> á¼<U+0089>δÏ\201ιανόÏ<U+0082>
84 Serenus / ΣεÏ\201ηνόÏ<U+0082>
85 Domitianus+ / Î<U+0094>ομιÏ<U+0084>ιανόÏ<U+0082>++
86 Vegetus / Î<U+009F>á½\220ÎγεÏ<U+0084>οÏ<U+0082>
87 Î<U+009B>Ï<U+0085>Ï<U+0083>ᾶÏ<U+0082> / Lysas
88 ΠλόκαμοÏ<U+0082> / Plocamus
name
81 Imp. Caesar divi f. August. / Î<U+0091>á½\220Ï<U+0084>οκÏ\201á½±Ï<U+0084>Ï<U+0089>Ï\201 Î<U+009A>αá¿<U+0096>Ï<U+0083>αÏ\201 θεοῦ Ï<U+0085>ἱὸÏ<U+0082> ΣεβαÏ<U+0083>Ï<U+0084>ὸÏ<U+0082>
82 C. Iulio Aquila / Î<U+0093>αá¿<U+0093>οÏ<U+0085> ἸοÏ<U+0085>λίοÏ<U+0085> á¼<U+0088>κύλα
83 Traiani Hadriani / ΤÏ\201αιανοῦ á¼<U+0089>δÏ\201ιανοῦ
84 Sulpic. Serenus / ΣοÏ<U+0085>λÏ<U+0080>ίκιοÏ<U+0082> Ï<U+0085>ἱὸÏ<U+0082> Î<U+0093>ναίοÏ<U+0085> Î<U+009A>οÏ<U+0085>ιÏ\201ίνα ΣεÏ\201ηνὸÏ<U+0082>
85 [Domitiani] / [[Î<U+0094>ομιÏ<U+0084>ια.]]
86 G. Septimio Vegeto / Î<U+0093>αá¿<U+0093>οÏ<U+0085> ΣεÏ<U+0080>Ï<U+0084>ιμίοÏ<U+0085> Î<U+009F>á½\220εγέÏ<U+0084>οÏ<U+0085>
87 Î<U+009B>Ï<U+0085>Ï<U+0083>ᾶÏ<U+0082> ΠοÏ<U+0080>λίοÏ<U+0085> á¼<U+0088>ννίοÏ<U+0085> ΠλοκάμοÏ<U+0085> / Lysas P. Anni Plocami
88 ΠοÏ<U+0080>λίοÏ<U+0085> á¼<U+0088>ννίοÏ<U+0085> ΠλοκάμοÏ<U+0085> / P. Anni Plocami
nomen
81 Caesar / Î<U+009A>αá¿<U+0096>Ï<U+0083>αÏ\201
82 Iulius / ἸούλιοÏ<U+0082>
83 <NA>
84 Sulpicius* / ΣοÏ<U+0085>λÏ<U+0080>ίκιοÏ<U+0082>
85 <NA>
86 Septimius / ΣεÏ<U+0080>Ï<U+0084>ίμιοÏ<U+0082>
87 <NA>
88 á¼<U+008C>ννιοÏ<U+0082> / Annius
For people in Aegyptus
, columns three, and five to six correspond to cognomen, name, and nomen, where the output from cln()
in the console is a dataframe.
cognomen
Augustus+ / Σεβαστός
Aquila / Ἀκύλα
Traianus Hadrianus / ΤραιανὸςἉδριανός
Serenus / Σερηνός
Domitianus+ / Δομιτιανός++
Vegetus / Οὐέγετος
Λυσᾶς / Lysas
Πλόκαμος / Plocamus
name
Imp. Caesar divi f. August. / ΑὐτοκράτωρΚαῖσαρθεοῦυἱὸςΣεβαστὸς
C. Iulio Aquila / ΓαΐουἸουλίουἈκύλα
Traiani Hadriani / ΤραιανοῦἉδριανοῦ
Sulpic. Serenus / ΣουλπίκιοςυἱὸςΓναίουΚουιρίναΣερηνὸς
[Domitiani] / [[Δομιτια
G. Septimio Vegeto / ΓαΐουΣεπτιμίουΟὐεγέτου
ΛυσᾶςΠοπλίουἈννίουΠλοκάμου / Lysas P. Anni Plocami
ΠοπλίουἈννίουΠλοκάμου / P. Anni Plocami
nomen
Caesar / Καῖσαρ
Iulius / Ἰούλιος
NA
Sulpicius* / Σουλπίκιος
NA
Septimius / Σεπτίμιος
NA
Ἄννιος / Annius
Some entries in Aeg
have Greek extended characters, and one entry in Latin has a special character at the end (Sulpicius*
), which can be omitted for further computations by raising the cleaning level to 2
.
Benefits from re-encoding and cleaning text from the EDH
dataset are evident like when counting occurrences in the different attribute variables as with nomen
in Aeg
.
Sempronius+
[1] 4
Κούρτιος
[1] 2
Μέμμιος
[1] 2
Ἰούλιος
[1] 2
etc.
...
By raising the cleaning level to 2
, all special characters are removed from the end, and it is possible to see that, in the Roman province of Aegyptus, Sempronius
, Sentius
, Valerius
are the three most common nomen in inscriptions with four occurrences each.
# raise cleaning level and remove NAs
Aeg$nomen |>
cln(level=2, na.rm=TRUE) |>
table() |>
sort(decreasing=TRUE)
Sempronius
[1] 4
Sentius
[1] 4
Valerius
[1] 4
Κούρτιος
[1] 2
etc.
...