Improved handling of weird metadata stuff
Change-Id: If2b7258071b8b52136d166101af291ff4e55d0cd
diff --git a/lib/KorAP/XML/Meta/I5.pm b/lib/KorAP/XML/Meta/I5.pm
index 34d99e5..c829eb0 100644
--- a/lib/KorAP/XML/Meta/I5.pm
+++ b/lib/KorAP/XML/Meta/I5.pm
@@ -314,6 +314,7 @@
$prefix =~ s!^([^/]+?/[^/]+?)/!$1\.!;
if (index($title, $prefix) == 0) {
$title = substr($title, length($prefix));
+ $title =~ s!^\s*[-;:,]\s*!!;
};
return _squish $title;
diff --git a/t/corpus/UMB45/D38/00001/data.xml b/t/corpus/UMB45/D38/00001/data.xml
new file mode 100644
index 0000000..eb85163
--- /dev/null
+++ b/t/corpus/UMB45/D38/00001/data.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-model href="text.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
+
+<raw_text docid="UMB45_D38.00001" xmlns="http://ids-mannheim.de/ns/KorAP">
+ <text>.</text>
+</raw_text>
diff --git a/t/corpus/UMB45/D38/00001/header.xml b/t/corpus/UMB45/D38/00001/header.xml
new file mode 100644
index 0000000..28a9a4f
--- /dev/null
+++ b/t/corpus/UMB45/D38/00001/header.xml
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<?xml-model href="header.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
+<!DOCTYPE idsCorpus PUBLIC "-//IDS//DTD IDS-XCES 1.0//EN" "http://corpora.ids-mannheim.de/idsxces1/DTD/ids.xcesdoc.dtd">
+<idsHeader type="text" pattern="text" status="new" version="1.1" TEIform="teiHeader">
+ <fileDesc>
+ <titleStmt>
+ <textSigle>UMB45/D38.00001</textSigle>
+ <t.title assemblage="regular">UMB45/D38.00001, In: Über Schuld und Aufgabe der geistigen Führungsschicht im deutschen politischen Leben der Gegenwart. - Göttingen, 1955</t.title>
+ </titleStmt>
+ <publicationStmt>
+ <distributor/>
+ <pubAddress/>
+ <availability region="world">QAO-NC</availability>
+ <pubDate/>
+ </publicationStmt>
+ <sourceDesc>
+ <biblStruct>
+ <analytic>
+ <h.title type="main"/>
+ <h.title type="sub"/>
+ <h.title type="abbr" level="m"/>
+ <h.title type="abbr" level="a"/>
+ <h.author/>
+ <editor/>
+ <imprint/>
+ <biblScope type="subsume"/>
+ <biblScope type="pp">S. 5</biblScope>
+ <biblNote n="1"/>
+ </analytic>
+ <monogr>
+ <h.title type="main"/>
+ <imprint/>
+ </monogr>
+ </biblStruct>
+ <reference type="complete" assemblage="non-automatic">UMB45/D38.00001 In: Koellreutter, Otto: Über Schuld und Aufgabe der geistigen Führungsschicht im deutschen politischen Leben der Gegenwart, Göttingen: Göttinger Verlags-Anstalt, 1955, S. 5</reference>
+ <reference type="short" assemblage="regular">UMB45/D38.00001 In: Koellreutter, Otto: Über Schuld und Aufgabe der geistigen Führungsschicht im deutschen politischen Leben der Gegenwart, Göttingen: Göttinger Verlags-Anstalt, 1955, S. 5 [Kurzzitierung nicht verfügbar]</reference>
+ </sourceDesc>
+ </fileDesc>
+ <encodingDesc>
+ <samplingDecl/>
+ <tagsDecl>
+ <tagUsage gi="pb" occurs="1"/>
+ <tagUsage gi="p" occurs="1"/>
+ <tagUsage gi="s" occurs="6"/>
+ </tagsDecl>
+ </encodingDesc>
+ <profileDesc>
+ <creation>
+ <creatDate>1955</creatDate>
+ <creatRef/>
+ <creatRefShort/>
+ </creation>
+ <textClass/>
+ <textDesc>
+ <textType/>
+ <textTypeRef/>
+ <textDomain>Gesellschaft/Politik</textDomain>
+ </textDesc>
+ </profileDesc>
+ </idsHeader>
diff --git a/t/corpus/UMB45/D38/header.xml b/t/corpus/UMB45/D38/header.xml
new file mode 100644
index 0000000..5a31cbc
--- /dev/null
+++ b/t/corpus/UMB45/D38/header.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<?xml-model href="header.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
+<!DOCTYPE idsCorpus PUBLIC "-//IDS//DTD IDS-XCES 1.0//EN" "http://corpora.ids-mannheim.de/idsxces1/DTD/ids.xcesdoc.dtd">
+<idsHeader type="document" pattern="text" status="new" version="1.1" TEIform="teiHeader">
+ <fileDesc>
+ <titleStmt>
+ <dokumentSigle>UMB45/D38</dokumentSigle>
+ <d.title>Koellreutter, Otto: Über Schuld und Aufgabe der geistigen Führungsschicht im deutschen politischen Leben der Gegenwart, 1955</d.title>
+ </titleStmt>
+ <publicationStmt>
+ <distributor/>
+ <pubAddress/>
+ <availability region="world">QAO-NC</availability>
+ <pubDate/>
+ </publicationStmt>
+ <sourceDesc>
+ <biblStruct>
+ <monogr>
+ <h.title type="main">Über Schuld und Aufgabe der geistigen Führungsschicht im deutschen politischen Leben der Gegenwart</h.title>
+ <h.title type="sub"/>
+ <h.author>Koellreutter, Otto</h.author>
+ <editor/>
+ <edition>
+ <further/>
+ <kind/>
+ <appearance/>
+ </edition>
+ <imprint>
+ <publisher>Göttinger Verlags-Anstalt</publisher>
+ <pubDate type="year">1955</pubDate>
+ <pubDate type="month"/>
+ <pubDate type="day"/>
+ <pubPlace key="DE">Göttingen</pubPlace>
+ </imprint>
+ <biblScope type="vol"/>
+ <biblScope type="volume-title"/>
+ </monogr>
+ </biblStruct>
+ <reference type="super" assemblage="regular">UMB45/D38 Koellreutter, Otto: Über Schuld und Aufgabe der geistigen Führungsschicht im deutschen politischen Leben der Gegenwart. Göttingen: Göttinger Verlags-Anstalt, 1955</reference>
+ </sourceDesc>
+ </fileDesc>
+ </idsHeader>
diff --git a/t/corpus/UMB45/header.xml b/t/corpus/UMB45/header.xml
new file mode 100644
index 0000000..26e5a38
--- /dev/null
+++ b/t/corpus/UMB45/header.xml
@@ -0,0 +1,256 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<?xml-model href="header.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
+<!DOCTYPE idsCorpus PUBLIC "-//IDS//DTD IDS-XCES 1.0//EN" "http://corpora.ids-mannheim.de/idsxces1/DTD/ids.xcesdoc.dtd">
+ <idsHeader type="corpus" pattern="allesaußerZtg/Zschr" status="new" version="1.1" TEIform="teiHeader">
+ <fileDesc>
+ <titleStmt>
+ <korpusSigle>UMB45</korpusSigle>
+ <c.title>Schulddiskurs 1945-1955</c.title>
+ </titleStmt>
+ <publicationStmt>
+ <distributor> Institut für Deutsche Sprache </distributor>
+ <pubAddress> Postfach 10 16 21, D-68016 Mannheim </pubAddress>
+ <telephone> +49 (0)621 1581 0 </telephone>
+ <availability region="world">QAO-NC</availability>
+ <pubDate/>
+ </publicationStmt>
+ <sourceDesc>
+ <biblStruct>
+ <monogr>
+ <h.title type="main"/>
+ <imprint/>
+ </monogr>
+ </biblStruct>
+ </sourceDesc>
+ </fileDesc>
+ <encodingDesc>
+ <projectDesc/>
+ <samplingDecl/>
+ <editorialDecl>
+ <transduction> TraDuCES - Korpus-Transformationscompiler, Version 3.6.3,
+ Eric Seubert, IDS Mannheim, 5. Mai 2010
+ Optionen bei der Konvertierung:
+ - Dubletten-Modus:
+ Entfernung aller als Dubletten klassifizierten Texte.
+ - Indexierungsmodus für COSMAS II:
+ Erzeugung von Ersatzreferenzen für Kurzzitierung.
+ Erzeugung von übergeordneten Dokument-Referenzen, falls die
+ jeweiligen Dokumente nur einen einzigen selbstständigen Text enthalten.
+ Entfernung aller Deklarationen für Dubletten.
+ Entfernung von Texten mit Sperrvermerken.
+ Entfernung von Texten mit minimalem Inhalt.</transduction>
+ <transduction>$Id: fixPreXCES.l 1194 2008-04-30 14:16:53Z kupietz $</transduction>
+ <transduction>$Id: idsces2idsxces 1843 2011-09-13 14:52:21Z kupietz $</transduction>
+ <pagination type="yes"/>
+ </editorialDecl>
+ <tagsDecl>
+ <tagUsage gi="pb"/>
+ </tagsDecl>
+ <classDecl>
+ <taxonomy id="topic">
+ <h.bibl>Thementaxonomie (siehe http://www.ids-mannheim.de/kl/projekte/methoden/te.html)</h.bibl>
+ <category id="topic.fiktion">
+ <catDesc>Fiktion</catDesc>
+ <category id="topic.fiktion.vermischtes">
+ <catDesc>Fiktion:Vermischtes</catDesc>
+ </category>
+ </category>
+ <category id="topic.freizeit-unterhaltung">
+ <catDesc>Freizeit_Unterhaltung</catDesc>
+ <category id="topic.freizeit-unterhaltung.reisen">
+ <catDesc>Freizeit_Unterhaltung:Reisen</catDesc>
+ </category>
+ <category id="topic.freizeit-unterhaltung.rundfunk">
+ <catDesc>Freizeit_Unterhaltung:Rundfunk</catDesc>
+ </category>
+ <category id="topic.freizeit-unterhaltung.vereine-veranstaltungen">
+ <catDesc>Freizeit_Unterhaltung:Vereine_Veranstaltungen</catDesc>
+ </category>
+ </category>
+ <category id="topic.gesundheit-ernaehrung">
+ <catDesc>Gesundheit_Ernaehrung</catDesc>
+ <category id="topic.gesundheit-ernaehrung.ernaehrung">
+ <catDesc>Gesundheit_Ernaehrung:Ernaehrung</catDesc>
+ </category>
+ <category id="topic.gesundheit-ernaehrung.gesundheit">
+ <catDesc>Gesundheit_Ernaehrung:Gesundheit</catDesc>
+ </category>
+ </category>
+ <category id="topic.kultur">
+ <catDesc>Kultur</catDesc>
+ <category id="topic.kultur.bildende-kunst">
+ <catDesc>Kultur:Bildende Kunst</catDesc>
+ </category>
+ <category id="topic.kultur.darstellende-kunst">
+ <catDesc>Kultur:Darstellende Kunst</catDesc>
+ </category>
+ <category id="topic.kultur.film">
+ <catDesc>Kultur:Film</catDesc>
+ </category>
+ <category id="topic.kultur.literatur">
+ <catDesc>Kultur:Literatur</catDesc>
+ </category>
+ <category id="topic.kultur.mode">
+ <catDesc>Kultur:Mode</catDesc>
+ </category>
+ <category id="topic.kultur.musik">
+ <catDesc>Kultur:Musik</catDesc>
+ </category>
+ </category>
+ <category id="topic.natur-umwelt">
+ <catDesc>Natur_Umwelt</catDesc>
+ <category id="topic.natur-umwelt.garten">
+ <catDesc>Natur_Umwelt:Garten</catDesc>
+ </category>
+ <category id="topic.natur-umwelt.tiere">
+ <catDesc>Natur_Umwelt:Tiere</catDesc>
+ </category>
+ <category id="topic.natur-umwelt.wetter-klima">
+ <catDesc>Natur_Umwelt:Wetter_Klima</catDesc>
+ </category>
+ </category>
+ <category id="topic.politik">
+ <catDesc>Politik</catDesc>
+ <category id="topic.politik.ausland">
+ <catDesc>Politik:Ausland</catDesc>
+ </category>
+ <category id="topic.politik.inland">
+ <catDesc>Politik:Inland</catDesc>
+ </category>
+ <category id="topic.politik.kommunalpolitik">
+ <catDesc>Politik:Kommunalpolitik</catDesc>
+ </category>
+ </category>
+ <category id="topic.rest">
+ <catDesc>Rest</catDesc>
+ <category id="topic.rest.boersenkurse">
+ <catDesc>Rest:boersenkurse</catDesc>
+ </category>
+ <category id="topic.rest.geburt-tod-heirat">
+ <catDesc>Rest:geburt_tod_heirat</catDesc>
+ </category>
+ <category id="topic.rest.impressum">
+ <catDesc>Rest:impressum</catDesc>
+ </category>
+ <category id="topic.rest.inhaltsverzeichnisse">
+ <catDesc>Rest:inhaltsverzeichnisse</catDesc>
+ </category>
+ <category id="topic.rest.ligatabellen">
+ <catDesc>Rest:ligatabellen</catDesc>
+ </category>
+ <category id="topic.rest.tabellen">
+ <catDesc>Rest:tabellen</catDesc>
+ </category>
+ <category id="topic.rest.veranstaltungshinweise">
+ <catDesc>Rest:veranstaltungshinweise</catDesc>
+ </category>
+ </category>
+ <category id="topic.sport">
+ <catDesc>Sport</catDesc>
+ <category id="topic.sport.ballsport">
+ <catDesc>Sport:Ballsport</catDesc>
+ </category>
+ <category id="topic.sport.fussball">
+ <catDesc>Sport:Fussball</catDesc>
+ </category>
+ <category id="topic.sport.motorsport">
+ <catDesc>Sport:Motorsport</catDesc>
+ </category>
+ <category id="topic.sport.radsport">
+ <catDesc>Sport:Radsport</catDesc>
+ </category>
+ <category id="topic.sport.tennis">
+ <catDesc>Sport:Tennis</catDesc>
+ </category>
+ <category id="topic.sport.vermischtes">
+ <catDesc>Sport:Vermischtes</catDesc>
+ </category>
+ <category id="topic.sport.wintersport">
+ <catDesc>Sport:Wintersport</catDesc>
+ </category>
+ </category>
+ <category id="topic.staat-gesellschaft">
+ <catDesc>Staat_Gesellschaft</catDesc>
+ <category id="topic.staat-gesellschaft.arbeit-und-beruf">
+ <catDesc>Staat_Gesellschaft:Arbeit_und_Beruf</catDesc>
+ </category>
+ <category id="topic.staat-gesellschaft.bildung">
+ <catDesc>Staat_Gesellschaft:Bildung</catDesc>
+ </category>
+ <category id="topic.staat-gesellschaft.biographien-interviews">
+ <catDesc>Staat_Gesellschaft:Biographien_Interviews</catDesc>
+ </category>
+ <category id="topic.staat-gesellschaft.drittes-reich-rechtsextremismus">
+ <catDesc>Staat_Gesellschaft:Drittes_Reich_Rechtsextremismus</catDesc>
+ </category>
+ <category id="topic.staat-gesellschaft.familie-geschlecht">
+ <catDesc>Staat_Gesellschaft:Familie_Geschlecht</catDesc>
+ </category>
+ <category id="topic.staat-gesellschaft.kirche">
+ <catDesc>Staat_Gesellschaft:Kirche</catDesc>
+ </category>
+ <category id="topic.staat-gesellschaft.recht">
+ <catDesc>Staat_Gesellschaft:Recht</catDesc>
+ </category>
+ <category id="topic.staat-gesellschaft.tod">
+ <catDesc>Staat_Gesellschaft:Tod</catDesc>
+ </category>
+ <category id="topic.staat-gesellschaft.verbrechen">
+ <catDesc>Staat_Gesellschaft:Verbrechen</catDesc>
+ </category>
+ </category>
+ <category id="topic.technik-industrie">
+ <catDesc>Technik_Industrie</catDesc>
+ <category id="topic.technik-industrie.edv-elektronik">
+ <catDesc>Technik_Industrie:EDV_Elektronik</catDesc>
+ </category>
+ <category id="topic.technik-industrie.kfz">
+ <catDesc>Technik_Industrie:Kfz</catDesc>
+ </category>
+ <category id="topic.technik-industrie.transport-verkehr">
+ <catDesc>Technik_Industrie:Transport_Verkehr</catDesc>
+ </category>
+ <category id="topic.technik-industrie.umweltschutz">
+ <catDesc>Technik_Industrie:Umweltschutz</catDesc>
+ </category>
+ <category id="topic.technik-industrie.unfaelle">
+ <catDesc>Technik_Industrie:Unfaelle</catDesc>
+ </category>
+ </category>
+ <category id="topic.wirtschaft-finanzen">
+ <catDesc>Wirtschaft_Finanzen</catDesc>
+ <category id="topic.wirtschaft-finanzen.banken">
+ <catDesc>Wirtschaft_Finanzen:Banken</catDesc>
+ </category>
+ <category id="topic.wirtschaft-finanzen.bilanzen">
+ <catDesc>Wirtschaft_Finanzen:Bilanzen</catDesc>
+ </category>
+ <category id="topic.wirtschaft-finanzen.oeffentliche-finanzen">
+ <catDesc>Wirtschaft_Finanzen:Oeffentliche_Finanzen</catDesc>
+ </category>
+ <category id="topic.wirtschaft-finanzen.sozialprodukt">
+ <catDesc>Wirtschaft_Finanzen:Sozialprodukt</catDesc>
+ </category>
+ <category id="topic.wirtschaft-finanzen.waehrung">
+ <catDesc>Wirtschaft_Finanzen:Waehrung</catDesc>
+ </category>
+ </category>
+ <category id="topic.wissenschaft">
+ <catDesc>Wissenschaft</catDesc>
+ <category id="topic.wissenschaft.populaerwissenschaft">
+ <catDesc>Wissenschaft:Populaerwissenschaft</catDesc>
+ </category>
+ </category>
+ <category id="topic.unklassifizierbar">
+ <catDesc>Text ist thematisch nicht klassifizierbar.</catDesc>
+ </category>
+ </taxonomy>
+ </classDecl>
+ </encodingDesc>
+ <profileDesc>
+ <langUsage>
+ <language id="de" usage="100">Deutsch</language>
+ </langUsage>
+ <textDesc/>
+ </profileDesc>
+ </idsHeader>
diff --git a/t/meta.t b/t/meta.t
index 850e630..c8f580d 100644
--- a/t/meta.t
+++ b/t/meta.t
@@ -434,6 +434,22 @@
is($hash->{author}, 'Hustedt, Michaele');
is($hash->{pub_place}, 'Berlin');
+
+# UMB45/D38/00001
+$path = catdir(dirname(__FILE__), 'corpus','UMB45','D38','00001');
+ok($doc = KorAP::XML::Krill->new( path => $path), 'Load Korap::Document');
+like($doc->path, qr!\Q$path\E/!, 'Path');
+
+ok($doc->parse, 'Parse document');
+$meta = $doc->meta;
+
+is($doc->text_sigle, 'UMB45/D38/00001', 'text sigle');
+is($doc->doc_sigle, 'UMB45/D38', 'doc sigle');
+is($doc->corpus_sigle, 'UMB45', 'corpus sigle');
+
+is($meta->{title}, 'In: Über Schuld und Aufgabe der geistigen Führungsschicht im deutschen politischen Leben der Gegenwart. - Göttingen, 1955', 'title');
+
+
done_testing;
__END__