Scott Tiger Tech Blog

Blog technologiczny firmy Scott Tiger S.A.

Archiwum: 'Bazy danych' Kategorie

Wikidata

Autor: Piotr Karpiuk o 27. marca 2017

Wikipedia jest popularnym repozytorium wiedzy, ale jest przeznaczona raczej dla ludzi niż do automatycznego przetwarzania przez komputery. Łatwo się o tym przekonać gdy staniemy np. przed zadaniem napisania programu który ma z Wikipedii wyciągnąć artykuły hasłowe poświęcone biografiom mężczyzn urodzonych w danym przedziale lat. Pewną namiastką danych ustrukturyzowanych w artykule hasłowym jest tzw. infoboks, ale prezentuje on ograniczony zakres informacji (np. w infoboksie Polityk nie ma własności określającej płeć), wartości własności w praktyce są wypełniane w sposób mało ustandaryzowany (np. data urodzenia może być zapisana na wiele sposobów), a sam infoboks może być trudny do wyodrębnienia z wikitekstu artykułu hasłowego a tym bardziej sparsowania.

Gromadzenie danych w sposób ustrukturyzowany leży również w interesie samych twórców Wikipedii: jeśli informacje o datach urodzin polityków zostaną zapisane w sposób ujednolicony w jakiejś bazie danych, to poszczególne wersje językowe Wikipedii (a jest ich przeszło 300) będą mogły pobierać te informacje z centralnej bazy, a nie zmuszać 300 ludzi do ręcznego wklepywania tej daty w artykułach hasłowych. Gdy polityk umrze, potencjalnie wystarczy wprowadzić datę śmierci w jednym centralnym repozytorium, aby pojawiła się we wszystkich wersjach językowych Wikipedii itd.

Wikidata to darmowa, społecznościowa, wielojęzyczna, ustrukturyzowana i powiązana z innymi projektami Wikimedia (w szczególności: z Wikipedią) baza danych połączonych ze sobą rekordów (graf). Najprościej spojrzeć na nią w ten sposób, że docelowo każdemu artykułowi hasłowemu Wikipedii odpowiadać będzie dokładnie jeden ustrukturyzowany rekord Wikidata (tzw. element, ang. item), przy czym np. dla rekordu reprezentującego osobę będą tam własności takie jak imię, nazwisko, płeć, data i miejsce urodzin/śmierci, narodowość, wyznanie, zawód, dzieci, zdjęcie, a także linki do odpowiedniego artykułu Wikipedii (do poszczególnych wersji językowych). O ile jest wiele wersji językowych Wikipedii, to w Wikidata istnieje tylko jeden rekord dla danego bytu, choć tytuł rekordu (np. imię i nazwisko w przypadku osoby) jest przechowywany w wielu językach. Dane w bazie Wikidata tworzą graf ponieważ wartościami własności elementu mogą być inne elementy, np. element Polska ma własność „stolica”, którego wartością jest element Warszawa, wartością własności „dziecko” elementu Krystyna Loska jest element Grażyna Torbicka.

Docelowo Wikidata ma być bazą wiedzy ogólnego przeznaczenia, podobnie jak np. Google Knowledge Graph. Wikidata wystartowała w 2012 roku z inicjatywy m.in. Google’a, a jest nadzorowana przez niemiecki oddział Wikimedia. Choć korzyści projektu dla Wikipedii są oczywiste, pojawiają się podejrzenia że Wikidata ma służyć głównie specjalistom od PR i właścicielom wyszukiwarek internetowych. Obecnie serwis Wikidata zawiera ok. 29 mln elementów i szybko zdobywa kluczową pozycję w branży Semantic Web, skutecznie kanibalizując takie serwisy jak Freebase.org czy DBpedia.

Czytaj więcej »

Napisany w Bazy danych | Brak komentarzy »

Dane Wikipedii i ich przetwarzanie

Autor: Piotr Karpiuk o 15. marca 2017

API

