Alle Beiträge von Andreas Heß

Compact Discs und Verwandte, Teil 6: MVI

Was ist MVI?

Unter dem Namen „Music Video Interactive“ (MVI) wurden in den Jahren 2007 und 2008 einige Alben verkauft.

Auch wenn auf der in der Wayback Machine archivierten Webseite mvimusic.com die Rede davon ist, es sei „a new DVD-based format“ (unter „Basics“) und auch in der deutschprachigen Wikipedia auf der Seite zu MVI von einem Bild- und Tonträgerformat die Rede ist, handelt es sich dabei in Wahrheit um ganz normale Video-DVDs. In den FAQ der historischen MVI-Webseite steht auch ganz klar: „The MVI disc is a standard DVD and will play on all the platforms where you’re used to playing DVD movies“.

Die MVI-DVD enthält zunächst einmal die Musik des Albums in höherer Aufnahmequalität als die CD. Während eine Audio-CD 16 Bit-Samples bei 44,1 kHz Samplingrate enthält, sind bei der Video-DVD unterschiedliche Tonformate standardisiert (dazu später mehr), wobei bei der MVI das Album mindestens in 24 Bit und 48 kHz (unkomprimiertes PCM) vorliegt. Bei der MVI steht, auch wenn es eine Video-DVD ist, die Musik im Vordergrund, so dass zwar auch zusätzlich Musikvideos drauf sein können, aber bei den Tracks des eigentlichen Albums Standbilder zu sehen sind.

Für die MVIs ist auch charakteristisch, dass sie einen Daten-Teil enthalten, der unter anderem das Album nochmal im MP3-Format enthält sowie eine Reihe von Gimmicks wie zum Beispiel Bilder, Klingeltöne (ja, das war damals ein Ding…) und Software, daher das „Interactive“ in MVI. Technisch ist das immer noch alles innerhalb des DVD-Standards, denn (anders als eine Audio-CD) haben DVDs immer ein Dateisystem, in dem dann natürlich alles mögliche gespeichert werden kann.

Den Angaben der MVI-Webseite zufolge sind insgesamt gerade einmal 15 Alben erschienen, soweit ich das überblicke handelt es sich bei allen um „Deluxe-Versionen“ bzw. Sets aus dem Album auf einer normalen CD und zusätzlich der MVI-DVD. Auch wenn es nur wenige Veröffentlichungen gibt, sind sie was die Menge der Exemplare angeht aber anscheinend nicht selten. MVI werden gebraucht für ein- bis niedrige zweistellige Euro-Beträge gehandelt, also auch nicht teurer als andere vergleichbare „Deluxe“- oder „Limited Edition“-Ausgaben aus der Zeit.

Wie abspielen und migrieren?

Eine MVI ist eine ganz normale Video-DVD und kann als solche somit mit jedem DVD- oder Blu-ray-Player abgespielt und am Rechner auch wie eine ganz normale DVD behandelt werden.

Für das, was an Software auf dem Daten-Teil drauf ist, braucht es einen Rechner auf dem die auch läuft, denn die Software ist auf dem Stand von 2007. Bei meiner „Riot!“ von Paramore ist die Software allerdings unter Windows 10 immer noch lauffähig. Ich habe „nu-myx“ zum einfachen Remixen des Tracks „Misery Business“ ausprobiert. Man kann dabei einzelne Spuren ein- und ausblenden und Sektionen kopieren und so weiter, das ist ganz lustig:

Ob dieses Programm wohl eine Rolle gespielt hat, als Olivia Rodrigo „good 4 u“ geschrieben hat…? 😉

Die MVI zeigt, was 2007 mit dem damals schon seit Jahren etablierten Format DVD-Video ging und was man alles für die Fans machen konnte, wenn man nur wollte und Energie reingesteckt hat! Das Medium DVD eröffnete durch den gegenüber der CD größeren Speicherplatz die Möglichkeit, sowohl das Album in hoher Soundqualität als auch Extras wie Musikvideos, Bonustracks und Software-Extras – ja. die Mix-Software ist echt schön gemacht! – draufzupacken. Die MVI ist nach fast 20 Jahren, auch wenn sie damals nicht am Markt erfolgreich war, immer noch ein Quell der Freude!

Compact Discs und Verwandte, Teil 5: HDCD

Was ist HDCD?

HDCD steht für High Definition Compatible Digital. Die Idee hinter HDCD ist, den nutzbaren Dynamik-Umfang zu erhöhen.

Dies geschieht mit zwei Features, Peak extend (PE) und Low-level gain adjustment (LLE). Bei PE werden Peaks lauter als -9 dB komprimiert und auf -6 dB limitiert und das ganze Signal wird um 6 dB angehoben. Beim Abspielen wird die Dynamikkompression wieder rückgängig gemacht. Bei leisen Stellen in der Aufnahme kann LLE aktiviert werden, was die 6 dB-Anhebung wieder korrigiert.

Ein drittes Feature, das die Wahl zwischen verschiedenen Rekonstruktionsfiltern in der D/A-Wandlung ermöglichen sollte, wurde vor der Produkteinführung wieder fallengelassen.

Die HDCD-Steuerinformationen sind in Mustern in den niederwertigsten Bits des Nutzsignals codiert, es ist also eine In-Band-Signalisierung. Daher bleibt die HDCD-Information auch bei verlustloser Kompression z.B. in ALAC oder FLAC erhalten.

HDCD wurde 1995 eingeführt, die Entwicklerfirma Pacific Microsonics wurde 2000 von Microsoft übernommen. 2005 wurde die offizielle HDCD-Webseite von Microsoft schon wieder vom Netz genommen.

Bekannte Musiker, bei denen man mit einer noch verhältnismäßig hohen Chance zufällig auf eine HDCD treffen könnte, sind Mark Knopfler und Neil Young. Laut einer Liste von HDCDs bei der Webseite Hydrogenaudio sind noch 2013 Alben von Neil Young als HDCD erschienen. Laut Discogs sind sogar noch bis in die 2020er einzelne HDCD-CDs veröffentlicht worden.

Wie abspielen?

Bei High Definition Compatible Digital CDs handelt es sich um ganz normale Red-Book-CDs, die deswegen neben dem HDCD-Logo auch das bekannte Compact-Disc-Digital-Audio-Logo tragen. Als solche können sie mit jedem CD-Spieler wiedergegeben werden. Daher kommt ja auch das „Compatible“ in HDCD. Hier ein Beispiel, wie das auf der „Sailing to Philadelphia“ von Mark Knopfler aussieht, mit einer Detailvergrößerung.

Sofern man aber nicht gerade einen CD-Player mit HDCD-Decoder hat, wird sich die Wiedergabe wegen der Dynamikkompression nicht ganz so anhören wie sie sollte. Das ist ungünstig, aber all zu viele Gedanken sollte man sich darüber nicht machen, die Unterschiede sind gering. Siehe dazu den Abschnitt „Lohnt sich HDCD?“ weiter unten.

