stemmatology-package: An R Stemmatology Package

Description Details Note Author(s) References See Also Examples

Description

Build and analyse the genealogy of textual or musical traditions.

Details

Package: stemmatology
Type: Package
Version: 0.3.0
Date: 2018-05-20
License: GPL-3

Stemmatology is the name of the field dedicated to studying text genealogies and establishing genealogical tree-like graphs known as stemma codicum.

This package includes various functions for stemmatological analysis.

Input

Most of the functions take, as input a numeric matrix, with witnesses in columns, variant locations in rows, and readings coded by a number, e.g.

A B C D E H I J K O
1 0 1 1 1 NA 1 1 NA 1 1
2 1 1 1 1 NA 1 1 NA 1 1
3 1 1 1 1 NA 1 1 NA 1 1
4 1 1 1 2 NA 1 1 NA 1 1
5 1 1 1 2 NA 1 1 NA 1 1
6 1 1 1 1 NA 1 1 NA 1 1

where A, B, …, O are the various witnesses in columns, 1…6 the various variant locations, in rows, and the different readings are coded either 0 (omission), 1, 2, …, n. NA is used for the lack of information (physical lacuna, absence of observation, variant location not applicable to a given witness, etc.).

Alternatively , if alternateReadings = TRUE, the input can be a character matrix, with witnesses in columns, variant locations in rows, and, in each cell, one or several readings, coded by numbers and separated by a comma (e.g. '1,2,3', if the witness has three different readings), e.g.

A D F T P
1 "1" "2" "2" "2" "1,2"
2 "1" "2" "1,2" "2" "1"
3 "1" "1" "1" "1" "2"
4 "1,3" "1,2" "1" "2" "3"

Notice how a witness can bear several readings (e.g., P at VL 1).

Create or import data

Data can be created inside R or imported. They can be imported by reading a csv file, for instance (e.g. with read.csv). They can also be imported from a TEI encoded apparatus in parallel-segmentation, either by using an XSL stylesheet, or the built-in function import.TEIApparatus.

The function import.TEIApparatus allows to import a TEI P5 encoded apparatus into a stemmatological matrix usable with other functions. It has some parameters to refine the import (variant types, …), and can read either from disk or from an URL.

PCC Method

Functions are made available for the PCC method (See Camps and Cafiero 2014 or PCC for more details). The most important are

PCC: global shell for the PCC functions

PCC.Exploratory: global function for exploratory methods of the PCC family

PCC.Stemma: Building the Stemma Codicum.

Other functions

The package contains also various other functions, particularly aimed at detecting contamination. It contains for instance the function PCC.contam.

The package aims at making available various other stemmatological methods, including further functions for contamination detection, or for theoretical stemmatology.

Note

Please report issues with this package to https://github.com/Jean-Baptiste-Camps/stemmatology.

Author(s)

Jean-Baptiste Camps (École nationale des chartes | Université PSL).

Florian Cafiero.

Maintainer: Jean-Baptiste Camps <jbcamps@hotmail.com>.

References

Camps, Jean-Baptiste, and Florian Cafiero. ‘Stemmatology: An R Package for the Computer-Assisted Analysis of Textual Traditions’. Proceedings of the Second Workshop on Corpus-Based Research in the Humanities (CRH-2), edited by Andrew U. Frank et al., 2018, pp. 65–74, https://halshs.archives-ouvertes.fr/hal-01695903v1.

Camps, Jean-Baptiste, and Florian Cafiero. ‘Genealogical Variant Locations and Simplified Stemma: A Test Case’. Analysis of Ancient and Medieval Texts and Manuscripts: Digital Approaches, edited by Tara Andrews and Caroline Macé, Brepols, 2015, pp. 69–93, https://halshs.archives-ouvertes.fr/halshs-01435633, DOI: 10.1484/M.LECTIO-EB.5.102565.

See Also

PCC, PCC.Exploratory, PCC.Stemma

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# Load data
data(fournival)
# or alternatively, import it
#fournival = import.TEIApparatus(file = "myFournival.xml", 
#    appTypes = c("substantive"))

## Not run: 
# Interactive mode

# Analyse it with the PCC functions
PCC(fournival)

## End(Not run)

# Complete step-by-step non interactive use
data("fournival")

# look for conflicts
myConflicts = PCC.conflicts(fournival)
# remove conflicting VL
myConflicts = PCC.overconflicting(myConflicts, ask = FALSE, threshold = 0.06)
myNewData = PCC.elimination(myConflicts)
# look for competing genealogies
myConflicts = PCC.conflicts(myNewData)
myNewData = PCC.equipollent(myConflicts, ask = FALSE, scope = "W", wits = "D")
# build a stemma
PCC.Stemma(myNewData$databases[[1]], ask = FALSE)

stemmatology documentation built on May 2, 2019, 5:10 a.m.