#!/usr/bin/perl -w #ce programme transformes le thésaurus du B&g en un format OWL #todo : SKOS compliant en cours #todo : mettre les differents axes du GTAA en arguments #todo : les gerer comme des tableaux, pour virer les doublons $subject = $ARGV[0]; $genre = $ARGV[1]; $locaties = $ARGV[2]; $makers = $ARGV[3]; $namen = $ARGV[4]; $persoon = $ARGV[5]; $premier = "oui"; @temp = (); @contentBT=@contentNT=@contentRT=@broaderSujetCourant=(); print"\n"; print " ]>\n"; print "\n"; my $sujetCourant; my %memberOf =(); open(SUBJECT, "< $subject") or die "Can't open $subject : $!"; while($ligne = ) { push (@lines, $ligne); } close FILE; for ($i=0; $i\n"; #print "\n"; print "$lines[$i]\n"; $premier = "non"; $sujetCourant = $lines[$i]; } } else { $j=$i+1; if($lines[$j]=~m/US/)#s'il s'agit d'un descripteur: s'il n'est pas suivi d'une ligne avec US {} else { chomp $lines[$i]; $lines[$i]=~s/\s/_/g; print "\n"; if (@broaderSujetCourant) { for $bsc (0 .. $#broaderSujetCourant) { print"\n"; #print "\n"; print ""; for $bt (3 .. $#{$broaderSujetCourant[$bsc]}) { print "$broaderSujetCourant[$bsc][$bt]_"; } print "\n"; print "\n"; } } if (@narrowerSujetCourant) { for $nsc (0 .. $#narrowerSujetCourant) { print"\n"; #print "\n"; print ""; for $nt (3 .. $#{$narrowerSujetCourant[$nsc]}) { print "$narrowerSujetCourant[$nsc][$nt]_"; } print "\n"; print "\n"; } } if (@relatedSujetCourant) { for $rsc (0 .. $#relatedSujetCourant) { print"\n"; #print "\n"; print ""; for $rt (3 .. $#{$relatedSujetCourant[$rsc]}) { print "$relatedSujetCourant[$rsc][$rt]_"; } print "\n"; print "\n"; } } @broaderSujetCourant=(); @narrowerSujetCourant=(); @relatedSujetCourant=(); @contentBT=(); @contentNT=(); @contentRT=(); print"\n"; #print "\n"; print "$lines[$i]\n"; $sujetCourant = $lines[$i]; } } } elsif($lines[$i]=~/SN/) { @content= split('\b',$lines[$i]); $content[1]=~s/\s/_/g; print ""; for ($sn=3; $sn"; @content=(); } elsif($lines[$i]=~/BT/) { $lines[$i]=~s/\s/_/g; @contentBT= split('_',$lines[$i]); push @broaderSujetCourant, [@contentBT]; print "\n"; #@contentBT=(); } elsif($lines[$i]=~/NT/) { $lines[$i]=~s/\s/_/g; @contentNT= split('_',$lines[$i]); push @narrowerSujetCourant, [@contentNT]; print "\n"; #@contentNT=(); } elsif($lines[$i]=~/RT/) { $lines[$i]=~s/\s/_/g; @contentRT= split('_',$lines[$i]); push @relatedSujetCourant, [@contentRT]; print "\n"; #@contentRT=(); } #elsif($lines[$i]=~/\bUS\b/) #{ # $lines[$i]=~s/\s/_/g; # @contentUS= split('_',$lines[$i]); # print ""; # for ($us=3; $us\n"; # @contentUS=(); #} elsif($lines[$i]=~/UF/) { $lines[$i]=~s/\s/_/g; @contentUF= split('_',$lines[$i]); print ""; for ($uf=3; $uf\n"; @contentUF=(); } elsif($lines[$i]=~/(1D[0-9]{2}\.[0-9]{0,2})/) { #$1=~s/\s/_/g; #les deux suivants mis en commentaire pour ne plus imprimer les CC ##print "\n"; ##push( @{$memberOf{$1}}, $sujetCourant ); #version du cookbook #%ttys = ( ); # #open(WHO, "who|") or die "can't open who: $!"; #while () { # ($user, $tty) = split; # push( @{$ttys{$user}}, $tty ); #} #foreach $user (sort keys %ttys) { # print "$user: @{$ttys{$user}}\n"; #} #verif si ligne au-dessus marche pas comme ca #if (exists ($memberOf{$1})) #{ # push( @{$memberOf{$1}}, $sujetCourant ); #} #else #{ # $memberOf{$1} = $sujetCourant; #} } elsif($ligne=~/ /) { #print ""; } else {} } #close FILE; print ""; open(GENRE, "< $genre") or die "Can't open $genre : $!"; while($ligne = ) { $ligne=~s/\s/_/g; $ligne=~s/&/_en_/g; $ligne=~s/\"//g; $ligne=~s/%/_procent_/g; $ligne=~s/\}/_/g; print "\n"; print "$ligne\n"; print "\n"; } close GENRE; open(LOCATIES, "< $locaties") or die "Can't open $locaties : $!"; while($ligne = ) { if ($ligne=~m/\(/) { push @temp, split (/\(/, $ligne); $temp[0]=~s/\s/_/g; $temp[0]=~s/&/_en_/g; $temp[0]=~s/%/_procent_/g; $temp[0]=~s/\}/_/g; $temp[0]=~s/\"//g; $temp[0]=~s/\)/_/g; $temp[1]=~s/\s/_/g; $temp[1]=~s/&/_en_/g; $temp[1]=~s/%/_procent_/g; $temp[1]=~s/\}/_/g; $temp[1]=~s/\"//g; $temp[1]=~s/\)/_/g; print "\n"; print "$temp[0]\n"; print ""; print "$temp[1]"; print ""; print "\n"; @temp=(); } else { $ligne=~s/\s/_/g; $ligne=~s/&/_en_/g; $ligne=~s/%/_procent_/g; $ligne=~s/\}/_/g; $ligne=~s/\"//g; print "\n"; print "$ligne\n"; print "\n"; } } close LOCATIES; open(MAKERS, "< $makers") or die "Can't open $makers : $!"; while($ligne = ) { if ($ligne=~m/\(/) { if ($ligne=~m/\(zie ook\}/) { push @temp, split (/\(zie ook\}/, $ligne); $temp[0]=~s/\s/_/g; $temp[0]=~s/&/_en_/g; $temp[0]=~s/%/_procent_/g; $temp[0]=~s/\}/_/g; $temp[0]=~s/\"//g; $temp[1]=~s/\s/_/g; $temp[1]=~s/&/_en_/g; $temp[1]=~s/%/_procent_/g; $temp[1]=~s/\}/_/g; $temp[1]=~s/\"//g; print "\n"; print "$temp[0]\n"; print "\n"; print "\n"; @temp=(); } elsif($ligne=~m/\(jr\.\)/) { $ligne=~s/\s/_/g; $ligne=~s/&/_en_/g; $ligne=~s/%/_procent_/g; $ligne=~s/\}/_/g; $ligne=~s/\(/_/g; $ligne=~s/\)/_/g; $ligne=~s/\"//g; print "\n"; print "$ligne\n"; print ""; print "jr."; print ""; print "\n"; } elsif($ligne=~m/\(sr\.\)/) { $ligne=~s/\s/_/g; $ligne=~s/&/_en_/g; $ligne=~s/%/_procent_/g; $ligne=~s/\}/_/g; $ligne=~s/\(/_/g; $ligne=~s/\)/_/g; $ligne=~s/\"//g; print "\n"; print "$ligne\n"; print ""; print "sr."; print ""; print "\n"; } else { push @temp, split (/\(/, $ligne); $temp[0]=~s/\s/_/g; $temp[0]=~s/&/_en_/g; $temp[0]=~s/%/_procent_/g; $temp[0]=~s/\}/_/g; $temp[0]=~s/\"//g; $temp[0]=~s/\)/_/g; $temp[1]=~s/\s/_/g; $temp[1]=~s/&/_en_/g; $temp[1]=~s/%/_procent_/g; $temp[1]=~s/\}/_/g; $temp[1]=~s/\"//g; $temp[1]=~s/\)/_/g; print "\n"; print "$temp[0]\n"; print ""; print "$temp[1]"; print ""; print "\n"; @temp=(); } } else #si la ligne ne contient pas de parentheses -> info simple { $ligne=~s/\s/_/g; $ligne=~s/&/_en_/g; $ligne=~s/%/_procent_/g; $ligne=~s/\}/_/g; $ligne=~s/\"//g; print "\n"; print "$ligne\n"; print "\n"; } } close MAKERS; open(NAMEN, "< $namen") or die "Can't open $namen : $!"; while($ligne = ) { if ($ligne=~m/\(/) { push @temp, split (/\(/, $ligne); $temp[0]=~s/\s/_/g; $temp[0]=~s/&/_en_/g; $temp[0]=~s/%/_procent_/g; $temp[0]=~s/\}/_/g; $temp[0]=~s/\"//g; $temp[0]=~s/\)/_/g; $temp[1]=~s/\s/_/g; $temp[1]=~s/&/_en_/g; $temp[1]=~s/%/_procent_/g; $temp[1]=~s/\}/_/g; $temp[1]=~s/\"//g; $temp[1]=~s/\)/_/g; print "\n"; print "$temp[0]\n"; print ""; print "$temp[1]"; print ""; print "\n"; @temp=(); } else { $ligne=~s/\s/_/g; $ligne=~s/\"//g; $ligne=~s/&/_en_/g; $ligne=~s/%/_procent_/g; $ligne=~s/\}/_/g; print "\n"; print "$ligne\n"; print "\n"; } } close NAMEN; open(PERSON, "< $persoon") or die "Can't open $persoon : $!"; while($ligne = ) { if ($ligne=~m/\(/) { if($ligne=~m/\(jr\.\)/) { $ligne=~s/\s/_/g; $ligne=~s/&/_en_/g; $ligne=~s/%/_procent_/g; $ligne=~s/\}/_/g; $ligne=~s/\(/_/g; $ligne=~s/\)/_/g; $ligne=~s/\"//g; print "\n"; print "$ligne\n"; print ""; print "jr."; print ""; print "\n"; } elsif($ligne=~m/\(sr\.\)/) { $ligne=~s/\s/_/g; $ligne=~s/&/_en_/g; $ligne=~s/%/_procent_/g; $ligne=~s/\}/_/g; $ligne=~s/\(/_/g; $ligne=~s/\)/_/g; $ligne=~s/\"//g; print "\n"; print "$ligne\n"; print ""; print "sr."; print ""; print "\n"; } else { push @temp, split (/\(/, $ligne); $temp[0]=~s/\s/_/g; $temp[0]=~s/&/_en_/g; $temp[0]=~s/%/_procent_/g; $temp[0]=~s/\}/_/g; $temp[0]=~s/\"//g; $temp[0]=~s/\)/_/g; $temp[1]=~s/\s/_/g; $temp[1]=~s/&/_en_/g; $temp[1]=~s/%/_procent_/g; $temp[1]=~s/\}/_/g; $temp[1]=~s/\"//g; $temp[1]=~s/\)/_/g; print "\n"; print "$temp[0]\n"; print ""; print "$temp[1]"; print ""; print "\n"; @temp=(); } } else #si la ligne ne contient pas de parentheses -> info simple { $ligne=~s/\s/_/g; $ligne=~s/&/_en_/g; $ligne=~s/%/_procent_/g; $ligne=~s/\}/_/g; $ligne=~s/\"//g; print "\n"; print "$ligne\n"; print "\n"; } } close PERSON; print " Algemeen Filosofie, religie en levensbeschouwing"; printMembers("1D01"); print " Filosofie, religie en levensbeschouwing - algemeen"; printMembers("1D01.00"); print " filosofie (hierbij ethiek); levensbeschouwelijke stromingen (hierbij humanisme, atheïsme)"; printMembers("1D01.01"); print " godsdiensten algemeen"; printMembers("1D01.02"); print " christendom"; #foreach my $cat (sort keys %memberOf) printMembers("1D01.03"); print " overige religies"; printMembers("1D01.04"); print " Maatschappij en samenlevingsvormen"; printMembers("1D02"); print " Maatschappij en samenlevingsvormen - algemeen"; printMembers("1D02.00"); print " demografische vraagstukken"; printMembers("1D02.01"); print " sociale vraagstukken (hierbij armoede, agressie, werkloosheid)"; printMembers("1D02.02"); print " sociale dienstverlening (hierbij maatschappelijk werk, slachtofferhulp)"; printMembers("1D02.03"); print " groepen in de samenleving (hierbij arbeiders, ouderen, migranten), emancipatie"; printMembers("1D02.04"); print " familie, gezin en relatievormen"; printMembers("1D02.05"); print" Staat en politiek (hierbij overheidsbeleid)"; printMembers("1D03"); print" Staat en politiek (hierbij overheidsbeleid) - algemeen"; printMembers("1D03.00"); print " geschiedenis en staatsinrichting (hierbij staatsvormen, monarchie)"; printMembers("1D03.01"); print " openbaar bestuur (hierbij overheid, overheidsorganisatie, -personeel)"; printMembers("1D03.02"); print " recht en rechtshandhaving (hierbij delicten en criminaliteitsbestrijding)"; printMembers("1D03.03"); print " krijgsaangelegenheden (hierbij defensie, oorlogvoering)"; printMembers("1D03.04"); print " internationale betrekkingen (hierbij ontwikkelingssamenwerking)"; printMembers("1D03.05"); print " politieke stromingen"; printMembers("1D03.06"); print " Ruimtelijke ordening en gebouwde en aangelegde omgeving"; printMembers("1D04"); # # # # # print" Ruimtelijke ordening en gebouwde en aangelegde omgeving - algemeen"; printMembers("1D04.00"); print " ruimtelijke ordening, planologie, platteland, stedenbouw"; # printMembers("1D04.01"); print " (volks)huisvesting (hierbij woningnood, renovatie)"; printMembers("1D04.02"); print " specifieke bouwwerken, kunstwerken en landschapselementen, onderdelen en fasen hiervan"; # printMembers("1D04.03"); print " Economie"; printMembers("1D05"); # # # # # # print" Economie - algemeen (hierbij macro-economische zaken, monetaire economie, consumptie)"; # printMembers("1D05.00"); print " agrarische sector en visserij"; printMembers("1D05.01"); print " delfstofwinning, industrie en productiearbeid"; # # printMembers("1D05.02"); print " handel, bouwnijverheid en dienstverlening (hierbij bank- en verzekeringswezen, toerisme)"; printMembers("1D05.03"); print "transport bij 10.00; bouwkunde bij 09.06 bedrijfseconomische en arbeidsaangelegenheden"; # # printMembers("1D05.04"); print " specifieke producten"; printMembers("1D05.05"); print " Gezondheid(szorg) en welzijn"; printMembers("1D06"); # # # # print " Gezondheid(szorg) en welzijn - algemeen (hierbij menselijk lichaam)"; printMembers("1D06.00"); print " geneeskunde, institutionele gezondheidszorg en paramedische sector"; printMembers("1D06.01"); print " specifieke ziekten, aandoeningen en handicaps"; printMembers("1D06.02"); print " persoonlijke gezondheid(szorg) en welzijn overig (hierbij lichaamsverzorging, seksualiteit, abortus, gevoelens, leeftijd, dood)"; # printMembers("1D06.03"); print " Opvoeding en onderwijs"; printMembers("1D07"); # # # # print" Opvoeding en onderwijs - algemeen"; printMembers("1D07.00"); print " opvoeding"; printMembers("1D07.01"); print " onderwijs"; printMembers("1D07.02"); print " vorming en ontwikkeling overig (hierbij volwasseneneducatie)"; printMembers("1D07.03"); print " Wetenschapsgebieden en hulpwetenschappen"; printMembers("1D08"); # # # print" Wetenschapsgebieden en hulpwetenschappen - algemeen"; printMembers("1D08.00"); print " (hulp)wetenschappen"; printMembers("1D08.01"); print " interdisciplinaire aangelegenheden (hierbij onderzoek, uitvindingen, statistiek, methodologie)"; printMembers("1D08.02"); print " Techniek"; printMembers("1D09"); # # # # # # # print" Techniek - algemeen"; printMembers("1D09.00"); print " delfstofwinning en energie"; printMembers("1D09.01"); # # print " werktuigbouwkunde, metaalbewerking, meet- en regeltechniek, techniek van verkeer en vervoermiddelen (hierbij ruimtevaart)"; printMembers("1D09.02"); print " elektrotechniek, (elektrische) apparatuur, informatietechnologie"; printMembers("1D09.03"); print " algemene en chemische technologie"; printMembers("1D09.04"); print " verwerkende industrie"; printMembers("1D09.05"); print " bouwkunde"; printMembers("1D09.06"); print " Verkeer en vervoer"; printMembers("1D10"); # # # # print" Verkeer en vervoer - algemeen (hierbij transport, openbaar vervoer, infrastructuur)"; printMembers("1D10.00"); # print " verkeer te land (hierbij vervoermiddelen en verkeersrampen)"; printMembers("1D10.01"); # print " scheepvaart (hierbij vervoermiddelen en verkeersrampen)"; printMembers("1D10.02"); print " luchtvaart (hierbij ruimtevaart) (hierbij vervoermiddelen en verkeersrampen)"; printMembers("1D10.03"); # print " Communicatie en media"; printMembers("1D11"); # # # # # print" Communicatie en media - algemeen (hierbij communicatieprocessen, taal als communicatiemiddel)"; # printMembers("1D11.00"); print " communicatietransport"; printMembers("1D11.01"); print " massacommunicatie en - media (hierbij pers, omroep)"; printMembers("1D11.02"); print " informatievoorziening overig (hierbij bibliotheken, archieven, voorlichting)"; printMembers("1D11.03"); print " audiovisuele en elektronische (incl. digitale) media"; printMembers("1D11.04"); print " Kunst en cultuur"; printMembers("1D12"); # # # # # print" Kunst en cultuur - algemeen (hierbij musea, tentoonstellingen)"; printMembers("1D12.00"); print " beeldende kunst (hierbij architectuur, film, fotografie)"; printMembers("1D12.01"); print " literatuur (in ruime zin)"; printMembers("1D12.02"); print " muziek en podiumkunsten (hierbij theater, dans)"; printMembers("1D12.03"); print " toegepaste kunsten en kunstnijverheid (hierbij mode)"; printMembers("1D12.04"); print " Sport en vrijetijdsbesteding"; printMembers("1D13"); # # # print" Sport en vrijetijdsbesteding - algemeen"; printMembers("1D13.00"); print " sport, sportbeoefenaren en -evenementen, lichaamsoefening"; printMembers("1D13.01"); print " (overige) vrijetijdsbesteding, recreatie"; printMembers("1D13.02"); print " Natuur en milieu, astronomie"; printMembers("1D14"); # # # # # # print" Natuur en milieu, astronomie - algemeen"; printMembers("1D14.00"); print " natuur (hierbij natuurrampen), ecologie, dieren en planten"; printMembers("1D14.01"); print " milieubeheer en -verontreiniging (hierbij milieurampen)"; printMembers("1D14.02"); print " weer en klimaat"; printMembers("1D14.03"); print " geologie, gesteenten, delfstoffen"; printMembers("1D14.04"); print " astronomie, hemellichamen"; printMembers("1D14.05"); print " Land- en volkenkunde"; printMembers("1D15"); # # # print" Land- en volkenkunde - algemeen"; printMembers("1D15.00"); print " geografie, topografie"; printMembers("1D15.01"); print " volkscultuur, volksgebruiken, folklore"; printMembers("1D15.02"); print " "; print ""; sub printMembers { my $category = $_[0]; foreach my $cat (sort keys %memberOf) { if ($cat eq "$category") { #print "$cat: @{$memberOf{$cat}}\n"; foreach $membre (@{$memberOf{$cat}}) { print ""; } } else{} } }