Wie viele Player mit HDCD-Decoder tatsächlich existieren, ist mir nicht klar. Die FAQ der HDCD-Webseite von 2004 aus der WayBack-Machine spricht von „über 100“ Modellen, wozu neben reinen CD-Playern auch DVD-Player zählen sollen.

Wie migrieren?

Zunächst einmal gilt auch hier wieder, dass man HDCD-CDs ganz normal rippen kann, da sie Red-Book-konform sind.

Anders als bei CDs mit Pre-Emphasis, wo sich das entsprechende Flag in der TOC bzw. im Subcode befindet, bleibt bei HDCD die Steuerinformation beim Rippen und verlustfreien Komprimieren erhalten, da es eine In-Band-Signalisierung ist.

Ein Software-Player mit HDCD-Decoder kann ein File mit HDCD-Information korrekt decodieren. Bei einer verlustbehafteten Komprimierung (z.B. in AAC oder MP3) geht die HDCD-Steuerinformation verloren.

Da HDCD zu Microsoft gehört, ist es nicht ganz so seltsam, dass der Windows Media Player ab Version 9 HDCD untersützen soll. Dem Vernehmen nach, was man so in Foren liest, funktioniert das aber wohl nicht so zuverlässig. Ich selbst hab es nicht getestet und auch nicht, ob ein aktuelles Windows immer noch von Haus aus HDCD dekodiert.

Ein Software-Player, für den es ein Plugin gibt, ist foobar2000. Damit kann man dann auch ein HDCD-Audio-File mit 16 Bit Wortbreite in ein decodiertes File mit 24 Bit konvertieren. Eigentlich sollte durch die HDCD-Dekodierung ein Dynamikumfang von 20 Bit rauskommen, aber aus Kompatibilitätsgründen wird ein 24 Bit-File daraus. Auch wenn man das dann wieder verlustfrei komprimiert, geht dafür natürlich nicht wenig Speicherplatz drauf. In den Einstellungen und beim Abspielen sieht das dann so aus wie auf dem Screenshot.

Zum Vergrößern auf das Bild klicken! Erklärung:
Blauer Kasten: Das Plugin foo_hdcd muss installiert sein.
Roter Kasten: Beim Konvertieren eines encodierten HDCD-Files in ein dekodiertes 24-Bit-File muss im Converter Setup das Häkchen bei „Additional decoding“ gesetzt sein.
Roter Pfeil: So sieht die Statusleiste aus, wenn ein File mit HDCD-Info abgespielt wird und das HDCD-Decoder-Plugin installiert ist. Man beachte, dass die Wortbreite wegen der aktiven HDCD-Dekodierung als 24 Bit angezeigt wird, obwohl die abgespielte Datei tatsächlich 16-Bit-ALAC ist. Die Info rechts zeigt, dass PE aktiv ist, aber LLE nicht.

Lohnt sich HDCD?

Nicht so richtig. HDCD ist gegenüber einer „normalen“ CD keine klangliche Offenbarung oder sowas. Unter günstigsten Umständen lassen sich 4 Bit an zusätzlichem Dynamikumfang rausholen, man ist also bei effektiven 20 Bit. Diesen Gewinn bekommt man aber nur mit einem speziellen Dekoder. Auf der anderen Seite ist bei der Wiedergabe einer HDCD ohne Dekoder die Qualität sogar vermindert. Bei der Hydrogenaudio Knowledgebase geht man sogar so weit zu behaupten „HDCD was (mostly) a scam“.

Ich hab hier selber mal getestet, wie sehr sich decodiertes HDCD von nicht decodiertem HDCD tatsächlich unterscheidet. Dazu habe ich zunächst das codierte und das decodierte File beide in den Audio-Editor Audacity geladen und anschließend die Lautstärke des codierten Files um 6 dB abgesenkt (also den ersten Schritt der HDCD-Codierung sozusagen händisch rückgängig gemacht), damit beide genau gleich laut sind. Beim Abspielen konnte ich so direkt zwischen beiden umschalten. Mir ist es nicht gelungen, einen Unterschied rauszuhören.

Um zu sehen, ob es tatsächlich einen Unterschied gibt, habe ich eine der beiden Spuren invertiert und dann die beiden in eine dritte zusammengemischt, also die Differenz gebildet. An der Differenz ist sichtbar, dass sich das codierte und das decodierte HDCD in der Tat unterschieden, und zwar auch genau da, wo man es erwarten würde, nämlich an lauten Stellen wie Schlagzeugschlägen.

Und selbst jetzt, wo ich nun genau wusste, wo die Unterschiede sind, vermochte ich sie (über meinen Kopfhörer AKG K371) nicht wahrzunehmen.

Da gerade eben noch eine weitere HDCD reingekommen ist, nämlich der „Sultans of Swing“-Sampler von den Dire Straits, habe ich damit auch noch einen Test gemacht. Hier fand ich beim Titellied „Sultans of Swing“ die Unterschiede minimal hörbar, wobei die HDCD-decodierte Version die bevorzugte Variante ist. Ob ich die auch in einem Blindtest zuverlässig erkennen könnte, lasse ich mal offen.

Es mag sein, dass bei anderen Musikstücken die Unterschiede vielleicht deutlicher wahrnehmbarer wären, aber sei es drum… Der Unterschied zwischen decodiertem und nicht decodiertem HDCD ist jedenfalls weit geringer als die Abweichung, die bei einer fehlenden De-Emphasis (siehe Teil 3) entsteht.

Man braucht sich also keine übergroßen Gedanken zu machen, wenn man eine HDCD in der Sammlung hat, aber keine Möglichkeit, sie zu decodieren. Zumindest bei der „Sailing to Philadelphia“ kann ich sagen, dass der Unterschied allenfalls marginal ist. Und wenn der Unterschied von nicht decodiertem zu decodiertem HDCD schon so gering ist, kann der Qualitätsgewinn von HDCD zur normalen CD erst recht nur marginal sein.

Was könnten denn überhaupt effektive 20 Bit Dynamikumfang gegenüber 16 Bit bringen? Einerseits braucht man die 20 Bit nicht, denn der Dynamikumfang der CD von 16 Bit (was etwa 96 dB entspricht) ist in üblichen Hör-Situationen in der Praxis mehr als ausreichend. Andererseits sind 20 Bit nicht gut genug, wenn man bedenkt, dass 1997 mit der DVD ein überlegenes Format auf den Markt kam. Auch wenn man DVDs eher mit Filmen als mit Musik assoziiert: Es sind bei der DVD-Video bei einer deutlich größeren Speicherkapazität des Mediums Tonspuren mit 24 Bit-Samples möglich und das sogar bei bis zu 96 kHz Sampling-Rate (gegenüber den 44,1 kHz der CD). Das war auch von Anfang an so spezifiziert. Aber zu DVD-Video und DVD-Audio später mehr.

Compact Discs und Verwandte, Teil 4: Mini-CD

Was ist eine Mini-CD?

Mini-CDs sind CDs mit nur 8 cm Durchmesser (statt 12 cm).

Das Format war für Singles vorgesehen, hat sich aber nie wirklich durchgesetzt, da die meisten CD-Singles auch auf 12 cm-Discs veröffentlicht wurden.