Każda wersja językowa dowolnego projektu Wikimedia Foundation (w szczególności: polska Wikipedia) oferuje API. O ile nie chcemy modyfikować zawartości serwisu, nie musimy się martwić o zakładanie konta i tokeny — wystarczy odpowiednio skonstruować URL zapytania aby otrzymać interesujący JSON.

Poniżej prezentuję swoistą „księgę czarów” — listę ciekawszych wywołań API. Co sprytniejszy Czytelnik może sobie manipulować URLami aby dopasować je do swoich potrzeb, a po prawej stronie każdego wpisu jest link do dokumentacji użytego zaklęcia, gdzie można poznać inne parametry zapytania.

Artykuł hasłowy na różne sposoby
Wikikod artykułu hasłowego „Warszawa” doc
HTML artykułu hasłowego „Warszawa”
Bez arkuszy stylów, bocznego paska, kontrolki wyszukiwania itp.
doc
HTML artykułu hasłowego „Warszawa”
j.w., ale zachowana struktura dokumentu i dodane pewne informacje semantyczne; może być przydatne przy parsowaniu infoboksów
doc
HTML artykułu „Warszawa”, wersja mobilna doc
Wersja PDF artykułu hasłowego „Warszawa” doc
JSON artykułu hasłowego „Piotr Abelard”
oprócz klucza text z kodem HTML artykułu jest też categories, langlinks, title, pageid, links, templates, images, externallinks, sections itp.
doc
Ekstrakcja fragmentu artykułu
Najlepiej pasujący obrazek do hasła „Bydgoszcz” doc
Podsumowanie artykułu hasłowego „Warszawa”
jednowierszowy TXT, akapit TXT i HTML, zdjęcie, współrzędne GPS, data ostatniej modyfikacji
doc
Jednozdaniowe podsumowanie artykułu hasłowego „Warszawa” doc
Ograniczony do 175 znaków ekstrakt z artykułu hasłowego „Warszawa” doc
Powiązania
Linki z artykułu hasłowego „Albert Einstein” do innych haseł doc
Wszystkie przekierowania (aliasy) do hasła „Maria Skłodowska-Curie” doc
Tłumaczenia hasła „Warszawa” na inne języki doc
5 artykułów powiązanych (ang. related) z artykułem hasłowym „Warszawa” doc
100 haseł semantycznie podobnych (ang. similar) do hasła „Polska”
Inna technika, wykorzystuje ElasticSearch
doc
Podkategorie kategorii „Fizyka” doc
Hasła kategorii „Fizyka”
Aby wyciągnąć kolejnymi zapytaniami wszystkie wyniki, trzeba obsłużyć klucz continue w wynikowym JSONie
doc
Które strony mają linki do artykułu hasłowego „Warszawa” doc
Które artykuły hasłowe zawierają link do „blog.tiger.com.pl” doc
Do jakich obiektów z WikiData odwołuje się artykuł hasłowy „Warszawa” doc
Które artykuły hasłowe wykorzystują encję Q444 (Lech Wałęsa) portalu WikiData doc
Wyszukiwanie haseł
Wyszukiwanie artykułu hasłowego: „Einstein”
W tytule (domyślnie), w treści, rozmyte w tytule
doc
Wyszukiwanie prefiksowe artykułu hasłowego: „Alb” doc
Lista szybkich podpowiedzi dla łańcucha „Warsz”
generowana np. po wprowadzeniu kolejnej litery w polu wyszukiwania hasła
doc
Współrzędne GPS doc
Współrzędne GPS dla hasła „Warszawa” doc
Hasła obiektów w promieniu 10km od punktu o współrzędnych 52.2760,20.9679 doc
Statystyki doc
1000 najpopularniejszych haseł na plwiki w dniu 2017-07-11
Można rozróżnić wejścia mobilne/desktopowe
doc
Dla artykułu „Warszawa”: liczba odwiedzin z podziałem na miesiące w okresie od 2008-01-01 do 2016-12-31 doc
Liczba odwiedzin dla całej plwiki w dniu 2017-07-12 w godz. 06-10
Można z podziałem na miesiące, dni lub godziny
doc
Liczba urządzeń odwiedzających plwiki w dniu 2017-07-12 w godz. 06-10 doc
Statystyki odwiedzin artykułu hasłowego „Warszawa” codziennie przez ostatnich 60 dni doc
100 Najpopularniejszych hasłeł w poprzednim dniu doc
Liczba odwiedzin polskiej Wikipedii codziennie przez ostatnich 60 dni
Można też użyć metryki liczby unikalnych użytkowników
doc
Metadane
Zbiorcze podsumowanie metadanych wszystkich wersji językowych wszystkich projektów Wikimedia Foundation doc
Opis wszystkich przestrzeni nazw polskiej Wikipedii doc
Opis parametrów modułów i submodułów doc
Lista wszystkich możliwych nazw właściwości artykułów hasłowych doc
Inne
Ostatnie zmiany na plwiki doc
Lista pierwszych 500 kategorii
Aby wyciągnąć kolejnymi zapytaniami wszystkie kategorie, trzeba obsłużyć klucz continue w wynikowym JSONie
doc
Lista pierwszych 500 haseł zaczynających się prefiksem „Polska „ doc
j.w., ale dla każdego hasła dodatkowo wymienione są ewentualne prowadzące do niego przekierowania doc
Lista pierwszych 500 kategorii
Dla każdej informacja o liczbie podkategorii i artykułów hasłowych
doc
Lista wszystkich haseł ujednoznaczniających doc
Lista wszystkich haseł zabezpieczonych przed edycją doc
Lista 15 losowo wygenerowanych haseł doc
Lista 15 najnowszych zweryfikowanych haseł doc
Lista 15 niezweryfikowanych haseł doc

