ceskaexpedice / kramerius-web-client

Novy klient pro Krameria
13 stars 14 forks source link

Sigla - špatné zobrazení #138

Open krizovj opened 5 years ago

krizovj commented 5 years ago

U některé sigly se nám v popisu zobrazuje pořád ta sigla a ne název instituce. V metadatech je to správně.

sigla

honza-rychtar commented 5 years ago

Mapování českách a anglických názvů je v lokalizačních souborech, kde by nebylo úplně optimální mít 6 tisích sigel pro každou knihovnu. KNAV používa cca 10, MZK cca 20. Takže jsem tam vybral jen cca 40 nejpoužívanějších.

Místo uložení je už indexované a můžem ho použí pro fasety (#133). Takže půjde pěkně vidět jaké sigly a jak četně se používají a chybějící přidám do seznamu.

Další možností je použít externí službu pro překlad sigly na český a anglický název. Kdysi jsme zvažovali použít na to knihovny.cz @zabak Myslíš, že by knihovny.cz dokázaly rychle vrátit český a anglický název na základě sigly a snesly by provoz z klientů.

zabak commented 5 years ago

Museli bychom k tomu upravit a zpřístupnit API. Raději bych to ale dělal skrze registr Krameriů - i kdyby ten měl fungovat jako caching proxy. Pak bychom to na straně knihovny.cz nemuseli upravovat, jen bychom tam dali přístup.

honza-rychtar commented 5 years ago

Klidně v registru Krameriů. Jde mi o to, že místo toho, aby si každý uživatel musel vždy natahovat mapování 6 000 sigel v několika jazycích, aby nakonec použil dvě v jednom jazyce a pro aktualizaci by byla potřeba aktualizace všech instalací klientů. Tak je lepší to mít jako centrální službu, která je vždy aktuální a dostupná.

Vytváří to ale závislost na této službě, s čímž může mít někdo problém.

zabak commented 5 years ago

Může to být řešeno lokálním kešováním? Stáhne se to asynchronně a uloží lokálně. Pokud se klient vypořádá s nepřítomností těchto údajů (v tom případě zobrazí jen siglu a dotáhne názvy jak to bude možné) tak by to mohlo stačit. Nebo by mohl registr nabízet pro správce klienta službu, kdy na základě seznamu sigel vygeneruje konfigurák?

honza-rychtar commented 5 years ago

No jde to lokálně. Tak to funguje teď. Jen se mi nechce blokovat ostatní překlady kvůli tisícům nepoužívaných údajů. Datábáze nemá být na klientovi, ale na serveru. Může (mělo) by to být součásti backendu Krameria, ale kvůli samostatným instalacím a klientům nezávislých na verzi backendu si moc nepomůžem.

Nebudeme to komplikovat. Doplním lokalizační soubory o použávané sigly. A pokud bude zájem o vytvoření té služby, tak ji uděláme později.

nezbedova commented 5 years ago

Ještě prosím přidat ABA010 = Knihovna Národního muzea.

honza-rychtar commented 5 years ago

Přidal jsem sigly pro všechny Kramerie, tak aby mapovaly všechny názvy u procházení podle místa určení #133

luckajirku commented 4 years ago

Mohl bys prosím přidat ještě tyhle? Díky. JCE301 - Regionální muzeum a galerie v Jičíně NAE802 - Městské muzeum v Jaroměři TUE301 - Muzeum Podkrkonoší v Trutnově

honza-rychtar commented 4 years ago

Přidáno.

krizovj commented 4 years ago

Potřebovali bychom přidat další siglu: ABB030 = Orientální ústav AV ČR, v. v. i. - Knihovna.

Ještě bych měla dotaz na místo uložení, když nemá siglu. Zobrazí se a funguje pro něj filtrování, ale nezobrazí se ve filtrech vlevo ve výsledcích vyhledávání. Je to tím, že místo uložení není uvedeno jako sigla, ale slovně? Tohle konkrétně je proto, že to zkrátka siglu nemá (National library of Sweden). Například: https://kramerius.lib.cas.cz/uuid/uuid:49e4bccf-f77e-48f9-98cc-0e772a9f2d40

luckajirku commented 4 years ago

A za nás ještě TUE801 - Krkonošské muzeum ve Vrchlabí. Díky.

honza-rychtar commented 4 years ago

Sigly jsem přidal.

Ještě bych měla dotaz na místo uložení, když nemá siglu. Zobrazí se a funguje pro něj filtrování, ale nezobrazí se ve filtrech vlevo ve výsledcích vyhledávání. Je to tím, že místo uložení není uvedeno jako sigla, ale slovně? Tohle konkrétně je proto, že to zkrátka siglu nemá (National library of Sweden). Například: https://kramerius.lib.cas.cz/uuid/uuid:49e4bccf-f77e-48f9-98cc-0e772a9f2d40

Problém je ve schématu indexu, který rozbíjí víceslovné physical location na jednotlivá slova ve fasetách. Což pro sigly nevadí, ale pro víceslovná jména je to problém. Z "National library of Sweden" by byly 4 výsledky "National", "library", "of" a Sweden". Proto v klientovi kontroluju to pole, aby se použily jen výsledky, které mají formát sigly a pro tu se pak použije lokalizovaný překlad.

Nový index tohle řeší. A klient nad novým indexem pro siglu zobrazí lokalizovaný název a pro ostatní jakýkoli řetězec zobrazí ten originální řetězec.

tumovam commented 3 years ago

Prosím za KNAV ještě přidat siglu ABE461 = Židovská obec v Praze - Knihovna. Děkujeme

tumovam commented 3 years ago

Velice se omlouvám, ale ještě ABB083 = Ústav pro soudobé dějiny AV ČR, v. v. i. - Knihovna. Děkuji

honza-rychtar commented 3 years ago

Doplněno.

luckajirku commented 2 years ago

Prosím přidat ještě NAG001 - Městská knihovna Náchod A je možné nechat tohle issue otevřené, abychom sem průběžně mohli dopisovat, co potřebujeme doplnit, jak budeme digitalizovat pro různé menší knihovny? Nebo je lepší na každou siglu pak zakládat nové issue?

honza-rychtar commented 2 years ago

@luckajirku můžeme to nechat otevřené. Pokud napíšu komentář, že jsou sigly aktualizovány, tak to znamená, že v aktuálním releasu jsou zahrnuty všechny sigly z předcházejících komentářů.

@zabak Navazuju na naši diskuzi z prosince 2018 na začátku tohoto issue. Jsou 3 možnosti jak názvy pro sigly spravovat.

  1. současná možnost, kdy si klient spravuje anglické i české názvy sám. Má je jako součást lokalizačních souborů a používá pouze ty, které nějaký Kramerius opravu používá. Tohle je rychlé a efektivní, ale vynucuje správu sigel na klientovi a taky je potřeba vždy nahlašovat a aktualizovat při použití dosud nepoužité sigly.
  2. klient by sigly měl stále pod správou, ale předgeneroval by si všechny existující sigly a ty uložil mimo lokalizační soubory. V tomto případě by se nemusely dělat úpravy klienta pro každou další siglu (jen pro opravdu nově vzniklé sigly). Musel by se ale změnit způsob načítání a pro každý jazyk by si klient stáhnout cca 350 kB soubor.
  3. použít externí službu - knihovny.cz, Registr Krameriů, ... které by pro siglu/sigly vrátila lokalizovaný název.

Minimálně bychom mohli udělat konverzi 1 --> 2

zabak commented 2 years ago

API pro adresář knihoven a další věci je na http://www.knihovny.cz/api

Dotaz na získání názvu knihovny přes siglu: https://www.knihovny.cz/api/v1/libraries/search?lookfor=boa001&type=Sigla&field%5B%5D=title&sort=relevance&page=1&limit=20&prettyPrint=false&lng=cs

Pokud se stáhne celý záznam, lze z něj u většiny knihoven vyparsovat i anglický název.

zabak commented 2 years ago

Doplnili jsme do API pro adresář knihoven aby to vracelo defaultně i anglický název knihovny. Lze volat např. takto: https://www.knihovny.cz/api/v1/libraries/search?lookfor=BOA001&type=Sigla&field%5B%5D=id&field%5B%5D=title&field%5B%5D=alternativeTitles&field%5B%5D=address&field%5B%5D=town&sort=relevance.

Kompletní dokumentace API i s klikátkem na hraní je tady: https://www.knihovny.cz/api

zabak commented 2 years ago

Vzhledem k použití Krameria v zahraničí bude nutné vždy držet i lokální seznam institucí. Seznam by pro přehlednost mohl být vyčleněný ze stávajících do samostatných jazykových souborů.

honza-rychtar commented 2 years ago

Tady jen dodám, že do location -> physicalLocation není nutné zadávat siglu ani jiný národní identifikátor. Je možné to vepsat normálně textem. V Krameriovi Difmoe je místo uložení v různých státech střední a východní Evropy a v datech mají přímo názvy. Pak to funguje podobně jako třeba klíčová slova nebo geografické názvy, které jsou taky uvedeny názvy a ne identifikátory. Klient se pro místa uložení pokouší o překlady, ale pokud obsahem není sigla, pak použije přímo zadanou hodnotu.

Nevýhoda je, že pak nefungují překlady do různých jazyků. Ale řešení je to funkční a není tak nezbytně nutné pro každý stát držet identifikátory s lokálními názvy - což se nám mimochodem špatně daří i případě ČR s doplňování nových sigel a jejich překladů pouze do češtiny a angličtiny.

vjirousek commented 2 years ago

Tady jen dodám, že do location -> physicalLocation není nutné zadávat siglu ani jiný národní identifikátor. Je možné to vepsat normálně textem. V Krameriovi Difmoe je místo uložení v různých státech střední a východní Evropy a v datech mají přímo názvy. Pak to funguje podobně jako třeba klíčová slova nebo geografické názvy, které jsou taky uvedeny názvy a ne identifikátory. Klient se pro místa uložení pokouší o překlady, ale pokud obsahem není sigla, pak použije přímo zadanou hodnotu.

Nevýhoda je, že pak nefungují překlady do různých jazyků. Ale řešení je to funkční a není tak nezbytně nutné pro každý stát držet identifikátory s lokálními názvy - což se nám mimochodem špatně daří i případě ČR s doplňování nových sigel a jejich překladů pouze do češtiny a angličtiny.

NDK standardy aktuální pracují pouze se siglou. Souhlasím s potřebou rozšíření, potřebujeme ale určit vhodné kontrolované slovníky pro zajištění jednodného zápisu názvů vlastníků (místa uložení). Nápady uvítám.

kerschfilip commented 1 year ago

Prosím přidat do klienta sigly:

Děkuju!

honza-rychtar commented 1 year ago

@kerschfilip přidáno ve verzi 2.5.0

annie-cz commented 9 months ago

Můžeme zavřít? :) @kerschfilip