Bis vor kurzem hatte ich in meiner Sammlung nur eine einzige Mini-CD, die Single „Tell me that you wait“ von Culture Beat aus dem Jahr 1990 (noch bevor sie mit „Mr. Vain“ bekannt wurden). Dann habe ich spitz gekriegt, dass von 2003 bis 2005 noch mal versucht wurde, das Format unter dem Label „Pock It!“ wiederzubeleben und habe mir noch die „River of Life“ von Heather Nova als 2-Track-Single angeschafft. Laut Discogs sind in dieser Zeit noch mal über 400 Singles als 8 cm-Version erschienen.

Hier die 12 cm und 8 cm-Discs im Größenvergleich:

Mini-CDs existieren übrigens auch als DVD und als CD-R. Es gibt sogar im Jahr 2025 tatsächlich immer noch 8 cm-CD-Rohlinge mit 200 MB Speicherkapazität kaufen.

Wie abspielen?

Die meisten (wenn nicht alle?) CD-Player mit Schublade haben eine kleine Vertiefung, in die die kleinen 8 cm-CD perfekt rein passen. Auch wenn die Mini-CD nie besonders weit verbreitet war, gilt dies immer noch selbst für aktuelle UHD-BluRay-Player, wie das Foto beweist. Top-Loader bzw. Laufwerke, bei denen die Disc direkt auf die Spindel gesteckt wird, funktionieren auch problemlos mit den kleinen CDs. Man sollte allerdings nicht versuchen, Mini-CDs in Einzugs-Laufwerken („Slot-In“) zu stecken, das wird schief gehen.

Wie migrieren?

Siehe unter „Wie abspielen?“! Abgesehen davon, dass Mini-CDs nicht in Slot-In-Laufwerken funktionieren, gibt es nichts weiter zu beachten.

Compact Discs und Verwandte, Teil 3: Pre-Emphasis

Was ist Pre-Emphasis?

Auf CDs, die das Feature Pre-Emphasis nutzen, sind die hohen Frequenzen angehoben. Die Anhebung beginnt schon leicht bei etwa 1000 Hz und geht bis auf +10 dB bei 20 kHz hoch. Beim Abspielen wird dieser Frequenzbereich wieder abgesenkt (De-Emphasis), so dass die Wiedergabe neutral ist.

Der Grund, warum diese Anhebung bzw. Absenkung gemacht wird ist, dass dadurch Rauschen unterdrückt werden sollen. Das gleiche Prinzip wurde auch bei Kompaktkassetten mit Dolby Noise Reduction verwendet, um Bandrauschen zu unterdrücken. In der digitalen Domäne erscheint diese Art von Rauschunterdrückung zunächst einmal unnötig, da sowas wie Bandrauschen dort keine Rolle spielt. Allerdings ist es so, dass frühe Digital-Analog-Wandler und speziell die Tiefpassfilter rauschen können und eben dieses Rauschen ist es, was hier unterdrückt werden soll.

Von diesem Problem sind aber nur D/A-Wandler einer sehr frühen Generation betroffen, weswegen Pre-Emphasis schon ab etwa 1987, also gerade mal fünf Jahre nach Markteinführung der ersten CD-Spieler, schon praktisch nicht mehr verwendet wurde und auch davor schon längst nicht bei jeder CD.

Zwei Beispiele für weit verbreitete CDs, die Pre-Emphasis haben, sind bestimmte Ausgaben der Piano Man von Billy Joel und der Toto IV. Soweit ich das gerade überblicke, sind das auch die einzigen beiden in meiner Sammlung.

Wie abspielen?

Pre-Emphasis ist ein standardisiertes Feature, das es von Anfang an gab. CD-Player sollten das eigentlich alle unterstützen. Wenn man einen konformen Spieler mit De-Emphasis hat, muss man beim Abspielen von CDs mit Pre-Emphasis nichts weiter beachten. Nur bei einigen wenigen frühen Geräten gab es (der Literatur zufolge) auch manuell zuschaltbare De-Emphasis. Normalerweise erkennt der Player die Pre-Emphasis an Flags in der table of contents (TOC) oder im Subcode.

Falls man einen Player hat, der De-Emphasis nicht unterstützt, klingt eine CD mit Pre-Emphasis wegen der angehobenen Höhen übertrieben hell; die fehlende De-Emphasis ist deutlich hörbar und wird von einigen Hörern als regelrecht unangenehm empfunden. Sofern man einen Equalizer zur Verfügung hat, kann man als Workaround damit die Höhen absenken.

Wie migrieren?

Hier muss man tatsächlich aufpassen, denn die meisten CD-Ripper führen keine automatische De-Emphasis durch. Die in Teil 2 erwähnten Programme XLD (für Mac) und EAC (für Windows) können Pre-Emphasis zumindest erkennen. Hier kommt ein weiteres Mal das Cue-Sheet ins Spiel. Wenn bei einem Track in der TOC oder im Subcode das Flag erkannt wurde, steht im Cue-Sheet die Zeile FLAGS PRE. Sowohl XLD als auch EAC können übrigens ein Cue-Sheet auch dann schreiben, wenn, wie üblich, jeder Track in ein eigenes File gespeichert wird, nicht nur wenn die ganze CD in ein File geschrieben wird. Von daher empfiehlt es sich, das entsprechende Häkchen zu setzen und nachzuschauen, wenn man sich bei einer CD nicht sicher ist, ob sie womöglich Pre-Emphasis hat.

Wenn man eine CD mit Pre-Emphasis erwischt hat, dann gibt es jetzt drei Möglichkeiten und einen Workaround, mit man weitermachen kann.

Möglichkeit 1: Apple Music (vormals iTunes)

Die wohl bequemste Möglichkeit ist, einfach die Musik-App von Apple zum Rippen zu benutzen. Die erkennt Pre-Emphasis und führt beim Rippen automatisch De-Emphasis durch.

Warum ich für CDs ohne Pre-Emphasis lieber XLD zum Rippen benutze, steht weiter unten.

Möglichkeit 2: Konvertieren mit Tools

Audio-Files mit Pre-Emphasis lassen sich mit entsprechenden Tools „de-emphasizen“, ich hatte Erfolg mit sox, aber es gibt auch noch mehr.

Möglichkeit 3: Player mit De-Emphasis

Manche Player wie foobar2000 können beim Abspielen De-Emphasis durchführen, wenn die Files entsprechend gekennzeichnet sind und das passende Plugin vorhanden ist. Wenn man bevorzugt, die Files als unverändertes Abbild der CD zu belassen, ist das der Weg.

Workaround

Wenn man aus welchen Gründen auch immer keine der ersten drei Möglichkeiten nutzen will, bleibt als Workaround noch, beim Abspielen einen Equalizer zu benutzen.

Warum überhaupt XLD oder EAC?

Noch kurz eine Erklärung, warum ich zum Rippen XLD bevorzuge, obwohl es im Gegensatz zu Apple Music keine automatische De-Emphasis kann:

