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: x
1
, x
2
, x
3
, ... , 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 x
1
biegnie aleją parku x
2
miasta x
3
.”
2)
stale: c
1
, c
2
, c
3
, ... , reprezentują nazwy indywidualne, np. wyrażenie zdaniowe
„jakiś człowiek mieszka w mieście Warszawa”
c
1
człowiek x
1
mieszka w c
1
3)
dziedziny deklarowane (typy zmiennych): D
1
, D
2
, D
3
, ... , reprezentują nazwy proste,
„każdego dnia człowiek biegnie w mieście”
D
1
D
2
D
3
4)
symbole funkcyjne: f
1
1
, f
2
1
, f
3
1
, ... , f
1
k
, f
2
k
, f
3
k
, ... , reprezentują funktory nazwotwórcze
jeden, ..., k-argumentowe, ... , np.
człowiek x
1
mieszkający w c
1
f
1
2
( f
1
1
( x
1
) , c
1
)
5)
termy: niech t
1
, t
2
, t
3
, ..., reprezentują dowolne zaimki (proste i złożone) – zmienne i stałe
są termami, jeśli t
1
, t
2
, t
3
, ...,t
k
są termami, a f
n
k
jest symbolem funkcyjnym, to f
n
k
(t
1
, t
2
, t
3
,
...,t
k
) jest termem, np. schemat w punkcie 4) jest termem powstałym z symbolu
funkcyjnego f
1
2
, termu f
1
1
(x
1
) oraz stałej c
1
6)
dziedziny: niech H
1
, H
2
, H
3
, ... , reprezentują dowolne nazwy – dziedzinami są dziedziny
deklarowane (np. standardowe) oraz jeśli H
1
, H
2
, H
3
, ... , H
k
są dziedzinami, , a f
n
k
jest
symbolem funkcyjnym, to f
n
k
(H
1
, H
2
, H
3
, ...,H
k
) jest dziedziną wyznaczoną przez ten
symbol, np. jeżeli dziedzina D
1
reprezentuje nazwę „człowiek”, a dziedzina D
2
– 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 f
1
2
reprezentuje zwrot „... mieszkający w ...”, to
f
1
2
(D
1
,D
2
) jest dziedziną reprezentującą wyrażenie nazwowe „ człowiek mieszkający w
mieście”
7)
deklaracja symbolu funkcyjnego: niech H
1
, H
2
, H
3
, ... są dziedzinami deklarowanymi
oraz H jest dziedziną różną od nich, dalej niech f
n
k
jest symbolem funkcyjnym, wtedy
wyrażenie H = f
n
k
(H
1
, H
2
, H
3
, ...,H
k
) nazywamy deklaracją symbolu funkcyjnego f
n
k
,
8)
deklaracja dziedzin: niech D
1
, D
2
, ..., D
k
są dziedzinami standardowymi, a H
1
, H
2
, ..., H
n
pewnymi ustalonymi dziedzinami, w których nie występują wymienione dziedziny
standardowe, wtedy wyrażenie D
1
, D
2
, ..., D
k
= H
1
; H
2
; ...; H
n
nazywamy deklaracją
dziedzin D
1
, D
2
, ..., D
k
i czytamy: dziedziny D
1
, D
2
, ..., D
k
utożsamiamy z dziedzinami H
1
lub H
2
lub ... lub H
n
,
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: P
1
1
, P
2
1
, P
3
1
, ... , P
1
k
, P
2
k
, P
3
k
, ... , reprezentują funktory zdaniotwórcze,
tworzące z nazw albo zaimków wyrażenia zdaniowe, jedno, ..., k-argumentowe, ..., np.
człowiek x
1
mieszka w c
1
P
1
2
( f
1
1
( x
1
) , c
1
)
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 „(P
1
1
(c
1
)
∨
P
1
1
(x
1
))
∧
P
2
1
(c
2
)” jest schematem jakiegoś wyrażenia
zdaniowego,
14)
deklaracje predykatów: niech H
1
, H
2
, H
3
, ... , H
k
są deklarowanymi dziedzinami, , a P
n
k
jest predykatem, to P
n
k
(H
1
, H
2
, H
3
, ...,H
k
) deklaracją predykatu,
15)
formuły atomowe: niech t
1
, t
2
, t
3
, ...,t
k
, t
n
są termami, a P
n
k
jest predykatem, wtedy
P
n
k
(t
1
, t
2
, t
3
, ...,t
k
) 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),
⇔
,
∀
x
k
(A),
∃
x
k
(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
x
2
x
3
x
4
P
1
3
P
1
3
Jeżeli jakaś osoba pożyczy coś drugiej osobie, a ta pożyczy to trzeciej, to trzecia osoba może
to zwrócić pierwszej
P
2
3
x
1
Dziedziny:
D
1
– osoba,
D
2
– przedmioty pożyczane/zwaracane,
Predykaty:
P
1
3
- .... pożyczy ..., ...,
P
2
3
- .... zwróci ..., ...,
Deklaracje:
P
1
3
(D
1
, D
2
, D
1
) – deklaracja reprezentuje wiedzę o tym, że osoba pożycza przedmiot, osobie,
P
2
3
(D
1
, D
2
, D
1
) - deklaracja reprezentuje wiedzę o tym, że osoba zwraca przedmiot, osobie,
Schemat przykładowego wyrażenia zdaniowego ma postać
P
1
3
(D
1
, D
2
, D
1
)
∧
P
2
3
(D
1
, D
2
, D
1
)
∧
((P
1
3
(x
1
, x
2
, x
3
)
∧
P
1
3
(x
3
, x
2
, x
4
)) ⇒ P
2
3
(x
4
, x
2
, x
1
))
Środowisko
Formuła
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
∀
x
1
P
1
2
∃
x
2
P
1
2
(D
1
, D
1
)
∧
∀
x
1
∃
x
2
P
1
2
(x
1
, x
2
)
Gdzie D
1
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
∀
x
1
P
1
1
(x
1
)
∨
∃
x
1
P
1
1
(x
1
) nie może
być poprawnym schematem, ale formuła
∀
x
1
P
1
1
(x
1
)
∨
∃
x
2
P
1
1
(x
2
) może nim być.
Uwaga. W formalizacji stosowanej zazwyczaj w logice formalnej dziedziny zapisuje się w
postaci jednoargumentowych predykatów, np. zamiast P
1
2
(D
1
, D
2
)
∧
∀
x
1
∃
x
2
P
1
2
(x
1
, x
2
) można
napisać:
∀
x
1
(D
1
(x
1
) ⇒
∃
x
2
(D
2
(x
2
)
∧
P12(x
1
, x
2
))), a w notacji teoriomnogościowej :
∀
x
1
∈
D
1
∃
x
2
∈
D
2
P
1
2
(x
1
, x
2
).
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
B
¬
A
A
∨
B
A
∧
B
A ⇒ B
A
⇔
B
0
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
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
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
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
¬¬
(K)
A
B
A
∧
(NK)
B
A
B
A
¬
¬
∧
¬
|
)
(
(A)
B
A
B
A
|
∨
(NA)
A
B
A
¬
∨
¬
)
(
(C)
B
A
B
A
|
¬
⇒
(NC)
B
A
B
A
¬
⇒
¬
)
(
(EX)
)
(
)
(
c
A
x
xA
∃
(NEX)
)
(
)
(
x
A
x
xA
¬
¬∃
(ALL)
)
(
)
(
c
A
x
xA
∀
(NALL)
)
(
)
(
c
A
Ax
x
¬
¬∀
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, U
0
,
ε
,
R> nazywamy tekstową dziedziną wiedzy, gdy U jest
niepustym zbiorem wszystkich tekstów reprezentujących wiedzę z pewnej dziedziny,
U
0
–
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, U
0
,
ε
,
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 i
1
, i
2
, ..., i
k
< 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(U
0
).
(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(U
0
),
α
≠
β
,
β
∈
Ex(
α
) oraz nie istnieje taki
tekst t
∈
Ex(
α
), że t
≥β
.
(h)
Tekst t jest
tematem tekstu
α
wttw t
∈
Fr(U
0
),
α
≠
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
P
atrzą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.)
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.
Czy
procedura
niezawodzi?
Procedura
tak
nie
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:
(i)
podzbiorem
S’ jest zbiór wszystkich podstawień termu t za zmienną indywiduową x,
postaci
x:= t
2
,
(ii)
jeśli
α
jest formułą logiczną spełnioną w danym systemie rzeczywistości
Re oraz K,M,
K
1
, K
2
, ..., K
n
,, dla dowolnych n>0, należą do
S’, to wyrażenia:
begin K
1
; K
2
,; ..., K
n
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 koniunkcyjno-
alternatywne 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
B
1
, B
2
, ..., B
m
:- A
1
, A
2
, ..., A
n
Gdzie znak „:-„ czytamy:
jeśli, przy czym B
1
, B
2
, ..., B
m
, A
1
, A
2
, ..., A
n
są formułami
atomowymi, n ≥ 0 i m ≥ 0. Formuły atomowe A
1
, A
2
, ..., A
n
stanowią koniunkcję
warunków
klauzuli, a B
1
, B
2
, ..., B
m
– alternatywę
konkluzji. Spośród klauzul wyróżnia się klauzule
hornowskie postaci
B
:- A
1
, A
2
, ..., A
n
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 x
1
, ..., x
k
, należy ja interpretować jako stwierdzenie, że
dla wszystkich x
1
, ..., x
k
: B
1
lub ... lub B
m
jeśli A
1
i ... i A
n
.
Jeśli n = 0, klauzulę należy interpretować jako bezwarunkowe stwierdzenie, że dla
wszystkich x
1
, ..., x
k
: B
1
lub ... lub B
m
.
Jeśli m = 0, klauzulę należy interpretować jako stwierdzenie, że dla wszystkich
x
1
, ..., x
k
nieprawda, że zachodzi A
1
i ... i A
n
.
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 (t
1
, ..., t
m
), przy czym R jest
m-argumentowym symbolem relacyjnym, t
1
, ..., t
m
są termami oraz m ≥ l.
Atom należy interpretować jako stwierdzenie, że relacja o nazwie R zachodzi między
indywiduami o nazwach t
1
, ..., t
m
.
Term jest zmienną, stałą lub wyrażeniem postaci f (t
1
, ..., t
m
), przy czym f jest
m - argumentowym symbolem funkcyjnym, t
1
, ..., t
m
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.