KohaSuomi / Koha

(KOHA) Koha is a free software integrated library system (ILS). Koha is distributed under the GNU GPL version 3 or later. Note: this is a synced mirror of the official Koha repo.
https://koha-community.org/
GNU General Public License v3.0
7 stars 13 forks source link

[Bugi] Kielikoodien fasetti #252

Closed pknuuti closed 1 year ago

pknuuti commented 1 year ago

Mikä vikana?

Kielikoodeissa fasettiarvo ||| ei vaikuta toimivalta. Arvovalinnalla sama hakutulos kuin ennen arvovalintaa.

Mitä pitäisi tapahtua

Pitäisi voida saada hakutulos, josta näkee nimekkeet, joissa kielikoodina on ||| (ilmeisesti tarkoittaa, että ei ole koodattu?) Tuloksen avulla voisi korjata puutteelliset koodaukset.

Kuinka toistaa ongelma/asia

No response

Selain

No response

Jotain muuta?

No response

Kohan osio

No response

CodoDerDritte commented 1 year ago

Voisikohan ongelma liittyä siihen että MARC:in täyttömerkki (|) on aika monitulkintainen ja voi ehkä aiheuttaa sekoilua. Esimerkiksi Perlissä kaksi tolppaa (||) on looginen Boolen OR-operaattori.

AnneliO commented 1 year ago

Testataan sandboxissa/nextillä ja jos niissäkään ei toimi, niin tiketti yhteisöön.

AnneliO commented 1 year ago

Testasin nyt sandboxissa ja Vaskin nextillä, eikä niissäkään toiminut haku |||-kielikoodilla.

emta001 commented 1 year ago

Koha-Suomen palaveri 20.6.2023: Toteutetaan raportti, jolla nämä saadaan kiinni korjauksia varten (Lasse toteuttaa). Tekesitkö @pknuuti tästä yhteisöön tiketin?

pknuuti commented 1 year ago

https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=29561 Liittyykö tuo tähän asiaan?

lasse-koha commented 1 year ago

Tuossa ilmeisesti ohitetaan kokonaan tyhjät fasetit (ln:""), joita ei pysty Kohan haulla hakemaan. Eli tavallaan liittyy mutta ei ratkaise tätä ongelmaa.

pknuuti commented 1 year ago

No olisi se ainakin parempi kuin ne tyhjät merkit, joita ei voi edes hakea. Toki voisimme korjata ne tyhjät koodit, kun saisimme toimivan raportin siihen.

lasse-koha commented 1 year ago

Tuo korjaus on jo meillä mukana eikä vaikuta mitenkään kielikoodilla ||| hakemiseen. Katsotaan saisiko noista raportin, vaikka eihän se |||-koodi sinänsä mikään virhe ole.

lasse-koha commented 1 year ago

Tällaisella raportilla pitäisi löytyä kaikki tietueet joissa 008/35-37:ssa |||:

select CONCAT(b.title, ', ', '<br/>', '<a href=\"/cgi-bin/koha/catalogue/detail.pl?biblionumber=',b.biblionumber,'\">',b.biblionumber,'</a>') AS 'Teos', bi.itemtype AS 'Aineistolaji'
from biblio b
left join biblioitems bi using (biblionumber)
left join biblio_metadata bm using (biblionumber)
where SUBSTR(ExtractValue(bm.metadata,'//controlfield[@tag="008"]'),36,3) = '|||';
pknuuti commented 1 year ago

Kiitos, raportti toimii kyllä, mutta antaa tarpeettoman suuren hakutuloksen. Voisiko tuota muokata niin, että käyttäjä voi valita aineistotyypin, mistä aineistosta raportin haluaa. Nuoteissa on niin paljon kielettömiä :)

lasse-koha commented 1 year ago

Tässä pelkät kirjat, viimeiselle riville voi vaihtaa haluamansa aineistotyypin:

select CONCAT(b.title, ', ', '<br/>', '<a href=\"/cgi-bin/koha/catalogue/detail.pl?biblionumber=',b.biblionumber,'\">',b.biblionumber,'</a>') AS 'Teos', bi.itemtype AS 'Aineistolaji'
from biblio b
left join biblioitems bi using (biblionumber)
left join biblio_metadata bm using (biblionumber)
where SUBSTR(ExtractValue(bm.metadata,'//controlfield[@tag="008"]'),36,3) = '|||'
and bi.itemtype = 'KIRJA';
pknuuti commented 1 year ago

Kiitos! Hakutulos väheni kymmenesosaan, mutta edelleen paljon osakohteita, joiden kuvailut muutenkin puutteellisia. Olisiko mahdollista saada rajaus vain emoihin eli 000/7:n arvoksi m eli monografia?