Während man bei Apple Music wenig Einstellmöglichkeiten hat und es auch keine wirklich detaillierte Rückmeldung gibt, ist XLD bedeutend auskunftsfreudiger. XLD (für EAC gilt das sinngemäß auch alles) kann zum Beispiel Auskunft über beim Lesen aufgetretene C2-Fehler geben sowie eine Prüfsumme der gelesen Tracks mit der AccurateRip-Datenbank abgleichen. Auf diese Art wird schnell erkannt, ob eine CD wirklich fehlerfrei eingelesen wurde und man erlebt später keine Überraschungen.

Außerdem kann man bei problematischen CDs über die Einstellungen zum Beispiel die Lesegeschwindigkeit manuell verringern und so vielleicht doch noch was retten. Eine automatische Metadatenabfrage ist natürlich selbstverständlich. XLD kann außer der Gnudb auch MusicBrainz abfragen.

Compact Discs und Verwandte, Teil 2: Indexmarken

Was sind Indexmarken?

Ein wenig genutztes und quasi in Vergessenheit geratenes Feature der ganz normalen Audio-CD nach Red-Book-Standard ist, dass sich die einzelnen Tracks noch mal mit bis zu 99 Index Points pro Track unterteilen lassen. So können z.B. Teile eines größeren Stücks markiert werden wie z.B. die einzelnen Sätze einer Sinfonie oder Sonate. In der Praxis hat sich das so allerdings nicht durchgesetzt und bei nahezu allen mir bekannten Klassik-Alben sind meistens die Sätze jeweils in eigenen Tracks. Es gibt allerdings Ausnahmen.

Eine Beispiel für eine CD, die für meinen Geschmack viel zu viel Gebrauch von Index Points macht, ist „Twenty Pieces From The Notebook Of Anna Magdalena Bach / Twelve Little Preludes / Six Little Preludes / Italian Concerto In F Major“ von João Carlos Martins. Die hat nämlich tatsächlich nur 4 Tracks, wobei der erste mit 20 Indexmarken unterteilt ist, der zweite mit 12 usw. Wenn man ein Stück gezielt anwählen will, ist das recht unpraktisch, da sich selbst bei Playern, die Indexmarken zumindest unterstützen, diese nicht zwingend auch direkt anspringen lassen.

Eine der am weitesten verbreiteten CD mit Indexmarken dürfte die Misplaced Childhood von Marillion sein. Die einzelnen Teile von Bitter Suite, Heart of Lothian und Wild Curve sind mit Indexmarken gekennzeichnet. Jedenfalls ist das so im Remaster von 1998, aber nicht mehr in der Ausgabe von 2017, da hat man sie weggelassen. Zu diesem Zeitpunkt gab es sowieso schon kaum noch Player, die sie angezeigt hätten.

Ein weiteres Beispiel für CDs, die mit Indexmarken geradezu gepflastert sind, sind die Ausgaben der Alben von Wendy Carlos, die bei dem inzwischen nicht mehr existierenden Label East Side Digital erschienen sind.

Wie abspielen?

Es handelt sich bei den CDs mit Indexmarken um ganz normale CDs nach dem Red-Book-Standard, die sich in jedem CD-Player, modernen Blu-ray- bzw. Multi-Format-Player oder Computer mit optischem Laufwerk abspielen lassen. Sofern der Player bzw. die Software keine Index Points unterstützen, wird man davon einfach nichts sehen.

CD-Player, die Indexmarken unterstützen, zeigen die normalerweise zusätzlich zum Track an, manchmal in kleineren Ziffern. Player, die so ungefähr ab dem Jahr 2000 erschienen sind, oder auch moderne Multi-Player, zeigen meistens keine Indexmarken mehr an. Ein Philips CD 713 aus dem Jahr 1998, der hier bei mir noch steht, hat das Feature schon nicht mehr; mein erster vernünftiger Player von damals™, ein Technics SL-PG 200 A von 1991, hatte es noch. Wer mag, kann sich ja mal das Foto auf der verlinkten Webseite ansehen. Die kleine hochgestellte „1“ auf dem Display ist der Index.

Wie migrieren?

Auch hier gilt, dass man eigentlich nichts weiter beachten muss, und die Index Points beim Rippen einfach ignoriert werden. Aber gerade beim Rippen einer CD wie dem oben erwähnten Martins/Bach-Album wäre es natürlich sehr hilfreich, hinterher nicht nur jeden Track in einem File zu haben, sondern vielmehr jeden Abschnitt zwischen zwei Indexmarken. Und da wird es etwas komplizierter.

Mir ist keine Software bekannt, die sich von vornherein so einstellen ließe, dass die CD nach Indexmarken aufgetrennt wird. Allerdings unterstützen viele Programme Cue-Sheets. Das sind Textdateien, die das Inhaltsverzeichnis (TOC, Table of Contents) der CD abbilden. Diese werden üblicherweise zusammen mit einer einzigen, großen Audiodatei, die die ganze CD enthält, verwendet. Cue-Sheets können Indexmarken enthalten, die aber wiederum nicht von jeder Software verarbeitet werden können. Software, die Cue-Sheets verarbeiten kann, ist verbreitet (z.B. die bekannten Player VLC und foobar2000), aber mir ist keine Player-Software bekannt, die auch mit Indexmarkern in Cue-Sheets etwas anfangen kann.

Auch von den Rippern, die Cue-Sheets erstellen können, verarbeiten längst nicht alle auch Indexmarken. Eine CD-Ripping-Software, die die Indexmarken von CDs korrekt extrahiert und in Cue-Sheets schreibt, ist Exact Audio Copy (EAC) für Windows (im Gegensatz zum sonst von mir bevorzugten XLD für Mac, was zwar Cue-Sheets kann, aber keine Indexmarken).

Kurzer Einschub: Zu Rip-Methoden und warum EAC und XLD ganz gut sind, kommt in Teil 3 noch was.

Zur anschließenden Weiterverarbeitung kann man jetzt aber einfach das Cue-Sheet (das ja zunächst mal nur eine ganz normale Textdatei ist) so umschreiben, dass aus Indexmarkern Tracks werden.

Wenn man ein wenig fit an der Kommandozeile ist, so erledigt folgendes kleine Python-Skript diese Aufgabe (klicken zum Aufklappen):
# Take a cue sheet from standard input and convert it so that every index marker greater than one
# becomes its own track. The output is written to standard output.


import sys
import re

current_track = None
current_title = None
current_performer = None
current_index = None

track_pattern = re.compile(r"\s*TRACK (\d{2}) AUDIO")
title_pattern = re.compile(r"\s*TITLE\s+\"(.*?)\"$")
performer_pattern = re.compile(r"\s*PERFORMER\s+\"(.*?)\"$")
index_pattern = re.compile(r"\s*INDEX\s+(\d{2})\s+(\d{2}):(\d{2}):(\d{2})")

