Trondheimsbilder - protokollkrav

Versjon 1.0

2004-01-06 Ole Husby


Dette dokumentet beskriver den protokollen som utgjør grensesnittet mellom samsøkingsklienten og de enkelte databaseserverne som inngår i prosjekt Trondheimsbilder. [1]

1. Innledning

Som grunnlag for utarbeidelsen er brukt prosjektdokumentet "Presisering av kravspesifikasjonen når det gjelder grensesnittet mot databasene" datert 25. november 2003. [2]

Det har videre vært en målsetting å bruke eksisterende standarder og formater så langt det er råd.

Dette forslaget er resultat av et arbeidsmøte 2003-12-03 i Oslo, med følgende deltakere:

Steinar Bjørneset, Museeenes Datatjeneste
Ola Thori Kogstad, Biblioteksystemer AS
Roger Niva, Biblioteksystemer AS
Ole Husby, BIBSYS
Det foreliggende forslaget har senere vært drøftet i en uformell arbeidsgruppe som består av disse personene. Forslaget er ikke dermed godkjent av de tre partene som er representert.

Dokumentet "Presisering av kravspesifikasjonen når det gjelder grensesnittet mot databasene" inneholder noen krav som går lenger enn den opprinnelige kravspesifikasjonen. Det gjelder følgende krav, som alle er tatt inn i protokollspesifikasjonen:

Det er gjort en vesentlig endring i forhold til "Presisering av kravspesifikasjonen når det gjelder grensesnittet mot databasene", nemlig at UTF-8 skal brukes som tegnsett i stedet for ISO 8859-1.

Protokollkravene er beskrevet i forhold til protokollen SRW versjon 1.0. En ny versjon 1.1 vil bli offentliggjort snart, og det vil være naturlig å legge denne til grunn for implementasjonene. Vi går ut fra at endringene fra 1.0 til 1.1 ikke er større enn at de foreliggende spesifikasjonene er gode nok som grunnlag for å starte design-arbeidet. Vi foreslår at systemleverandørene foretar en vurdering når versjon 1.1 foreligger, for å

2. Grunnleggende tjenestemodell

Dette dokumentet forutsetter en modell som bygger på fire separate tjenester:

Søking

Søking utføres vha SRW SearchRetrieve. Søkeattributtene kodes vha CQL hvor et passende indexset brukes for å kvalifisere, og postene returneres i foreskrevet metadataformat. Metadatapostene inneholder URI til fullskalabilder, miniatyrbilder og evt postvisning i lokalt brukergrensesnitt.

Alfabetiske termlister

Denne tjenesten er ikke videre definert. Se kommentar nedenfor.

Henting av bilder

Denne tjenesten utføres av klienten vha HTTP GET request til den enkelte server. Denne tjenesten er fullstendig uavhengig og asynkron i forhold til søketjenesten.

Explain

Denne tjenesten utføres vha SRW Explain.

3. Abstrakt metadataskjema

En forutsetning for forslaget er at metadataformatet skal kunne brukes for å inkludere metadataposter i en searchRetrieveResponse i søkeprotokollen SRW. Det er videre lagt vekt på å lage et format som minst mulig avviker fra standarder.

Følgende abstrakte metadataskjema brukes som grunnlag for utveksling av metadataposter.

De 7 første elementene henviser til kravspesifikasjonen [2], og beskrivelsen er hentet derfra.

De fleste feltene passer inn i MARC 21, og for disse er angitt feltkode og evt delfeltkode. Merk at bruken av feltkode 245 for Motiv er diskutabel.

Navn Beskrivelse MARC 21
Fotograf Fotograf 100 $a
År Fotograferingsår 260 $c
Motiv Tittel / motiv 245 $a
Beskrivelse Beskrivelse av bildet (tilsvarer notefeltet i marc-formatet) 520 $a
Person Person på bildet 600 $a
Emneord Emneord / stikkord 650 $a
Sted Sted på bildet 651 $a
FullURI URI til fullskalabilde 856 $u
MiniatyrURI URI til miniatyrbilde -
LokalPostURI URI til postvising i lokalt brukergrensesnitt -
ID Lokal unik identifikator 001

Spesielle krav:

  1. LokalPostURI kan være med i posten (optional).
  2. FullURI og MiniatyrURI skal være med, men bare hvis hvis de er reelle, dvs representerer et bilde som er tilgjengelig (conditional)
  3. Alle de andre elementene i tabellen skal være med hvis de finnes i det lokale systemet (conditional).
  4. Andre metadatafelter kan være med (optional)
Se Applikasjonsprofilen i kapittel 11.

4. Bruk av SRW

SRW skal brukes som protokoll for søking i databasene.

4.1 Versjon

