Narzędzia użytkownika

Narzędzia witryny


laboratorium-obda

Dostęp do danych poprzez ontologię

Instalacja -ontop-

Do celów ćwiczenia wykorzystamy pre-konfigurowaną kopię Protege 5 z repozytorium ontop. Pobierz najnowszą wersję ontop-protege-bundle-xxx.zip i rozpakuj.
Używając Linuxa możesz uruchomić pakiet za pomocą run.sh, a w Windowsie za pomocą run.bat.
Uwaga: w systemie Linux nie są wymagane uprawnienia administratora (są one jednak wymagane w systemie Windows).

Instalowanie bazy danych tutoriala

Dla celów ćwiczenia wykorzystamy przygotowany wstępnie serwer baz danych H2, który można pobrać tutaj. Kroki do wykonania są następujące:

  1. Pobierz prekonfigurowany serwer H2.
  2. Rozpakuj plik do dowolnego folderu, np. h2/.
  3. Wystartuj server za pomocą skryptu h2.sh lub h2.bat. W Windowsie, po prostu podwójnie kliknij h2.bat. W Linuxie wykonaj następujące kroki:
    1. Otwórz terminal
    2. Wykonaj polecenie cd H2_FOLDER gdzie H2_FOLDER to lokalizacja rozpakowanego pliku.
    3. Wykonaj polecenie sh h2.sh

W tym punkcie zostanie otwarte okno terminala i baza danych jest już uruchomiona. Możesz zaobserwować małą żółtą ikonkę na pasku zadań jak na poniższym zrzucie ekranu.

Możesz także przeglądać zawartość baz danych. Po gym jam serwer wystartuje, otworzy się okno przeglądarki gdzie możesz przejrzeć zawartość baza danych po podłączeniu się do nich. Wystarczy po prostu podmienić łańcuch połączenia. np. na taki jaki będziemy wykorzystywać w tutorialu:

jdbc:h2:tcp://localhost/./produkty;DATABASE_TO_UPPER=FALSE


Login to sa a hasło pozostaje puste.

Połączenie z bazą danych następuje po kliknięciu Połącz.

Ustawianie danych połączenia JDBC w Protege

Otwórz Panel Preference (Files > Preferences…) i przejdź do zakładki JDBC Drives.
Dodaj now pis:

  • dodaj opis, np. h2
  • org.h2.Driver
  • wskaż sterownik (h2-1.4.190.jar, który możesz odnaleźć w paczce z prekonfigurowaną bazą danych)

Składnia mapowań (odwzorowań) -ontop-

Model OBDA (Ontology-Based Data Access)

Głównym pojęciem dla narzędzia -ontop- jest model OBDA. Model OBDA to specyfikacja tego w jakiej relacji są dane w źródle danych w stosunku do słownictwa w ontologii OWL lub RDFS. Model OBDA składa się ze zbioru deklaracji źródeł danych oraz zbioru aksjomatów w postaci mapowań.

Deklaracja żródła danych wiąże źródło z „identyfikatorem”, tzn. URI, oraz ze zbiorem własności dostępowych (np. ULR JDBC, nazwa użytkownika, hasło, sterownik) umożliwiających systemowi nawiązanie połączenia ze źródłem.
Aksjomat mapujący może być widziany jako „reguła” wskazująca w jaki sposób skonstruować asercje w ABoxie (te dotyczące instacji) lub trójki RDF mając do dyspozycji dane pochodzące z zapytania SQL. Dlatego też aksjomat mapujący składa się z:

  • zapytania źródłowego, zapytania SQL do źródła danych,
  • zapytania docelowego, szablonu asercji do ABoxa lub trójek RDF, które mają zostać skonstruowane z wykorzystaniem wyników zapytania SQL.

-ontop-

Źródło danych

-ontop- pozwala na użycie jednego źródła danych w postaci bazy danych.

Aksjomaty mapujące

Aksjomat mapujący zawiera trzy pola:

  • mappingId, dowolny łańcuch znakowy identyfikujący aksjomat,
  • source, dowolne zapytanie SQL do bazy danych,
  • target, szablon trójek ze zmiennymi odnoszącymi się do kolumn występujących w zapytaniub źródłowym.

Np. poprawne mapowanie -ontop- może mieć następującą formę:

mappingId     Baza produktów
source        SELECT id, nazwa FROM produkt
target        <http://semantic.cs.put.poznan.pl/ontologie/pizza.owl#PID_{id}> rdf:type :Produkt; :nazwa {nazwa} .

W tym przykładzie mamy dwa typy zmiennych: zmienna dotycząca literału oraz zmienna związana z URI.
Trójki w szablonie zapisywane są w formacie turtle a każdy wzorzec trójkowy musi zakończyć się spacją i kropką.

Produkty - tutorial

Baza danych

Baza danych „produkty”, której użyjemy w tutorialu jest zobrazowana na poniższym obrazku.

Ontologia

Ontologia, której użyjemy to ontologia „pizza”, którą tworzyliśmy na jednych z poprzednich laboratoriów.

Definicja źródła danych

Wykonaj następujące kroki:

  • wybierz Window→Views→ontop views→Datasource editor
  • wpisz dane połączenia:

„Produkty” jako ID źródła danych.
Parametry JDBC:

Connection URL: jdbc:h2:tcp://localhost/./produkty;DATABASE_TO_UPPER=FALSE
Database Username: sa
Database Password: (puste)
Driver class: org.h2.Driver

Tworzenie nowych mapowań

Wybierz zakładkę „ontop Mappings”, przejdź do „Mappings Manager” i wybierz zdefiniowane właśnie żródło danych. Kliknij przycisk „Create”. Otworzy się nowe okno dialogowe. Wpisz następujący graf trójkowy w polu Triple Template:

 :Pizza-{id} a :Pizza .

Następnie wprowadź następujące zapytanie SQL w polu źródła danych (SQL Query), które zwróci wszystkie id produktów z tabeli tb_produkt o typie Pizza.

SELECT "id" FROM "tb_produkt" where typ='Pizza'

Możesz sprawdzić zwrócone dane za pomocą przycisku Test SQL Query.

Wykonywanie zapytań SPARQL

Plugin -ontopPro- używa silnika Quest do odpowiadania na zapytania SPARQL do modeli OBDA (tzn.: ontologii, danych źródłowych i asercji mapujących).

Wykonaj nastepujące kroki:

  • Otwórz panel preferencji Protege: File > Preferences…
  • wybierz zakładkę Ontop Reasoner
  • wybierz Virtual ABox mode (virtual RDF graph)

Teraz możemy wystartować silnik w następujący sposób:

  • wybierz Reasoner z menu Protege i wybierz Ontop 1.18.0
  • wybierz Start reasoner

Przejdź do Window→Views→onto views→ontop query editor żeby utworzyć nowe zapytanie:

  • kliknij Attach Prefixes
  • wybierz prefiksy : i rdf, kliknij Accept
  • wpisz tekst zapytania
select distinct ?x where {?x rdf:type :Pizza}

Kliknij Execute żeby zwrócić wynik

laboratorium-obda.txt · ostatnio zmienione: 2017/04/13 14:37 przez alawrynowicz

Narzędzia strony