for line in sys.stdin:
    track_match = track_pattern.match(line.strip())
    title_match = title_pattern.match(line.strip())
    performer_match = performer_pattern.match(line.strip())
    index_match = index_pattern.match(line.strip())
    if track_match:
        if current_track is None:
            current_track = int(track_match.group(1))
        else:
            current_track += 1
        print(f"  TRACK {current_track:02d} AUDIO")
    elif title_match:
        current_title = title_match.group(1)
        print(f"    TITLE \"{current_title}\"")
    elif performer_match:
        current_performer = performer_match.group(1)
        print(f"    PERFORMER \"{current_performer}\"")
    elif index_match:
        index = int(index_match.group(1))
        if index > 1:
            mins = index_match.group(2)
            sec = index_match.group(3)
            frame = index_match.group(4)
            current_track += 1
            print(f"  TRACK {current_track:02d} AUDIO")
            print(f"    TITLE \"{current_title} {index:02d}\"")
            print(f"    PERFORMER \"{current_performer}\"")
            print(f"    INDEX 01 {mins}:{sec}:{frame}")
        else:
            print(line, end="")
    else:
        print(line, end="")

Tools, die eine große Audio-Datei mit einem Cue-Sheet in einzelne Tracks aufteilt, gibt es viele. Das ist jetzt also kein Problem mehr. Speziell für den Audio-Editor Audacity, der auch zum Auftrennen benutzt werden kann und ein eigenes Textformat für Labels benutzt, habe ich noch folgendes Skript (klicken zum Aufklappen):
# Take a cue sheet from standard input and convert it to Audacity format that can be imported as a label track.
# Labels are placed at every index marker greater than zero.

import sys
import re

current_track = None
current_title = None
current_performer = None
current_index = None

track_pattern = re.compile(r"\s*TRACK (\d{2}) AUDIO")
title_pattern = re.compile(r"\s*TITLE\s+\"(.*?)\"$")
performer_pattern = re.compile(r"\s*PERFORMER\s+\"(.*?)\"$")
index_pattern = re.compile(r"\s*INDEX\s+(\d{2})\s+(\d{2}):(\d{2}):(\d{2})")

for line in sys.stdin:
    track_match = track_pattern.match(line.strip())
    title_match = title_pattern.match(line.strip())
    performer_match = performer_pattern.match(line.strip())
    index_match = index_pattern.match(line.strip())
    if track_match:
        if current_track is None:
            current_track = int(track_match.group(1))
        else:
            current_track += 1
    elif title_match:
        current_title = title_match.group(1)
    elif performer_match:
        current_performer = performer_match.group(1)
    elif index_match:
        index = int(index_match.group(1))
        if index > 0:
            mins = int(index_match.group(2))
            sec = int(index_match.group(3))
            frame = int(index_match.group(4))
            timestamp = mins * 60.0 + sec + frame / 75.0
            print(f"{timestamp:.6f}\t{timestamp:.6f}\t{current_title}")
            current_track += 1

Compact Discs und Verwandte, Teil 1: Übersicht

Da ich zur Zeit dabei bin, meine CD-Sammlung zu vervollständigen – Ja, es gibt noch Leute, die CD hören! – und mir dabei auch immer wieder ungewöhnliche Formate begegnen, technisch wie inhaltlich, schreibe ich mal ein paar Notizen auf. Ich will dabei zusammen tragen, welche selten genutzte Formate, Features und sonstige Skurrilitäten mir dabei begegnet sind und ob es beim Abspielen (auch auf dem Rechner) was beachten gibt. Zu den Themen, die ich hier betrachten will, zählen alle optischen Datenträger, auf denen Musik gespeichert ist und die mir begegnet sind. Dazu zählen CD, DVD, Blu-ray und SACD, und zwar speziell solche mit wenig genutzten Features oder sonstigen Besonderheiten.

Worum es hier geht

Worum es hier nicht geht

Allgemein bekannte Eigenschaften und Features der gängigen Medien lasse ich außen vor, da es da bestimmt keinen großen Erkenntnisgewinn geben würde. Die MiniDisc als magneto-optisches Format – und vor allem, weil ich keine habe – ist außen vor. Ich möchte hier über Sachen schreiben, mit denen ich mich selber schon beschäftigt habe. CD-Text ist auch raus. Gängige Software kann das, es ist also kein seltenes Feature. Ich habe mich auch noch nicht wirklich damit befasst, weil ich keinen Standalone-Player habe, der CD-Text anzeigt und ich auch keine CDs selber brennen will; und für’s Migrieren auf den Rechner nehme ich die Metadaten aus jeder Quelle, aus der ich sie kriegen kann, also meistens aus Datenbanken wie MusicBrainz oder Gnudb. CD-Graphics ist raus, da mir noch keine untergekommen ist. Photo-CDs sind raus, weil’s keine Musik ist. CD-i sind sowas von raus, wegen beidem. CD-Extra, also Musik-CDs mit zusätzlich Daten in einer zweiten Session oder verstecktem Track, sind verhältnismäßig weit verbreitet und benötigen keine Sonderbehandlung beim Abspielen und sind von daher nicht Thema (aber für ein anderes Beispiel mit Goodies in einem Filesystem, siehe MVI).

Über SACD und Blu-ray Pure Audio werde ich wohl am Rande ein bisschen was schreiben, aber die beiden Formate sind sowohl aktuell als auch verhältnismäßig weit verbreitet und von daher nicht im Fokus.

Da das Thema trotzdem recht umfangreich ist, wird das wohl eine mehrteilige Serie, mit ein paar kurzen und ein paar längeren Teilen, mit Anekdoten oder auch mehr oder weniger nützlichen Tipps (und Notizen für mich selber, damit ich auch später noch weiß, was ich da selber gemacht habe…)

Hinweis: Dieser Blog-Eintrag wurde und wird im Lauf der Serie weiter aktualisiert, wenn mir selber klarer wird, was ich dokumentieren will und was nicht.

Solr, Nutch und boost

Der Web-Crawler nutch berechnet aus der Linkstruktur einen Score und speichert ihn im Feld „boost“ ab. Leider scheint der boost nicht automatisch in den Gesamt-Score einzugehen. Eine Verwendung des Felds boost in der boost function (bf) des dismax-Parsers scheitert mit einer Fehlermeldung, weil die standardmäßige schema.xml von nutch das Feld nicht als uninvertible deklariert. Die Doku fand ich leider wenig hilfreich.

Eine Änderung der schema.xml im nutch-configset brachte für mich Abhilfe. Die Felddeklaration von boost sollte so aussehen:

<field name="boost" type="float" stored="true" uninvertible="true"/>

Anschließend kann bei der Solr-Suche im dismax-Parser in der bf das Feld boost verwendet werden. Es handelt sich dabei um einen additiven Boost für jedes Dokument. In der debug-Ansicht lässt sich die Berechnung des Scores nachvollziehen.

Ubuntu 22 auf dem Raspberry Pi

… für Nextcloud

Ein weiterer Beitrag aus der Rubrik „Notizen über Computerkram für mich selbst“.

Raspberrypios kommt aktuell von Haus aus noch mit PHP 7. PHP lässt sich mit einer externen Paketquelle auf 8.0 bringen. Nextcloud wird für die kommende Version aber PHP 8.1 und ein 64-Bit-Betriebssystem brauchen. Daher sollte Ubuntu 22.04 LTS 64 Bit auf einen Raspi 3 kommen.

