Giter VIP home page Giter VIP logo

malibu's Introduction

malibu - Mannheim library utilities

Check code GitHub release license Docker Stars

Summary/Zusammenfassung

malibu de ist eine Sammlung von leichtgewichtigen, webbasierten Tools im Umfeld von bibliographischen Daten zur Unterstützung von Arbeitsabläufen, wie sie häufig in Bibliotheken bei den Fachreferaten und der Erwerbung auftreten. Hauptbestandteil ist ein Mashup zur ISBN-Suche und ein Recherchewerkzeug für die BNB weekly sowie weitere kleine Tools wie etwa ein Tool für den Bestandsabgleich bei der Eingabe einer Liste von ISBNs.

malibu en is a collection of lightweight web-based tools to work with bibliographic metadata from various sources on the web, aimed at supporting the workflows of subject librarians and acquisitions librarians.

The main components are

Docker

The docker image is available from Dockerhub as ubma/malibu:

Docker image

You can run it from the command line (provided that you have already docker installed):

docker run --rm -p 12345:80 'ubma/malibu'

Then you find malibu by opening http://localhost:12345/malibu/isbn/suche.html with your browser (maybe replace localhost by the docker ip).

More informations about how to install malibu on Debian systems and setting up a development version can be found in the INSTALL.md.

Copyright and License

Copyright (c) 2013 – 2019 Universitätsbibliothek Mannheim

Author: Philipp Zumstein (UB Mannheim)

malibu is Free Software. You may use it under the terms of the GNU General Public License (GPL). See LICENSE for details.

References

See https://github.com/UB-Mannheim/malibu/wiki/Bibliografie

Acknowledgements

The tools are depending on some third party libraries and fonts:

Moreover, it is useful to use it in combination with the script

malibu's People

Contributors

bfallert avatar dennmuel avatar gbastian avatar jmechnich avatar kba avatar lgtm-migrator avatar luismossburger avatar mahaesin avatar scrutinizer-auto-fixer avatar stweil avatar tkees avatar vossviola avatar zuphilip avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

malibu's Issues

Halbgeviertstriche in ISBN durch Minus ersetzen

Es kann vorkommen, dass die Trenner in einer ISBN anstatt dem Minus "-" einen Viertelgeviertstrich "‐" nutzen. Dann funktionieren einige SRU-Abfragen (z.B. unsere Schnittstelle von Alma aus) nicht mehr. Daher sollte man dies besser direkt am Anfang schon normalisieren. Z.B. 978‐3‐406‐76083-9 mit https://data.bib.uni-mannheim.de/malibu/isbn/suche.html?isbn=978%E2%80%903%E2%80%90406%E2%80%9076083-9 vs. https://data.bib.uni-mannheim.de/malibu/isbn/suche.html?isbn=978-3-406-76083-9

PPN-Suche im K10plus funktioniert nicht immer

Teilweise funktioniert die PPN-Suche im K10plus, z.B. für die elektronische Ressource 1684971225, aber nicht für die parallele Druckausgabe 1683942027. Es fällt auf, dass die gedruckte Version im SWB aber nicht im GBV vorhanden ist: http://swb.bsz-bw.de/DB=2.1/PPNSET?PPN=1684971225&INDEXSET=21 .

Werden aktuell evt. alle K10plus-PPN, welche nur im SWB Bestand haben, nicht gefunden?

Ein möglicher Grund könnte sein, dass wir aktuell in der SRU-Schnittstelle die Datenbank gvk verwenden. Jetzt lese ich aber, dass evt. die Datenbank opac-de-627 passender sein könnte. Hier funktioniert dann auch schon einmal der Abruf der oben genannten PPN: http://sru.k10plus.de/opac-de-627?version=1.1&operation=searchRetrieve&query=pica.ppn%3D1683942027&maximumRecords=10

@nichtich Für sachdienliche Hinweise bin ich dankbar.

RVK Vorschläge aus der DDC anzeigen

Falls bei einer ISBN noch keine RVK vergeben wurde, aber bereits eine DDC bekannt ist, dann könnte man versuchen daraus eine geeignete RVK vorzuschlagen. Ich stelle mir dies sehr einfach vor: jede DDC von beliebiger Länger kann einer (oder mehreren RVK-Stellen) zugeordnet werden. Solch eine Mapping-Tabelle kann man auch einfach gemeinsam eingeben, hier mal ein Start: https://github.com/UB-Mannheim/malibu/wiki/RVK-Vorschl%C3%A4ge-aus-DDC . Bei der Anzeige in der isbn-Suche kann diese Information dann angezeigt werden und als Vorschlag für eine RVK dienen.