Czytaj więcej »

Tags: , , ,
Napisany w Bazy danych | Brak komentarzy »

Google Suggest

Autor: Piotr Karpiuk o 19. maja 2016

Gdy wpisujemy jakąś frazę w wyszukiwarce Google, narzędzie stara się nam pomóc generując na bieżąco podpowiedzi. Pod spodem wykonuje się zlecenie HTTP GET w rodzaju:

http://suggestqueries.google.com/complete/search?client=firefox&hl=pl&q=fraza

gdzie fraza jest prefiksem naszego zapytania.
Przykładowo, dla frazy „warsza” otrzymamy wynik postaci:

["warsza",["warszawa","warszawa pogoda","warszawski koks","warszawianka","warszawa wschodnia",
"warszawa dzielnice","warszawa mapa","warszawska lala","warszawa modlin","warszawa centralna"]]

Wygląda na to, że nie ma żadnych ograniczeń na liczbę tego rodzaju wywołań, więc można łatwo wykorzystać ten mechanizm we własnej aplikacji webowej, albo pisać skrypty badające popularne zapytania na interesujący nas temat i wykonujące jakieś statystyki/raporty.
Przypuśćmy, że interesują mnie rozmaite rejestry (w znaczeniu: bazy danych) dostępne w internecie. Mogę się dowiedzieć, o jakie rejestry ludzie pytają badając możliwe autouzupełnienia dla frazy „rejestr xy” gdzie x i y to wszystkie możliwe kombinacje liter alfabetu. Poniżej raport, jaki w ten sposób otrzymałem.
Czytaj więcej »

Napisany w Bazy danych | 1 Komentarz »

OpenStreetMap: interaktywna mapa 3D

Autor: Piotr Karpiuk o 20. kwietnia 2016

Spośród obejrzanych różnych wizualizacji bazy danych OpenStreetMap, szczególne wrażenie zrobiła na mnie interaktywna wizualizacja 3D w przeglądarce wykonana przez firmę F4Map. Kliknij w poniższy obrazek, aby polatać sobie trochę nad Warszawą, lub innym wybranym przez siebie miejscem na świecie. Do poruszania się używamy klawiszy strzałek oraz PgUp/PgDown. Przeglądarka musi obsługiwać WebGL (większość już obsługuje).


