NAME
Text::Tradition::Stemma - a representation of a stemma codicum for a Text::Tradition
SYNOPSIS
use Text::Tradition;
my $t = Text::Tradition->new(
'name' => 'this is a text',
'input' => 'TEI',
'file' => '/path/to/tei_parallel_seg_file.xml' );
my $s = $tradition->add_stemma( dotfile => '/path/to/stemma.dot' );
DESCRIPTION
Text::Tradition is a library for representation and analysis of collated texts, particularly medieval ones. The Collation is the central feature of a Tradition, where the text, its sequence of readings, and its relationships between readings are actually kept.
DOT SYNTAX
The easiest way to define a stemma (which is a directed acyclic graph, denoting the scholar's hypothesis concerning which text(s) were copied from which other(s)) is to use a special form of the 'dot' syntax of GraphViz.
Each stemma opens with the line
digraph Stemma {
and continues with a list of all manuscript witnesses in the stemma, whether extant witnesses or missing archetypes or hyparchetypes. Each of these is listed by its sigil on its own line, e.g.:
alpha [ class=hypothetical ]
1 [ class=hypothetical,label=* ]
Ms4 [ class=extant ]
Extant witnesses are listed with class=extant; missing or postulated witnesses are listed with class=hypothetical. Anonymous hyparchetypes must be given a unique name or number, but can be represented as anonymous with the addition of 'label=*' to their lines. Greek letters or other special characters may be used as names, but they must always be wrapped in double quotes.
Links between manuscripts are then listed with arrow notation, as below. These lines show the direction of copying, one step at a time, for the entire stemma.
alpha -> 1
1 -> Ms4
The final line in the definition should be the closing brace:
}
Thus for a set of extant manuscripts A, B, and C, where A and B were copied from the archetype O and C was copied from B, the definition would be:
digraph Stemma {
O [ class=hypothetical]
A [ class=extant ]
B [ class=extant ]
C [ class=extant ]
O -> A
O -> B
B -> C
}
CONSTRUCTOR
new
The constructor. This should generally be called from Text::Tradition, but if called directly it takes the following options:
collation - The collation with which the stemma is associated.
dot - A filehandle open to a DOT representation of the stemma graph.
METHODS
as_dot( \%options )
Returns a normal dot representation of the stemma layout, suitable for rendering with GraphViz. Options include:
graph - A hashref of global graph options.
node - A hashref of global node options.
edge - A hashref of global edge options.
See the GraphViz documentation for the list of available options.
editable
Returns a version of the graph rendered in our definition format.
as_svg
Returns an SVG representation of the graph, calling as_dot first.
witnesses
Returns a list of the extant witnesses represented in the stemma.
LICENSE
This package is free software and is provided "as is" without express or implied warranty. You can redistribute it and/or modify it under the same terms as Perl itself.
AUTHOR
Tara L Andrews <aurum@cpan.org>