luckajirku commented 9 months ago

Jako proč tohle issue pořád chce někdo zavírat:)? Pokud platí, že je potřeba to držet v extra seznamu, tak potřebujeme místo, kam psát požadavky na přidání nově digitalizovaných knihoven. Ty knihovny budou postupně přibývat. My třeba teď aktuálně potřebujeme přidat: TUG001 = Městská knihovna Trutnov (nebo pokud tam má být ten oficiální dlouhý tak Městská knihovna s regionálními funkcemi v Trutnově, ale radši bych dala tu zkrácenou verzi)

zabak commented 9 months ago

@honza-rychtar vracím se k tomu dotazu na API knihovny.cz:

https://www.knihovny.cz/api/v1/libraries/search?lookfor=BOA001&type=sigla&field%5B%5D=title&field%5B%5D=alternativeTitles&sort=relevance&page=1&limit=1&prettyPrint=false&lng=cs

vrátí

{ "resultCount": 1, "records": [ { "title": "Moravská zemská knihovna v Brně", "alternativeTitles": [ "Moravian Library" ] } ], "status": "OK" }

Co se rychlosti týče, nevím jestli by byl dobrý nápad aby se každý klient pokaždé ptal na 40+ sigel. Muselo by to fungovat jen jako záchrana když by to v datech našlo siglu která není v konfigu. To by ale bylo asi lepší dělat jako proces třeba na serveru registru Krameriů, který by se ptal registrovaných krameriů třeba jednou za týden na identifikátory institucí, když by to byla sigla, tak by si stáhl názvy z knihoven.cz a ty nové názvy by jako pull request vložil na github. Napadá tě lepší řešení?

