#!/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{}
}
}