pobierz plik referatu
Transkrypt
pobierz plik referatu
Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 Rozdział 36 w Wykorzystanie silnika wnioskującego dla logiki deskrypcyjnej w systemie semantycznej integracji w 1 Wstęp da .b w Streszczenie. Rozdział wskazuje miejsce i określa zadania silnika wnioskującego dla logiki deskrypcyjnej w systemie semantycznej integracji, wykorzystującym metodologię Local-As-View oraz zaproponowaną przez autora logikę hybrydową. Jako podstawowe zadania opisane zostaną: sprawdzanie poprawności schematu koncepcyjnego, sprawdzenie spełnialności zapytania użytkownika, rozwinięcie zapytania zgodnie z definicjami opisanymi w logice deskrypcyjnej oraz pobranie drzewa subsumpcji i równoważności konceptów i ról. Dodatkowo przedstawione zostaną algorytmy transformacji formuł Datalog do logiki deskrypcyjnej oraz wyrażeń logiki deskrypcyjnej do Datalog. pl s. W procesie integracji danych można natknąć się na sytuację, gdy w różnych źródłach danych istnieją typy danych lub tablice tak samo nazwane i o takiej samej strukturze, lecz o zupełnie innym znaczeniu. Aby rozwiązać ten problem, należy w sposób jawny dołączać informację o semantyce danych i integrować dane na podstawie opisu semantyki, a dopiero w drugiej kolejności konwertować dane do wspólnego formatu. Proces integracji biorący pod uwagę semantykę danych nazywamy semantyczną integracją [1]. W systemie semantycznej integracji zapytania użytkownika oraz semantyka danych zawartych w źródłach danych zazwyczaj określane są na podstawie o schematu koncepcyjnego, który reprezentuje w ujednolicony sposób, na poziomie koncepcyjnym, schematy autonomicznych źródeł danych. Logiczne połączenie schematów źródeł danych ze schematem koncepcyjnym zazwyczaj ustanowione jest w jeden z dwóch sposobów: GAV lub LAV. W podejściu LAV [2] (ang. Local-As-View) do każdej relacji schematu źródła danych dołączony jest widok nad relacjami/konceptami schematu koncepcyjnego. Podejście to jest trudne w implementacji, ponieważ aby odpowiedzieć na zapytanie użytkownika należy najpierw przepisać zapytanie (ang. query rewriting using views) z relacji/konceptów schematu koncepcyjnego na relacje źródeł danych, mając do dyspozycji tylko widoki na schemacie koncepcyjnym. Niewątpliwą zaletą tego podejścia jest bezproblemowa modyfikacja zestawu źródeł danych, co jest niezbędne w sieci Internet. W zaproponowanej przez autora architekturze systemu semantycznej integracji do opisu schematu koncepcyjnego wykorzystywana jest logika hybrydowa składająca się z kompoMichał Świderski: Politechnika Śląska, Instytut Informatyki, ul. Akademicka 16, 44-100 Gliwice, Polska email: [email protected] (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 M. Świderski w nentu relacyjnego, reprezentowanego przez Datalog, oraz z komponentu terminologicznego, reprezentowanego przez specjalnie zaprojektowaną logikę deskrypcyjną. W trakcie przepisywania zapytania formuły Datalog obsługiwane są przez algorytm DBA (ang. Destination Based Algorithm), natomiast logika deskrypcyjna obsługiwana jest przez silnik wnioskujący. Celem niniejszego rozdziału jest wskazanie zadań, za które odpowiedzialny jest silnik wnioskujący, oraz sposobów ich implementacji z wykorzystaniem popularnego silnika wnioskującego RACER [3]. Dalsza część tego rozdziału przedstawia się następująco: w podrozdziale 2 przedstawiona zostanie proponowana architektura systemu integracji oraz wskazane zostaną wymagania stawiane silnikowi wnioskującemu; w podrozdziale 3 przedstawione zostaną: sposoby realizacji tych wymagań z użyciem silnika wnioskującego RACER oraz algorytmy transformacji wyrażeń między Datalog i logiką deskrypcyjną; w podrozdziale 4 podsumowane zostanie wykorzystanie silnika wnioskującego w systemie semantycznej integracji. w 2 Architektura systemu semantycznej integracji w da .b W proponowanej architekturze [4] użytkownik formułuje zapytania (krok 1 i 2) na podstawie schematu koncepcyjnego, opisującego w komponencie terminologicznym koncepty i role dostępne w systemie i wzbogaconego o zestaw relacji dostępnych w komponencie relacyjnym. Następnie zapytanie użytkownika jest przepisywane (krok 3 i 4), tak by predykaty zapytania zostały zastąpione nazwami źródeł danych, z wykorzystaniem opisu semantycznego dołączonego do każdego źródła danych. Przepisane zapytanie zostaje podzielone na podzapytania, dotyczące poszczególnych źródeł danych (krok 5) i rozesłane do nich (krok 6). Odebrane wyniki są łączone (krok 7) i zwracane do użytkownika w formacie GML. Architektura systemu przedstawiona jest na rys. 1. pl s. Rys. 1. Schemat architektury systemu semantycznej integracji 2.1 Schemat koncepcyjny Schemat koncepcyjny składa się z konstrukcji dozwolonych przez specjalnie zaprojektowaną logikę DLPSI (ang. Description Logic Programs for Semantic Integration) oraz z nagłówków klauzul Horna. W DLPSI wyrażamy hierarchię konceptów i ról, natomiast nagłówki klauzul Horna wprost wyrażają n-argumentowe relacje (podobnie jak w rozwiązaniach czysto relacyjnych). 362 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 Wykorzystanie silnika wnioskującego dla logiki deskrypcyjnej w systemie semantycznej integracji w 2.1.1 Logika deskrypcyjna DLPSI Na potrzeby systemu została zaprojektowana przez autora logika deskrypcyjna DLPSI, która umożliwia bezkonfliktowe połączenie logiki deskrypcyjnej oraz nagłówków klauzul Horna w schemacie koncepcyjnym. Logika ta została opracowana w oparciu o nową logikę DLP [5], będącą częścią wspólną logiki SHIQ oraz programów w logice. Logika ta jest niesymetryczna, tzn. zbiór konstruktorów mogących pojawić się po lewej stronie aksjomatu zawierania jest różny od zbioru dozwolonego po prawej stronie. Właściwość ta wynika z niesymetryczności programów w logice. Na rys. 2 przedstawiono zestaw dozwolonych konstruktorów wraz z ich umiejscowieniem względem aksjomatu zawierania. Konstruktory dozwolone dla równoważności mogą znaleźć się po obu stronach aksjomatu zawierania. Koncept A jest konceptem atomowym, koncept C jest dowolnym konceptem utworzonym za pomocą konstruktorów z danej strony, rola R jest atomowa. w w Rys. 2. Zestaw dozwolonych konstruktorów dla logiki DLPSI da .b pl s. 2.1.2 Kompletność algorytmów operujących na Schemacie Koncepcyjnym Standardowym problemem logik hybrydowych jest brak kompletności algorytmów je wykorzystujących, który może wystąpić w naszej logice na styku Datalog, który korzysta z założenia CWA (ang. Closed World Assumption) oraz logiki deskrypcyjnej, korzystającej z założenia OWA (ang. Open World Assumption). Konflikt tych założeń nie występuje, ponieważ lewa strona logiki DLPSI, która jednocześnie jest językiem zapytań, jest przetłumaczalna na Datalog [5], a do tego nie zezwala na zadawanie zapytań różnie interpretowanych w CWA i OWA, takich jak: Dodatkowo w Schemacie Koncepcyjnym wykorzystujemy założenie UNA (ang. Unique Name Assumption), które wymusza unikalności nazw stosowanych w komponencie terminologicznym i relacyjnym, oraz zakładamy rozłączność zbiorów nazw wykorzystanych w tych komponentach. 2.2 Zapytanie użytkownika i opis źródła danych Zapytania użytkownika są budowane na postawie schematu koncepcyjnego jako klauzule Horna z równością, gdzie koncepty są reprezentowane jako predykaty unarne, role jako predykaty binarne, a relacje jako predykaty n-arne. Klauzule mogą zawierać stałe oraz predykaty interpretowane, np. porównania arytmetyczne. Dzięki takim założeniom otrzymujemy język zapytań o ekspresywności porównywalnej z SQL bez grupowania i agregacji. Ze względu na brak aksjomatu inwersji w logice DLPSI i konieczność kompletności al.gorytmu DBA, zmienne wyróżnione w klauzuli Horna powinny znaleźć się na pierwszej pozycji predykatów binarnych odpowiadających rolom. 363 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 M. Świderski Opis źródła danych jest także realizowany jako klauzula Horna, reprezentująca zapytanie nad schematem koncepcyjnym. Opis dołączany jest w transkrypcji RuleML do dokumentu WSDL, opisującego usługę Web na poziomie strukturalnym. 2.3 Przepisywanie zapytania w W naszym podejściu wykorzystujemy wydajny algorytm przepisywania zapytań DBA (ang. Destination Based Algorithm) [6], [7] dla podejścia relacyjnego, który można zmodyfikować tak, by wykorzystywał informacje o hierarchii konceptów i ról, przy jednoczesnym zachowaniu poprawności, kompletności i wydajności. Modyfikacje te polegają na klasyfikacji schematu koncepcyjnego w silniku wnioskującym RACER, tak by wykryć wszystkie relacje subsumpcji konceptów i ról, a następnie traktowaniu konceptu w zapytaniu jako sumy tego konceptu i wszystkich jego liści drzewa subsumpcji (analogicznie dla ról). Aby została zachowana kompletność algorytmu generowania celów w algorytmie DBA konieczne jest narzucenie kolejnych ograniczeń: komponent terminologiczny musi być acykliczny; zakazujemy konceptów nie nazwanych, tzn. w TBox, po lewej stronie aksjomatu zawierania, zezwalamy jedynie na nazwy konceptów; wymuszamy rozwinięcie zdefiniowanych konceptów w zapytaniu i opisach źródeł, ponieważ zmodyfikowany DBA działa podobnie do algorytmu subsumpcji strukturalnej [8]. Złożoność średnia zmodyfikowanego DBA jest rzędu O(qnq), gdzie n jest ilością uwzględnionych źródeł danych, a q oznacza ilość predykatów w zapytaniu użytkownika. Ograniczenie terminologii do acyklicznych zmniejsza ekspresywność logiki, chroni jednak system integracji przed potencjalnie nieskończoną ilością odwołań do danego źródła danych. Ze względu na wydajność, przed przystąpieniem do przepisywania zapytania, należy sprawdzić czy cały Schemat Koncepcyjny jest spójny, tzn.: czy nie zawiera sprzeczności logicznych oraz czy zapytanie jest spełnialne, tzn.: czy ma sens jego przetwarzanie. da .b w w 3 Wykorzystanie silnika wnioskującego pl s. Z analizy architektury systemu semantycznej integracji wynika miejsce oraz zadania silnika wnioskującego dla logiki deskrypcyjnej. Jego optymalne wykorzystanie polega na sklasyfikowaniu komponentu terminologicznego, pobraniu drzewa subsumpcji oraz pobraniu definicji wszystkich konceptów przed przystąpieniem do przepisywania zapytań. Podczas generowania przepisań można korzystać z przechowywanych informacji, nie wykonując już kosztownych odwołań do silnika wnioskującego. Ponowienie całego cyklu współpracy z silnikiem wnioskującym jest konieczne w przypadku modyfikacji komponentu terminologicznego, jednak w sytuacji rzeczywistej powinna to być operacja bardzo rzadka. 3.1 Współpraca z silnikiem wnioskującym RACER Do sprawdzenia spójności komponentu terminologicznego (TBox) możemy wykorzystać komendę: (check-tbox-coherence) silnika RACER, której wynikiem jest lista niespełnialnych konceptów. Jeśli TBox jest spójny, tzn.: zwrócona lista jest pusta (NIL), możemy sprawdzić czy komponent terminologicz364 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 Wykorzystanie silnika wnioskującego dla logiki deskrypcyjnej w systemie semantycznej integracji ny jest sklasyfikowany (tzn.: czy znane są wszystkie relacje subsumpcji w TBox). Jeśli nie jest, wymuszamy klasyfikację TBox. Należy w tym celu przesłać komendę: (tbox-classified?) Jeśli otrzymana odpowiedź to NIL należy wymusić ponowną klasyfikację komponentu terminologicznego, poprzez przesłanie komendy: (classify-tbox) w Gdy TBox jest już sklasyfikowany możemy sprawdzić czy jest cykliczny, tzn. czy definicje konceptów odwołują się bezpośrednio lub pośrednio do samych siebie. Można sprawdzić to przesyłając do serwera RACER komendę: (tbox-cyclic?) w da .b w Jeśli komenda zwróci T kończymy współpracę z silnikiem wnioskującym RACER. Jeśli natomiast TBox spełnia ograniczenia narzucone przez nasz system, możemy sprawdzić czy zapytanie użytkownika jest spełnialne. Zapytanie użytkownika jest przesyłane do systemu integracji jako formuła Horna, w której niektóre predykaty odnoszą się do TBox, a pozostałe do komponentu relacyjnego schematu koncepcyjnego. Aby sprawdzić sensowność zapytania względem TBox należy wyodrębnić predykaty reprezentujące koncepty i role, a następnie przetłumaczyć je na wyrażenie w logice deskrypcyjnej. Algorytm tłumaczenia Datalog na DL przedstawiony zostanie w punkcie 3.2. Spełnialność przetłumaczonego wyrażenia możemy sprawdzić bez modyfikacji TBox wysyłając do silnika wnioskującego komendę: (concept-subsumes? BOTTOM przetlumaczone_wyrazenie) Jeśli wyrażenie zwróci T, zapytanie jest niespełnialne i nie ma sensu dalej go przetwarzać, jeśli natomiast jest spełnialne należy pobrać z serwera RACER hierarchię konceptów i ról, a także wszystkie definicje konceptów, które zostaną wykorzystane do rozwijania (ang. unfolding) zapytania i opisów źródeł danych. Aby pobrać hierarchię konceptów TBox przesyłamy komendę: (taxonomy) i otrzymujemy informacje w postaci zagnieżdżonej listy ((synonimy) (rodzice) (dzieci)): pl s. ((TOP NIL (DROGA ZJAZDY)) (AUTOSTRADA (BEZKOLIZYJNA DWUPASMOWA) (BOTTOM)) (BEZKOLIZYJNA (DROGA) (AUTOSTRADA)) (DROGA (TOP) (BEZKOLIZYJNA DWUPASMOWA)) (DWUPASMOWA (DROGA) (AUTOSTRADA)) (ZJAZDY (TOP) (BOTTOM)) (BOTTOM (AUTOSTRADA ZJAZDY) NIL)) Następnie dla każdego konceptu pobieramy jego definicję. Przykładowa komenda dla konceptu AUTOSTRADA i wyniki wyglądają następująco: (describe-concept AUTOSTRADA) Wynik: (AUTOSTRADA :TOLD-DEFINITION (AND BEZKOLIZYJNA DWUPASMOWA) :PARENTS ((DWUPASMOWA) (BEZKOLIZYJNA)) :CHILDREN ((*BOTTOM* BOTTOM))) Jeśli w wyniku, po nazwie konceptu, wystąpi słowo kluczowe :TOLD-DEFINITION, oznacza to, że koncept został zdefiniowany i należy zapamiętać jego definicję, która następuje po słowie kluczowym. Definicje te są potrzebne do rozwijania zapytań i opisów źródeł danych, tak by zapewnić kompletność generowania celów w DBA. Algorytm rozwijania zapytań zostanie przedstawiony w punkcie 3.2. 365 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 M. Świderski Aby pobrać drzewo subsumpcji ról należy: pobrać nazwy wszystkich ról, pobrać grupy synonimów, a następnie pobrać opisy dla każdej grupy synonimów. Pobranie nazw ról może wyglądać następująco: (all-roles) Wynik: ((INV MA) MA) w Należy odrzucić role poprzedzone INV, ponieważ są one generowane automatycznie. Dla pozostałych nazw należy pobrać synonimy i ze zwróconych definicji zapamiętać listy rodziców i dzieci roli: (role-synonyms MA) Wynik: (MA) w (describe-role MA) Wynik: (MA :PARENTS NIL :CHILDREN NIL :INVERSE (INV MA) :FEATURE NIL :TRANSITIVE-P NIL) w W obecnej implementacji hierarchie konceptów i ról przechowywane są tablicach z mieszaniem, dzięki czemu średni czas sprawdzenia subsumpcji między dwoma konceptami wynosi O(n/2), gdzie n jest wysokością hierarchii subsumpcji. da .b 3.2 Algorytmy konwersji wyrażeń między Datalog i logiką deskrypcyjną Konwersje pomiędzy Datalog z równością, a logiką deskrypcyjną polegają na przetłumaczeniu wyrażenia z jednej z logik do formuły w logice predykatów pierwszego rzędu (FOL), a następnie na przetłumaczeniu na drugą logikę [5]. Dzięki temu możemy teoretycznie określić tabelę potrzebnych przejść pomiędzy Datalog z równością i DLPSI. Wyniki przedstawiono w tabeli 1. Tabela 1. Przejścia pomiędzy Datalog z równością a DLPSI pl s. Algorytm transformacji zapytania Datalog do logiki deskrypcyjnej można podzielić na dwie fazy odpowiadające procedurom TransformujDatalogDoDL i GenerujDL. W pierwszej fazie należy odrzucić predykaty zapytania, które nie mają odzwierciedlenia w TBox, a następnie wyszukać wszystkie wolne zmienne, które będą odpowiadały odrębnym wyrażeniom DL. W drugiej, rekurencyjnej, fazie w procedurze GenerujDL wyszukujemy wszystkie predykaty odpowiadające wolnej zmiennej i tłumaczymy je do formatu zrozumiałego przez silnik wnioskujący RACER (dla zwięzłości pominięta została generacja nawiasów). 366 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 Wykorzystanie silnika wnioskującego dla logiki deskrypcyjnej w systemie semantycznej integracji Algorytm 1. Konwersja zapytania w Datalog(=) na wyrażenia DL w notacji RACER Procedura TransformujDatalogDoDL Wejście: Zapytanie Q, hierarchie konceptów i ról z silnika wnioskującego Wyjście: Zbiór wyrażeń w DL odpowiadających zapytaniu w Datalog w // wyodrębnienie predykatów związanych z TBox Zbiór predykatów Q’= ø Dla każdego predykatu treści zapytania Q Jeśli arności predykatu <=2 i predykat jest (konceptem lub rolą) Zapamiętaj predykat w Q’ Jeśli Q’== ø zwróć TOP // wykonanie podstawień zmiennych, by odrzucić ograniczenia z Q Wykonaj podstawienia zmiennych w Q’ z części ograniczeń zapytania Q // wyszukanie wolnych zmiennych z DL w Zbiór zmiennych VFOUND = ø Zbiór zmiennych VDEPENDENT = ø Zbiór zmiennych VFREE = ø w Dla każdego predykatu w Q’ Jeśli arność predykatu == 1 Zmienną z pierwszej pozycji zapamiętaj w VFOUND Jeśli arność predykatu == 2 Zmienną z pierwszej pozycji zapamiętaj w VFOUND Zmienną z drugiej pozycji zapamiętaj w VFOUND i VDEPENDENT // wolne zmienne wyznaczają osobne wyrażenia DL da .b VFREE = VFOUND - VDEPENDENT Zbiór wyrażeń DL RETURNDLS = ø Dla każdej zmiennej z VFREE Zapamiętaj w RETURNDLS wynik GenerujDL dla każdej wolnej zmiennej Zwróć RETURNDLS Koniec TransformujDatalogDoDL Procedura GenerujDL Wejście: Zbiór Q’, wolna zmienna Wyjście: Wyrażenie DL odpowiadające części zapytania w Datalog powiązanej z wolną zmienną pl s. Wynik RETURNDL = ø Zbiór predykatów PREDS = ø // wyszukanie predykatów odpowiadających danej zmiennej Dla każdego predykatu w Q’ Jeśli pierwsza zmienna predykatu == wolna zmienna Zapamiętaj predykat w PREDS Jeśli PREDS == ø Zwróć TOP // generowanie koniunkcji wyrażeń jako konstrukcję (AND A (SOME R C)) Jeśli liczność PREDS > 1 dodaj AND do RETURNDL Dla każdego predykatu w PREDS Jeśli arność predykatu == 1 Dodaj nazwę predykatu do RETURNDL Jeśli arność predykatu == 2 // generowanie kwantyfikacji egzystencjalnej (SOME R C) Dodaj SOME i nazwę predykatu do RETURNDL Dodaj wynik GenerujDL dla drugiej zmiennej do RETURNDL Zwróć RETURNDL Koniec GenerujDL Jeśli dany predykat jest rolą, to dla drugiej zmiennej rekurencyjnie wywołujemy procedurę GenerujDL. Pierwszą zmienną możemy traktować jako wolną ponieważ zarówno w DLPSI jak i w Datalog nie zezwalamy na inwersję ról. Powyższy algorytm przetłumaczy zapytanie Q(x) :- DROGA(x), MA(x,y), ZJAZDY(z), y=z do prefiksowej notacji RACER jako (AND DROGA (SOME MA ZJAZDY)). 367 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 M. Świderski Algorytm 2. Rozwinięcie zapytania/opisu źródła w Datalog(=) z wykorzystaniem definicji konceptów w TBox Procedura RozwinZapytanieZTBox Wejście: Zapytanie Q, definicje konceptów z silnika wnioskującego Wyjście: Rozwinięte zapytanie w Datalog w Dla każdego predykatu treści zapytania Q Jeśli predykat jest konceptem i ma definicję // rozwinięcie predykatu zgodnie z definicjami TBox Rekurencyjnie rozwiń definicję Transformuj definicję do Datalog z wykorzystaniem zmiennej aktualnego predykatu Podstaw nową definicję w miejsce predykatu Koniec RozwinZapytanieZTBox w w Algorytm rozwinięcia zapytania w Datalog bierze pod uwagę jedynie koncepty z definicją w TBox. W logice DLPSI jedynym konstruktorem dostępnym w definicji jest koniunkcja konceptów, dlatego rekurencyjne rozwinięcie definicji jest trywialne. Oryginalny predykat zastępujemy, zgodnie z definicją w DL, koniunkcją predykatów unarnych w Datalog, gdzie zmienną wszystkich predykatów jest zmienna oryginalnego predykatu. Algorytm 2 rozwinie zapytanie Q(x) :- AUTOSTRADA(x), przy definicji (equivalent AUTOSTRADA (AND BEZKOLIZYJNA DWUPASMOWA)), do postaci Q(x):- BEZKOLIZYJNA(x), DWUPASMOWA(x). da .b 4 Podsumowanie Literatura 1. 2. 3. 4. 5. 6. 7. 8. pl s. W zaproponowanej architekturze systemu semantycznej integracji do reprezentacji schematu koncepcyjnego wykorzystany jest Datalog z równością oraz nowa logika deskrypcyjna DLPSI. Dzięki jej specyficznym właściwościom oraz ograniczeniom nałożonym na Datalog wnioskowanie na logice deskrypcyjnej może być wykonywane oddzielnie, w standardowym silniku wnioskującym RACER, a wyniki wnioskowania mogą być użyte w algorytmie przepisywania zapytań nie wpływając na poprawność ani na kompletność algorytmu generowania celów. Dodatkowo, przy założeniu niezmienności komponentu terminologicznego, dzięki przechowywaniu informacji o drzewie subsumpcji, modyfikacje algorytmu DBA nie wpływają znacznie na obniżenie jego wydajności, ponieważ średni czas przypasowania dwóch predykatów wzrasta z O(1) do O(n/2), gdzie n jest wysokością hierarchii subsumpcji konceptów/ról. Visser U., Stuckenschmidt H., Schlieder Ch.: Interoperability in GIS – Enabling Technologies. 5th Conference on GIS, Palma, 2002. Levy A. Y.: Logic-Based Techniques in Data Integration. Uniwersytet Washington, May 1999. Haarslev V., Möller R., Wessel M.: RACER User’s Guide and Reference Manual. http://www.sts.tu-harburg.de/~r.f.moeller/racer/. Świderski M.: Ogólna architektura systemu semantycznej integracji geograficznych źródeł danych. Studia Informatica vol. 26, Gliwice, 2005. Volz R.: Web ontology reasoning with logic databases. A thesis. Uniwersytet Karlsruhe, 2004. Wang J., Maher M., Topor R.: Rewriting general conjunctive queries using views. W materiałach Australasian conference on Database technologies, Melbourne, Australia, 2002. Świderski M.: Metodologia LAV w systemie semantycznej integracji geoprzestrzennych źródeł danych. Bazy danych: modele, technologie, narzędzia. WKŁ, Warszawa, 2005. Baader F., McGuinness D., Nardi D., Patel-Schneider P.: The Description Logic Handbook: theory, implementation, and applications. Cambridge University Press, 2003. 368 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006