Foreløpig forutsetter denne spesifikasjonen bruk av SRW versjon 1.0 slik den er spesifisert i "SRW Specifications". [3]

Så snart versjon 1.1 av SRW publiseres, må det vurderes om denne kan brukes i stedet.

I resten av dette dokumentet henvises det til versjon 1.0.

4.2 Bruk av WSDL og UDDI

Det skal publiseres WSDL-filer som beskriver den enkelte database. Det er opp til databaseleverandøren å avgjøre tilgjengeligheten for denne fila. Databaseleverandøren har rett til å informere om denne fila til hvem som helst.

Det er tilstrekkelig at det informeres om URI for denne WSDL-fila direkte til leverandøren av klienten. Det er opp til databaseleverandørene å bruke UDDI eller andre mekanismer for informasjonsspredning.

4.3 Presisering av SRW Service Description

Det vises til dokumentet "SRW Service Description". [4]

I tillegg til de krav som framgår av dette dokumentet stilles det følgende krav:

4.3.1 searchRetrieveRequest

query Skal alltid brukes av klienten
xQuery Skal ikke brukes av klienten
sortKeys Kan brukes av klienten. Skal støttes av serveren. Se nærmere beskrivelse av krav til sortering nedenfor.
maximumRecords Skal alltid brukes av klienten
recordSchema Skal alltid brukes av klienten
 

4.3.2 searchRetrieveResponse

numberOfRecords Skal alltid brukes av serveren
resultSetId Skal alltid brukes av serveren
resultSetIdleTime Skal alltid brukes av serveren. Kan tolkes som minimum levetid for settet. Anbefalt verdi: Minst 1 time.
nextRecordPosition Skal alltid brukes av serveren

 
4.3.3 explainResponse

explain Skal alltid brukes av serveren. Skal oppfylle krav i "SRW Conformance Statement". [5]

4.4 Krav til tegnsett

All tekst som formidles av SRW-tjenestene skal være kodet i UTF-8. Dette gjelder spesielt søkinger formulert vha CQL og metadataposter i henhold til applikasjonsprofilen.

5. Krav til CQL

5.1 Søkbare felter

Følgende felter fra det abstrakte metadataskjemaet skal være søkbare:
Fotograf
År
Motiv
Person
Emneord
Sted
I tillegg kommer følgende krav:

