ARUP-CAS / aiscr-dapro

OAI-PMH Data Provider pro AMČR
https://api.aiscr.cz/
GNU General Public License v3.0
2 stars 0 forks source link

Liší se identifier v dílčích formátech #29

Closed motyc closed 5 years ago

motyc commented 5 years ago

1) oai_rdf - nezohledňuje se URL serveru (je tam vždy: https://api.aiscr.cz/id/...)

2) oai_amcr a oai_dc - zohledňuje se výchozí URL serveru (vždy s https://api-test.aiscr.cz/...)

Sjednotit ve variantě 2.

vbar commented 5 years ago

To se dá udělat, ovšem rozejde se tím OAI-PMH identifikátor v headeru a RDF identifikátor v metadatech - vpodstatě je to ten problém o kterém jsme se bavili v #97... Případně by se dal změnit i mapping, aby na různých serverech produkoval identifikátory v různých namespacech, ale podle mě by namespacy neměly být tak variabilní...

motyc commented 5 years ago

No, já to beru z nějaké vnitřní logiky věci. Chápu to tak, že co namespace, to datový zdroj. Vzhledem k tomu, že záznam na produkci i testu může mít stejné ID a zcela odlišný obsah, tak mi přijde nesprávné mít stejnou persistentní URI, ze které nejde takové záznamy odlišit. Je jasné, že test je jen interní, přesto se nám tohle míchání hrušek s jablky v minulosti už neosvědčilo.

Nemyslím, že by se nutně musel měnit mapping jako takový, jen by se musel obsah atributu <namespace uri="https://api.aiscr.cz/" prefix="aiscr-api"/> při vstupu do transformace automaticky upravit podle aktuálního serveru.

vbar commented 5 years ago

No já bych chápal namespace abstraktněji než datový zdroj - spíš jako "mechanismus k zamezení kolizím mezi jmény z různých slovníků" (podle https://www.w3.org/TR/xml-names/ ). Záznam se stejným ID samozřejmě může mít v různých databázích různý obsah, ale to je jen proto že ty databáze nejsou synchronizované - identifikátor samotný je globální a pojmenovává stále ten samý resource. I když má formát HTTP URL, nepotřebujeme ho ani resolvovat - https://api.aiscr.cz/id/C-201800019 identifikuje konkrétní projekt (pro OAI-PMH dotazy, RDF tvrzení apod.) i když to URL není dostupné...

Na druhé straně interní identifikátory samozřejmě nemusejí být globální, a pokud se pro testování neosvědčily, můžeme mít mapping do různých namespace na různých instalacích - úprava mappingu by neměla být tak složitá...

motyc commented 5 years ago

Hovořil jsem o tom teď s @pbartosova a vysvětlí Vám, o co mi hlavně jde. Myslím, že to lze poměrně elegantně vyřešit a bude to bezpečnější do budoucna, abychom spolehlivě odlišili zcela nesouvisející záznamy z různých serverů. Každopádně souhlasím, že bychom měli zachovat shodu mezi <identifier> a rdf:about=. Ty důvody nejsou toliko vnější (uživatel se vždy dostane jen k produkci), ale vnitřní - bylo by pro nás do budoucna problematické testování.