Pode-workshop oppgave 1

Fra Biblab

Gå til: navigasjon, søk

Innhold

Applikasjon for å lage manuelle og ”automatiske” anbefalingslister

Manuelle lister kan for eksempel genereres ved å legge inn tittelnummer, velge antall som skal vises i lista og legge til unik listetittel. Wordpress’ RSS-widget tilbyr et enkelt grensesnitt for å håndtere RSS-strømmer. Vi tenker oss noe lignende for å lage disse listene.
Wordpress' RSS-widget

”Automatiske” lister kan for eksempel genereres ved å legge inn en søkestreng ”fossum, karin/fo” for å få alle bøker skrevet av Karin Fossum, eller ”astronomi/ke” for å få alt materiale med astronomi som emneord.
Applikasjonen skal være systemuavhengig, det vil si at ved å bytte ut adressen til bibliotekbasen i koden, så skal applikasjonen ta i mot den angitte basens spørrespråk. Bibliofil bruker for eksempel /fo for forfatter og /ke for emneord, mens Koha, Aleph, Bibsys og Micromarc bruker andre kvalifikatorer. Lista skal vises med klikkbar tittel inn til katalogposten.

Eksempler

Ta utgangspunkt i utstillinger laget i biblioteket i diverse anledninger. Eksempler fra Deichman er Astronomiåret 2009, Forfattere fra A-Å, Sverre Fehn og lignende.

Dokumentasjon

Løsning

Lenke til løsning: http://torfeus.deich.folkebibl.no/~gruppe1/skjema.php

Oppgaven deles i to; vi løser manuell innlegging av titler først. Vi lager en MySQL-base for å lagre tittel/ID på liste og tittelnummer, evt ISBN-nummer.

Vi spør via SRU, baseURL-en er http://torfeus.deich.folkebibl.no:9999/biblios.

Eksempel på søk: http://torfeus.deich.folkebibl.no:9999/biblios?operation=searchRetrieve&version=1.1&query=dc.creator=%22Hamsun,%20Knut%22&recordSchema=dc&startRecord=1&maximumRecords=10

Begrensninger: Foreløpig vil vi jobbe med ISBN-nummer, altså vil denne bare kunne bruke bøker med ISBN-nummmer.

Vi har laget en MySQL-database med tre tabeller: bok, liste, og lnk_liste_bok:

--
-- Database: `g1_anbefalinger`
--

-- --------------------------------------------------------

--
-- Tabellstruktur for tabell `bok`
--

CREATE TABLE `bok` (
  `id` mediumint(8) unsigned NOT NULL auto_increment,
  `isbn` varchar(255) NOT NULL,
  `tnr` varchar(255) NOT NULL,
  `tittel` varchar(255) NOT NULL,
  `ansvar` varchar(255) NOT NULL,
  `lenke` varchar(255) NOT NULL,
  PRIMARY KEY  (`id`),
  UNIQUE KEY `isbn` (`isbn`),
  UNIQUE KEY `tnr` (`tnr`),
  UNIQUE KEY `lenke` (`lenke`)
) ENGINE=MyISAM

-- --------------------------------------------------------

--
-- Tabellstruktur for tabell `liste`
--

CREATE TABLE `liste` (
  `id` mediumint(8) unsigned NOT NULL auto_increment,
  `navn` varchar(255) NOT NULL,
  `dato` timestamp NOT NULL default CURRENT_TIMESTAMP,
  `bruker` varchar(255) NOT NULL,
  PRIMARY KEY  (`id`),
  UNIQUE KEY `navn` (`navn`)
) ENGINE=MyISAM

-- --------------------------------------------------------

--
-- Tabellstruktur for tabell `lnk_liste_bok`
--

CREATE TABLE `lnk_liste_bok` (
  `liste_id` mediumint(8) unsigned NOT NULL,
  `bok_id` mediumint(8) unsigned NOT NULL
) ENGINE=MyISAM

Det hele funker slik:

  1. En bruker taster inn ett ISBN-nummer.
  2. Systemet søker i katalogen, og returnerer tittel og forfatter
  3. Systemet putter dette sammen med ISBN-nummeret i aktuelle databaser.
  4. Man kan hente ut listen ved en spesiell URL med listenavn som parameter.

TODO

  • Lage webskjema. Bør ha mulighet for å legge til bøker, samt slette.
  • Lage database
  • Hente ut tittel og forfatter fra KOHA-basen med ISBN som input
  • Hente ut tittel og forfatter fra listebasen og presentere den pent (opsjon: hente ut framsider og vise)
  • støtte flere brukere: cookies?

Ting som kan være nyttige mens vi jobber

Søk etter ISBN og tittelnummer i Deichman sin base kan foregå på denne måten (for å generere URL-er til basen):


Andre idéer

  • Automatisk gjenkjennelse av ISBN-nummer, slik at man kan taste/scanne inn ISBN-nummer for søk i et felles felt. Nå har vi et eget felt for tnr og ett for ISBN, slik at man kan velge hvilket man bruker.
  • Ut-format kan være RSS eller fine html-ting
  • Bør kanskje implementeres med YAZ, slik at det er enkelt å velge mellom z39.50 og SRU (dersom det går).
  • Det kan være lurt å bruke DOM for å hente ut data fra XML-en som blir generert.
Personlige verktøy