pobierz plik referatu - BDAS
Transkrypt
pobierz plik referatu - BDAS
Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007 Rozdział 9 w w Zastosowanie wartości lingwistycznych w autonomicznym module translacji zapytań rozmytych na zapytania dokładne da .b w Streszczenie. W niniejszym rozdziale przedstawiono wybrane aspekty wykorzystania zmiennych lingwistycznych w rozmytych bazach danych oraz problemy pojawiające się przy ich zastosowaniu. W pracy zakłada się zastosowanie wartości lingwistycznych w autonomicznym module tłumaczącym zapytania rozmyte na zapytania dokładne, a także przetwarzającym wyniki zapytania dokładnego na wyniki zapytania rozmytego. Dane, względem których można definiować warunki rozmyte są typu numerycznego. Moduł taki pozwala na stosunkowo swobodne operowanie treścią i wynikami zapytania, wartości lingwistyczne mogą tu być wykorzystane w stosunkowo szerokim zakresie. Rozważania przedstawione w rozdziale zostały zilustrowane odpowiednimi przykładami. 1 Wprowadzenie pl s. Podstawową funkcją komputerów i systemów informatycznych jest ułatwienie i usprawnienie podstawowych czynności i prac człowieka. Do tego celu projektuje się i wdraża setki, a nawet tysiące aplikacji wspomagających niemal każdy aspekt ludzkiego życia. Niestety często zdarza się, że z różnych powodów niewłaściwie wykonują one swoje zadanie, powodując zamiast upraszczania – nawarstwianie utrudnień, bądź niepotrzebne komplikowanie zagadnienia. Dążenie do uzyskania jak największej ergonomii systemów komputerowych jest zatem nieodzownym kierunkiem rozwoju współczesnej informatyki. Interesujące możliwości daje nam w tym zakresie logika rozmyta [1]. Zastosowanie rozwiązania dopuszczającego wartości nieprecyzyjne zbliża bowiem sposób przetwarzania maszyny do rozumowania ludzkiego. Należy zdawać sobie jednak sprawę, że wprowadzenie logiki rozmytej i algebry zbiorów rozmytych powoduje przyrost operacji matematycznych oraz zmiennych, które muszą być przeanalizowane przez komputer (a także ludzki umysł) [2], [3], [4], [5]. Aby zatem w pełni wykorzystać potencjał i szanse jakie oferuje logika rozmyta w uzyskaniu większej ergonomii systemu, należy pójść o krok dalej – uwolnić użytkownika od szeregu cyfr i liczb, prezentując mu informacje w jak najbardziej przyswajalnej i prostej formie. Możliwe staje się to dzięki zastosowaniu w bazach danych zmiennych lingwistycznych [6], Janusz Podstawny, Bożena Małysiak Politechnika Śląska, Instytut Informatyki, ul. Akademicka 16, 44-100 Gliwice, Polska email: [email protected], [email protected] (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2007 Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007 J. Podstawny, B. Małysiak [7], [8]. Dziedzina ta jest intensywnie rozwijana - począwszy od prac [9], [10], [11], [12] w latach 90-tych, po nowsze publikacje w tym zakresie, m.in.: [12], [13], [14], [15], [16], [17], [18], [19], [20], [21], [22], [23], [24], [25], [26], [27], [28], [29], [30], [31], [32], [33], [34], [35] itp. W niniejszym rozdziale przedstawiono wybrane aspekty wykorzystania zmiennych lingwistycznych w rozmytych bazach danych, a także występujące przy ich zastosowaniu problemy. w 2 Stosowane pojęcia z teorii zbiorów rozmytych 3 Interpretacja określeń względnych pl s. da .b w w Zbiór rozmyty [1] definiowany jest jako zbiór par liczb, A = {(µA(x), x)}, gdzie x oznacza wartość elementu w zbiorze, zaś µA(x), jego stopień przynależności do rozmytego zbioru A. Stopień ten przyjmuje wartości z przedziału <0;1>. 0 oznacza, iż dany element nie należy do zbioru A, a 1 oznacza pełną przynależność do zbioru A, natomiast wartości pośrednie informują o częściowej przynależności elementu do zbioru. Stopień przynależności elementu do zbioru rozmytego wyznacza się wykorzystując zdefiniowane wcześniej funkcje przynależności. Funkcja przynależności stanowi przyporządkowanie, które każdemu elementowi zbioru przypisuje jego stopień przynależności do zbioru A. Wartość rozmyta stanowi nieprecyzyjne określenie wartości określonego atrybutu. Wartości rozmyte są często definiowane przy pomocy funkcji przynależności. Jeżeli wartość dotyczy atrybutu typu numerycznego, to jest często nazywana liczbą rozmytą [3]. Możliwe jest także wyrażenie wartości rozmytej w postaci słownej. Wartość wyrażoną w ten sposób nazywa się wartością lingwistyczną [36]. Przykładami wartości lingwistycznych są określenia “prawie 10”, “około 5”, ale także “bardzo dużo” lub “niezbyt wysoki”. W dalszych rozważaniach brane będą pod uwagę tego typu zmienne. Mianem zapytania rozmytego QF określa się zapytanie do bazy danych (w języku SQL) zawierające przynajmniej jeden element rozmyty. Element rozmyty jest w tym aspekcie rozumiany jako: rozmyty warunek filtrujący CF, sprowadzający się do porównania wartości z bazy danych z wartością rozmytą (wyrażoną liczbą rozmytą bądź wartością lingwistyczną), grupowanie rozmyte, rozmyty warunek łączący dwa podzapytania, bądź inne elementy. W pracy zakłada się zastosowanie wartości lingwistycznych w autonomicznym module tłumaczącym zapytania rozmyte na zapytania dokładne (kierowane do klasycznej bazy danych), a także przetwarzającym wyniki zapytania dokładnego na wyniki zapytania rozmytego. Dane, względem których można definiować warunki rozmyte, są typu numerycznego. Moduł taki [8] pozwala na stosunkowo swobodne operowanie treścią i wynikami zapytania, wobec czego wartości lingwistyczne mogą być tu wykorzystane w stosunkowo szerokim zakresie. Ponieważ rozpatruje się moduł uniwersalny, a zatem niezależny od bazy danych oraz zawartych w niej danych, pierwszym zagadnieniem jest zdefiniowanie listy dostępnych określeń wartości lingwistycznych i ich ewentualna unifikacja. Jeśli bowiem system wykorzystujący omawiany moduł miałby być możliwie ergonomiczny, to należy rozważyć możliwość wystąpienia wartości charakterystycznych dla bazy danych. 92 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2007 Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007 Zastosowanie wartości lingwistycznych w autonomicznym module translacji zapytań rozmytych ... w Biorąc pod uwagę określenia definiujące poziom danego atrybutu x w ramach pewnego zakresu można w najprostszym przypadku zdefiniować następujące wartości lingwistyczne: − mały / średni / duży lub − bardzo mały / mały / poniżej średniej / średni / powyżej średniej / duży / bardzo duży. Propozycja przyporządkowania wartości rozmytych przypisanych poszczególnym określeniom dla przykładowego przedziału <0; 100> (zmiennej lingwistycznej zakres) jest przedstawiοna na rys. 1 [8]: Stopień przynależności niski w bardzo niski 1 poniżej średniej w 0 10 15 25 30 średni 40 45 powyżej średniej 55 60 wysoki 70 75 bardzo wysoki 85 90 100 zakres da .b Rys. 1. Wartości lingwistyczne zmiennej lingwistycznej zakres (zdefiniowane przez odpowiednie funkcje przynależności) Utworzenie wykresu (rys. 1) jest możliwe tylko w przypadku określenia zakresu, w jakim mogą się znajdować dane w bazie danych. Powyższe określenia są bowiem określeniami względnymi. Zatem dla danych z przedziału <-100; 100> określenie “powyżej średniej” przekłada się na zupełnie inną wartość rozmytą niż dla przedziału <500; 1000>. Powyższy wykres należy zatem interpretować jako: f(x) = f((xmax – xmin) * 100%) pl s. gdzie: − xmax – wartość maksymalna atrybutu x w bazie danych − xmin – wartość minimalna atrybutu x w bazie danych. Podążając za takim tokiem rozumowania należy przyjąć, że by móc przedstawić właściwe wyniki w odpowiedzi na zapytanie zawierające wartość lingwistyczną, należy w pierwszej kolejności znaleźć wartości xmax oraz xmin dla danego atrybutu x. Nasuwa się zatem pytanie: W jaki sposób można uzyskać takie informacje? Po pierwsze, należy zastanowić się, czy wartości te powinny być zależne od zawartych w bazie informacji, czy też nie. Możliwe są bowiem dwie sytuacje: albo wartość skrajna spośród dostępnych danych definiuje minimum bądź maksimum zakresu lub też zakłada się odgórne przyjęcie wartości granicznych. Przykładowo, jeśli w zbiorze danych o temperaturze powietrza znajdują się wartości: 28, 30, 35, to wartość 28 jest wartością minimalną, jednak czy można o niej powiedzieć, że odpowiada jej zmienna (również skrajna) “bardzo zimno”? Innym przypadkiem mogą być dane o kursach walut, gdzie trudno przewidzieć możliwe skrajne wartości, toteż dostępne minimum i maksimum definiują punkty graniczne (xmax oraz xmin). Dalsze rozważania dotyczą drugiego z omówionych przypadków. Pierwszą nasuwającą się możliwością jest wyliczenie tych wartości przy każdym wykonaniu zapytania rozmytego. W przypadku niewielkiego obciążenia bazy danych, rozwiązanie to jest całkowicie akceptowalne. Pozwoli ono w każdym przypadku uzyskać aktualne wartości xmax oraz xmin bez stosowania dodatkowych mechanizmów. Należy jedynie wziąć pod uwagę możliwość ciągłej zmiany tych wartości. Jest to uwarunkowane 93 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2007 Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007 J. Podstawny, B. Małysiak w częstością napływania nowych danych do bazy danych oraz wykazywanymi przez te dane tendencjami do skoków i rozrzutów, a zatem w rezultacie częstością zmian wartości xmax oraz xmin. Podsumowując, należy zauważyć, że w przypadku omawianego rozwiązania to samo zapytanie zadane dwukrotnie w krótkim odstępie czasu, zwrócić może różne wyniki, co nie zawsze jest zjawiskiem korzystnym. Alternatywnym rozwiązaniem uwzględniającym natychmiast przyrost danych w bazie danych, jest zastosowanie metadanych w postaci zestawów liczb przechowywanych dla każdego atrybutu każdej tabeli bazy, dla którego może zostać zdefiniowany warunek rozmyty: r = [tabela; atrybut; xmin; xmax] Istotnym w tym modelu wymaganiem jest konieczność kontroli aktualności danych po wprowadzeniu każdego kolejnego wiersza tabeli. Choć bowiem w większości przypadków wartości xmax oraz xmin nie ulegną zmianie, to jednak za każdym razem zachodzi potrzeba wykonania stosownego porównania. Może to znacząco odbić się na wydajności całego systemu, jednak w instalacjach, w których informacje zawarte w metadanych muszą być zawsze aktualne, staje się to koniecznością. W niektórych systemach rozsądnym kompromisem jest ograniczenie częstości aktualizowania metadanych. Można tutaj rozważyć dwa sposoby postępowania: − aktualizację po upłynięciu określonego odstępu czasu, − aktualizację po przekroczeniu określonej liczby wprowadzonych do tabeli wierszy, − kombinację powyższych metod (aktualizację po przekroczeniu określonej liczby wprowadzonych do tabeli wierszy, chyba że upłynął już czas graniczny Tmax od ostatniej aktualizacji). System, w którym zastosowano pierwsze z wymienionych rozwiązań został przedstawiony w pracy [8]. W instalacji zostało określone, iż dane będą dodawane do bazy danych raz dziennie, w związku z czym także aktualizacja metadanych jest prowadzona raz dziennie. Dzięki temu zabiegowi zminimalizowano liczbę operacji uaktualniających metadane, zapewniając jednocześnie ich aktualność. Dostęp do wartości xmax oraz xmin może być także niezbędny w przypadku wartości lingwistycznych opisanych przy pomocy liczby rozmytej. Przykładami takich wartości mogą być: “około 20”, “poniżej 0”, “powyżej 30”. Na rys. 2 przedstawiono funkcję przynależności definiującą wartość rozmytą: “około 30 lat”. pl s. da .b w w Stopień przynależności 1 0 27 30 33 wiek Rys. 2. Funkcja przynależności wartości rozmytej „około 30 lat” 94 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2007 Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007 Zastosowanie wartości lingwistycznych w autonomicznym module translacji zapytań rozmytych ... w Należy zwrócić uwagę, że w tym przypadku sama nazwa wartości lingwistycznej (liczby rozmytej) może określać punkt, w którym stopień przynależności osiąga wartość 1 (wartość modalną liczby), o tyle wartości graniczne (w przykładzie 27 oraz 33 – rys. 2) nie są w żaden sposób zdefiniowane i są wartościami umownymi. Trudno zakładać, że dla każdego atrybutu odległość wartości granicznych od punktu centralnego będzie zawsze taka sama. Inne wartości będą bowiem uważane za spełniające warunki zapytania w przypadku rozpatrywania np. życia ludzkiego (zakres 0-120), a inne w przypadku rozpatrywania 1000-letniego okresu czasu. Bardziej logicznym wydaje się rozumowanie zakładające uzależnienie położenia tych wartości granicznych od zakresu rozważanych danych, a zatem ponownie od wartości xmax oraz xmin. w 4 Problem zróżnicowanego nazewnictwa da .b w Jak wspomniano w poprzednich podpunkatach, założeniem jest budowa modułu możliwie uniwersalnego, niezależnego od charakteru i tematyki przechowywanych w bazie danych informacji. Nie stwarza to szczególnych problemów w przypadku udostępniania zapytań rozmytych bazujących na uniwersalnym języku matematyki. Niezależnie od tematyki, dane liczbowe są wówczas wyrażone liczbami (oraz symbolami pomocniczymi) wobec czego ich interpretacja jest jednoznaczna. Jednakże jeśli chce się określać słownie (za pomocą wartości lingwistycznych) wartości pewnych zmiennych, mogą występować różnice, zależne od rodzaju zmiennej, którą chcemy opisywać. Co innego oznacza „średnia” w kontekście prędkości samochodu niż w kontekście wagi człowieka. Przykładowe zestawienie wartości lingwistycznych dla różnych zmiennych przedstawione zostało w tabeli 1. Tabela 1. Zestawienie wartości lingwistycznych dla różnych wielkości Rodzaj danych Gęstość substancji Prędkość Waga Stabilność Wrażenie estetyczne Stan pacjenta Zimno Rzadka/ Rozrzedzona Wolno / Powoli Lekki Niestabilny Brzydki Zdrowy Niezadowolony Zadowolenie klienta Zapatrywania polityczne Konserwatywny Określnik wartości średniej Średnio Określnik wartości wysokiej (dużej) Ciepło Gęsta/ Zagęszczona Szybko Ciężki Stabilny Piękny pl s. Temperatura Określnik wartości niskiej (małej) Średnia Średnio Średni Średniej stabilności Średni Umiarkowanie Krytyczny poważny Średnio zadowolony Zadowolony Umiarkowany Liberalny Zestawienie przedstawione w tabeli 1, wyraźnie pokazuje, jak bardzo mogą różnić się wartości lingwistyczne opisujące różne wielkości (zmienne lingwistyczne). Stwarza to poważne trudności w implementacji systemu, który ma jednocześnie zapewnić uniwersalność oraz możliwie wysoką ergonomię i wygodę użytkownika. Rozwiązaniem najprostszym jest przygotowanie jednolitych wartości dla każdej wielkości, przy 95 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2007 Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007 J. Podstawny, B. Małysiak w wykorzystaniu najpopularniejszych określeń. Mogłyby to być na przykład następujące zestawy: − “mało” / “średnio” / “dużo” lub − “niski” / “średni” / “wysoki”. Tego typu zestawy wystarczą w wielu przypadkach, by zapewnić użytkownikowi pracę intuicyjną. Podejście takie w odniesieniu do kursów giełdowych i kursów walut zastosowano między innymi w [8]. Można bowiem w sposób naturalny przyjąć, że wartość “niska gęstość” oznacza substancję “rozrzedzoną”, a nie “zagęszczoną”, bądź że “niskie wrażenia estetyczne” oznaczają “brzydotę” a nie “piękno”. Takiego rodzaju zamienniki stosowane są często w mowie potocznej i mogą być użyte z powodzeniem także w omawianym module. Niestety nie zawsze będzie to możliwe, gdyż bez dodatkowych informacji trudno powiedzieć czy “mały stan pacjenta” oznacza “mały poziom uszkodzeń ciała” - a zatem odpowiada określeniu “zdrowy” czy też “mały procent szans na rekonwalescencję” - a zatem określenie “krytyczny”. Tego typu przykładów, które bez dalszego doprecyzowania stałyby się niejasne można wymienić wiele. Rozwiązaniem idealnym przedstawionego problemu, byłoby zaimplementowanie w systemie słownika oraz “inteligentnego” interpretera, który automatycznie (na przykład na podstawie nazwy tabeli oraz kolumny w bazie danych) dobierze i zaakceptuje właściwe określenia dla poszczególnych wielkości. Niestety jest to zadanie niezwykle pracochłonne i w praktyce trudne do zrealizowania, gdyż trudne lub całkiem niemożliwe będzie przewidzenie wszystkich przypadków. Warto jednak w tym miejscu powrócić do założeń przygotowywanego systemu. Po pierwsze, pamiętać należy że moduł tłumaczeniowy przesyła w każdej konkretnej instalacji dane do bazy danych o znanym i ustalonym formacie. Można zatem przyjąć, iż struktura tego typu bazy danych jest stała i możliwe jest zebranie informacji o charakterze danych przechowywanych w poszczególnych kolumnach tabel. Po drugie zaś, ponieważ rozpatruje się dane o charakterze liczbowym każda wielkość (w tym także opisywany wcześniej “Stan pacjenta” czy “Zapatrywania polityczne”) musi być wyrażona w postaci skali liczbowej. Co za tym idzie, możliwe jest dla każdego atrybutu określenie wartości granicznych xmax oraz xmin , które opisano w poprzednim punkcie. Podsumowując powyższe rozważania stwierdzono, iż możliwe jest przygotowanie danych pomocniczych, które w ramach niezmiennej pod względem budowy bazy danych, pozwolą skutecznie opisać wartości lingwistyczne wykorzystywane przy budowaniu warunków rozmytych do danego atrybutu. W najprostszym przypadku, metadane tego typu mogą przyjąć postać szeregu wierszy, zawierających wprost wartości lingwistyczne dla danego atrybutu (będącego w tym ujęciu zmienna lingwistyczną): pl s. da .b w w r = [tabela; atrybut; okr. wartości niskiej; okr. wartości średniej; okr. wartości wysokiej] Lepszym rozwiązaniem wydaje się być struktura, która nie zakłada z góry liczby określeń dla danego atrybutu. W punkcie 3, zaprezentowano siedmiowartościową skalę opisu zmiennych lingwistycznych (rys. 1.), jednak nawet taka skala nie musi być ograniczeniem maksymalnym. Wobec czego celowym wydaje się zaproponowanie zastosowania tabeli o potrójnym kluczu: r = [tabela; atrybut; stopień; określenie wartości] Użyte określenie stopień oznacza “numer” danej wartości w siedmiostopniowej skali, sposób numeracji przedstawiono w tabeli 2. 96 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2007 lingwistycznej Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007 Zastosowanie wartości lingwistycznych w autonomicznym module translacji zapytań rozmytych ... Tabela 2. Przypisanie wartościom ogólnym stopnia z siedmiostopniowej skali w określenia bardzo mało mało stopień 1 2 poniżej powyżej średnio dużo średniej średniej 3 4 5 6 bardzo dużo 7 w w Dzięki takiemu podejściu, uzyskuje się nie tylko możliwość stosowania dowolnie szczegółowego stopniowania, ale także możliwość pominięcia jednego lub więcej stopni i nie przypisania im żadnej wartości lingwistycznej. Co więcej, warto zauważyć, iż stopień staje się w pewnym zakresie także liczbowym wyróżnikiem poziomu wartości, a nie jedynie numeracji. Oznacza to, że możliwe jest – bez korzystania z dodatkowych informacji – wyrażenie znacznej przerwy w stopniowaniu wartości (przykład przedstawiono w tabeli 3). Tabela 3. Przypisanie wartościom lingwistycznym odpowiadających im stopni określenia chłodno ciepło bardzo ciepło upalnie da .b stopień 2 5 6 7 Problemem w tym przypadku staje się niestety konieczność przechowywania informacji o liczbie stopni, na które podzielone są określenia opisujące dany atrybut. Nie jest bowiem ustalone, czy w każdym przypadku zawsze jest w użyciu stopień o najwyższym numerze. Względnie, można przyjąć, że liczba stopni dla każdego atrybutu jest stała i znana. Alternatywą dla tego rozwiązania może być budowa wszystkich atrybutów w takiej formie, aby określenia z grupy “niski” / “wysoki” lub “mały” / “duży” były dla nich jednoznaczne i zrozumiałe. Przykład transformacji niektórych nazw atrybutów prezentowanych w tabeli 1 przedstawiono w tabeli 4. pl s. Tabela 4. Transformacja wybranych nazw atrybutów Określenie oryginalne Określenie przetworzone Gęstość substancji Stabilność Wrażenie estetyczne Stan pacjenta Zadowolenie klienta Zapatrywania polityczne Stopień gęstości substancji Stopień stabilności Pozytywność wrażeń estetycznych Powaga stanu pacjenta Stopień zadowolenia klienta Liberalizm zapatrywań politycznych Stosując mniej lub bardziej złożone przebudowanie nazw atrybutów można wyrazić dowolne wielkości w takiej formie, by najprostsze odnośniki (“niski” / “wysoki” lub “mały” / “duży”) były zrozumiałe i jednoznaczne. Kosztem jest w tym przypadku rozbudowanie i skomplikowanie fraz zapytań, które muszą być konstruowane przy użyciu 97 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2007 Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007 J. Podstawny, B. Małysiak dłuższych nazw atrybutów. Mimo to, uproszczenie omawianego implementacyjnego wydaje się być bezsporne i godne rozważenia. problemu 5 Problemy językowe w w w Wszystkie dotychczasowe przykłady prezentowane były w języku polskim. Niestety w języku tym, podobnie jak w innych językach słowiańskich przymiotniki (które najczęściej stanowią określenia wartości atrybutów) podlegają odmianie ze względu na rodzaj i liczbę. Wywołuje to dodatkowe problemy w projektowaniu systemów, które mają być sterowane przy użyciu wyrażeń słownych (w tym przypadku – wartości lingwistycznych). W systemie przedstawionym w pracy [8] do wszystkich atrybutów stosowano dla uproszczenia te same wartości lingwistyczne. Mimo to podjęto decyzję o realizacji systemu w języku angielskim, z uwagi na dodatkowe komplikacje, jakie wprowadzają polskie odmiany przymiotników. Powstające problemy, związane z odmianą przymiotników w języku polskim oraz ich odpowiedniki w języku angielskim zaprezentowano w tabeli 5. Tabela 5. Odmiana przymiotnika „bardzo niski” w języku polskim i angielskim Pojedyncza Pojedyncza Pojedyncza Mnoga Mnoga da .b Liczba Rodzaj Wyrażenie w Wyrażenie w języku języku polskim angielskim Męski Żeński Nijaki Męskoosobowy Niemęskoosobowy bardzo niski bardzo niska bardzo niskie bardzo niscy bardzo niskie very low very low very low very low very low pl s. Kwestia akceptowalności pominięcia odmiany przymiotników i uznania jej za problem drugorzędny może być sprawą sporną. Naturalnie większość użytkowników poradzi sobie z takim ograniczeniem bez trudu, zwłaszcza, że w ogromnej części stron internetowych, aplikacji czy systemów informatycznych takie uproszczenia się stosuje. Trudno jednak całkowicie pominąć to zagadnienie. W powyższych rozważaniach pojawiła się wzmianka o zastosowaniu “inteligentnego” interpretera, analizującego nazwy i przeznaczenie atrybutów. Wydaje się, że budowa modułu zdolnego odmieniać przymiotniki np. w języku polskim byłaby mniejszym problemem. Mimo to, rozwiązanie to należy potraktować jako zawiłe i skomplikowane. Przyjmując jednak format metadanych zaproponowany w punkcie 4 można wprost rozwiązać problem odmian. Możliwe bowiem staje się bezpośrednie zapisanie określeń we właściwej formie osobno dla wszystkich atrybutów. Nie ma przy tym znaczenia forma gramatyczna (rodzaj) rzeczownika, którego dotyczy dana wielkość. Przykładowo, jeśli w kolumnie przechowuje się wartości temperatur krzepnięcia metali (rodzaj męski) oraz cieczy łatwopalnych (rodzaj żeński) to zawsze właściwe będą wartości lingwistyczne w rodzaju żeńskim (ponieważ rodzaju żeńskiego jest atrybut “temperatura krzepnięcia”). Podsumowując, można powiedzieć, że zaproponowane w tym punkcie rozwiązanie nie powoduje konieczności przechowywania dodatkowych informacji w stosunku do punktu 4. 98 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2007 Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007 Zastosowanie wartości lingwistycznych w autonomicznym module translacji zapytań rozmytych ... Liczba wierszy metadanych jest bowiem dokładnie taka sama jak w przypadku wersji ignorującej odmiany (lub wyrażonej np. w języku angielskim). 6 Przechowywanie metadanych w da .b w w Rozważyć pozostaje sposób przechowywania omawianych wcześniej struktur pomocniczych - metadanych. Można wskazać kilka rozwiązań, zaś wybór najlepszego i najefektywniejszego będzie ponownie zależał od charakteru systemu. Zasadniczo jednak, najwłaściwsze wydają się dwa rozwiązania: − przechowanie metadanych jako tabeli bazy danych (łatwe do zaimplementowania z uwagi na prostą i stałą strukturę oraz gwarantujące trwałość informacji, jednak stwarzające konieczność przeprowadzania częstych zapisów i odczytów na/z pamięci trwałej), − przechowywanie metadanych jako dynamicznej struktury w jednym z obiektów aplikacji (przy wykorzystaniu języków wysokiego poziomu – prosta implementacja oraz bardzo szybki dostęp, jednak istnieje ryzyko utraty danych wskutek ich przechowywania w pamięci niestałej – zatem należy opracować mechanizmy ich odzyskiwania). 7 Generowanie raportów wykorzystujących wartości lingwistyczne pl s. Dotychczasowe rozważania skoncentrowane zostały wokół problemów pojawiających się w momencie wprowadzenia w systemie wartości lingwistycznych. Warto jednak jeszcze jednym przykładem podkreślić przewagę, jaką w pewnych sytuacjach może dać wykorzystanie w aplikacji języka naturalnego. Warto również zwrócić uwagę, iż wartości lingwistyczne można zastosować nie tylko na etapie budowania zapytania zawierającego warunki rozmyte. Nie zawsze bowiem celowym jest zwrócenie w odpowiedzi na takie zapytanie wartości liczbowych. Można wskazać przypadki, w których lepszą (bardziej przejrzystą) okazać się może odpowiedź zawierająca wyrażenia języka naturalnego. Przykładem zastosowania powyższego rozumowania jest generator artykułów, utworzony jako część systemu przedstawionego w [8]. System ten, jak wcześniej wspomniano gromadzi dane giełdowo – ekonomiczne oraz umożliwia dostęp do nich poprzez zastosowanie zapytań zawierających elementy rozmyte. Ponadto w oparciu o zebrane informacje, przygotowany szablon oraz wybrane przez użytkownika parametry system generuje miniartykuł (news prasowy) dotyczący aktualnych danych. W pierwszej chwili można odnieść wrażenie, że dane giełdowo – ekonomiczne są informacjami na tyle ścisłymi i precyzyjnymi, iż konieczne jest wyrażanie ich w sposób dokładny – a zatem liczbami. W praktyce okazać się jednak może, że wersja tekstowa, niemal pozbawiona cyfr niesie wystarczająco wiele informacji, aby czytający mógł wysnuć z niej prawidłowe i zgodne z rzeczywistością wnioski. Dodatkowo, dzięki uniknięciu konieczności czytania liczb, cały artykuł może zostać przyswojony w krótszym czasie. Jako przykład zaprezentowany zostanie fragment opisywanego artykułu w dwóch wersjach – zawierającej dużą liczbę danych numerycznych oraz ze zminimalizowaną liczbą danych numerycznych [8]. 99 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2007 Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007 J. Podstawny, B. Małysiak Wersja 1 (duża liczba danych numerycznych) w During the last day, the main Polish stock index - WIG has lost 330,61 points, falling to the level of 25524,02 points. This is a high (1,28%) decrease. Today's exchange value for this index was little (19154,00 thousands PLN). This means a low (30,14 percent) decrease. WIG20 has gained 7,68 points, and reached the level of 1891,90 points. This is a low (0,41%) increase. Exchange value for today was below average (40185,00 thousands PLN), which means a high (110,36 percent) increase. Wersja 2 (minimalna liczba danych numerycznych) w w During the last day, the main Polish stock index - WIG has noted a high decrease, falling to the level of 25524,02 points. Today's exchange value for this index was little. This means a low decrease. WIG20 has reached the level of 1891,90 points. This is a low increase. Exchange value for today was below average, which means a high increase. Odpowiednio skonstruowana treść, również w przypadku pozbawienia jej wartości numerycznych pozostaje jak widać zrozumiała oraz przekazuje podstawowe informacje. Przykład ten wskazuje zatem na możliwość wykorzystania wartości lingwistycznych również po stronie odpowiedzi systemu. da .b 7 Podsumowanie Literatura 1. 2. 3. pl s. Zmienne lingwistyczne przenoszą system współpracujący z bazą danych wykorzystujący logikę rozmytą na zupełnie nowy poziom. Stanowią one przede wszystkim pomost łączący użytkownika posługującego się językiem naturalnym, z systemem komputerowym, bazującym na ścisłych danych numerycznych. Właściwie zdefiniowane i określone zmienne i wartości lingwistyczne stają się dla użytkownika intuicyjną drogą do uzyskania oczekiwanych informacji. Cecha ta nadaje sens dalszym badaniom nad budową interfejsów możliwie przyjaznych i przejrzystych, skracających dzięki temu czas potrzebny na precyzowanie dokładnych zapytań, umożliwiając konstrukcję zapytań znacznie bardziej zbliżonych do zdań budowanych w języku potocznym. Powyższe rozważania prezentują pewne trudności, jakie napotkać można w procesie projektowania i implementacji systemu współpracującego z bazą danych wykorzystującego zmienne i wartości lingwistyczne. Niektóre z nich zostały już przynajmniej w części pokonane, nad rozwiązaniem pozostałych trwają badania. Niemniej korzyści płynące ze stosowania interfejsów przyjaznych użytkownikowi są niepodważalne, co powala twierdzić, iż tematyka ta warta jest dalszych rozważań, prac i badań. Zadeh L. A.: Fuzzy sets, Information and Control 8, 338-353, 1965. Czogała E., Pedrycz W.: Elementy i metody teorii zbiorów rozmytych. Wydawnictwa NaukowoTechniczne, Warszawa 1985. Łachwa A.: Rozmyty świat zbiorów, liczb, relacji, faktów, reguł i decyzji. Akademicka Oficyna Wydawnicza Exit, Warszawa 2001. 100 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2007 Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007 Zastosowanie wartości lingwistycznych w autonomicznym module translacji zapytań rozmytych ... 4. 5. 6. 7. w 8. 9. 10. 11. 12. 13. 14. 16. 17. 18. 19. 20. 21. 23. 24. 25. 26. 27. 28. pl s. 22. da .b 15. w w Yager R, Filev D.: Podstawy modelowania i sterowania rozmytego. Wydawnictwa Naukowo– Techniczne, Wiley. Warszawa 1995. Piegat A.: Modelowanie i sterowanie rozmyte. Akademicka Oficyna Wydawnicza Exit, Warszawa 1999. Małysiak B.: Metody aproksymacyjnego wyszukiwania obiektów w bazach danych, Rozprawa doktorska, Politechnika Śląska, Instytut Informatyki, Gliwice 2003. Małysiak B.: Wartości rozmyte w pytaniach sql do baz danych. Studia Informatica, Vol. 24, nr 2A (53), Gliwice 2004. Podstawny J.: Rozproszony system dostępu do bazy danych giełdowych i ekonomicznych oparty na logice rozmytej, Praca dyplomowa magisterska pod kierunkiem B. Małysiak. Politechnika Śląska, Instytut Informatyki, Gliwice 2005. Tahani V.: A Conceptual Framework for Fuzzy query processing: a step toward very intelligent data systems. Inf. Proc. and Management 13. 1976. Zadeh L. A.: PRUF – a meaning representation language for natural languages. International Journal Man-Machine Studies, VOL. 10, pp. 395-460, 1978. Kacprzyk J., Ziółkowski A.: Database Queries with Fuzzy Linguistic Quantifiers. IEEE Transactions of Systems, Man, and Cybernetics. Vol. SMC-16, Nr 3, maj/czerwiec 1986. Takahashi Y. A fuzzy query language for relational databases. IEEE Transactions on Systems, Man, and Cybernetics. Vol. 21, No.6, November/December 1991 Bordogna G., Pasi G.: Recent Issues on Fuzzy Databases. A Springer–Verlag Company. Niemcy Heidelberg 2000r. Bordogna G., Pasi G.: Modeling Vagueness in Information Retrieval. Springer-Verlag Berlin Heidelberg 2000. Bordogna G., Pasi G.: A fuzzy query language with a linguistic hierarchical aggregator. ACM 1994. Kacprzyk J., Szmidt E.: Intiutionistic Fuzzy Sets in Some Medical Applications. Springer-Verlag Berlin Heidelberg, 2001. Kacprzyk J., Szmidt E.: Intiutionistic Fuzzy Sets in Intelligent Data Analysis for Medical Diagnosis. Springer-Verlag Berlin Heidelberg, 2001. Kacprzyk J., Zadrożny S. :FQUERY for Access: Towards human consistent querying user interface. ACM 0-89791-820-7, 1996. Kacprzyk J., Zadrożny S.: Computing with words in intelligent database quering: standalone and Internet-based applications. 1997. Kacprzyk J., Zadrożny S.: On summarization of large data sets via a fuzzy–logic-based querying add-on to Microsoft Access. Intelligent Information Systems VII. Proceedings of the Workshop. Malbork czerwiec 1998r. Małysiak, B., Mrozek, D., Kozielski, S.: Processing Fuzzy SQL Queries with Flat, ContextDependent and Multidimensional Membership Functions, Proc. of 4th IASTED International Conference on Computational Intelligence (CI 2005), July 4-6, 2005, Calgary, Canada. ACTA Press, 2005, pp. 36-41. Bosc P., Dubois D., Prade H.: Fuzzy Functional Dependencies An Overview And A Critical Discussion Flexible Query-Answering Systems. 1994. Bosc P., Lietard L., Pivert O.: Quantified Statements in a flexible relational query language. Proceedings of the 1995 ACM symposium on Applied computing, February 26-28, 1995, Nashville, TN, USA. ACM 1995. p.488-492. Bosc P., Pivert O.: Fuzzy queries and Relational Databases Proceedings of the 1994 ACM Symposium on Applied Computing, March 6-8, 1994, Phoenix, AZ, USA. ACM 1994. 170-174. Małysiak B.: Interpretacja rozmytych warunków filtrujących w zapytaniach SQL. Studia Informatica, Vol.25, nr 2(58), Gliwice 2004. Małysiak B.: Uzupełnianie zapytań SQL o stopień zgodności kryterium wyboru. Studia Informatica, Vol.25, nr 2(58), Gliwice 2004. Małysiak B.: Rozmyte grupowanie danych w pytaniach SQL.WNT, SCR’2004, Warszawa 2004. Bosc P., Pivert O.: SQLf: A Relational Database Language for Fuzzy Querying. IEEE Transactions on Fuzzy Systems. Vol. 3, Nr 1, luty 1995. 101 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2007 Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007 J. Podstawny, B. Małysiak w 29. Dubois D., Prade H.: Using fuzzy sets in flexible querying: Why and how? Query-Answering Systems. 1996. 30. Małysiak, B., Mrozek, D.: Rozmyta agregacja danych w pytaniach SQL, w monografii Bazy danych: Modele, Technologie, Narzędzia. Tom 2 – Analiza danych i wybrane zastosowania. Wydawnictwa Komunikacji i Łączności, Warszawa, 2005, pp. 77-84. 31. Galindo J., Medina J. M., Pons O., Cubero J. C.: A Server for Fuzzy SQL Queries. SpringerVerlag Berlin Heiderberg, 1998. 32. Larsen H.: An Approach to flexible information access systems using soft computing. International Conference on System Sciences, Hawaje 1999. 33. Yager R., Larsen H.: Retrieving information by fuzzyfication of queries. Journal of Intelligent Information Systems. 1993. 34. Yu C.T., Meng W.: Principles of Database Query Processing for Advanced Applications. Morgan Kaufmann Publishers, Inc., 1998. 35. Zadrożny S.: Zapytania nieprecyzyjne i lingwistyczne podsumowanie baz danych. Akademicka Oficyna Wydawn. EXIT, 2006. 36. Kacprzyk J.: Wieloetapowe sterowanie rozmyte. Wydawnictwa Naukowo–Techniczne, Warszawa 2001. pl s. da .b w w 102 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2007