Der Pi-Imager kann direkt Einstellungen wie Benutzername, SSH-Public Key, WLAN-Kennung und Passwort usw. übertragen und tut dies mit cloud-init. Dies kann später zu Überraschungen führen, da Änderungen in Ubuntu, die an den sonst üblichen Stellen vorgenommen werden, beim nächsten Start von cloud-init wieder zurückgesetzt werden. Dies war der erst Punkt, der mich Nerven gekostet hat. Da cloud-init meiner Auffassung nach wenn die Ersteinrichtung erledigt ist an sich nicht mehr gebraucht wird, habe ich mich entschieden, cloud-init zu entfernen.

sudo apt remove cloud-init

Der zweite Punkt, der mich Nerven gekostet hat, war, dass aus welchen Gründen auch immer der Raspi nun so konfiguriert war, dass er zwar die WLAN-Zugangsdaten über cloud-init vom Imager vorher korrekt bekommen hat, aber die LAN-Buchse nicht aktiv ist!

Das Netzwerk kann über netplan konfiguriert werden, cloud-init hinterlässt die Datei /etc/netplan/50-cloud-init.yaml für die Konfiguration von netplan, die auch die WLAN-Daten enthält, allerdings keinen Eintrag für die LAN-Buchse.

Über den NetworkManager geht das ganze sorgenfrei, allerdings ist der erst Mal nicht installiert. Also:

sudo apt install network-manager

Jetzt erst mal nen gescheiten Editor installieren:

sudo apt install emacs

Dann in der Datei /etc/netplan/50-cloud-init.yaml nach network: und vor wifis: die Zeile

renderer: NetworkManager

einfügen und weiter unten renderer: networkd auskommentieren oder löschen.

sudo emacs /etc/netplan/50-cloud-init.yaml

Noch eine kleine Aufzählung von Paketen, die ich für Nextcloud auf Apache sowie für Dateiverschlüsselung und für Let’s Encrypt installieren musste:

sudo apt install mariadb-server apache2 php
sudo apt install php-mysql php-xml php-zip php-mbstring
sudo apt install php-curl php-gd php-imagick
sudo apt install php-gmp php-bcmath php-intl
sudo apt install cryptsetup
sudo apt install ecryptfs-utils
sudo apt install certbot
sudo apt install python3-certbot-apache

Und nun noch das Zertifikat holen:

sudo certbot --apache

Nun sollte alles bereit sein. Nextcloud installiere ich nicht über eine Paketquelle sondern kopiere es in /var/www/html/nextcloud/ Den Owner stelle ich auf…

sudo chown -R www-data:www-data /var/www/html

Sofern das Nextcloud-Datenverzeichnis woanders liegt muss das dem selben User gehören.

Closed Book Information Retrieval

Der auf maschinellem Lernen basierende Chat-Bot ChatGPT sorgt aktuell für einiges Aufsehen. Da die Antworten eine für Software noch nicht dagewesene sprachliche Qualität erreichen, besteht die Gefahr, dass Schüler und Studierende zur Anfertigung von Hausarbeiten darauf zurückgreifen könnten. Dies ist ein Problem, dass auch in meinem Kollegenkreis diskutiert wird. Wie sollte man darauf reagieren, wenn sachlich Falsches so gut dargestellt wird, dass es richtig überzeugend wirkt?

Vor diesem Hintergrund wollte ich testen, was passiert, wenn man ChatGPT nach etwas selbst ausgedachtem fragt. Hier ist mein Dialog:

What is "closed book-case information retrieval"? Please cite scientific sources!

Mal sehen, was ChatGPT mit dem „geschlossenen Bücherschrank“ anfängt.

Closed book information retrieval (CBIR) is a type of information retrieval (IR) system that does not have access to external resources or external knowledge beyond the documents in the collection being searched. CBIR systems rely solely on the content of the documents in the collection to retrieve relevant documents in response to a user's query.

CBIR systems are commonly used in situations where external resources are not available or are not reliable, such as when searching a closed-access document collection or when the quality or relevance of external resources is uncertain. CBIR systems can also be useful in situations where the content of the documents in the collection is highly specialized or domain-specific, and external resources may not be relevant or may not provide enough context to support effective retrieval.

One example of a CBIR system is a search engine that is designed to search a collection of documents on a specific topic, such as a corporate intranet or a specialized database. Another example is a digital library system that allows users to search a collection of digitized books, articles, or other documents.

There is a large body of research in the field of information retrieval on CBIR systems, and many different approaches have been developed to improve their effectiveness. Some common approaches include the use of natural language processing techniques to extract relevant information from the documents in the collection, the use of machine learning algorithms to improve the accuracy of document ranking and relevance, and the use of user feedback and interaction to refine search results and improve the overall user experience.

Some references for further reading on CBIR include:

    Salton, G., & McGill, M. J. (1983). Introduction to modern information retrieval. New York: McGraw-Hill.
    Baeza-Yates, R., & Ribeiro-Neto, B. (1999). Modern information retrieval. New York: ACM Press.
    Manning, C. D., Raghavan, P., & Schütze, H. (2008). Introduction to information retrieval. Cambridge University Press.
    Liu, B. (2008). Web data mining: Exploring hyperlinks, contents, and usage data. Springer.

ChatGPT lässt den Term „Case“ stillschweigend fallen und liefert mir eine schöne Definition für „Closed Book Information Retrieval“ ab.

Die finde ich tatsächlich ziemlich überzeugend, und zwar so sehr, dass ich an mir selbst zweifle. Hab ich etwa für meinen Versuch einen Begriff gewählt, den es tatsächlich gibt?

Eine Web-Suche nach „Closed book information retrieval“ liefert allerdings (Stand 22.12.22) erwartungsgemäß nichts. Wer diese Zeilen liest, wird möglicherweise diese Seite hier als Treffer bekommen. Ein gutes Gefühl, den wahrscheinlich ersten Artikel über Closed Book Information Retrieval verfasst zu haben.

Eine Suche nach „CBIR“ liefert nur „Content Based Image Retrieval“. „Closed book QA systems“ sind anscheinend tatsächlich ein Ding, aber der Begriff ist nicht sehr weit verbreitet und ChatGPT sagt auch nichts über QA-Systeme.

Die als Referenzen angegebene Literatur gibt es tatsächlich, freilich steht darin nichts über Closed Book Information Retrieval.

Ich frage ChatGPT nach Beispielen:

Please give me an example of a publicly available closed book IR search engine!

ChatGPT liefert:

One example of a publicly available closed book information retrieval (IR) search engine is the Digital Public Library of America (DPLA). The DPLA is a national digital library that provides access to a wide variety of digital resources, including books, articles, images, and other materials from libraries, archives, and cultural heritage institutions across the United States. The DPLA search engine allows users to search the collection of digitized resources using keywords, phrases, and other search criteria, and returns relevant results from within the DPLA collection.

