Bug #36
openProgrammabsturz bei DSM-Richtlinie
50%
Description
Das Programm stürzt bei der Verarbeitung der DSM-Richtlinie ab:
$ ./gesetz2print -a DSM-RL -S "Digital-Single-Market-Richtlinie" -I 65b -v -t euLaw -i DSMRL.xml -o result.tex
Extracting law metadata
Processing preamble
Processing recital (1)
Processing recital (2)
Processing recital (3)
Processing recital (4)
Processing recital (5)
Processing recital (6)
Processing recital (7)
Processing recital (8)
Processing recital (9)
Processing recital (10)
Processing recital (11)
Processing recital (12)
Processing recital (13)
Processing recital (14)
Processing recital (15)
Processing recital (16)
Processing recital (17)
Processing recital (18)
Processing recital (19)
Processing recital (20)
Processing recital (21)
Processing recital (22)
Processing recital (23)
Processing recital (24)
Processing recital (25)
Processing recital (26)
Processing recital (27)
Processing recital (28)
Processing recital (29)
Processing recital (30)
Processing recital (31)
Processing recital (32)
Processing recital (33)
Processing recital (34)
Processing recital (35)
Processing recital (36)
Processing recital (37)
Processing recital (38)
Processing recital (39)
Processing recital (40)
Processing recital (41)
Processing recital (42)
Processing recital (43)
Processing recital (44)
Processing recital (45)
Processing recital (46)
Processing recital (47)
Processing recital (48)
Processing recital (49)
Processing recital (50)
Processing recital (51)
Processing recital (52)
Processing recital (53)
Processing recital (54)
Processing recital (55)
Processing recital (56)
Processing recital (57)
Processing recital (58)
Processing recital (59)
Processing recital (60)
Processing recital (61)
Processing recital (62)
Processing recital (63)
Processing recital (64)
Processing recital (65)
Processing recital (66)
Processing recital (67)
Processing recital (68)
Processing recital (69)
Processing recital (70)
Processing recital (71)
Processing recital (72)
Processing recital (73)
Processing recital (74)
Processing recital (75)
Processing recital (76)
Processing recital (77)
Processing recital (78)
Processing recital (79)
Processing recital (80)
Processing recital (81)
Processing recital (82)
Processing recital (83)
Processing recital (84)
Processing recital (85)
Processing recital (86)
Section found: ALLGEMEINE BESTIMMUNGEN
Processing norm: Artikel 1 (Gegenstand und Anwendungsbereich)
Processing norm: Artikel 2 (Begriffsbestimmungen)
Section found: MAẞNAHMEN ZUR ANPASSUNG VON AUSNAHMEN UND BESCHRÄNKUNGEN AN DAS DIGITALE UND GRENZÜBERSCHREITENDE UMFELD
Processing norm: Artikel 3 (Text und Data Mining zum Zwecke der wissenschaftlichen Forschung)
Processing norm: Artikel 4 (Ausnahmen und Beschränkungen für das Text und Data Mining)
Processing norm: Artikel 5 (Nutzung von Werken und sonstigen Schutzgegenständen für digitale und grenzüberschreitende Unterrichts- und Lehrtätigkeiten)
Processing norm: Artikel 6 (Erhaltung des Kulturerbes)
Processing norm: Artikel 7 (Gemeinsame Bestimmungen)
Section found: MAẞNAHMEN ZUR VERBESSERUNG DER LIZENZIERUNGSPRAXIS UND ZUR GEWÄHRLEISTUNG EINES BREITEREN ZUGANGS ZU INHALTEN
Section found: Vergriffene Werke und sonstige Schutzgegenstände
Processing norm: Artikel 8 (Nutzung von vergriffenen Werken und sonstigen Schutzgegenständen durch Einrichtungen des Kulturerbes)
Processing norm: Artikel 9 (Grenzüberschreitende Nutzung)
Processing norm: Artikel 10 (Informationsmaßnahmen)
Processing norm: Artikel 11 (Dialog der Interessenträger)
Section found: Maßnahmen zur Erleichterung der kollektiven Lizenzvergabe
Processing norm: Artikel 12 (Kollektive Lizenzvergabe mit erweiterter Wirkung)
Section found: Zugänglichkeit und Verfügbarkeit audiovisueller Werke über Videoabrufdienste
Processing norm: Artikel 13 (Verhandlungsmechanismus)
Section found: Gemeinfreie Werke der bildenden Kunst
Processing norm: Artikel 14 (Gemeinfreie Werke der bildenden Kunst)
Section found: MAẞNAHMEN ZUR SCHAFFUNG EINES FUNKTIONSFÄHIGEN MARKTES FÜR DEN URHEBERRECHTSSCHUTZ
Section found: Rechte an Veröffentlichungen
Processing norm: Artikel 15 (Schutz von Presseveröffentlichungen im Hinblick auf die Online-Nutzung)
Processing norm: Artikel 16 (Ansprüche auf einen gerechten Ausgleich)
Section found: Bestimmte Nutzungen geschützter Inhalte durch Online-Dienste
Processing norm: Artikel 17 (Nutzung geschützter Inhalte durch Diensteanbieter für das Teilen von Online-Inhalten)
Section found: Faire Vergütung in Verwertungsverträgen mit Urhebern und ausübenden Künstlern
Processing norm: Artikel 18 (Grundsatz der angemessenen und verhältnismäßigen Vergütung)
Processing norm: Artikel 19 (Transparenzpflicht)
Processing norm: Artikel 20 (Vertragsanpassungsmechanismus)
Processing norm: Artikel 21 (Alternative Streitbeilegungsverfahren)
Processing norm: Artikel 22 (Widerrufsrecht)
Processing norm: Artikel 23 (Gemeinsame Bestimmungen)
Section found: SCHLUSSBESTIMMUNGEN
Processing norm: Artikel 24 (Änderungen der Richtlinien 96/9/EG und 2001/29/EG)
Warning: Ignoring unsupported in-paragraph tag 'QUOT.S' on input line 0 (no text will be lost, only formatting may be off)
Warning: Ignoring unsupported in-paragraph tag 'NP' on input line 0 (no text will be lost, only formatting may be off)
Warning: Ignoring unsupported in-paragraph tag 'NO.P' on input line 0 (no text will be lost, only formatting may be off)
Warning: Ignoring unsupported in-paragraph tag 'TXT' on input line 0 (no text will be lost, only formatting may be off)
terminate called after throwing an instance of 'std::runtime_error'
what(): Unsupported NOTE type: QUOTATION
Abgebrochen
Die betroffenen Vorschriften sind Änderungsvorschriten, enthalten also Zitate (Typ QUOTATION). Dieser wird offenbar noch nicht unterstützt.
Updated by quintus about 3 years ago
- Status changed from New to In Progress
- % Done changed from 0 to 50
Tatsächlich handelte es sich um eine Fußnote innerhalb eines Zitats, die von FORMEX4 statt FOOTNOTE
den Typ QUOTATION
enthält. Derartige Fußnoten werden jetzt mit Commit 49d61b3 unterstützt.
Allerdings kann die DSM-Richtlinie damit immer noch nicht verarbeitet werden, weil sie einen weiteren Fehler auslöst:
Extracting law metadata
Processing preamble
Processing recital (1)
Processing recital (2)
Processing recital (3)
Processing recital (4)
Processing recital (5)
Processing recital (6)
Processing recital (7)
Processing recital (8)
Processing recital (9)
Processing recital (10)
Processing recital (11)
Processing recital (12)
Processing recital (13)
Processing recital (14)
Processing recital (15)
Processing recital (16)
Processing recital (17)
Processing recital (18)
Processing recital (19)
Processing recital (20)
Processing recital (21)
Processing recital (22)
Processing recital (23)
Processing recital (24)
Processing recital (25)
Processing recital (26)
Processing recital (27)
Processing recital (28)
Processing recital (29)
Processing recital (30)
Processing recital (31)
Processing recital (32)
Processing recital (33)
Processing recital (34)
Processing recital (35)
Processing recital (36)
Processing recital (37)
Processing recital (38)
Processing recital (39)
Processing recital (40)
Processing recital (41)
Processing recital (42)
Processing recital (43)
Processing recital (44)
Processing recital (45)
Processing recital (46)
Processing recital (47)
Processing recital (48)
Processing recital (49)
Processing recital (50)
Processing recital (51)
Processing recital (52)
Processing recital (53)
Processing recital (54)
Processing recital (55)
Processing recital (56)
Processing recital (57)
Processing recital (58)
Processing recital (59)
Processing recital (60)
Processing recital (61)
Processing recital (62)
Processing recital (63)
Processing recital (64)
Processing recital (65)
Processing recital (66)
Processing recital (67)
Processing recital (68)
Processing recital (69)
Processing recital (70)
Processing recital (71)
Processing recital (72)
Processing recital (73)
Processing recital (74)
Processing recital (75)
Processing recital (76)
Processing recital (77)
Processing recital (78)
Processing recital (79)
Processing recital (80)
Processing recital (81)
Processing recital (82)
Processing recital (83)
Processing recital (84)
Processing recital (85)
Processing recital (86)
Section found: ALLGEMEINE BESTIMMUNGEN
Processing norm: Artikel 1 (Gegenstand und Anwendungsbereich)
Processing norm: Artikel 2 (Begriffsbestimmungen)
Section found: MAẞNAHMEN ZUR ANPASSUNG VON AUSNAHMEN UND BESCHRÄNKUNGEN AN DAS DIGITALE UND GRENZÜBERSCHREITENDE UMFELD
Processing norm: Artikel 3 (Text und Data Mining zum Zwecke der wissenschaftlichen Forschung)
Processing norm: Artikel 4 (Ausnahmen und Beschränkungen für das Text und Data Mining)
Processing norm: Artikel 5 (Nutzung von Werken und sonstigen Schutzgegenständen für digitale und grenzüberschreitende Unterrichts- und Lehrtätigkeiten)
Processing norm: Artikel 6 (Erhaltung des Kulturerbes)
Processing norm: Artikel 7 (Gemeinsame Bestimmungen)
Section found: MAẞNAHMEN ZUR VERBESSERUNG DER LIZENZIERUNGSPRAXIS UND ZUR GEWÄHRLEISTUNG EINES BREITEREN ZUGANGS ZU INHALTEN
Section found: Vergriffene Werke und sonstige Schutzgegenstände
Processing norm: Artikel 8 (Nutzung von vergriffenen Werken und sonstigen Schutzgegenständen durch Einrichtungen des Kulturerbes)
Processing norm: Artikel 9 (Grenzüberschreitende Nutzung)
Processing norm: Artikel 10 (Informationsmaßnahmen)
Processing norm: Artikel 11 (Dialog der Interessenträger)
Section found: Maßnahmen zur Erleichterung der kollektiven Lizenzvergabe
Processing norm: Artikel 12 (Kollektive Lizenzvergabe mit erweiterter Wirkung)
Section found: Zugänglichkeit und Verfügbarkeit audiovisueller Werke über Videoabrufdienste
Processing norm: Artikel 13 (Verhandlungsmechanismus)
Section found: Gemeinfreie Werke der bildenden Kunst
Processing norm: Artikel 14 (Gemeinfreie Werke der bildenden Kunst)
Section found: MAẞNAHMEN ZUR SCHAFFUNG EINES FUNKTIONSFÄHIGEN MARKTES FÜR DEN URHEBERRECHTSSCHUTZ
Section found: Rechte an Veröffentlichungen
Processing norm: Artikel 15 (Schutz von Presseveröffentlichungen im Hinblick auf die Online-Nutzung)
Processing norm: Artikel 16 (Ansprüche auf einen gerechten Ausgleich)
Section found: Bestimmte Nutzungen geschützter Inhalte durch Online-Dienste
Processing norm: Artikel 17 (Nutzung geschützter Inhalte durch Diensteanbieter für das Teilen von Online-Inhalten)
Section found: Faire Vergütung in Verwertungsverträgen mit Urhebern und ausübenden Künstlern
Processing norm: Artikel 18 (Grundsatz der angemessenen und verhältnismäßigen Vergütung)
Processing norm: Artikel 19 (Transparenzpflicht)
Processing norm: Artikel 20 (Vertragsanpassungsmechanismus)
Processing norm: Artikel 21 (Alternative Streitbeilegungsverfahren)
Processing norm: Artikel 22 (Widerrufsrecht)
Processing norm: Artikel 23 (Gemeinsame Bestimmungen)
Section found: SCHLUSSBESTIMMUNGEN
Processing norm: Artikel 24 (Änderungen der Richtlinien 96/9/EG und 2001/29/EG)
Warning: Ignoring unsupported in-paragraph tag 'QUOT.S' on input line 0 (no text will be lost, only formatting may be off)
Warning: Ignoring unsupported in-paragraph tag 'NP' on input line 0 (no text will be lost, only formatting may be off)
Warning: Ignoring unsupported in-paragraph tag 'NO.P' on input line 0 (no text will be lost, only formatting may be off)
Warning: Ignoring unsupported in-paragraph tag 'TXT' on input line 0 (no text will be lost, only formatting may be off)
Warning: Footnotes will always receive arabic numbers, even if the document requests STAR
Warning: Ignoring unsupported in-paragraph tag 'QUOT.S' on input line 0 (no text will be lost, only formatting may be off)
Warning: Ignoring unsupported in-paragraph tag 'NP' on input line 0 (no text will be lost, only formatting may be off)
Warning: Ignoring unsupported in-paragraph tag 'NO.P' on input line 0 (no text will be lost, only formatting may be off)
Warning: Ignoring unsupported in-paragraph tag 'TXT' on input line 0 (no text will be lost, only formatting may be off)
Warning: Ignoring unsupported in-paragraph tag 'QUOT.S' on input line 0 (no text will be lost, only formatting may be off)
Warning: Ignoring unsupported in-paragraph tag 'NP' on input line 0 (no text will be lost, only formatting may be off)
Warning: Ignoring unsupported in-paragraph tag 'NO.P' on input line 0 (no text will be lost, only formatting may be off)
Warning: Ignoring unsupported in-paragraph tag 'TXT' on input line 0 (no text will be lost, only formatting may be off)
Warning: Footnotes will always receive arabic numbers, even if the document requests STAR
Warning: Ignoring unsupported in-paragraph tag 'QUOT.S' on input line 0 (no text will be lost, only formatting may be off)
Warning: Ignoring unsupported in-paragraph tag 'NP' on input line 0 (no text will be lost, only formatting may be off)
Warning: Ignoring unsupported in-paragraph tag 'NO.P' on input line 0 (no text will be lost, only formatting may be off)
Warning: Ignoring unsupported in-paragraph tag 'TXT' on input line 0 (no text will be lost, only formatting may be off)
Warning: Ignoring unsupported in-paragraph tag 'QUOT.S' on input line 0 (no text will be lost, only formatting may be off)
Error: Encountered a very unusual list item label, aborting.
If this is not an important norm, exclude it with -E.
If it is an important norm, please report this as a bug.
Encountered XML node type: 1
Encountered XML node name: QUOT.START
gesetz2print: eu_law_parser.cpp:452: void EULawParser::extractList(Enumerate*, xmlNodePtr): Assertion `false' failed.
Abgebrochen
Die DSM-Richtlinie benutzt für das Label eines Listenelements (NO.P
) in dieser Norm statt dem erwarteten Reintext einen XML-Placeholder, der aufzulösen wäre, d.h. ein vollständiges rekursives Textparsing erfordert. Das steht im Widerspruch zum gegenwärtigen Code-Design und würde wohl erhebliche Änderungen quer durch die ganze Code-Basis erfordern. Alternativ müsste man den hier vorliegenden Fall speziell abfangen (es handelt sich um ein QUOT.START
-Element, das man hier statisch auflösen könnte), aber das ist keine schöne Lösung.
Commit 2e52776 fügt den neuen Kommandozeilenschalter -E
hinzu, mit dem man gezielt Normen auslassen kann. Da diese Art von Fehler wohl auf Änderungsvorschriften beschränkt ist, die ohnehin niemanden interessieren, scheint mir das ein akzeptabler Workaround. Schließt man Artikel 24 damit aus, lässt die DSM-Richtlinie sich verarbeiten, z.B. mit folgendem Programmaufruf:
$ ./gesetz2print -I 99 -v -a DSMRL -S DSM-Richtlinie -t euLaw -i DSMRL.xml -E 24 -o result.tex