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

NAME

Text::Tradition::Collation::RelationshipType - describes a syntactic, semantic, etc. relationship that can be made between two readings

DESCRIPTION

Text::Tradition is a library for representation and analysis of collated texts, particularly medieval ones. A relationship connects two readings within a collation, usually when they appear in the same place in different texts.

CONSTRUCTOR

new

Creates a new relationship type. Usually called via $collation->register_relationship_type. Options include:

  • name - (Required string) The name of this relationship type.

  • bindlevel - (Required int) How tightly the relationship binds. A lower number indicates a closer binding. If A and B are related at bindlevel 0, and B and C at bindlevel 1, it implies that A and C have the same relationship as B and C do.

  • is_weak - (Default false) Whether this relationship should be replaced silently by a stronger type if requested. This is used primarily for the internal 'collated' relationship, only to be used by parsers.

  • is_colocation - (Default true) Whether this relationship implies that the readings in question have parallel locations.

  • is_transitive - (Default 1) Whether this relationship type is transitive - that is, if A is related to B and C this way, is B necessarily related to C?

  • is_generalizable - (Default is_colocation) Whether this relationship can have a non-local scope.

  • use_regular - (Default is_generalizable) Whether, when a relationship has a non-local scope, the search should be made on the regularized form of the reading.

ACCESSORS

name

bindlevel

is_weak

is_colocation

is_transitive

is_generalizable

use_regular

See the option descriptions above. All attributes are read-only.

DEFAULTS

This package provides the following set of relationships as default:

orthographic: bindlevel => 0, use_regular => 0

The readings are orthographic variants of each other (e.g. upper vs. lower case letters.) If the Morphology plugin is in use, orthographically related readings should regularize to the same string.

spelling: bindlevel => 1

The readings are spelling variations of the same word(s), e.g. 'color' vs. 'colour'.

punctuation: bindlevel => 2

The readings are both punctuation markers.

grammatical: bindlevel => 2

The readings are morphological variants of the same root word, e.g. 'was' vs. 'were'.

lexical: bindlevel => 2

The readings have the same morphological function but different root words, e.g. '[they] worked' vs. '[they] played'.

uncertain: bindlevel => 50, is_transitive => 0, is_generalizable => 0

The readings are (probably) related, but it is impossible to say for sure how. Useful for when one or both of the readings is itself uncertain.

transposition: bindlevel => 50, is_colocation => 0

The readings are the same (or perhaps close variants), but the position has shifted across witnesses.

repetition: bindlevel => 50, is_colocation => 0, is_transitive => 0

One of the readings is a repetition of the other, e.g. "pet the cat" vs. "pet the the cat".

other: bindlevel => 50, is_transitive => 0, is_generalizable => 0

A catch-all relationship for cases not covered by the other relationship types.

collated: bindlevel => 50, is_weak => 1, is_generalizable => 0

For internal use only. Denotes a parallel pair of variant readings as detected by an automatic collator.

METHODS

regularize( $reading )

Given a Reading object, return the regular form of the reading text that this relationship type expects.