Another example of a publicly available closed book IR search engine is the Internet Archive, which is a non-profit digital library that provides access to a wide variety of digital resources, including books, articles, images, and other materials from libraries, archives, and cultural heritage institutions around the world. The Internet Archive search engine allows users to search the collection of digitized resources using keywords, phrases, and other search criteria, and returns relevant results from within the Internet Archive collection.

Both the DPLA and the Internet Archive are examples of closed book IR systems because they rely solely on the content of the resources in their collections to retrieve relevant results in response to user queries, and do not have access to external resources or external knowledge beyond the documents in their collections.

Die genannten Beispiele existieren wirklich sind auch (halbwegs) konsistent mit der aufgestellten Definition.

Ich versuche mal, ChatGPT nach etwas wirklich absurdem zu fragen:

What is "super-critical" information retrieval?

ChatGPT riecht Lunte und merkt, dass es das nicht gibt:

I'm sorry, but I'm not familiar with the term "super-critical" information retrieval. It's possible that this is a term that has been coined and used in a specific context or by a particular group of researchers or practitioners, but without more context or information it is difficult for me to provide a meaningful explanation.

In general, the term "information retrieval" (IR) refers to the process of finding and retrieving relevant information from a collection of documents or other sources of information, typically in response to a user's query. IR systems can be designed to search a variety of types of collections, including text documents, images, videos, and other types of multimedia content, and can be implemented using a range of different techniques and approaches.

If you could provide more context or information about the specific context in which the term "super-critical" information retrieval is being used, I would be happy to try to provide a more helpful response.

Der Bot fragt mich nach Kontext, den gebe ich doch gerne:

What is super-critical information retrieval in the context of classification of very short texts? Can you cite a source?

Die Software kann immer noch nichts damit anfangen und wiederholt die Definition von Information Retrieval im allgemeinen:

I'm sorry, but I still don't have enough information to provide a meaningful response to your question. While the term "super-critical" may be used in the context of classification of very short texts, without knowing more about the specific context in which it is being used, it is difficult for me to provide a clear explanation or to cite a relevant source.

In general, "information retrieval" (IR) refers to the process of finding and retrieving relevant information from a collection of documents or other sources of information, typically in response to a user's query. This can involve a variety of tasks, such as indexing and organizing documents in a collection, extracting relevant information from the documents, and ranking and presenting the documents to the user in a way that is relevant and useful.

There are many different approaches and techniques that can be used in IR, and the specific approach or technique that is most appropriate will depend on the characteristics of the collection being searched and the needs and goals of the users. For example, when classifying very short texts, such as tweets or social media posts, it may be necessary to use techniques that are specifically designed to handle the unique characteristics of these types of documents, such as their brevity and the high degree of variability in their content and structure.

If you could provide more specific information about the context in which the term "super-critical" information retrieval is being used, I would be happy to try to provide a more helpful response.

ChatGPT lässt sich also so leicht nicht aufs Glatteis führen.

Aber zurück zu Closed Book:

Lets go back to closed book IR. Can you point out, where exactly in the manning book closed book ir is mentioned?

Ich hake nach und will es genau wissen. Ich kenne das genannte Buch von Manning, Raghavan und Schütze ganz gut und weiß, dass da nichts über „Closed Book IR“ drin steht.

In the book "Introduction to Information Retraction" by Christopher D. Manning, Prabhakar Raghavan, and Hinrich Schütze, the concept of closed book information retrieval (CBIR) is introduced and discussed in Chapter 3, titled "Boolean Retrieval."

Here is an excerpt from the book that explains the concept of CBIR:

"In closed book retrieval, a user poses a query to a search engine and the search engine responds with a list of documents, ranked in order of relevance, from a pre-specified collection. In contrast, in open book retrieval the search engine can go beyond the pre-specified collection and can use external resources, such as the World Wide Web, to try to find an answer to the user's query. Closed book retrieval is typically used when the collection is small and well-defined, such as a corporate intranet or a digital library, or when the quality or relevance of external resources is uncertain."

You can find this discussion in the following location in the book:

    Chapter 3, "Boolean Retrieval," Section 3.1, "Basic Boolean Model," page 65

I hope this helps! If you have any other questions or need further clarification, please don't hesitate to ask.

Der Bot erkennt, was ich mit „Manning Book“ meine, aber wenn man genau hinschaut fällt auf, dass der Titel des Buchs auf einmal „Introduction to Information Retraction“ sein soll.

ChatGPT saugt sich jetzt was aus den Fingern. Schaute man an der angegebenen Stelle nach, würde der Beschiss jetzt auffliegen. Interessant ist, dass es sogar tatsächlich ein Kapitel „Boolean Retrieval“ gibt, allerdings ist das Kapitel 1.

Versuchen wir mal ein Fachgespräch. ChatGPT schreibt was von Ranking. Das hätte ich in einem Kapitel über Boolesches Retrieval nicht vermutet, denn üblicherweise spielt Ranking dabei gerade keine Rolle. In dem genannten Buch ist folglich in dem Kapitel über Boolean Retrieval das Thema Ranking nicht erklärt, sondern kommt erst in den Kapiteln 6 und 7 dran.

Ich frage also mal nach:

Why would a textbook chapter on boolean retrieval mention ranking?

ChatGPT antwortet:

In the field of information retrieval (IR), ranking is a common approach for presenting search results to users in a way that is relevant and useful. When a user performs a search using a search engine or other IR system, the system typically returns a list of documents or other resources that are relevant to the user's query. The order in which these results are presented to the user can be important, as it can affect the user's ability to find the information they are looking for and can also influence their overall satisfaction with the search experience.

In IR systems, ranking is typically used to order the search results based on their relevance to the user's query. Relevance is usually determined using a combination of factors, such as the presence of relevant keywords or phrases in the documents, the importance or credibility of the documents or their sources, and the context in which the documents are used.

Ranking can be implemented using a variety of different approaches, including mathematical models that use statistical or probabilistic techniques to determine the likelihood that a document is relevant to a given query, or machine learning algorithms that learn to predict relevance based on examples of relevant and non-relevant documents.

In the context of boolean retrieval, ranking is often used to present the search results to the user in a way that is more meaningful and useful. Boolean retrieval is a type of IR system that allows users to search a collection of documents using boolean operators (such as AND, OR, and NOT) to combine keywords or phrases into more complex queries. By ranking the search results based on their relevance to the query, boolean retrieval systems can help users to more easily find the information they are looking for within the collection.

I hope this helps to clarify why ranking might be mentioned in a textbook chapter on boolean retrieval. If you have any other questions or need further clarification, please don't hesitate to ask.

Ganz nette Begründung. Aber wenn wir mal bei dem Buch von Manning et al. bleiben, dort ist in der Tat ausdrücklich erwähnt, dass Ranked Retrieval etwas anderes ist als Boolean Retrieval. Da hat ChatGPT das Buch wohl gar nicht richtig gelesen…

Zeit, ChatGPT mal zu konfrontieren:

Can you prove that the phrase "closed book information retrieval" is not something I just made up a few moments ago?

