naive serialization of lexems in GraphML
[scpubgit/stemmatology.git] / script / group_vars.pl
1 #!/usr/bin/env perl
2
3 use lib 'lib';
4 use strict;
5 use warnings;
6 use JSON;
7 use Text::Tradition;
8 use Text::Tradition::Analysis qw/ group_variants /;
9 use Text::Tradition::Stemma;
10
11 binmode STDERR, ":utf8";
12 binmode STDOUT, ":utf8";
13 eval { no warnings; binmode $DB::OUT, ":utf8"; };
14
15 # Parse the tradition data
16 my $informat = 'Self';
17
18 my %args = ( 'input' => $informat,
19              'file'  => $ARGV[0] );
20 my $tradition = Text::Tradition->new( %args );
21
22 # Parse the stemma data
23 my $stemma = Text::Tradition::Stemma->new(
24         'collation' => $tradition->collation,
25         'dot' => $ARGV[1],
26         );
27
28 my $wits = {};
29 map { $wits->{$_} = 1 } $stemma->witnesses;
30
31 my $variant_groups = group_variants( $tradition->collation, $wits );
32
33 print encode_json( $variant_groups );