Re: Identyfikatory wandejskie w nowej odsłonie


Polyna <polyna@...>
 

W dniu 15.03.2020 o 18:59, Alojzy Pupka pisze:
1) starych identyfikatorów w zasadzie NIE BYŁO do dziś, teraz są i są lepsiejsze
I nie byłoby ich nadal, gdyby nie:

1. To, że czytałam na temat standardu WebFinger, a także, co ważniejsze, jego krytykę.
2. Moje eksperymenty z publikacją danych połączonych, o czym pisałam w jednym z poprzednich postów.

Początkowo, chciałam zaimplementować endpoint WebFinger na serwerze wandejskim, z identyfikatorami konta (!) w postaci <acct:B0123@...>… po czym go usunąć po jakimś miesiącu, gdyż nie miałby on żadnego praktycznego zastosowania.

Ale oczywiście identyfikator w postaci typu <acct:B0123@...> ma swoje problemy. Najważniejszym jest chyba to, że wygląda on jak adres e-mail, a już szczególnie jeżeli zgodnie z powszechną praktyką pominie się identyfikator protokołu (acct:), ale adresem e-mail w żaden sposób nie jest. Dlatego też jest mylący, i ktoś mógłby próbować wysłać e-mail pod adres <B0123@...> w przekonaniu, że wiadomość dotrze do pożądanego adresata. Drugim jest to, że nie jest w żaden sposób rozwiązywalny – nie jest powiązany z żadnym adresem URL, nawet jego część po ‘@’ nie musi być w żaden sposób powiązana z nazwą hosta gdzie można znaleźć informacje na temat reprezentowanego przezeń zasobu. Srsly, oto co mówi nawet na ten temat RFC 7565 <URL:https://tools.ietf.org/html/rfc7565>:

Because an 'acct' URI enables abstract identification only and not
interaction, this specification provides no method for dereferencing
an 'acct' URI on its own
Oraz:

Any protocol that uses 'acct' URIs is responsible for specifying how
an 'acct' URI is employed in the context of that protocol (in
particular, how it is dereferenced or resolved; see [RFC3986]).
Dlatego też sensowniejszym identyfikatorami czegokolwiek są IRI, jak to od ponad 20 lat postulują osoby zajmujące się danymi połączonymi i siecią semantyczną. Na identyfikatorze typu <https://wandystan.eu/B123> można dokonać zapytania HTTP, które powie, gdzie można znaleźć informacje na temat reprezentowanego zasobu:

$ curl -v --http1.1 https://wandystan.eu/B123
(…)
GET /B123 HTTP/1.1
Host: wandystan.eu
(…)
< HTTP/1.1 303 See Other
< Location: https://wandystan.eu/w/profile,123

No i tutaj przechodzimy do części związanej z danymi połączonymi.

W modelu danych połączonych, identyfikatorami czegokolwiek są IRI (umiędzynarodowione identyfikatory zasobu). Czegokolwiek, tj. nie tylko strony internetowej, ale też fizycznej osoby, fizycznie istniejącego miejsca (np. <http://sws.geonames.org/3020251/>), czy też abstrakcyjnego konceptu, np. języka (np. <http://id.loc.gov/vocabulary/iso639-2/alb>). No i też potrzebowałam takiego identyfikatora osoby dla zidentyfikowania… siebie, jako autorki ontologii określającej znaczenie własności używanych do publikacji danych statystycznych dotyczących LDMW <https://wandystan.eu/statistics/property/>. Relację oznaczającą „Polyna stworzyła ontologię danych statystycznych LDMW” można zapisać za pomocą następującej trójki:

<https://wandystan.eu/statistics/property/> <http://purl.org/dc/terms/creator> <https://wandystan.eu/B196> .

Gdzie:

* <https://wandystan.eu/statistics/property/> (podmiot) to identyfikator ontologii;
* <http://purl.org/dc/terms/creator> (orzeczenie) to identyfikator własności oznaczającej „[podmiot] został stworzony przez [przedmiot]”;
* <https://wandystan.eu/B196> (przedmiot) to identyfikator mnie.

Identyfikatorem nie mogło być <https://wandystan.eu/w/profile,196>, gdyż ja nie jestem tym samym, co strona jedynie *opisująca* mnie (jak się nazywam, jaki jest mój adres e-mail, itd.). Strona jest zupełnie czymś innym niż ja.

Początkowo, identyfikatorem było <https://wandystan.eu/w/profile,196#person>, ale potem zdałam sobie sprawę, że ja nie jestem także fragmentem strony. Później zamieniłam to na <https://wandystan.eu/w/person/196>, ale w żaden sposób nie zostało to wyeksponowane dla osób przeglądającej mój profil, więc nikt nie miał jak wiedzieć, że nawet istnieje coś takiego jak identyfikator mieszkańca w postaci adresu internetowego.

No i jakiś czas temu, leżąc w łóżku (drugie miejsce po toalecie w którym przychodzi najwięcej pomysłów) i przeglądając informacje na temat WebFinger, pomyślałam: a jakby tak wyeksponować identyfikatory mieszkańców w postaci nawiązującej do identyfikatorów typu B0123 ze starego systemu? Więc kilka minut zmieniania paru rzeczy na serwerze, i gotowe – identyfikatory w pięknej, najkrótszej możliwej postaci:

https://wandystan.eu/B196

Tutaj chyba jeszcze powinnam napisać coś na temat różnicy między identyfikatorami przedmiotów (osób, rzeczy, konceptów, itp.), a identyfikatorami dokumentów _na temat_ tych przedmiotów, ale że też mi się nie chce, pozostawię tylko linka, gdzie możecie o tym sobie przeczytać:

https://www.w3.org/TR/cooluris/

3) brak zer wiodących nie oznacza, że sobie nie możemy tych zer używać
jeśli nam się tak podoba – dla Towarzyszki zarówno kanoniczny
identyfikator https://wandystan.eu/B44 jak i odnośnik
https://wandystan.eu/B0044 zaprowadzą w to samo miejsce, ba, nawet
https://wandystan.eu/B0000000044 – jeśli tak strasznie kochacie zera
wiodące...
Ano zaprowadzą. Co więcej, każdy z nich wysyła odpowiedni nagłówek wskazujący kanoniczny adres:

$ curl -I https://wandystan.eu/B0000000044
(…)
link: </B44>; rel="canonical"

Choć oczywiście nic o tym nie pisałam, gdyż uważam, że jeżeli coś jest niezalecane, lepiej o tym w ogóle nie pisać, aby nie mylić przypadkiem ludzi.

--
Paulina Laura Emilia

Join wandystan@wandystan.groups.io to automatically receive all group messages.