Closed motyc closed 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í...
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.
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á...
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í.
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.