Produktsigel verlinken

Received by E-Mail:

Die SWB-Produktsigel der E-Book-Pakete, die in "rendering.js" in einer Liste ausgeben, pro Sigel in den SWB zurück zu verlinken, also nicht die bloße Angabe von z.B. ZDB-89-EBL, sondern ZDB-89-EBL

<a href="http://http://swb.bsz-bw.de/DB=2.1/CMD?ACT=SRCHA&IKT=1007&SRT=YOP&TRM=ZDB-89-EBL" target="_blank">ZDB-89-EBL</a>

Ich muss mir dies einmal etwas genauer durchdenken...

[isbn] führendes Leerzeichen in der Sacherschließungstabelle entfernen

In den Spalten RVK-Notation, DDC-Notation und Schlagwörter werden die Einträge mit einem Leerzeichen eingeleitet, das eigentlich nicht notwendig ist.
(Und das bei Einträgen, die länger als eine Zeile sind, zu einer unschönen Einrückung führen.

[Was für die Abteilung "B-Note" und "Wenn man mal Langeweile hat". :)]

malibu_isbn_rvk_leerzeichen

[isbn] Idea: Mashup for subject headings SW

At the moment the subject headings (Schlagworte SW) are linked to the entry at the DNB. This can contain interesting information as definition, broader terms. However, I would like to know which RVK classes are used with books having this SW, and wheter the SW is used frequently. We could try to gather such informations in another mashup page and the link the SW to this page. This need more thinking...

Bestellinformation automatisch kopieren

Momentan öffnet sich ein kleines Fenster mit der Bestellinformation, welche dann jeweils händisch markiert und kopiert werden muss:

bestellinfo

Kann man das Markieren der gesamten Bestellinfo und in die Zwischenablage kopieren bereits beim Klicken automatisch machen? Im Prinizip müsste man dann die Bestellinformation gar nicht mehr anzeigen oder zumindest solch eine Anzeige optional machen...

Ansatz evt. http://www.jqueryscript.net/form/Copy-Entire-Textarea-To-Clipboard-Using-jQuery-Copyme.html

[bnb] Check that some issues (Bände) are selected

Currently, it is possible to start the "Recherche" in recherche.php without choosing any issues. This leads to some errors/warnings in the apache log:

[Tue Feb 09 20:42:20.497881 2016] [:error] [pid xxx] [client xxx] PHP Notice:  Undefined variable: nrArray in /var/www/html/malibu/bnb/bnb.php on line 76, referer: http://data.bib.uni-mannheim.de/malibu/bnb/recherche.php?ddcgruppe%5B%5D=000%2C001%2C002%2C003
[Tue Feb 09 20:42:20.498118 2016] [:error] [pid xxx] [client xxx] PHP Warning:  Invalid argument supplied for foreach() in /var/www/html/malibu/bnb/bnb.php on line 76, referer: http://data.bib.uni-mannheim.de/malibu/bnb/recherche.php?ddcgruppe%5B%5D=000%2C001%2C002%2C003

Is it possible to check in JavaScript in recherche.php that at least one option is chosen? Moreover, it might be a good idea to restrict also the number of options by some limit, e.g. at most 4 issues can be selected.

Reported first in #32 (comment)

Vollständiger RVK-Pfad im Mouseover

