The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Text::Tradition::Witness - a manuscript witness to a text tradition

SYNOPSIS

  use Text::Tradition::Witness;
  my $w = Text::Tradition::Witness->new( 
    'sigil' => 'A',
    'identifier' => 'Oxford MS Ex.1932',
    );  
    

DESCRIPTION

Text::Tradition::Witness is an object representation of a manuscript witness to a text tradition. A manuscript has a sigil (a short code that represents it in the wider tradition), an identifier (e.g. the library ID), and probably a text.

METHODS

new

Create a new witness. Options include:

  • sigil - A short code to represent the manuscript. Required.

  • sourcetype - What sort of witness data this is. Options are 'xmldesc', 'plaintext', 'json', or 'collation' (the last should only be used by Collation parsers.)

  • file =item * string =item * object

    The data source for the witness. Use the appropriate option.

  • use_text - An initialization option. If the witness is read from a TEI document and more than one <text/> tag exists therein, the default behavior is to use the first defined text. If this is not desired, use_text should be set to an XPath expression that will select the correct text.

  • identifier - The recognized name of the manuscript, e.g. a library identifier. Taken from the msDesc element for a TEI file.

  • other_info - A freeform string for any other description of the manuscript.

sigil

The sigil by which to identify this manuscript, which must conform to the specification for XML attribute strings (broadly speaking, it must begin with a letter and can have only a few sorts of punctuation characters in it.)

identifier

A freeform name by which to identify the manuscript, which may be longer than the sigil. Defaults to 'Unidentified ms', but will be taken from the TEI msName attribute, or constructed from the settlement and idno if supplied.

settlement

The city, town, etc. where the manuscript is held. Will be read from the TEI msDesc element if supplied.

repository

The institution that holds the manuscript. Will be read from the TEI msDesc element if supplied.

idno

The identification or call number of the manuscript. Will be read from the TEI msDesc element if supplied.

text

An array of strings (words) that contains the text of the manuscript. This should not change after the witness has been instantiated, and the path through the collation should always match it.

layertext

An array of strings (words) that contains the layered text, if any, of the manuscript. This should not change after the witness has been instantiated, and the path through the collation should always match it.

identifier

Accessor method for the witness identifier.

other_info

Accessor method for the general witness description.

has_source

Boolean method that returns a true value if the witness was created with a data source (that is, a file, string, or object to be parsed).

is_layered

Boolean method to note whether the witness has layers (e.g. pre-correction readings) in the collation.

export_as_json

Exports the witness as a JSON structure, with the following keys:

  • id - The witness sigil

  • name - The witness identifier

  • tokens - An array of hashes of the form { "t":"WORD" }

BUGS / TODO

  • Figure out how to serialize a witness

  • Support encodings other than UTF-8

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>