Logiczna analiza tekstu
Transkrypt
Logiczna analiza tekstu
Logiczna analiza tekstu Większość współczesnych środków informatycznych obsługujących Internet wykorzystuje lepiej lub gorzej określone operacje i reguły logicznej analizy tekstu. W tym kontekście, znajomość przez nauczycieli metod logicznej analizy tekstu wydaje się być dobrze uzasadniona. Zapoznanie się z ta dziedzina moŜna rozpocząć od ksiąŜki Witolda Marciszewskiego „Metody analizy tekstu naukowego” (1981 r.). ChociaŜ praca ta była przygotowana dla wydawnictwa jako poradnik, czy przewodnik po wskazanej w tytule ksiąŜki dziedzinie wiedzy, przeznaczony dla nauczycieli akademickich i studentów, to takŜe prezentowała nowatorskie idee oraz wytyczała nowe kierunki badań. Zwłaszcza prekursorskie było zaproponowanie, jako głównego celu logicznej analizy tekstu, badania logicznego związku pomiędzy tematem a rematem, tj. pomiędzy tymi fragmentami tekstu, które reprezentują wiedzę potrzebną do wyznaczenia innej wiedzy, a tymi fragmentami tekstu, które reprezentują wiedzę wyznaczoną na podstawie tematu. W tym ujęciu, istotą poprawności logicznej jednostki tekstu jest występowanie logicznego stosunku pomiędzy tematem i rematem. Ten związek logiczny ustala się dokonując formalnego opisu relacji określających zwartość tematyczną tekstów z danej dziedziny wiedzy, do której naleŜy analizowany tekst. Analizowane relacje zwane są relacjami nawiązywania. Na podstawie tych relacji wyprowadzane są jedne teksty z drugich, adekwatnie do wyznaczania jednej wiedzy przez drugą. W sensie wyprowadzalności tekstów, w dowolnym wyprowadzeniu jedne teksty są następnikami innych, w tym teksty wyprowadzane (rematy) są następnikami tekstów (tematów), z którymi pozostają w relacji nawiązywania. Z tego powodu, do badania struktury tematycznej tekstu moŜna zastosować aparat pojęciowy teorii krat. Ze względu na znaczenie pojęć tematu i rematu dla analizy tekstu, postuluje się utworzenie teorii, którą autor omawianej pracy proponuje nazwać logiczną teorią tekstu. Formalizacja języka dziedzin wiedzy Omówimy teraz standaryzację procedur logicznej analizy tekstu określoną przez wymogi programowania logicznego. W dowolnym systemie reprezentacji wiedzy reprezentowana jest wiedza z pewnej dziedziny. Język, w którym wyraŜana jest ta wiedza nazywamy językiem tej dziedziny wiedzy. Istotą programowania logicznego jest 1) taka formalizacja tekstu zadania, wyraŜonego w języku jakiejś dziedziny wiedzy, która reprezentuje wiedzę logiczną o danych i faktach, do których odwołuje się (nawiązuje) tekst zadania, a więc reprezentacja tego co jest dla tego tekstu i dla danej dziedziny wiedzy tematem, utoŜsamianym w programowaniu logicznym z siecią semantyczną, 2) formalizacja relacji nawiązywania, ustalających sekwencje operacji prowadzących od danych i faktów do innych danych i faktów lub do nowych danych (szukanych) i ustaleń (tj. do rematu); w programowaniu logicznym sekwencjom tych operacji odpowiada przestrzeń rozwiązań, a zbiorowi relacji nawiązywania - baza wiedzy, 3) formalizacja wszystkich faktów określonych przez relacje nawiązywania występujące w tekście zadania; w programowaniu logicznym reprezentacji tych faktów odpowiada dynamiczna baza danych, 4) formalizacja zbioru danych, niekoniecznie występujących w tekście zadania, do których trzeba się odwołać, aby uzyskać to co jest szukane; w programowaniu logicznym odpowiada temu zewnętrzna baza danych, 5) formalizacja zapytań, określających to co szukane i co ma być ustalone, a więc reprezentacja tego co jest dla danego tekstu zadania rematem. W celu dokonania tak rozumianej formalizacji tekstów języka dziedziny wiedzy wyróŜniamy w nim: 1) zaimki nieokreślone: „ktoś”, „coś”, „jakiś”, itp., oznaczające dowolnie ustalony przedmiot, 2) nazwy indywidualne, oznaczające indywidua, np. „ten człowiek”, „to dziecko”, „miasto Warszawa”, „to co jest aktualnie liczone”, „człowiek, o którym jest tu mowa”, „przedmiot, który mamy na uwadze”, „dowolnie ustalony na czas rozwaŜań przedmiot”, itp. 3) nazwy proste, które nie są tworzone z innych nazw, np. „dom”, „liczba” 4) funktory nazwotwórcze tworzące z nazw (zaimków) nowe nazwy (zaimki), oznaczające operacje i ich złoŜenia 5) nazwy złoŜone, zbudowane z nazw prostych za pomocą funktorów nazwotwórczych, np. „wielki, biały stół” 6) zaimki złoŜone: „coś białego”, „jakaś liczba”, itp. 7) dane – nazwy odnoszące się bezpośrednio do stanów rzeczy, np. „dana długość”, „dane nazwisko”, „data urodzenia” w wyraŜeniu „znana jest data urodzenia Jana Kowalskiego”, oraz wszystkie nazwy występujące w wyraŜeniach odwołujących się do wiedzy człowieka, itp. 8) Szukane – nazwy odnoszące się pośrednio do stanów rzeczy, np. „szukana długość”, „szukane nazwisko”, nazwy tego co szukane i wskazywane przez pytania, itp. 9) umiejscowienie tekstu - nazwa będąca identyfikatorem połoŜenia nazwy w tekście, np. „w środku tekstu”, „na wstępie”, „piąta z kolei dana”, „druga z kolei szukana”, „następująca po [nazwa]” , „w cytowanej ksiąŜce”, itp. 10) funktory zdaniotwórcze: zwroty typu „kaŜde ... jest ...”, „...biegnie”, itp. oraz spójniki zdaniowe „nieprawda, Ŝe...”, „...i...”, „...lub...”, „jeŜeli..., to...”, „...wtedy i tylko wtedy...”, a takŜe zwroty kwantyfikujące „kaŜdy...spełnia warunek....”, „pewien... spełnia warunek...”, „ ...identyczne z...”, 11) fakty - wyraŜenia zdaniowe łączone zwrotami „jest faktem, Ŝe ...”, „załóŜmy, Ŝe ...”, „prawdą jest, Ŝe ...” i wszystkimi zwrotami o tym samym znaczeniu, wskazującymi na znany stan rzeczy 12) ustalenia - wyraŜenia łączone zwrotem „jest ustalone, Ŝe ...”, „naleŜy odpowiedzieć na pytanie czy ...” i wszystkimi zwrotami o tym samym znaczeniu, wskazujące pośrednio na stan rzeczy; ustalenia odpowiadają więc pewnego rodzaju pytaniom 13) funktory odwołań – są to wszelkie znaki, w tym zwroty odwołujące się do innych tekstów, czy części danego tekstu np. do wyraŜeń zdaniowych zawartych w tekście, np. rozpoczęcie wyraŜenia zdaniowego z duŜej litery i zakończenie go kropką jest odwołaniem do wydzielonego przez ten funktor wyraŜenia zdaniowego, funktorami odwołań są takŜe dla nazw zwrot „...jest...”, a dla wyraŜeń zdaniowych zwroty „.... Stąd wynika, Ŝe ...”, „..., a więc ...”, „Zatem ....”, itp. oraz zwroty określające cytowanie lub bycie faktem czy ustaleniem, 14) odwołania – wyraŜenia tworzone za pomocą funktorów odwołań 15) wyraŜenia zdaniowe, które zbudowane są z wyróŜnionych nazw za pomocą wyróŜnionych funktorów i te wyraŜenia, które dają się tak przeformułować, aby były zbudowane z wyróŜnionych nazw i funktorów. Następnie budujemy schematy (wzory, diagramy, tabele, itp. )1 wyróŜnionych wyraŜeń zdaniowych języka danej dziedziny wiedzy tak, aby kaŜdemu takiemu schematowi, oddzielnie, odpowiadało jakieś wyraŜenie tego języka. W standardowej notacji logiki pierwszego rzędu formalizację moŜemy dokonać następująco: 1) zmienne: x1, x2, x3, ... , reprezentują zaimki nieokreślone, np. wyraŜenie zdaniowe „kaŜdego dnia ktoś biegnie jakąś aleją parku jakiegoś miasta” jest równoznaczne „kaŜdego dnia człowiek jakiś biegnie aleją parku jakąś miasta jakiegoś.” a po zamianie zaimków na zmienne „kaŜdego dnia człowiek x1 biegnie aleją parku x2 miasta x3.” 2) stale: c1, c2, c3, ... , reprezentują nazwy indywidualne, np. wyraŜenie zdaniowe „jakiś człowiek mieszka w mieście Warszawa” c1 człowiek x1 mieszka w c1 3) dziedziny deklarowane (typy zmiennych): D1, D2, D3, ... , reprezentują nazwy proste, „kaŜdego dnia człowiek biegnie w mieście” D1 D2 D3 4) symbole funkcyjne: f11, f21, f31, ... , f1k, f2k, f3k, ... , reprezentują funktory nazwotwórcze jeden, ..., k-argumentowe, ... , np. człowiek x1 mieszkający w c1 f12( f11( x1 ) , c1) 5) termy: niech t1, t2, t3, ..., reprezentują dowolne zaimki (proste i złoŜone) – zmienne i stałe są termami, jeśli t1, t2, t3, ...,tk są termami, a fnk jest symbolem funkcyjnym, to fnk(t1, t2, t3, ...,tk) jest termem, np. schemat w punkcie 4) jest termem powstałym z symbolu funkcyjnego f12, termu f11(x1) oraz stałej c1 6) dziedziny: niech H1, H2, H3, ... , reprezentują dowolne nazwy – dziedzinami są dziedziny deklarowane (np. standardowe) oraz jeśli H1, H2, H3, ... , Hk są dziedzinami, , a fnk jest symbolem funkcyjnym, to fnk(H1, H2, H3, ...,Hk) jest dziedziną wyznaczoną przez ten symbol, np. jeŜeli dziedzina D1 reprezentuje nazwę „człowiek”, a dziedzina D2 – nazwę 1 NaleŜy zauwaŜyć, Ŝe współcześnie formalizacji dokonuje się takŜe np. w języku diagramów, tj. sieci semantycznych i przestrzeni rozwiązań, posiadających strukturę grafów skierowanych. Por. R. Kowalski, Logika w rozwiązywaniu zadań, Warszawa 1989, s. 33. „miasto”, natomiast symbol funkcyjny f12 reprezentuje zwrot „... mieszkający w ...”, to f12(D1,D2) jest dziedziną reprezentującą wyraŜenie nazwowe „ człowiek mieszkający w mieście” 7) deklaracja symbolu funkcyjnego: niech H1, H2, H3, ... są dziedzinami deklarowanymi oraz H jest dziedziną róŜną od nich, dalej niech fnk jest symbolem funkcyjnym, wtedy wyraŜenie H = fnk(H1, H2, H3, ...,Hk) nazywamy deklaracją symbolu funkcyjnego fnk , 8) deklaracja dziedzin: niech D1, D2, ..., Dk są dziedzinami standardowymi, a H1, H2, ..., Hn pewnymi ustalonymi dziedzinami, w których nie występują wymienione dziedziny standardowe, wtedy wyraŜenie D1, D2, ..., Dk = H1; H2; ...; Hn nazywamy deklaracją dziedzin D1, D2, ..., Dk i czytamy: dziedziny D1, D2, ..., Dk utoŜsamiamy z dziedzinami H1 lub H2 lub ... lub Hn , 9) deklaracja zewnętrznej dynamicznej bazy danych: deklaracja dziedzin reprezentujących nazwy zewnętrznych w stosunku do tekstu zadania, zbiorów danych 10) deklaracja miejsca danych w zewnętrznej bazie danych: deklaracja dziedziny miejsca danej lub szukanej 11) predykaty: P11, P21, P31, ... , P1k, P2k, P3k, ... , reprezentują funktory zdaniotwórcze, tworzące z nazw albo zaimków wyraŜenia zdaniowe, jedno, ..., k-argumentowe, ..., np. człowiek x1 mieszka w c1 P12( f11( x1 ) , c1) 12) stałe logiczne: ¬, ∧, ∨, ⇒, ⇔, ∀, ∃, =, reprezentują odpowiednio wymienione spójniki zdaniowe i zwroty kwantyfikujące oraz identyczność. 13) Znaki techniczne: nawiasy i przecinki – reprezentują obszar wiązania przez funktory składników tekstu, np. jeśli w napisie „A ∨ B ∧ C” nie umieścimy nawiasów (. ), to nie wiadomo czy napis ten jest schematem jakiegokolwiek zdania, gdyŜ nie reprezentuje wiedzy o tym, które ze zdań jest tu połączone spójnikiem „lub”, a które spójnikiem „i”, chyba, Ŝe wcześniej ustalimy kolejność łączenia przez spójniki logiczne (tzw. siłę wiązania); napis „(P11(c1) ∨ P11(x1)) ∧ P21(c2)” jest schematem jakiegoś wyraŜenia zdaniowego, 14) deklaracje predykatów: niech H1, H2, H3, ... , Hk są deklarowanymi dziedzinami, , a Pnk jest predykatem, to Pnk(H1, H2, H3, ...,Hk) deklaracją predykatu, 15) formuły atomowe: niech t1, t2, t3, ...,tk , tn są termami, a Pnk jest predykatem, wtedy Pnk(t1, t2, t3, ...,tk) jest formułą atomową, 16) formuły: deklaracje dziedzin, deklaracje predykatów, formuły atomowe są formułami, niech A, i B są formułami oraz t i h termami, wtedy formułami są ¬ (A), ( A) ∧ (B) , (A) ∨ (B), (A) ⇒ (B), ⇔, ∀xk (A), ∃xk (A) , t = h, 17) deklaracja wewnętrznej bazy danych: deklaracja predykatów, których dziedziny są dziedzinami danych lub szukanych 18) formuły faktów - formuły będące schematami faktów, 19) formuły ustaleń – formuły będące schematami ustaleń 20) formuły reguł - formuły będące schematami odwołań Uwaga. RozróŜnienie: wewnętrzna, zewnętrzna baza danych nie jest natury czysto technicznej, lecz związane jest ze strukturą wielu tekstów wyraŜonych w jakimś języku wiedzy. I tak, wiązanie przez predykaty danych z szukanymi określone jest powiązaniami wewnątrz tekstu, natomiast określenie termów jako naleŜących do dziedziny danych lub szukanych oraz ustalenie ich miejsca moŜe jedynie odbyć się na zewnątrz tekstu. Formuły poprawnie zbudowane nie zawierające dziedzin nazywamy formułami rachunku kwantyfikatorów, a zbiory deklaracji związane z tymi formułami - środowiskiem określoności tych formuł (environ). Na formalizację analizy tekstu języka danej dziedziny wiedzy składają się więc (w nawiasach podano nazwy tych składników w języku Turbo Prolog): 1. Środowisko E1. Deklaracja dziedzin (DOMAINS), w tym zewnętrznej bazy danych E2. Deklaracja dynamicznej bazy danych (DATABASE) E3. Deklaracja predykatów (PREDICATES) 1. Lista ustaleń (GOAL): lista (koniunkcja) formuł atomowych w których występują zmienne reprezentujące to co szukane 2. Lista formuł (CLAUSES) F1. Formuły faktów F2. Formuły reguł W formalizacji tekstów języka danej dziedziny wiedzy wykorzystuje się takŜe następujące zasady schematyzacji: Schemat 1. Dowolna część wyraŜenia języka, która odnosi się do tej samej wiedzy ma ten sam schemat. Schemat 2. KaŜda schematyzacja wyraŜenia zdaniowego poprzedzona jest deklaracjami dziedzin i predykatów reprezentujących odpowiednio nazwy i funktory zdaniotwórcze wiąŜące te nazwy w danym wyraŜeniu zdaniowym. Przykład x2 x3 x4 P13 P13 JeŜeli jakaś osoba poŜyczy coś drugiej osobie, a ta poŜyczy to trzeciej, to trzecia osoba moŜe to zwrócić pierwszej P23 x1 Dziedziny: D1 – osoba, D2 – przedmioty poŜyczane/zwaracane, Predykaty: P13 - .... poŜyczy ..., ..., P23 - .... zwróci ..., ..., Deklaracje: P13 (D1, D2, D1) – deklaracja reprezentuje wiedzę o tym, Ŝe osoba poŜycza przedmiot, osobie, P23 (D1, D2, D1) - deklaracja reprezentuje wiedzę o tym, Ŝe osoba zwraca przedmiot, osobie, Schemat przykładowego wyraŜenia zdaniowego ma postać P13 (D1, D2, D1) ∧ P23 (D1, D2, D1) ∧ ((P13 (x1, x2, x3) ∧ P13 (x3, x2, x4)) ⇒ P23 (x4, x2, x1)) Formuła Środowisko Schemat 3 Schematyzując wyraŜenie, te same nazwy i zaimki nie poprzedzone bezpośrednio zwrotami kwantyfikującymi oznaczamy za pomocą tych samych symboli zmiennych, a jeŜeli poprzedzone są bezpośrednio wyraŜeniami kwantyfikującymi, oznaczamy je róŜnymi wcześniej nie występującymi zmiennymi. Schemat 4 JeŜeli w prostym wyraŜeniu zdaniowym (nie zawierającym spójników zdaniowych) nazwy poprzedzone są bezpośrednio zwrotami kwantyfikującymi, to zwroty kwantyfikujące wraz z nazwami zastępujemy róŜnymi, wcześniej nie występującymi zmiennymi, a stosowne znaki kwantyfikatorów wraz z odpowiadającymi im zmiennymi wypisujemy na początku formuły zgodnie z porządkiem wykonywanej schematyzacji. Np. KaŜdy matematyk jest uczniem pewnego matematyka ∀ x1 P12 ∃ x2 P12(D1, D1) ∧ ∀x1∃x2 P12(x1, x2) Gdzie D1 jest dziedziną reprezentującą matematyków. Schemat 5 We wszystkich schematach, w których występują kwantyfikatory, kaŜdy kwantyfikator musi wiązać inną zmienna, np. formuła ∀x1 P11(x1) ∨ ∃ x1 P11(x1) nie moŜe być poprawnym schematem, ale formuła ∀x1 P11(x1) ∨ ∃ x2 P11(x2) moŜe nim być. Uwaga. W formalizacji stosowanej zazwyczaj w logice formalnej dziedziny zapisuje się w postaci jednoargumentowych predykatów, np. zamiast P12(D1, D2) ∧ ∀x1∃x2 P12(x1, x2) moŜna napisać: ∀x1 (D1(x1) ⇒ ∃x2 (D2(x2) ∧ P12(x1, x2))), a w notacji teoriomnogościowej : ∀x1∈D1∃x2∈D2 P12(x1, x2). MoŜna takŜe zmienne odnoszące się do róŜnych dziedzin oznaczać w róŜny sposób, np. w notacji teoriomnogościowej zbiory oznacza się duŜymi literami a ich elementy małymi. ZłoŜoność uzyskanych napisów w tych schematyzacjach jest jednak znacznie większa niŜ w proponowanej wyŜej metodzie, dlatego teŜ ta metoda schematyzacji przyjęła się w programowaniu logicznym. Nie wchodząc w szczegóły programowania logicznego w języku Turbo Prolog, zauwaŜmy na zakończenie tej części rozwaŜań, Ŝe program komputerowy napisany w tym języku reprezentuje wiedzę o logicznej analizie zadania jako jednostki tekstu, analizie ustalającej logiczny związek pomiędzy tym co jest tematem zadania i tym co jest rematem zdania, czy upraszczając: pomiędzy tym co jest dane, a tym co jest szukane. To spostrzeŜenie jest silną motywacją do poczynienia pewnych uogólnień. 1.7 Reprezentowanie wiedzy o wartościach logicznych zdań – tabele prawdziwościowe Dotąd rozwaŜaliśmy schematy zdań będące reprezentacjami wiedzy o tym, w jaki sposób zdania złoŜone są zbudowane ze zdań prostych. Nie interesowało nas, czy zdanie reprezentuje wiedzę o pewnym stanie rzeczy, czy teŜ nie, tzn., czy zdanie to jest prawdziwe w pewnej dziedzinie wiedzy (ma wartość logiczną prawdy), czy nie (ma wartość logiczną fałszu). Nie była teŜ brana pod uwagę wiedza o tym, jaka jest zaleŜność pomiędzy wartością logiczną zdania złoŜonego utworzonego przy pomocy spójników ze zdań prostych a wartościami logicznymi tych zdań. Aby móc reprezentować tego rodzaju wiedzę, wartości prawdy i fałszu oznaczymy, odpowiednio, symbolami 1 i 0. W reprezentacji standardowej, będącej wynikiem formalizacji, wiedza o zasadach określania wartości logicznej zdań złoŜonych jest zazwyczaj przedstawiana za pomocą tabel prawdziwościowych , budowanych dla schematów tych zdań. Tabele prawdziwościowe dla formuł są wzorami, według których określamy wartość logiczną zdania złoŜonego w zaleŜności od wartości zdań składowych: A 0 0 1 1 B 0 1 0 1 ¬A 1 1 0 0 A∨B 0 1 1 1 A∧B 0 0 0 1 A⇒B 1 1 0 1 A⇔B 1 0 0 1 Tab. 1 Formuły, które są schematami tylko zadań prawdziwych nazywamy tautologiami, a takie, które są schematami tylko zdań fałszywych nazywamy kontrtautologiami. To czy formuła jest tautologią czy nie moŜemy sprawdzić korzystając z tabel prawdziwościowych. Np. kaŜda formuła postaci (A ∧ (B ∨ C)) ⇒ (¬C ⇒ A) jest tautologią, gdyŜ na podstawie tabel prawdziwościowych moŜna wykazać, Ŝe przy dowolnych wartościach logicznych składowych A, B, C formuła reprezentuje zadanie prawdziwe (Tab. 2) ZauwaŜmy, Ŝe na podstawie tabel prawdziwościowych dla spójników zdaniowych dysponujemy następującą wiedzą: • formuła ¬A jest tautologią, gdy dowolne zdanie o schemacie A jest fałszywe, co oznacza, Ŝe A jest kontrtautologią, • formuła A ∨ B jest tautologią, gdy w dowolnym zdaniu o schemacie A ∨ B co najmniej jedno ze zdań o schematach A, B jest prawdziwe, w szczególności, gdy jedna z formuł A lub B jest tautologią, • formuła A ∧ B jest tautologią, gdy w dowolnym zdaniu o schemacie A ∧ B oba zdania schematach A, B są prawdziwe, w szczególności, gdy obie formuły A i B są tautologiami, • formuła A ⇒ B jest tautologią, gdy w dowolnym zdaniu o schemacie A ⇒ B, jeŜeli zdanie o schemacie A jest prawdziwe, to zdanie o schemacie B jest prawdziwe, w szczególności, jeŜeli formuła A jest tautologią, to B jest teŜ tautologią, • formuła A ⇔ B jest tautologią, gdy w dowolnym zdaniu o schemacie A ⇔ B oba zdania o schematach A, B mają tę samą wartość logiczną, w szczególności, gdy obie formuły A i B są tautologiami lub kontrtautologiami, A B C B∨C ¬C A ∧ (B ∨ C ¬C ⇒ A (A ∧ (B ∨ C)) ⇒ (¬C ⇒ A) 0 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 Tab. 2 RozwaŜmy teraz formuły poprzedzone kwantyfikatorami. Niech A(x) jest dowolną formułą, w której x jest jedyną zmienną wolną. Oznaczmy zbiór wszystkich zdań, których schematem jest ta formuła przez P, gdy wszystkie zdnia tego zbioru są prawdziwe, przez F, gdy są fałszywe, a przez T, gdy niektóre zdania tego zbioru są prawdziwe, a niektóre fałszywe. Wiedzę o wartościach logicznych zdań, których schematem jest formuła ∀xA(x) lub formuła ∃xA(x) reprezentuje tabela A(x) ∀xA(x) ∃xA(x) P 1 1 F 0 0 T 0 1 Tab. 3 Wiedzę reprezentowaną przez powyŜszą tabelę moŜemy teŜ sformułować następująco: • jeŜeli formuła ∀xA(x) jest schematem zdania prawdziwego, to formuła A(x) jest schematem zdań wśród których kaŜde zdanie jest prawdzie, np. zdanie o schemacie A(c), gdzie wybór termu c nie zaleŜy od formuły A(x), a jedynie od dziedziny argumentu x, jest więc dowolny, • jeŜeli formuła ∃xA(x) jest schematem zdania prawdziwego, to formuła A(x) jest schematem zdań wśród których co najmniej jedno zdanie jest prawdzie, np. zdanie o schemacie A(c), gdzie wybór termu c zaleŜy od formuły A(x) i od dziedziny argumentu x, a więc moŜe być dokonany tylko raz podczas formalizacji tekstu, • jeŜeli formuła ¬∀xA(x) jest schematem zdania prawdziwego, to formuła ¬A(x) jest schematem zdań wśród których co najmniej jedno zdanie jest prawdzie, np. zdanie o schemacie ¬A(c), gdzie wybór termu c zaleŜy od formuły A(x) i od dziedziny argumentu x, a więc moŜe być dokonany tylko raz podczas formalizacji tekstu, • jeŜeli formuła ¬∃xA(x) jest schematem zdania prawdziwego, to formuła ¬A(x) jest schematem zdań wśród których kaŜde zdanie jest prawdzie, np. zdanie o schemacie ¬A(c), gdzie wybór termu c nie zaleŜy od formuły A(x), a jedynie od dziedziny argumentu x, jest więc dowolny, Wykorzystując powyŜszą wiedzę, sprawdzanie czy schemat danego zdania jest tautologią moŜna dokonywać na dwa sposoby: 1. zbadać, czy wartość logiczna prawdziwego zdania złoŜonego o danym schemacie nie zaleŜy od wartości logicznej zdań składowych – jest sprawdzanie wprost, 2. zbadać, czy załoŜenie, Ŝe zdanie złoŜone o danym schemacie ma wartość logiczną fałszu, moŜe prowadzić do sytuacji, w której zdanie przyjmuje dwie róŜne wartości logiczne czy teŜ, w której pewne zdanie i jego negacja są jednocześnie prawdziwe lub jednocześnie fałszywe, tzn. zachodzi sprzeczność – jest to sprawdzanie nie wprost. ZauwaŜmy, Ŝe sprawdzanie tautologiczności bazuje na wnioskowaniu, a opisane zasady sprawdzania moŜna precyzyjniej przedstawić w postaci następujących schematów: (NN) ¬¬A A A∧ B A (K) A∨ B A| B (A) (C) A⇒ B ¬A | B (NK) ¬( A ∧ B ) ¬A | ¬B (NA) ¬( A ∨ B ) ¬A (NC) ¬( A ⇒ B) A ¬B (EX) ∃xA( x) A(c) (NEX) (ALL) ∀xA( x) A(c) (NALL) ¬∃xA( x) ¬A( x) ¬∀x( Ax) ¬A(c) Gdzie znak „|” oznacza rozgałęzienie wywodu, a ograniczenia nałoŜone na term są takie jak poprzednio. Logicy w XX w. wykazali, Ŝe zaprezentowana tu wiedza o formalizacji tekstów języków dziedzin wiedzy jest wystarczająca do sprawdzenia nie wprost czy dowolna formuła jest tautologią, jest to tzw. metoda tabel analitycznych. Metoda ta jest takŜe skuteczna do badania poprawności rozumowań prezentowanych w tekstach wyraŜających wiedzę z dowolnych dziedzin oraz do określenia szerokiej klasy formuł (tzw. klauzul hornowskich), dla których moŜliwa jest automatyzacja rozumowań przez komputery. Tak rozumiana automatyzacja jest przedmiotem programowania logicznego. 1.8 Elementy logicznej teorii tekstu Podsumowując rozwaŜania dotyczące formalizacji naszkicujemy, podając listę stosownych definicji, aparat pojęciowy umoŜliwiający sformułowanie logicznej teorii tekstu. Przez wiedzę będziemy rozumieć, jak poprzednio, informację przetwarzaną przez umysł człowieka, a przez reprezentację wiedzy, przedstawianie (kodowanie) wiedzy za pomocą róŜnorakich środków w ramach systemów komunikacji międzyludzkiej. Reprezentacje wiedzy są więc tekstami. Zrelatywizowanie reprezentacji wiedzy do dziedzin wiedzy prowadzi do wyodrębnienia tekstowych dziedzin wiedzy, a wyraŜanie tych tekstów w jakimś języku, do wyodrębnienia języka dziedziny wiedzy. Gdy wszystkie równokształtne teksty reprezentują tę samą wiedzę ( w szczególności są pusto spełnione), a równokształtność jest kongruencją w tekstowej dziedzinie wiedzy, to tekstową dziedzinę wiedzy nazywamy systemem reprezentacji wiedzy. Definicja 1 Strukturę relacyjną < U, U0, ε, R> nazywamy tekstową dziedziną wiedzy, gdy U jest niepustym zbiorem wszystkich tekstów reprezentujących wiedzę z pewnej dziedziny, U0 – wyróŜnionym niepustym podzbiorem zbioru U zwanym bazą tekstową, ε jest relacją częściowego porządku określoną na zbiorze U zwaną relacją zawierania się tekstów, a R jest ustalonym zbiorem relacji określonych w U zwanych relacjami nawiązywania tekstów. Definicja 2 Niech TDW = < U, U0, ε, R> jest tekstową dziedziną wiedzy. (a) Dwa teksty α,β∈U są równokształtne, gdy struktury relacyjne powstałe przez obcięcie systemu TDW odpowiednio do zbiorów {t∈U : t ε α}, {t∈U : t ε β} wszystkich tekstów zawartych w tekstach α,β są izomorficzne oraz części tekstu α pozostają w tych samych relacjach w systemie TDW co ich obrazy izomorficzne zawarte w tekście β. (b) Tekst α jest wyprowadzalny ze zbioru tekstów X⊆U, co zapisujemy X |- R α, gdy istnieje taki tekst β, zwany wyprowadzeniem tekstu α ze zbiory X, i istnieje taki ciąg tekstów α1, α2, ..., αn ∈ U, Ŝe spełnione są warunki (1) teksty α1, α2, ..., αn zawarte są w tekście β, (2) αn = α, (3) dla dowolnych i≤n: bądź αi ∈ X, bądź istnieją takie i1, i2, ..., ik < i oraz istnieje taka relacja r ∈ R, Ŝe <αi1, αi2, ..., αik,, αi> ∈ r (4) β jest najmniejszym tekstem w <U, ε > spełniającym warunki (1)-(3). (c) Ramą zbioru tekstów X⊆U nazywamy zbiór Fr(X) = {α∈U : X |- R α } (d) Poprawnie zbudowanymi nazywamy teksty naleŜące do zbioru Fr(U0). (e) Dla dowolnych tekstów α, β ∈U, α ≥ β wttw istnieje taki zbiór X tekstów, Ŝe β ∈ X i X |- R α, napis „α ≥ β” czytamy: α nawiązuje do β, lub α jest następnikiem β, (f) Dla dowolnego tekstu α∈U, zbiór Ex(α) = {t∈U : t ε α} nazywamy budową tekstu α. (g) Tekst β jest rematem tekstu α wttw β ∈ Fr(U0), α ≠ β, β ∈ Ex(α) oraz nie istnieje taki tekst t∈ Ex(α), Ŝe t≥β. (h) Tekst t jest tematem tekstu α wttw t ∈ Fr(U0), α ≠ t, t ∈ Ex(α) oraz kaŜdy następnik t naleŜący do Ex(α) jest rematem α. (i) Dowolny tekst nazywamy jednostką tekstu, gdy posiada w swojej budowie rematy i tematy oraz gdy ze zbioru wszystkich tematów tego tekstu wyprowadzalny jest kaŜdy z rematów. ZauwaŜmy, Ŝe dowolne wyprowadzenie tekstu poprawnie zbudowanego jest jednostką tekstu. WaŜne jest takŜe stwierdzenie, Ŝe dla dowolnej tekstowej dziedziny wiedzy TDW, w której wszystkie równokształtne teksty reprezentują tę samą wiedzę, eŜeli relacja „~” równokształtności tekstów jest kongruencją w TDW, to struktura ilorazowa TDW/~ jest takŜe tekstową dziedziną wiedzy. Uzasadnione jest więc sformułowanie następującej definicji: Definicja 3 Niech w tekstowej dziedzinie wiedzy TDW wszystkie równokształtne teksty reprezentują tę sama wiedzę, a relacja „~” równokształtności tekstów jest kongruencją w TDW. Wtedy strukturę ilorazową TDW/~ nazywamy systemem reprezentacji wiedzy, relacje nawiązywania nazywamy relacjami konkatenacji, a o wyprowadzeniu danego tekstu mówimy, Ŝe jest konkatenacją pewnego ciągu tekstów określonego przez definicję wyprowadzenia tekstu. Tekstami są typy tekstów równokształtnych. Przyjmijmy dalej, Ŝe wiedza logiczna odnosi się do przetwarzania informacji we wszechświecie określającej ogólną budowę, cechy, przyporządkowania obiektów odnoszących się do danej dziedziny wiedzy oraz relacje pomiędzy tymi obiektami . Definicja 4 Język, w którym przedstawiamy schematycznie, za pomocą schematów, tj. formuł, wzorów, planów, diagramów itp., wiedzę logiczną nazywamy językiem sformalizowanym. Język ten jest określony przez cztery zbiory symboli < Al., Tr, Fm, W>, Al jest alfabetem, Tr – zbiorem termów, Fm – zbiorem formuł, a W jest rodziną zbiorów formuł takich, Ŝe do kaŜdego z tych zbiorów naleŜą formuły reprezentujące wiedzę o tej samej wartości logicznej. Alfabet składa się z ze stałych i zmiennych indywiduowych, będących zarazem termami, symboli funkcyjnych – wiąŜących stałe i zmienne w termy, predykatów – wiąŜących stałe i zmienne w formuły, spójników – wiąŜących formuły w inne formuły, kwantyfikatorów – wiąŜących zmienne i formuły w inne formuły oraz symboli pomocniczych (np. nawiasów, ramek, kropek, linii, strzałek itd.). Przykładem języka sformalizowanego jest język będący wynikiem formalizacji (schematyzacji) języka dowolnej dziedziny wiedzy. Definicja 5 Systemem reprezentacji wiedzy logicznej nazywamy system reprezentacji wiedzy, w którym zbiorem tekstów bazowych jest zbiór wszystkich symboli języka sformalizowanego, a zbiór relacji konkatenacji pozwala 1) wyróŜnić wszystkie składniki języka sformalizowanego, 2) wyprowadzić formuły poprawnie zbudowane, 3) tworzyć teksty wywodów prowadzących od formuł o określonej wartości logicznej do formuł o określonej wartości logicznej (niezmienniczość wartości logicznych względem wywodów). Systemy iteracyjne Patrząc z poziomu informatyki zauwaŜamy, Ŝe korzystanie ze środków informatycznych, czy systemów multimedialnych, algorytmiczny charakter ich uŜycia uświadamiane są jako wielokrotnie powtarzalne i odtwarzalne działania jednakowych dla wszystkich, uniwersalnych mechanizmów-organizacji wiedzy, czy teŜ jako swoiste systemy interaktywnych procesów psychofizycznych określających komunikację człowieka z człowiekiem, człowieka z maszyną i człowieka z przyrodą. W tym sensie środki informatyczne (systemy multimedialne) są pewnymi systemami iteracji. Ma to kardynalne znaczenia dla prawidłowego kształtowania pojęć informatycznych, wskazuje bowiem na to, Ŝe kaŜde zadanie informatyczne wykonywane jest w określonym systemie iteracji. Powrócimy do tego aspektu edukacji informatycznej w dalszych rozdziałach Definicja Dowolną dziedzinę tekstową wiedzy nazywamy systemem iteracyjnym, gdy kaŜdy tekst w tej dziedzinie jest wyprowadzalny z tekstów wzorcowych (elementarnych). Procedurą jest dowolna dziedzina tekstowa wiedzy ograniczona do wszystkich tekstów zawartych w pewnym tekście. JeŜeli tekst jest wyprowadzeniem tekstu T to mówimy Ŝe procedura jest niezawodna dla T, w przeciwnym wypadku, Ŝe jest zawodna. Definicja Zbiorem procedur w danym systemie iteracji jest najmniejszy zbiór do którego naleŜą: 1. Procedury relacyjne (wyprowadzenia z uŜyciem relacji nie będącymi operacjami), 2. Procedury operacyjne (wyprowadzenia z uŜyciem operacji), 3. Ciągi procedur, 4. Układy trzech procedur, postaci jeŜeli (procedura relacyjna wyprowadzenia α, procedura pierwsza, procedura druga), reprezentujące wykonanie procedury pierwszej, gdy procedura relacyjna wyprowadzenia α nie zawodzi, a drugiej, gdy zawodzi. 5. Układy dwóch procedur zwane procedurami iteracyjnymi, postaci powtarzaj(procedura relacyjna, dana procedura), określające osiągalność kaŜdego stanu wyprowadzonego przez kolejne stosowanie tej samej procedury wyprowadzenia – dopóki procedura relacyjna nie zawodzi wykonywana jest dana procedura. Nazwa „procedura iteracyjna” jest uzasadniona tym, Ŝe procedura ta jest wtedy wykonywana, gdy spełniony jest warunek wyprowadzalności (rys.) nie Czy procedura niezawodzi? tak Procedura Rys. 1.5 Schemat blokowy procedury iteracyjnej Programowanie operacyjne a programowanie logiczne MoŜna wyróŜnić trzy konkurencyjne a zarazem współzaleŜne sposoby formalnej reprezentacji procedur: 1) reprezentacja ikoniczna – schematy blokowe, grafy, diagramy, drzewa, itp. 2) reprezentacja symboliczna – języki programowania: strukturalne, logiczne, obiektowe, wizualne. 3) reprezentacja enaktywna - tabele decyzyjne, arkusze kalkulacyjne, bazy danych, symulacje. Pierwszy sposób reprezentacji jest zarazem pierwszym etapem formułowania algorytmu: precyzyjnym zobrazowaniem algorytmu. Drugi sposób, to opis algorytmu w jakimś języku sformalizowanym, a trzeci sposób to symulacja działania algorytmu. Przez problem informatyczny rozumie się przejście od reprezentacji ikonicznej do reprezentacji symbolicznej. Rozwiązanie tego problemu umoŜliwia określenie reguł, których zastosowanie pozwala dokonać symulacji realizacji algorytmu. Sformalizowany język (zdefiniujemy go dalej), w którym wyraŜamy procedury realizowane w pewnym systemie iteracji nazywamy językiem programowania, a wyraŜenia odpowiadające procedurom programami. Są dwa typy języków programowania: pierwszy tworzy się na bazie reprezentacji procedur operacyjnych, a drugie na bazie procedur relacyjnych. Programy reprezentujące procedury operacyjne określamy następująco: S jest zbiorem programów realizowanych w systemie rzeczywistości Re wtedy i tylko wtedy, gdy jest najmniejszym spośród zbiorów S’ spełniającym następujące warunki: podzbiorem S’ jest zbiór wszystkich podstawień termu t za zmienną indywiduową x, (i) postaci x:= t2, (ii) jeśli α jest formułą logiczną spełnioną w danym systemie rzeczywistości Re oraz K,M, K1, K2, ..., Kn,, dla dowolnych n>0, naleŜą do S’, to wyraŜenia: begin K1; K2,; ..., Kn end (odpowiada ciągowi procedur), if α then K else M (odpowiada procedurze typu jeŜeli...), while α do K (odpowiada procedurze iteracyjnej), naleŜą do S’. Programy określone na bazie procedur relacyjnych są deklaracjami procedur relacyjnych, tj. formułami określonymi przez preneksyjne postacie normalne koniunkcyjnoalternatywne formuł logicznych (wszystkie kwantyfikatory występują na zewnątrz formuły o postaci normalnej). Wykorzystuje się tu metodę znaną w logice pierwszego rzędu, wyciągania kwantyfikatorów przed formułę, sprowadzenia formuły do postaci kanonicznej koniunkcyjno alternatywnej, a następnie rozszerzenia języka o symbole funkcyjne pozwalające usunąć kwantyfikatory egzystencjalne. Deklaracje procedur moŜna wyrazić za pomocą ciągów zbiorów deklaracji tych relacji lub negacji ich deklaracji, zwanych klauzulami, a programowanie w języku klauzul (np. język PROLOG)3 nazywamy programowaniem logicznym. Zdefiniujemy teraz bardziej precyzyjnie składnię języka klauzul. Najbardziej dogodnym zapisem klauzul jest zapis postaci B1, B2, ..., Bm :- A1, A2, ..., An Gdzie znak „:-„ czytamy: jeśli, przy czym B1, B2, ..., Bm, A1, A2, ..., An są formułami atomowymi, n ≥ 0 i m ≥ 0. Formuły atomowe A1, A2, ..., An stanowią koniunkcję warunków klauzuli, a B1, B2, ..., Bm– alternatywę konkluzji. Spośród klauzul wyróŜnia się klauzule hornowskie postaci B :- A1, A2, ..., An 2 Symbol „:=” jest niekiedy w podręcznikach nazywany symbolem przypisania. Niestety jest to myląca nazwa, sugerująca uczniowi jakoby przypisanie było czymś innym niŜ podstawienie. Tym bardziej, Ŝe operację podstawienia zna on świetnie z lekcji matematyki. 3 R. Kowalski, Logika w rozwiązywaniu zadań, WNT, Warszawa 1989. Jeśli klauzula zawiera zmienne x1, ..., xk, naleŜy ja interpretować jako stwierdzenie, Ŝe dla wszystkich x1, ..., xk : B1 lub ... lub Bm jeśli A1 i ... i An. Jeśli n = 0, klauzulę naleŜy interpretować jako bezwarunkowe stwierdzenie, Ŝe dla wszystkich x1, ..., xk : B1 lub ... lub Bm . Jeśli m = 0, klauzulę naleŜy interpretować jako stwierdzenie, Ŝe dla wszystkich x1, ..., xk nieprawda, Ŝe zachodzi A1 i ... i An. Jeśli m = n = 0, klauzulę zapisuje się w postaci (klauzula pusta) i interpretuje jako zdanie zawsze fałszywe. Atom (lub formuła atomowa) to wyraŜenie postaci: R (t1, ..., tm), przy czym R jest m-argumentowym symbolem relacyjnym, t1, ..., tm są termami oraz m ≥ l. Atom naleŜy interpretować jako stwierdzenie, Ŝe relacja o nazwie R zachodzi między indywiduami o nazwach t1, ..., tm. Term jest zmienną, stałą lub wyraŜeniem postaci f (t1, ..., tm), przy czym f jest m - argumentowym symbolem funkcyjnym, t1, ..., tm są termami oraz m ≥ l. . Zbiory symboli relacyjnych, symboli funkcyjnych, stałych i zmiennych mogą być dowolnymi zbiorami wzajemnie rozłącznymi. Przyjmiemy konwencję, w której małe litery u, v, w, x, y, z oznaczają zmienne. Znaczenie innego rodzaju symboli moŜna rozpoznać po ich pozycji w klauzuli. Symbol implikacji w języku klauzul jest skierowany w kierunku odwrotnym niŜ w klasycznym języku logiki. Przyzwyczajenie kaŜe pisać raczej: A :- B (jeśli A to B), a nie B :- A (B jeśli A). JednakŜe róŜnica jest nieistotna. Notację: B :- A stosuje się w celu wyeksponowania konkluzji klauzuli.