Wenn man mit der Maus über eine RVK-Notation geht, werden die Bezeichnung der jeweiligen Klasse und die darüberliegende Ebene angezeigt.
Beispiel ET 450: "Bedeutung (semantische Komponentenanalyse, semantisches Merkmal) <-- Einzelprobleme".
(Z.B. bei http://data.bib.uni-mannheim.de/malibu/isbn/suche.html?isbn=9783942158664.)

Ein Münsteraner Kollege schlägt vor, hier den gesamten "Pfad" der Klasse anzugeben, für mehr Orientierung gerade in tiefen Systematiken.
Für ET 450 wäre das dann z.B. "Bedeutung (semantische Komponentenanalyse, semantisches Merkmal) <-- Einzelprobleme <-- Synchrone Semantik <-- Semantik und Lexikologie <-- Einzelgebiete der Sprachwissenschaft, Sprachbeschreibung <-- Allgemeine und vergleichende Sprach- und Literaturwissenschaft. Indogermanistik. Außereuropäische Sprachen und Literaturen".

Das wäre dann sozusagen "wie RVKVisual, nur als Mouseover". :)
(https://www.kobv.de/open-source-tool-rvk-visual/)
(Beispiel im KOBV: http://portal.kobv.de/uid.do?query=b3kat_BV040995956)

ISBN-Cleanup ist fehlerhaft

Das ISBN-Cleanup

malibu/isbn/lib.php

Lines 193 to 197 in a60b774

if (is_array($outputMap['isbn'])) {
foreach ($outputMap['isbn'] as $i => $value) {
$outputMap['isbn'][$i] = trim(preg_replace('/[^\d\s]/', '', $value));
}
}
ist noch teilweise fehlerhaft.

Beispielsweise im B3KAT stehen im Feld 540 teilweise [1, 2] auch Preisinformationen (d.h. weitere Zahlen) drin, welche nicht Teil der ISBN sind:

<feld nr="540" ind="a">ISBN 978-2-228-92164-0 22,00 EUR</feld>
<feld nr="540" ind="a">ISBN 978-3-7774-2263-3 Gb. : ca. EUR 34.90 (DE), ca. EUR 35.90 (AT), ca. sfr 45.80 (freier Pr.)</feld>

Dies führt in den Beispielen zu falschen extrahierten ISBN-Werten 9782228921640 2200 und 9783777422633 3490 3590 4580, welche auch bei der Suche nach der entsprechenden B3KAT-Id zu Fehlern führen.

[1] http://data.bib.uni-mannheim.de/malibu/isbn/b3kat.php?isbn=9782228921640
[2] http://data.bib.uni-mannheim.de/malibu/isbn/b3kat.php?isbn=978-3-7774-2263-3

[bnb] Handling large files

The recent rdf/xml files are quite large (5-15 MB per file). This results very large loading times, e.g. to load a 6 MB file it takes here around 74 seconds.

Maybe the current approach is not optimal: we first load all the xml files completely and will then filter that afterwards. @kba Would a XML database help here?

Neue URL bei HEBIS?

Es scheint, dass beim HEBIS-Verbund die Z39.50-Schnittstelle unter einer neuen URL tolknostalgie.hebis.de zugänglich ist, vgl. http://www.hebis.de/de/1service/z3950/z39_zugang_index.php

Wahrscheinlich genügt es dies in der conf.php bzw. conf.php.example einfach auszutauschen:

-define('HEBIS_URL',         'tolk.hebis.de:20211/hebis');
+define('HEBIS_URL',         'tolknostalgie.hebis.de:20211/hebis');

Man sollte aber noch ein paar weitere Tests machen um sicherzustellen, dass sich nichts weiteres verändert hat. Dann sollte man dann die Änderungen auch hier nachziehen.

CC @vossviola @tkees

K10Plus-OPAC

Hallo,
ich bin nicht sicher, ob ein wirklicher K10Plus-OPAC vorgesehen ist. Soweit ich es sehe, gibt es bisher einen GVK mit erweiterten Beständen und den früheren SWB-OPAC. In der GBV-Ausprägung sind nicht alle Daten indexiert, die ich hier im Südwesten benötige (v.a. im Exemplarbereich), so dass der alte SWB-OPAC sicher noch einige Zeit gebraucht wird.
Im ISBN-Tool sieht es jetzt so aus, dass im Verbund-Array der GVK abgeprüft wird, beim Aufruf des Links aber vom GBV gleich auf "https://kxp.k10plus.de/DB=2.1/" weitergeleitet wird. Die Anzahl der dort verzeichneten Bestände hat aber nichts mit der Summierung über die alte Abfrage zu tun, Beispiel:
http://data.bib.uni-mannheim.de/malibu/isbn/suche.html?isbn=9783770563739

Es wäre zu überlegen, ob der GBV-K10-OPAC (s. oben) nicht an die Stelle der alten http://gso.gbv.de/DB=2.1/-Abfrage treten sollte. Ob die K10Plus-Integration über SRU damit obsolet wäre, könnte man auch erörtern.

Ausführlichere Meldung wenn keine ISBN gefunden wird

Bei einer Suche nach einer PPN wird im ersten Schritt die ISBN herausgesucht und dann im zweiten Schritt damit in allen Veründen gesucht. Falls aber keine ISBN vorhanden ist, dann erscheint die knappe Fehlermeldung Keine zugehörige ISBN gefunden! mit der Benutzer nicht unbedingt etwas anfangen können. Z.B. http://data.bib.uni-mannheim.de/malibu/isbn/suche.html?ppn=HT004808001&verbund=HBZ . Hier könnte man etwas ausführen, etwa mit einer Ergänzung Ohne ISBN wird aber keine Suche in den verschiedenen Verbünden angesteuert.

HT @vossviola : https://twitter.com/v_i_o_l_a/status/1100671378414538753

Fehler früher abfangen bei Nichtvorhandensein von isbn2MANholdings.php

Die Datei isbn2MANholdings.php greift momentan auf unsere Z39.50-Schnittstelle zu und diese ist nicht öffentlich. Daher "fehlt" die Datei in vielen öffentlichen Installationen. Zusätzlich wird auch noch der SWB-Katalog abgefragt, um mögliche Schwankungen abzufangen. Dies könnte man öffentlich machen. Auch die lokale Abfrage sollte man ähnlich konfigurierbar machen wie bei den Verbünden.

  • Unbennung in isbn2local.php
  • Datei umstrukturieren so dass der spezielle Teil in die Konfiguration bleibt und der Rest öffentlich sein kann.
    • spezielle Abfrage des SWBs können öffentlich dokumentiert sein
    • generische Abfrage einer Z39.50 Schnittstelle eines Aleph-Katalogs kann öffentlich sein
    • Z39.50 URL, Benutzername und Passwort soll geschützter Teil der Konfiguration sein

Vgl. #43 (comment)

RVKs in Feld 701g

"Seit dem 20.7. [...] soll für die Erfassung von RVK-normdateigerechten Notationen das NEUE Feld 701g verwendet werden. Die Einrichtung eines neuen Feldes war nötig, da in 700g die IDs nicht gespeichert werden konnten. In das alte Feld 700g werden nur noch Notationen eingetragen, die nicht in der RVK-Normdatei enthalten sind, was aber die Ausnahme sein sollte (betrifft z.B. die lokalen Sonderwege)."

Beispiel?

Dann sollte dies dann wohl einfach in der Zeile hier zu MABXML hinzugefügt werden können:
https://github.com/UB-Mannheim/malibu/blob/master/isbn/lib.php#L68

Fehler bei Installation unter Debian/UBUNTU (Apache 2.4 / PHP 7.4)

Die Installation, die bei PHP 7.3 noch geklappt hat, scheitert bei PHP 7.4
"pecl install yaz"
endet in:
"Notice: Trying to access array offset on value of type bool in PEAR/REST.php on line 187
PHP Notice: Trying to access array offset on value of type bool in /usr/share/php/PEAR/REST.php on line 187
install failed"
Ich möchte aus verschiedenen Gründen nicht die Docker-Variante einsetzen, aber hier komme ich nicht weiter.
Ist (Ab-)Hilfe möglich?

[isbn] Feature Request: Show different editions (incl. holding info)

It would be nice to have information about previous or other editions of a book in the isbn search (mashup). The information can be gathered over xISBN API (kind of limited) or maybe other sources. It would be possible to make another call to such a service and then show the complete information about the different editions in the mashup. The holding information can be gathered by allowing the autolink tool on these websites.

E.g. for the isbn 9783642244209 we can call:
http://xisbn.worldcat.org/webservices/xid/isbn/9783642244209?method=getEditions&format=xml&fl=form,year,lang,ed

And output something like:

  • isbn form="BA" year="2012" lang="ger" ed="7., aktualisierte Aufl." --> 9783642244209
  • isbn form="BA" year="1993" lang="ger" ed="2., durchges. Aufl." --> 9783922410270
  • isbn form="BA" year="2004" lang="ger" ed="5. Aufl., korrigierter Nachdr." --> 9783540400721
  • form="BA" year="2002" lang="ger" ed="4. Aufl." --> 9783540421115
  • form="BA" year="2006" lang="ger" ed="1500." --> 9783540476160
  • form="BA DA" year="2012" lang="ger" ed="7., aktualisierte Aufl." --> 9783642244216

Challenges:

  1. Possible webservices for that
  2. Look and feel

Suche nach Titel und Verfasser (nur für API)

Im Hintergrund werden bei malibu die SRU bzw. Z39.50-Schnittstellen der Verbünde angezapft. Hier ist es im Prinzip nicht schwierig auch etwa eine Suche nach Titel + Verfasser zu machen. Zum Beispiel ist die PPN-Suche mit den Zeilen drei Zeilen realisiert:

malibu/isbn/gbv.php

Lines 36 to 38 in e68334f

if (isset($_GET['ppn'])) {
$ppn = trim($_GET['ppn']);
yaz_search($id, "rpn", '@attr 5=100 @attr 1=12 "' . $ppn . '"');

Damit könnte man dann API-Anfragen der Art http://data.bib.uni-mannheim.de/malibu/isbn/gbv.php?title=Stochastic+evolution+systems&author=Rozovskij&format=json machen.

Travis is currently failing

I don't understand what the problem is...

...
Ign:30 http://archive.ubuntu.com/ubuntu wily/universe Translation-en

Err:22 http://archive.ubuntu.com/ubuntu wily/universe amd64 Packages

  404  Not Found [IP: 91.189.88.152 80]

Err:23 http://archive.ubuntu.com/ubuntu wily/universe i386 Packages

  404  Not Found [IP: 91.189.88.152 80]

Ign:27 http://archive.ubuntu.com/ubuntu wily/universe all Packages

Ign:28 http://archive.ubuntu.com/ubuntu wily/universe Translation-en_US

Ign:30 http://archive.ubuntu.com/ubuntu wily/universe Translation-en

Fetched 3,168 B in 3s (1,041 B/s)

Reading package lists...

W: The repository 'http://archive.ubuntu.com/ubuntu wily Release' does not have a Release file.

W: http://dl.hhvm.com/ubuntu/dists/trusty/InRelease: Signature by key 36AEF64D0207E7EEE352D4875A16E7281BE7A449 uses weak digest algorithm (SHA1)

W: http://ppa.launchpad.net/couchdb/stable/ubuntu/dists/trusty/Release.gpg: Signature by key 15866BAFD9BCC4F3C1E0DFC7D69548E1C17EAB57 uses weak digest algorithm (SHA1)

E: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/wily/universe/binary-amd64/Packages  404  Not Found [IP: 91.189.88.152 80]

E: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/wily/universe/binary-i386/Packages  404  Not Found [IP: 91.189.88.152 80]

E: Some index files failed to download. They have been ignored, or old ones used instead.

The command "sudo apt-get update -q" failed and exited with 100 during .

Your build has been stopped.

https://travis-ci.org/UB-Mannheim/malibu/builds/278675951

Vorgänger/Nachfolger Informationen aufnehmen

Die Vorgänger/Nachfolger Informationen sind teilweise in den Verbunddaten enthalten und verknüpft inklusive alter/neuer ISBN, Z.B.

780 00$iVorangegangen ist$aJarass, Hans D., 1945 - $tGrundgesetz für die Bundesrepublik Deutschland. f$b15. Auflage$dMünchen : C.H. Beck, 2018$hXXVI, 1433 Seiten$w(DE-627)1015874517$w(DE-576)501218777$z9783406723698

bzw.

785 00$iGefolgt von$aJarass, Hans D., 1945 - $tGrundgesetz für die Bundesrepublik Deutschland. s$b16. Auflage$dMünchen : C.H. Beck, 2020$hXXV, 1434 Seiten$w(DE-627)1677302232$z9783406748752$z3406748759

Beim Bestand dürfen diese Ausgaben nicht gezählt werden, aber für die Sacherschließung sind diese ebenfalls relevant. Wie soll man dies hier im Tool berücksichtigen? Am Einfachsten wäre es einfach einmal mit einem Link auf das Tool mit der anderen ISBN an geeigneter Stelle einzubinden. Vielleicht gibt es aber auch andere und bessere Ideen...

AHK Skript

Mit dem Skript kann man Text eine ID markieren und durch Drücken einer Tastenkombination die Suche (entweder ISBN oder PPN im SWB) in malibu im Browser öffnen. Dies ist insbesondere auch bei Email-Nachfragen für eine RVK-Stelle o.ä. nützlich:

#SingleInstance force
#Warn

; Open a browser window to malibu website searching the selected ISBN or PPN


; Copies the selected text to the Windows clipboard, adds it to a
; resolver URL and opens that URL

; hotkey ctrl-shift-i for searching an ISBN
^+i::
  Send, ^c
  Run, "http://data.bib.uni-mannheim.de/malibu/isbn/suche.html?isbn=%Clipboard%"
  Return

; hotkey ctrl-shift-p for searching an PPN in the SWB
^+p::
  Send, ^c
  Run, "http://data.bib.uni-mannheim.de/malibu/isbn/suche.html?verbund=SWB&ppn=%Clipboard%"
  Return

Inspiriert durch @jneubert von https://github.com/jneubert/gnd-wd-link vgl. auch https://www.autohotkey.com/download/

Veraltete RVKs markieren

Ist es möglich, gelöschte RVKs in malibu farblich hervorzuheben? Bisher werden alle in den Verbünden vergebenen RVKs angezeigt, selbst wenn sie veraltet sind und nicht mehr vergeben werden können.
Im SWB sind gelöschte RVKs im Feld 012$b mit a gekennzeichnet. Lässt sich daraus eine Negativliste erstellen?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.