Źródło: F4map.com

Napisany w Bazy danych, datavis, GIS, HTML5, WWW | Brak komentarzy »

Polski OpenStreetMap: struktura i zawartość

Autor: Piotr Karpiuk o 10. kwietnia 2016

OpenStreetMap to „wikipedia obiektów geograficznych” – baza praktycznych danych geograficznych rozwijana przez wolontariuszy na całym świecie, zbierających dane o swojej okolicy. Na pierwszy rzut oka OSM to po prostu mapa topograficzna, w dodatku niezbyt atrakcyjna w porównaniu z Google Maps czy Bing Maps. To jednak tylko złudzenie. OSM to baza danych, a mapa topograficzna jest tylko jedną z wielu możliwych wizualizacji, która – jak każda wizualizacja – uwypukla niektóre informacje pomijając inne.

Weźmy pod uwagę taki obiekt jak ławeczka w parku, pomijana na mapach topograficznych (nawet tych dokładnych). W OSM możemy się dowiedzieć czy ławeczka ma oparcie (znacznik backrest), ile osób może na niej usiąść (seats), z jakiego materiału jest wykonana (material), na jaki kolor jest pomalowana (colour), w którym kierunku jest skierowana (direction – azymut), czy jest zadaszona (covered), jaka firma się nią opiekuje (operator), a także zdjęcie (image), czy obok stoi kosz na śmieci (waste_basket), w którym roku została postawiona (start_date), itd.

Przykłady innych obiektów:

Żywopłot Wysokość (height), rodzaj liści (leaf_type), czy roślina całoroczna (leaf_cycle), jakiego rodzaju i gatunku (genus, species)
Schody Liczba schodków (step_count), czy ruchome (conveying), czy jest poręcz (handrail)
Winda Producent (brand), pojemność (capacity), czy towarowa (goods), czy wewnątrz budynku (indoor), między którymi piętrami (level, np. -1;0;1;2)
Droga Szerokość (width), liczba pasów (lanes), jakiego rodzaju nawierzchnia (surface), max. wysokość dla pojazdów (maxheight), czy jest chodnik i po której stronie (sidewalk, footway), czy jest oświetlenie (lit), stopień utwardzenia (tracktype), stopień spadku (incline), ograniczenia dostępu (access), czy mogą jeździć ciężarówki (hgv)
Toaleta czy publiczna (access), czy płatna (fee), w jakich godzinach czynna (opening_hours), czy mogą z niej korzystać kobiety/mężczyźni/niepełnosprawni (male, female, wheelchair), sposób spuszczania wody (toilets:disposal), czy jest woda pitna (drinking_water), czy jest miejsce do przewijania pieluch (diaper), czy jest papier toaletowy (toilets:paper_supplied), czy można umyć ręce (toilets:handwashing)
Kościół Religia i wyznanie (religion, denomination), godziny mszy (service_times), adres (addr:*), kontakt (phone, website), link do Wikipedii (wikipedia), data powstania (start_date), czy zabytek (historic), kolor dachu (roof:colour), wysokość (height), nazwisko architekta (architect)
Krawężnik Wysokość (czy można na niego wjechać samochodem, wózkiem inwalidzkim?)

Alternatywą dla mapy topograficznej są nietypowe mapy tematyczne. Można takie znaleźć na product.itoworld.com/map/main (np. które budynki mają w bazie przypisany adres, ulice z podziałem na ograniczenie prędkości itp.) Poniżej kilka przykładów z jeszcze innych źródeł:


Box Locator: biletomaty, skrzynki pocztowe, bankomaty, parkomaty, telefony, kontenery na śmieci

OpenCycleMap: ścieżki rowerowe

Lichtkarte: Oświetlenie ulic

osmtools.org/gniazda/bocian: Bocianie gniazda w Polsce

Czytaj więcej »

Tags:
Napisany w Bazy danych, datavis, GIS, HTML5, WWW | Brak komentarzy »