NAME
Text::Tradition - a software model for a set of collated texts
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 @text_wits = $t->witnesses();
my $manuscript_a = $t->witness( 'A' );
$t = Text::Tradition->new();
$t->add_witness( 'sourcetype' => 'xmldesc',
'file' => '/path/to/teitranscription.xml' );
$t->add_witness( 'sourcetype => 'plaintext', 'sigil' => 'Q',
'string' => 'The quick brown fox jumped over the lazy dogs' );
## TODO
$t->collate_texts;
my $text_path_svg = $t->collation->as_svg();
## See Text::Tradition::Collation for more on text collation itself
DESCRIPTION
Text::Tradition is a library for representation and analysis of collated texts, particularly medieval ones. A 'tradition' refers to the aggregation of surviving versions of a text, generally preserved in multiple manuscripts (or 'witnesses'). A Tradition object thus has one more more Witnesses, as well as a Collation that represents the unity of all versions of the text.
METHODS
new
Creates and returns a new text tradition object. The following options are accepted.
General options:
Initialization based on a collation file:
- input - The input format of the collation file. Can be one of the following:
-
Self - a GraphML format produced by this module
CollateX - a GraphML format produced by CollateX
CTE - a TEI XML format produced by Classical Text Editor
JSON - an alignment table in JSON format, as produced by CollateX and other tools
TEI - a TEI parallel segmentation format file
Tabular - a spreadsheet collation. See the documentation for Text::Tradition::Parser::Tabular for an explanation of additional options.
- file - The name of the file that contains the data. One of 'file' or 'string' should be specified.
- string - A text string that contains the data. One of 'file' or 'string' should be specified.
Initialization based on a list of witnesses [NOT YET IMPLEMENTED]:
- witnesses - A reference to an array of Text::Tradition::Witness objects that carry the text to be collated.
- collator - A reference to a collation program that will accept Witness objects.
witnesses
Return the Text::Tradition::Witness objects associated with this tradition, as an array.
witness( $sigil )
Returns the Text::Tradition::Witness object whose sigil is $sigil, or undef if there is no such object within the tradition.
add_witness( %opts )
Instantiate a new witness with the given options (see documentation for Text::Tradition::Witness) and add it to the tradition.
del_witness( $sigil )
Delete the witness with the given sigil from the tradition. Returns the witness object for the deleted witness.
add_json_witnesses( $jsonstring, $options )
Adds a set of witnesses from a JSON array specification. This is a wrapper to parse the JSON and call add_witness (with the specified $options) for each element therein.
PLUGIN HOOKS
enable_stemmata
If the tradition in question does not have the HasStemma role, make it so. Throws an error if the role (ergo, if the Analysis package) is not installed.
enable_morphology
If the tradition in question has readings that do not include the Morphology role, apply the role to them. Throws an error if the role (ergo, if the Morphology package) is not installed.
lemmatize
Calls the appropriate lemmatization function for the language of the tradition. Implicitly applies the Morphology role where appropriate (and throws an error if the package is not installed.)
BUGS / TODO
Allow tradition to be initialized via passing to a collator.
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>