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__