5.2 Generelle krav til bruk av CQL

  • CQL skal støttes i henhold til minimumskrav i dokumentet "SRW Conformance Requirements". [5]

    Merk: Dette er minimumskrav for å tilfredsstille standarden, og er vondt å fravike. Men det er sannsynlig at flere av de aktuelle serverne vil ha problem med å støtte generell strengsøking gjennom relasjonen "exact".

    I tillegg stilles følgende krav:

    Som referansedokument er brukt "CQL. Syntax and Rules". [6]

    5.3 Bruk av Index sets

    Angivelse av feltkoder i søkingen skal skje ved bruk at et eget Index set. Dette er beskrevet nærmere i kapittel 10.

    Videre skal det være støtte for indeksen srw.resultSetName fra "SRW Utility Index Set". [7]

    6. Krav til sortering

    Klienten kan be om sorterte søkesett ved å bruke parameter sortKeys på foreskreven måte. Serveren skal støtte sorteringskrav som inneholder
    Fotograf som 1. kriterium
    Motiv som 2. kriterium
    Poster som mangler Fotograf skal sorteres først.

    7. Krav til alfabetiske lister

    I dokumentet "Presisering av kravspesifikasjonen når det gjelder grensesnittet mot databasene" står følgende som punkt 14:
    Serverne skal kunne levere en alfabetisk liste over stikkord/emneord som er brukt i bildebasen.
    I kravspesifikasjonsdokumentet står det eksplisitt:
    Det skal satses på en protokoll.
    Klienten skal benytte SRW v. 1.0 og Web Services
    Videre er det ikke nevnt noe krav om alfabetiske lister.

    Vi har i denne omgang valgt å ikke gå lenger med dette punktet. Det skyldes primært at det ikke er støtte for en slik funksjon ("scan") i SRW versjon 1.0. Derimot er det annonsert at dette vil komme i versjon 1.1.

    Hvis en slik funksjon skal støttes, kan det være aktuelt å vurdere den også for andre felter enn emneord. Det er også litt uklart hvordan funksjonaliteten til denne tjenesten skal være, f.eks. med hensyn til antall termer pr forespørsel, om responsen skal inneholde antall treff pr term o.l.

    Det er ønskelig med tilbakemelding fra prosjektet før dette punktet bearbeides.

    8. Krav til overføring av bilder

    Fullskalabilder og miniatyrbilder skal overføres vha en HTTP GET request. URI for bildene skal være inkludert i metadatapostene.

    Fullskalabildet skal ha en lengste side på 1024 punkter eller mindre.

    Miniatyrbildene skal ha en lengste side på 122 punkter eller mindre.

    I tillegg til bildene skal serveren på en HTTP-forespørsel sende en logo. Det overlates til klientutvikleren å foreslå størrelse for denne logoen.

    9. Adgangskontroll

    Den enkelte databaseleverandør kan velge å innskrenke adgang til SRW-tjenesten ved bruk av IP / domenenavnkontroll. Andre mekanismer skal ikke brukes.

    Merk: Det er en forutsetning at samsøkingsklienten ikke skal ha en eksklusiv adgang til SRW-tjenestene.

    10. CQL Index Set for søking

    Formelle krav til Index sets er beskrevet i "CQL: Index Sets". [8]

    Her beskrives et Index set med navn "Trondheimsbilder" og med "tr" som anbefalt prefiks.

    10.1 Index set Trondheimsbilder

    De enkelte elementene er definert med utgangspunkt i det abstrakte metadataskjemaet. Elementene har fått engelske navn.

    Navn Abstrakt felt Syntaks / verdier
    photographer Fotograf Invertert personnavn
    year År Årstall (YYYY)
    motif Motiv Enkeltord
    person Person Invertert personnavn
    subject Emneord Enkeltord
    location Sted Enkeltord
    limitation   "trondheim" | "image"

    10.2 Eksempler

    Bilder fotografert av Anton Røske i 1912:
    tr.photographer = "røske, anton" and tr.year = 1912
    Bilder med motiv som inneholder ordene "båt og "ravnkloa":
    tr.motif all "båt ravnkloa"
    Bilder av Johan Bruun i Ravnkloa:
    tr.person = "bruun, johan" and tr.location = ravnkloa
    Bilder av robåter fra Trondheim, med tilgjengelig fullskalabilde:
    tr.subject = robåter and tr.limitation all "trondheim image"
    Et tilfeldig utvalg av bilder:
    tr.motif = *

    11. Dublin Core applikasjonsprofil for metadata

    Følgende applikasjonsprofil foreslås brukt som konkret metadataskjema. Profilen er her uformelt beskrevet, og det er ikke angitt nødvendige skjema-URIer eller navnerom-identifikatorer.

    Bruken av kvalifisert Dublin Core refererer til "DCMI Metadata Terms" [9]

    11.1 Applikasjonsprofilen

    Metoden består i å utvide kvalifisert Dublin Core med 3 spesielle termer, som her tenkes tatt fra et navnerom "trterms". To av termene er av type "Element refinement", mens det siste er av type "Encoding scheme".

    Name Element refining type attribute
    Fotograf dc:creator    
    År dc:date    
    Motiv dc:title    
    Beskrivelse dc:description    
    Person dc:subject   trterms:personalName
    Emneord dc:subject    
    Sted dcterms:spatial dc:coverage  
    FullURI dc:identifier   dcterms:URI
    MiniatyrURI trterms:hasThumb dc:relation dcterms:URI
    LokalPostURI trterms:hasLocalPresentation dc:relation dcterms:URI
    ID dc:identifier    

    11.2 Koding vha XML

    Det foreslås at kodingen av metadatapostene foretas vha "ren XML", dvs uten bruk av RDF. Det anses ikke nødvendig å utnytte de spesielle mulighetene som finnes ved bruk av RDF.

    Kodingen utføres i henhold til "Guidelines for implementing Dublin Core in XML" (DCMI Recommendation) [10]

    I vårt tilfelle betyr det i praksis at hasThumb og hasLocalPresentation kodes som selvstendige elementer, selv om de er kvalifikatorer til dc:relation.

    11.3 Eksempel

    Dette eksemplet er tatt fra UBIT's bildebase (BIBSYS). Eksemplet er reelt, bortsett fra at det for fullstendighetens skyld er føyd til ett felt som ikke finnes i posten, nemlig 650 (Emneord).

    FullURI: http://sgate.bibsys.no/bildedb/images/AR-05777?lib=ubit
    MiniatyrURI: http://sgate.bibsys.no/bildedb/thumbnails/AR-05777?lib=ubit
    LokalPostURI: http://sgate.bibsys.no/bildedb/record.jsp?lib=ubit&id=AR-05777

    11.3.1 Beskrivelse vha MARC

    Dette er posten i MARC-format. Bare de feltene som har relevans for denne profilen er tatt med. For disse feltene er feltkodene gyldige i både NORMARC, MARC 21 og "BIBSYS-Bilde-MARC").

    001  AR-05778
    100$a Røske, Anton
    245$a Båt i Kanalen ved Ravnkloa
    260$c 1912
    520$a Åpen båt med flagg, mann i halvfigur. Utsikt mot Ravnkloa og Fiskehallen, flere båter ved kai
    600$a Bruun, Johan
    650$a Robåter
    651$a Ravnkloa
    740$a Motorbåt for I.N. Bruun

    11.3.2 Beskrivelse vha applikasjonsprofilen

    URI for lokale skjema og navnerom er fiktive.

    <?xml version="1.0"?>
    
    <metadata
      xmlns="http://trondheimsbilder.no/meta/"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://trondheimsbilder.no/meta/ http://trondheimsbilder.no/meta/schema.xsd"
      xmlns:dc="http://purl.org/dc/elements/1.1/"
      xmlns:dcterms="http://purl.org/dc/terms/"
      xmlns:trterms="http://trondheimsbilder.no/meta/terms/">
    
      <dc:identifier>
        AR-05778
      </dc:identifier>
      <dc:creator>
        Røske, Anton
      </dc:creator>
      <dc:title>
        Båt i Kanalen ved Ravnkloa
      </dc:title>
      <dc:date>
        1912
      </dc:date>
      <dc:description>
        Åpen båt med flagg, mann i halvfigur. Utsikt mot Ravnkloa 
        og Fiskehallen, flere båter ved kai
      </dc:description>
      <dc:subject xsi:type="trterms:personalname">
        Bruun, Johan
      </dc:subject>
      <dc:subject>
        Motorbåt
      </dc:subject>
      <dcterms:spatial>
        Ravnkloa
      </dcterms:spatial>
      <dc:identifier xsi:type="dcterms:URI">
        http://sgate.bibsys.no/bildedb/images/AR%2D05777%3Flib%3Dubit
      </dc:identifier>
      <trterms:hasThumb xsi:type="dcterms:URI">
        http://sgate.bibsys.no/bildedb/thumbnails/AR%2D05777%3Flib%3Dubit
      </trterms:hasThumb>
      <trterms:hasLocalPresentation xsi:type="dcterms:URI">
        http://sgate.bibsys.no/bildedb/record.jsp%3Flib%3Dubit%27id%3DAR%2D05777
      </trterms:hasLocalPresentation>
    
    </metadata>
    

    11.3.3 Beskrivelse vha ukvalifisert Dublin Core

    Dette eksemplet er ikke ment å være normgivende! Her er det tatt med noen flere metadatafelter enn de som inngår i det abstrakte skjemaet.

    <?xml version="1.0"?>
    
    <metadata
      <dc:creator>
        Røske, Anton
      </dc:creator>
      <dc:title>
        Båt i Kanalen ved Ravnkloa
      </dc:title>
      <dc:date>
        1912
      </dc:date>
      <dc:description>
        Åpen båt med flagg, mann i halvfigur. Utsikt mot Ravnkloa 
        og Fiskehallen, flere båter ved kai
      </dc:description>
      <dc:subject>
        Bruun, Johan
      </dc:subject>
      <dc:subject>
        Motorbåt
      </dc:subject>
      <dc:coverage>
        Ravnkloa
      </dc:coverage>
      <dc:type>
        Image
      </dc:type>
      <dc:format>
        image/jpeg
      </dc:format>
      <dc:identifier>
        http://sgate.bibsys.no/bildedb/images/AR%2D05777%3Flib%3Dubit
      </dc:identifier>
    
    </metadata>
    

    12. Referanser

    Merk: I og med at vi ikke har kontroll over dokumentene det refereres til, presiseres det at referansene gjelder de dokumentversjonene som fantes 2004-01-06!

    [1] Prosjekt Trondheimsbilder.
    http://trhweb.trondheim.folkebibl.no/bildeprosjekt/

    [2] Presisering av kravspesifikasjonen når det gjelder grensesnittet mot databasene" datert 25. november 2003.
    http://trhweb.trondheim.folkebibl.no/bildeprosjekt/kravspek3.html

    [3] SRW Specifications
    http://lcweb.loc.gov/z3950/agency/zing/srw/specifications.html

    [4] SRW Service Description
    http://lcweb.loc.gov/z3950/agency/zing/srw/service.html

    [5] SRW Conformance Requirements
    http://lcweb.loc.gov/z3950/agency/zing/srw/conformance.html

    [6] CQL. Syntax and Rules
    http://lcweb.loc.gov/z3950/agency/zing/cql/cql-syntax.html

    [7] SRW Utility Index Set
    http://lcweb.loc.gov/z3950/agency/zing/cql/srw-indexes.html

    [8] CQL: Index Sets.
    http://lcweb.loc.gov/z3950/agency/zing/cql/index-sets.html

    [9] DCMI Metadata Terms
    http://www.dublincore.org/documents/dcmi-terms/

    [10] Guidelines for implementing Dublin Core in XML (DCMI Recommendation)
    http://www.dublincore.org/documents/2003/04/02/dc-xml-guidelines/