Open krizovj opened 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ů.
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.
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.
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?
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.
Ještě prosím přidat ABA010 = Knihovna Národního muzea.
Přidal jsem sigly pro všechny Kramerie, tak aby mapovaly všechny názvy u procházení podle místa určení #133
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ě
Přidáno.
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
A za nás ještě TUE801 - Krkonošské muzeum ve Vrchlabí. Díky.
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.
Prosím za KNAV ještě přidat siglu ABE461 = Židovská obec v Praze - Knihovna. Děkujeme
Velice se omlouvám, ale ještě ABB083 = Ústav pro soudobé dějiny AV ČR, v. v. i. - Knihovna. Děkuji
Doplněno.
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?
@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.
Minimálně bychom mohli udělat konverzi 1 --> 2
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.
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
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ů.
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.
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 přidáno ve verzi 2.5.0
Můžeme zavřít? :) @kerschfilip
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)
@honza-rychtar vracím se k tomu dotazu na API knihovny.cz:
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.
@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.
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.
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.
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ě.
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ů ...
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.
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ě.