ChatGPT will sich rausreden, aber bleibt dennoch standhaft dabei, dass es Closed Book Information Retrieval wirklich gibt und behauptet sogar, dass sei doch ein etablierter Begriff!

I'm sorry, but as an AI language model, I do not have the ability to verify the origin or history of specific phrases or terms. However, the phrase "closed book information retrieval" (CBIR) is a well-established term in the field of information retrieval (IR), and has been used by researchers and practitioners for many years.

CBIR refers to a type of IR system that does not have access to external resources or external knowledge beyond the documents in the collection being searched. CBIR systems rely solely on the content of the documents in the collection to retrieve relevant documents in response to a user's query.

CBIR systems are commonly used in situations where external resources are not available or are not reliable, such as when searching a closed-access document collection or when the quality or relevance of external resources is uncertain. CBIR systems can also be useful in situations where the content of the documents in the collection is highly specialized or domain-specific, and external resources may not be relevant or may not provide enough context to support effective retrieval.

You can find more information about CBIR in the scientific literature on information retrieval, including the references that I provided in my previous response.

Ich habe die „Diskussion“ noch ein wenig weitergeführt. Einen Teil lasse ich hier mal aus. Es gelingt mir aber leicht, ChatGPT noch eine weitere erfundene Textstelle zu entlocken:

Can you give me another example where closed book information retrieval is mentioned in literature?

In der Antwort wird auch wieder ein Buch referenziert, dass es tatsächlich gibt, aber der präsentierte Auszug ist so nicht vorhanden.

Certainly! Here is another example of where the concept of closed book information retrieval (CBIR) is mentioned in the literature:

In the book "Web Data Mining: Exploring Hyperlinks, Contents, and Usage Data" by Bing Liu, CBIR is discussed in Chapter 3, titled "Information Retrieval Basics."

Here is an excerpt from the book that explains the concept of CBIR:

"In closed book information retrieval, the search engine only has access to a pre-specified collection of documents and returns search results from this collection. In open book information retrieval, the search engine can go beyond the pre-specified collection and use external resources, such as the World Wide Web, to try to find an answer to the user's query. Closed book information retrieval is typically used when the collection is small and well-defined, such as a corporate intranet or a digital library, or when the quality or relevance of external resources is uncertain."

You can find this discussion in the following location in the book:

    Chapter 3, "Information Retrieval Basics," Section 3.3, "Boolean Retrieval," page 63

I hope this helps! If you have any other questions or need further clarification, please don't hesitate to ask.

Belassen wir es mal dabei, keine weiteren Fragen.

Es bleibt die Erkenntnis, dass ChatGPT sehr überzeugend sein kann und wir in Zukunft zum Beispiel in der Rolle als Prüfer noch genauer als bisher nachforschen müssen, wenn Quellen zitiert werden, ob das, was angeblich dort stehen soll, auch tatsächlich dort steht.

Solr Authentication

Aus der beliebten Serie „ein paar unsortierte Notizen mit Computerkram für mich selbst“ hier wie man in Solr 8.1 die Authentifizierung einschaltet (und anschließend aus Python heraus mir urllib abfragt). Quellen sind die Doku von Solr und die Doku von urllib.

Standardmäßig ist es bei Solr so, dass ohne jede Authentifizierung über die Admin-Oberfläche alles gemacht werden kann, insbesondere auch Dokumente aus dem Korpus löschen und so weiter! Die hier beschriebene Basic Authentication ist wenigstens ein Minimum an Zugriffsschutz, aber nach heutigen Maßstäben ist es nicht so sicher, jedenfalls nicht wenn man es nicht mit HTTPS kombiniert. Es ist empfehlenswert, zusätzlich dafür zu sorgen, dass der Solr-Server nicht aus dem Internet erreichbar ist.

Ins Verzeichnis solr-8.10.1/server/solr kommt in die Datei security.json folgender Inhalt:

{
"authentication":{ 
   "blockUnknown": true, 
   "class":"solr.BasicAuthPlugin",
   "credentials":{"solr":"IV0EHq1OnNrj6gvRCwvFwTrZ1+z1oBbnQdiVC3otuq0= Ndd7LKvVBAaZIF0QAVi1ekCfAJXr1GGfLtRUXhgrF8c="}, 
   "realm":"My Solr users", 
   "forwardCredentials": false 
},
"authorization":{
   "class":"solr.RuleBasedAuthorizationPlugin",
   "permissions":[{"name":"security-edit",
      "role":"admin"}], 
   "user-role":{"solr":"admin"} 
}}

Was bei credentials hinter dem Usernamen steht ist nicht so gut dokumentiert, offenbar wird erwartet, dass man das solr-Skript mit dem Kommando auth benutzt. Das nölt aber immer rum, wenn man nicht den ZooKeeper sondern eine Standalone-Installation verwendet. In der Beispieldatei ist das Passwort „SolrRocks“, der abgelegte String ist im Prinzip ein salted sha256, aber die Methode, wie das zustande kommt, ist etwas dubios. Auf github habe ich ein Skript gefunden, mit dem man den credentials-String erzeugen kann. Evtl. sind dafür noch Packages nachzuinstallieren, z.B. pwgen. Der Salt wird automatisch erzeugt und muss nicht angegeben werden.

#!/bin/bash
PW=$1
SALT=$(pwgen 48 -1)
echo "hash    : $(echo -n "$SALT$PW" | sha256sum -b | xxd -r -p | sha256sum -b | xxd -r -p | base64 -w 1024) $(echo -n "$SALT" | base64 -w1024)"

Mehrere credentials bestehend aus Usernamen und salted hashs können JSON-mäßig mit Komma hintereinander gehängt werden.

Und hier noch wie man in Python bei urllib die HTTP-Authentication benutzt:

    # Create an OpenerDirector with support for Basic HTTP Authentication...
    auth_handler = urllib.request.HTTPBasicAuthHandler()
    auth_handler.add_password(realm='My Solr users',
                              uri='http://localhost:8983/',
                          user='solr',
                          passwd='SolrRocks')
    opener = urllib.request.build_opener(auth_handler)
    # ...and install it globally so it can be used with urlopen.
    urllib.request.install_opener(opener)

Das Passwort steht dann halt im Klartext da drin. Das billige Authentication-Modul von Solr wird sicherheitsmäßig eh nicht für jeden Bedarf ausreichen und sollte für den Produktivbetrieb jedenfalls nicht als einzige Zugriffsbeschränkung benutzt werden.

Um mit dem Solr-Skript von der Kommandozeile Dinge zu erledigen (z.B. einen neuen Core anlegen) müssen bei eingeschalteter Basic Authentication noch folgende Variablen gesetzt werden (wie bei allem gilt, den Usernamen und das Passwort durch die eigenen zu ersetzen). Folgendes ist in die bin/solr/solr.in.sh einzusetzen bzw. die im Beispiel schon vorhandenen entsprechenden Zeilen auszukommentieren:

SOLR_AUTH_TYPE=basic
SOLR_AUTHENTICATION_OPTS="-Dbasicauth=solr:SolrRocks"