@luckajirku podle mého názoru by bylo lepší, než se to vyřeší globálně, na ty jednotlivé požadavky zakládat nová issue která se dají zavřít. Takhle není jasné, který požadavek je už splněný, který ještě ne.

honza-rychtar commented 9 months ago

@zabak nebo použít ten tvůj dotaz, ale přes všechny knihovny https://www.knihovny.cz/api/v1/libraries/search?field[]=sigla&field[]=title&field[]=alternativeTitles&limit=1000

{
 "resultCount": 6474,
 "records": [
 {
  "sigla": "ABA001",
  "title": "Národní knihovna České republiky - Knihovní fondy a služby - Odbor služeb",
  "alternativeTitles": [
    "National Library of the Czech Republic - Library Collection and Services - Public Services Division"
  ]
 },
 {
  "sigla": "ABA018",
  "title": "Národní knihovna České republiky - Historické a hudební fondy - Oddělení rukopisů a starých tisků",
    "alternativeTitles": []
 },
...

Max. limit je 1000, ale knihoven je přes 6000. Tak buď zvětšit max. limit nebo tam udělat nějaký rozumný předvýběr. Tohle by si klient načetl při spuštění a měl vždy všechna aktuální data.

zabak commented 9 months ago

Nebylo by lepší, kdyby to byla funkce jádra? Tj. jádro ví, jaké všechny sigly má v danou chvíli v solru, takže by se třeba jednou za den podívalo, jestli má ke každému identifikátoru český a anglický název. Dotáhlo by chybějící a případně umožnilo přidat názvy k těm co nejsou v adresáři (například knihovny z EOD) nebo i opravit (zkrátit, zjednodušit) názvy knihoven které v adresáři byly.

xmorave2 commented 9 months ago

To volání API má ale jeden problém: jsou to názvy z adresáře knihoven (báze ADR v NK) a některé knihovny nemají názvy použitelné pro jejich odlišení od jiných knihoven. Například se jmenují pouze "Městská knihovna".

V místech kde potřebujeme názvy knihoven zobrazit pro rozlišení uživatelem používáme vlastní překlady - vyráběné z větší části automaticky s drobnými ručními zásahy: https://github.com/moravianlibrary/Knihovny.cz/blob/master/local/base/languages/Sigla/cs.ini

Tyto překlady v tuto chvíli nejsou v API - i když by je bylo možné přidat kdyby bylo potřeba.

Zvyšovat limit nad 1000 učitě není v plánu. Pokud potřebujete všech cca 6500 záznamů je možné v api stránkovat.

zabak commented 7 months ago

Myslím, že nejlepší bude udělat z toho funkci jádra s možností přes admina doplňovat nové překlady. Hlavně proto, že sigla funguje jen pro české knihovny a jsou tam výše uvedené problémy s nejednoznačnými názvy knihoven. Bude to trochu výzva pro správu ČDK, kde by se to muselo zadávat duplicitně.

annie-cz commented 7 months ago

Jen tak pro ukázku, jak teď vypadají fasety, když si přepnu klienta (v tomto případě jde o data MZK) do angličtiny. V dalších jazycích, co nabízí klient jako volbu, jsou ty názvy knihoven vždy nezměněné, prostě česky. A něco z toho jsou teda jen sigly bez názvů ...

image

Je za mě otázka, jestli to řešit nějakou automatickou formou překladu a nebo z konfiguráku a část tam přidávat manuálně, protože ... to pak může vypadat i takto. V minulosti jsem koukala i na oficiální seznamy sigel s názvy knihoven v češtině vs angličtině a někde to byla dost katastrofa. Jestli by nebylo skoro lepší ty dva přístupy nějak nezkombinovat, typu že pokud daná instituce není v konfiguráku a nebo nemá ten název např. gramaticky správně bez překlepů (jde to vůbec nějak automatizovaně řešit?), tak se název překládá automaticky do vybraného jazyka.

Ale je to jen k zamyšlení, sama na to jasný názor nemám.