NAME

Treex::Core::Scenario - a larger Treex processing unit, composed of blocks

VERSION

version 2.20210102

SYNOPSIS

use Treex::Core;

my $doc1, $doc2;
my $scenario = Treex::Core::Scenario->new(from_file => 'myscenario.scen' );
$scenario->run;


$scenario = Treex::Core::Scenario->new(from_string => 'W2A::EN::Segment language=en');
$scenario->start();
$scenario->apply_to_documents($doc1, $doc2);
$scenario->end();

DESCRIPTION

A Treex scenario consists of a sequence of (possibly parametrized) Treex blocks.

Scenarios can be described by a simple textual format, which is either passed directly to the scenario construction, or is contained in a text file whose name is passed.

The string description of scenarios looks as follows.

1) It contains a list of block names from which their 'Treex::Block::' prefixes were removed.

2) The block names are separated by one or more white spaces.

3) The block names are listed in the same order in which they should be applied on data.

4) For each block, there can be one or more parameters specified, using the attribute=value form.

5) Comments start with '#' and end with the nearest newline character.

Scenario example:

# morphological analysis of an English text
Util::SetGlobal language=en selector=src
Read::Text
W2A::ResegmentSentences
W2A::EN::Tokenize
W2A::EN::NormalizeForms
W2A::EN::FixTokenization
W2A::EN::TagMorce

METHODS

Constructor

my $scenario = Treex::Core::Scenario->new(from_string => 'W2A::Tokenize language=en W2A::Lemmatize' );

Constructor parameter from_string specifies the names of blocks which are to be executed (in the specified order) when the scenario is applied on a Treex::Core::Document object.

my $scenario = Treex::Core::Scenario->new(from_file => 'myscenario.scen' );

The scenario description is loaded from the file.

Running the scenario

$scenario->run();

Run the scenario. One of the blocks (usually the first one) must be the document reader (see Treex::Core::DocumentReader) that produces the documents on which this scenario is applied.

$scenario->apply_to_documents($treex_doc);

Apply this scenario to a Treex::Core::Document instance obtained from elsewhere. Please note that start() must be called before the first call to this method and end() after the last call to this method.

The scenario does not need to contain a document reader if documents are given explicitly.

$scenario->start();

Apply process_start() to all blocks in the scenario. This is called automatically by run(), but must be called before apply_to_documents().

$scenario->end();

Apply process_end() to all blocks in the scenario. This is called automatically by run(), but must be called after calls to apply_to_documents().

Internal methods for loading scenarios

_load_scenario_file($filename)

loads a scenario description from a file

parse_scenario_string

parses a textual description of a scenario

construct_scenario_string

constructs a scenario textual description from an existing scenario instance accepts named parameter multiline - when set, blocks are separated by newline instead of space

load_blocks

use blocks and call their constructors can be used for preloading blocks for e.g. server applications when running scenario blocks are loaded automatically

init

do all initialization so after this method scenario is ready to run currently just load blocks

restart

resets the document reader, in future it will rebuild reloaded blocks

SEE ALSO

Treex::Core::Block Treex::Core

AUTHORS

Zdeněk Žabokrtský <zabokrtsky@ufal.mff.cuni.cz>

Martin Popel <popel@ufal.mff.cuni.cz>

David Mareček <marecek@ufal.mff.cuni.cz>

Tomáš Kraut <kraut@ufal.mff.cuni.cz>

Martin Majliš <majlis@ufal.mff.cuni.cz>

Ondřej Dušek <odusek@ufal.mff.cuni.cz>

COPYRIGHT AND LICENSE

Copyright © 2011-2012 by Institute of Formal and Applied Linguistics, Charles University in Prague

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.