PCC.equipollent: PCC Exploratory Methods: Extracting Competing Genealogies

Description Usage Arguments Details Value Warning Author(s) References See Also Examples

View source: R/PCC.equipollent.R

Description

A single table of variant locations can sometimes reflect different competing genealogies, due to contamination, either for a single manuscript, or for the whole tradition. PCC.equipollent identifies the variant locations without internal conflicts, and allows to create separate databases for each internally consistent configuration.

Usage

1
PCC.equipollent(x, ask = TRUE, scope = NULL, wits = NULL, verbose = FALSE)

Arguments

x

A PCC.conflicts object.

ask

logical; if FALSE, decisions will be made without asking the user for input. Default: TRUE. With FALSE, it is mandatory to specify scope and wits.

scope

should the inconsistent variant locations be neutralised for the whole tradition ("T") or only some witnesses ("W")? Use only with ask = FALSE.

wits

a vector containing the names of the witnesses for which inconsistent variant locations should be neutralised. Use only with ask = FALSE and scope = 'W'.

verbose

logical; if FALSE, the function will only return the results, without information on the operations. Default: FALSE.

Details

Some over-conflicting variant locations can be algorithmically ruled out for the building of a stemma (see PCC.conflicts, PCC.overconflicting and PCC.elimination). Yet, in some cases, choosing between conflicting variables is algorithmically undecidable. This might be due sometimes to contamination (see PCC.contam). PCC.equipollent helps addressing such cases. It tries to assess, first, the sets of variant locations that are internally consistent (no conflict among themselves), and then, creates as many different databases as sets were found. In creating these new databases, the variant location that have conflicting information with the current set are either fully neutralised (scope = "T") or neutralised only for some witnesses (scope = "W").

Value

An object of class pccEquipollent, a list containing

databases

a list with all alternative databases that have been created, if any

notInConflict

a list with the set(s) of VL without internal conflicts

Warning

This function is still experimental, and will work optimally only for simple cases, where competing genealogies can be easily identified.

Author(s)

Jean-Baptiste Camps & Florian Cafiero

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. ‘Detecting Contaminations in Textual Traditions Computer Assisted and Traditional Methods’. Leeds, International Medieval Congress, 2013, unpublished paper, https://www.academia.edu/3825633/Detecting_Contaminations_in_Textual_Traditions_Computer_Assisted_and_Traditional_Methods.

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.Exploratory, PCC.conflicts, PCC.overconflicting, PCC.elimination, PCC.contam.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# load data
data("fournival")

# look for conflicts
y = PCC.conflicts(fournival)
# identify and eliminate overconflicting VL
y = PCC.overconflicting(y, ask = FALSE, threshold = 0.06)
y = PCC.elimination(y)
# look for further conflicts
y = PCC.conflicts(y)


# and now, create configurations for competing genealogies
# for instance, for one witness
newDB = PCC.equipollent(y, ask = FALSE, scope = "W", wits = "D")

# Alternatively, you can create them for the whole tradition
newDB = PCC.equipollent(y, ask = FALSE, scope = "T")
# or for several witnesses
newDB = PCC.equipollent(y, ask = FALSE, scope = "W", wits = c("A", "D"))

# and then you proceed to create one or several stemmata, e.g.
# PCC.Stemma(newDB$databases[[1]], ask = FALSE)

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