| #!/usr/bin/env perl |
| use strict; |
| use warnings; |
| use KorAP::Def; |
| use KorAP::DefList; |
| use lib 'lib'; |
| use Getopt::Long; |
| |
| # 2020-05-20 |
| # Preliminary support for C2 def-files. |
| # 2020-05-29 |
| # Introduce optimizable object system. |
| # 2024-07-17 |
| # Add KorAP::Def. |
| |
| our $VERSION = 0.2; |
| our @ARGV; |
| |
| my $cmd = shift @ARGV; |
| |
| |
| my ($input, $output, $copysrc); |
| |
| GetOptions ( |
| "input|i=s" => \$input, |
| "output|o=s" => \$output, |
| "copy-src|c=s" => \$copysrc, |
| ) |
| or die("Error in command line arguments\n"); |
| |
| if ($cmd ne 'def' && $cmd ne 'list') { |
| print <<'HELP'; |
| Convert a list of C2 VC definitions or a single definition into |
| KoralQuery VCs. |
| |
| $ perl cosmasvc2koralquery def my_vc.txt | gzip -vc > my_vc.jsonld.gz |
| $ cat my_vc.txt | perl cosmasvc2koralquery def - | gzip -vc > my_vc.jsonld.gz |
| |
| Command: def |
| |
| Convert a def file or a list of sigles to a KoralQuery VC. |
| |
| Takes the list or def from STDIN and exports to STDOUT. |
| |
| Command: list |
| |
| Convert a list with copy or regex instructions to KoralQuery VCs. |
| |
| --output: The output directory |
| --copy-src: The directory for def files to copy |
| |
| HELP |
| exit 1; |
| }; |
| |
| |
| # Process a list |
| if ($cmd eq 'list') { |
| KorAP::DefList->new( |
| file => ($input || $ARGV[0]), |
| copy => ($copysrc || '.'), |
| output => ($output || '.') |
| )->parse; |
| exit(0); |
| }; |
| |
| # Parse a single def |
| my $def_parser; |
| if ($ARGV[0] eq '-') { |
| $def_parser = KorAP::Def->new(\*STDIN); |
| } |
| elsif ($input) { |
| $def_parser = KorAP::Def->new($input); |
| } |
| else { |
| $def_parser = KorAP::Def->new($ARGV[0]); |
| }; |
| |
| $def_parser->parse; |
| |
| # Stringify current (extended?) virtual corpus |
| print $def_parser->to_string; |