--- trunk2/all2all.pl 2004/09/26 15:11:36 471 +++ trunk2/all2all.pl 2004/10/18 20:03:42 520 @@ -7,6 +7,7 @@ =cut use strict; +use locale; use YAML; use Carp; use Getopt::Long; @@ -31,6 +32,20 @@ "low_mem!" => \$low_mem, ); +my $filter = { + 'CROVOC' => sub { + my $tmp = shift || return; + return undef unless ($tmp =~ s/\s*CROVOC.*$/ */); + return $tmp; + }, + 'CROVOC_tree' => sub { + my $tmp = shift || return; + $tmp =~ s/\s*CROVOC.*$/ */; + $tmp =~ s/\s*EUROVOC.*//; + return $tmp; + }, +}; + # create WebPAC object # my $webpac = new WebPAC( @@ -39,6 +54,7 @@ start_mfn => $start_mfn, debug => $debug, low_mem => $low_mem, + filter => $filter, ) || die; my $log = $webpac->_get_logger() || die "can't get logger"; @@ -57,7 +73,7 @@ my $maxmfn = $webpac->open_isis( filename => shift @ARGV || '/data/hidra/THS/THS', lookup => [ - { 'key' => 'd:v900', 'val' => 'v250^a' }, + { 'key' => 'd:v900', 'val' => 'filter{CROVOC_tree}v250^a v800' }, # { 'eval' => '"v901^a" eq "Područje"', 'key' => 'pa:v561^4:v562^4:v461^1', 'val' => 'v900' }, # { 'eval '=> '"v901^a" eq "Mikrotezaurus"', 'key' => 'a:v561^4:v562^4:v461^1', 'val' => 'v900' }, # { 'eval' => '"v901^a" eq "Deskriptor"', 'key' => 'a:v561^4:v562^4:v461^1', 'val' => 'v900' }, @@ -122,11 +138,18 @@ $words =~ s/\W*\s+\W*/ /g; $words =~ s/\W+$//; + # first try to generate headline for this entry from index + my $h = $ds->{'index'}->[0]; + # then, from display + $h ||= $ds->{'display'}->[0]; + # and as last resport, fallback to headline + $h ||= $headline; + $index->insert( index_name => $ds->{'tag'}, #path => $f, path => $webpac->mfn, - headline => $headline, + headline => $h, words => $words, ); } @@ -135,7 +158,7 @@ foreach my $ds (@ds) { next if (! $ds->{'index'}); - $thes->{$ds->{'tag'}} ||= new WebPAC::Index; + $thes->{$ds->{'tag'}} ||= new WebPAC::Index( name => $ds->{'tag'} ); foreach my $h (@{$ds->{'index'}}) { $thes->{$ds->{'tag'}}->insert(