2 min read

Lwów i semantyczna Wikipedia

Fajne w semantycznych bazach danych jest to, że można w nich błyskawicznie zebrać dane, których zbieranie w inny sposób, zajęłoby sporo czasu. Jeśli do tego dodamy przydatne aplikacje w Wikidanych, wykorzystujące te dane, to mamy proste narzędzie do szybkiego robienia fajnych rzeczy.

Przekonałem się o tym dzisiaj, kiedy przeglądałem biogram mojej Mamy w Wikipedii. Pomyślałem, że dodam - ale do Wikidanych - cmentarz w którym jest Jej grób. Dlaczego? Bo im więcej informacji - nawet tak szczątkowych o danej osobie - tym więcej ktoś kiedyś dostanie danych. No bo weźmy taką sytuację: moja Mama urodziła się we Lwowie i ta informacja jest podana w Wikipedii. A ile osób, które mają w Wikipedii biogram, urodziło się we Lwowie?

To banalnie proste zapytanie w Wikidanych, które właściwie sprowadza się do właściwie jednej linijki kodu i kilku, które są w prawie każdym skrypcie. Całość poniżej:

SELECT ?osoba ?osobaLabel 
WHERE {
   
  ?osoba wdt:P19 wd:Q36036. # Miejsce urodzenia Lwów
  
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],pl". }

}

KLIKNIJ BY ZOBACZYC WYNIK DZIAŁANIA SKRYPTU

Efekt nie powala. Mamy tabelę z identyfikatorem w Wikidanych oraz imię i nazwisko jednej z 2463 osób. Najpierw wyciągniemy ilustracje osoby oraz krótki opis kim była. W tym wypadku to już nie jedna, ale kilka linijek kodu.

#defaultView:ImageGrid
SELECT ?osoba ?osobaLabel ?osobaDescription ?foto ?article 
WHERE {
  
  ?osoba wdt:P19 wd:Q36036. # Miejsce urodzenia Lwów
  
  OPTIONAL {?osoba wdt:P18 ?foto.} # Jeśli jest ilustracja przedstawiająca osobę to podaj url do niej
  OPTIONAL {
      ?article schema:about ?osoba . # pobierz krótki opis osoby
      ?article schema:inLanguage "pl" . # w języku polskim
      ?article schema:isPartOf <https://pl.wikipedia.org/> . # z polskiej Wikipedii
    }
 

  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}

OK, no i teraz lepiej. Mam nie tylko zdjęcie osoby, ale również krótki opis kim była i co ważne link do artykułu na Wikipedii. Dodatkowo wynik działania skryptu jest automatycznie wyświetlany w postaci ImageGrid - czyli dośc prostej, ale fajnej galerii zdjęć.

Pięć minut i mam kilka tysięcy osób, które urodziły się we Lwowie (uwage, to nie są tylko Polacy :-)), mogę ich sobie przeglądać zdjęcie po zdjęciu i jak mnie coś zainteresuje, to kliknąć w artykuł.

Fajne, c’nie?