lasse-koha commented 1 year ago
select CONCAT(b.title, ', ', '<br/>', '<a href=\"/cgi-bin/koha/catalogue/detail.pl?biblionumber=',b.biblionumber,'\">',b.biblionumber,'</a>') AS 'Teos', bi.itemtype AS 'Aineistolaji'
from biblio b
left join biblioitems bi using (biblionumber)
left join biblio_metadata bm using (biblionumber)
where SUBSTR(ExtractValue(bm.metadata,'//controlfield[@tag="008"]'),36,3) = '|||'
and SUBSTR(ExtractValue(bm.metadata,'//leader'),8,1) = 'm'
and bi.itemtype = 'KIRJA';
pknuuti commented 1 year ago

Suuret kiitokset, nyt saan sellaisen määrän tuloksia, että niitä voi käsitellä (vähän toista sataa). Korjaan noihin kielikoodit kohdilleen.

pirliis commented 1 year ago

OUTIssa raportille tuli 586 tietuetta, mutta suurimmassa osassa niissä näytti kielikoodit olevan kohdillaan. Eli raportti ei rajannut meillä tietueisiin, joissa kielikoodi on puutteellinen.

pknuuti commented 1 year ago

Meilläkin on joissakin kielikoodi 041-kentässä, mutta puuttuu tuolta kiinteämittaisesta eli 008-kentästä. Siellä käytetään tuota |||-merkkiä, kun ei ole koodattu mitään.

pirliis commented 1 year ago

Kiitos Päivi, kun väänsit rautalankaa. :)

pirliis commented 1 year ago

Lasse, saisiko raporttiin vielä seuraavat rajausmahdollisuudet:

OUTIssa korjaukset halutaan vastuuttaa kirjastoille, joilla on niteitä korjattavissa tietueissa.

lasse-koha commented 1 year ago

Tässä kirjasto- ja aineistotyyppivalinnoilla:

SELECT CONCAT(b.title, ', ', '<br/>', '<a href=\"/cgi-bin/koha/catalogue/detail.pl?biblionumber=',b.biblionumber,'\">',b.biblionumber,'</a>') AS 'Teos', bi.itemtype AS 'Aineistolaji', <<Sijaintikirjasto|branches>> AS 'Sijaintikirjasto'
FROM biblio b
LEFT JOIN biblioitems bi USING (biblionumber)
LEFT JOIN biblio_metadata bm USING (biblionumber)
WHERE SUBSTR(ExtractValue(bm.metadata,'//controlfield[@tag="008"]'),36,3) = '|||'
AND SUBSTR(ExtractValue(bm.metadata,'//leader'),8,1) = 'm'
AND bi.itemtype = <<Aineistolaji|MTYPE>>
AND EXISTS (SELECT 1 FROM items i WHERE i.holdingbranch = <<Sijaintikirjasto|branches>> AND i.biblionumber = b.biblionumber);
pknuuti commented 1 year ago

Tuo aineistovalinta valinta antaa nidetyypin, ei aineistotyyppiä.

pirliis commented 1 year ago

En saanut valinnoilla yhtään tulosta.

lasse-koha commented 1 year ago

Mielenkiintoista, ei tosiaan löydä mitään outi-testillä muillakaan kielikoodeilla kuin |||. Omassa testiympäristössäni toimii oikein mutta toimiiko missään muualla? Katsotaan jos saisi vielä rajauksen aineistotyypin mukaan.

EDIT: Korjattu edelliseen viestiin itemtypesin tilalle MTYPE, nyt pitäisi toimia oikein.

pirliis commented 1 year ago

Kiitos! Nyt näyttäisi raportti OUTIssakin toimivan. :)

pirliis commented 1 year ago

Vielä tuli pyyntö, että saisiko raportin niteiden kotikirjaston mukaan. Nyt raportti antaa tietueet niteiden sijaintikirjaston mukaan.

lasse-koha commented 1 year ago

Kotikirjaston mukaan pitäisi onnistua näin:

SELECT CONCAT(b.title, ', ', '<br/>', '<a href=\"/cgi-bin/koha/catalogue/detail.pl?biblionumber=',b.biblionumber,'\">',b.biblionumber,'</a>') AS 'Teos', bi.itemtype AS 'Aineistolaji', <<Kotikirjasto|branches>> AS 'Kotikirjasto'
FROM biblio b
LEFT JOIN biblioitems bi USING (biblionumber)
LEFT JOIN biblio_metadata bm USING (biblionumber)
WHERE SUBSTR(ExtractValue(bm.metadata,'//controlfield[@tag="008"]'),36,3) = '|||'
AND SUBSTR(ExtractValue(bm.metadata,'//leader'),8,1) = 'm'
AND bi.itemtype = <<Aineistolaji|MTYPE>>
AND EXISTS (SELECT 1 FROM items i WHERE i.homebranch = <<Kotikirjasto|branches>> AND i.biblionumber = b.biblionumber);
pirliis commented 1 year ago

Kiitos taas! Luetteloinnissa oltiin nyt tyytyväisiä hakutuloksiin. :)

pknuuti commented 1 year ago

Tiketti tehty yhteisöön https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=34143 Suljen tämän tiketin.