>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Blockchain Bezpieczeństwo
HTML

Jak działa zaplecze Schema.org i dlaczego programiści powinni się mu przyjrzeć

6150 gwiazdki

Czy zastanawiałeś się kiedyś, dlaczego Google wie, że strona zawiera przepis na szarlotkę, a nie tylko tekst z listą składników? Albo jak klienty pocztowe wyciągają przycisk „Potwierdź rezerwację" bezpośrednio do listy wiadomości? Odpowiedź jest zawsze ta sama — Schema.org. Ale za znajomymi tagami ItemProp i JSON-LD kryje się ogromne repozytorium GitHub, które działa według własnych, czasem bardzo dziwnych reguł.

Postanowiłem zajrzeć do kodu źródłowego tego projektu. Okazuje się, że to nie tylko zbiór dokumentacji, ale pełnoprawne środowisko programistyczne z własną logiką, testami, a nawet filozofią „użytecznego chaosu".

Czym ten projekt tak naprawdę jest

Zazwyczaj postrzegamy Schema.org jako dokumentację. Wchodzisz tam, kopiujesz potrzebny typ danych, wklejasz do kodu. Ale repozytorium schemaorg/schemaorg to źródło, z którego zbudowana jest sama strona. Zawiera wszystkie definicje encji, setki przykładów znaczników i oprogramowanie w Pythonie, które przekształca rozproszone pliki w strukturę zrozumiałą dla wyszukiwarek i przeglądarek.

Projekt jest nadzorowany przez W3C, a dyskusje prowadzą przedstawiciele Google, Microsoft, Yahoo i Pinterest. To jeden z tych rzadkich przypadków, gdy giganci branżowi uzgodnili wspólny język, żeby nie musieć wymyślać koła na każdym rogu internetu.

To nie tylko teksty w środku

Jeśli zajrzysz do folderu data/, zobaczysz, jak standard tak naprawdę „oddycha". Podstawowe schematy są przechowywane w formacie Turtle (.ttl). To podzbiór RDF, który wygląda jak zbiór stwierdzeń o świecie.

Ciekawe jest to, że deweloperzy świadomie odrzucili „piękną" architekturę. W README wyraźnie piszą: nie dążymy do ontologicznej czystości ani elegancji. Jeśli wybór jest między ścisłą logiką a ułatwieniem webmasterom implementacji, wybiorą prostotę. Na przykład mogą dodać typ danych bez właściwości tylko dla wygody znaczników, choć dla fanów formalnego modelowania brzmi to jak herezja.

Główne cechy repozytorium

  1. Pragmatyczna ewolucja. Zespół projektu jest sceptyczny wobec gruntownych przeróbek. Jeśli zaproponujesz przebudowę hierarchii zdarzeń, bo „tak jest bardziej poprawne", najprawdopodobniej grzecznie wysłuchają i zamkną ticket. Zależy im na tym, czy zmiany są faktycznie wykorzystywane przez głównych konsumentów danych (wyszukiwarki lub usługi chmurowe).
  2. Testy lokalne. W repozytorium znajduje się oprogramowanie, które pozwala wdrożyć kopię Schema.org na swojej maszynie. Przydaje się to, gdy chcesz zaproponować nowy typ danych i zobaczyć, jak wpasowuje się w ogólną strukturę.
  3. Przykłady w plikach tekstowych. Ogromna część wartości projektu tkwi w plikach examples.txt. Zbierają się tam tysiące przypadków: od tego, jak oznaczać rozkłady jazdy autobusów, po opisywanie złożonych procedur medycznych.

Strona techniczna

Projekt działa na Pythonie (wymagana wersja 3.6+). Aby uruchomić lokalną wersję strony, potrzebujesz Linuksa lub WSL2, jeśli pracujesz na Windowsie.

Proces wygląda mniej więcej tak:

  • Zainstaluj zależności.
  • Uruchom skrypty budowania.
  • Otrzymaj lokalny serwer na porcie 80.

Całe oprogramowanie jest dostosowane do tworzenia statycznej kopii strony. Infrastruktura wydaje się nieco konserwatywna (używa Google App Engine, konkretnych skryptów Pythona), ale działa od lat i przetwarza kolosalną ilość edycji od społeczności.

Dlaczego programista powinien zagłębić się w to

Może się wydawać niepotrzebne klonowanie repozytorium, gdy jest wygodna strona internetowa. Jest kilka scenariuszy, w których naprawdę pomaga.

Po pierwsze, gdy standardowa dokumentacja wydaje się niekompletna. W kodzie źródłowym w folderze data/ często można znaleźć komentarze i szkice (w sekcji Pending), które jeszcze nie trafiły na główną stronę, ale są już wdrażane przez głównych graczy.

Po drugie, jeśli budujesz własne narzędzie do parsowania lub walidacji danych. Użycie schema.ttl jako głównego źródła jest znacznie bardziej niezawodne niż próba scrapowania stron internetowych. To czyste dane, gotowe do przetwarzania maszynowego.

Po trzecie, to świetna szkoła zarządzania ogromnym projektem open source, gdzie ścierają się interesy korporacji i zwykłych deweloperów. Zerknij na Issue #1 — toczy się tam wieloletnie planowanie wydań, a to przykład tego, jak utrzymać chaos pod kontrolą.

Kto powinien zasubskrybować aktualizacje

Jeśli pracujesz w SEO, tworzysz wyszukiwarki lub po prostu chcesz, żeby Twoje dane w internecie były ustrukturyzowane, to repozytorium powinno znaleźć się w Twoich zakładkach.

Nie spodziewaj się tutaj wymyślnych frameworków ani idealnego kodu. Ten projekt dotyczy treści, uzgodnień i pragmatyzmu. Czasem warto zobaczyć, że nawet światowe standardy są budowane nie na doskonałych wzorach, lecz na kompromisach i realnym doświadczeniu milionów ludzi.

Żeby zacząć, po prostu zajrzyj do folderu data/examples.txt. Zaufaj mi, jest tam dużo interesujących rzeczy o tym, jak naprawdę powinien wyglądać ustrukturyzowany internet.

Powiązane projekty