On Tue, 2007-01-16 at 23:20 +0100, Marek Dopiera wrote:
> Po długiej przerwie może warto by się zdecydować na jakiś termin. Czy w
> okolicach Wielkanocy będą jakieś wykłady?

Właśnie ostatnio myślałem, żeby napisać do Ciebie w sprawie Twojego
wykładu, ale chciałem zorientować się najpierw jak wypadnie pierwszy
wykład szluugowy w tym roku i na jakie zainteresowanie możemy liczyć. Na
razie nie ma zaklepanych żadnych terminów poza 19.01.2007 :)

> Poza tym, znalazłem chętnego do poprowadzenia wykładu o rachunku
> predykatów, tylko byłbym wdzięczny, gdybyś dodefiniował, co chciałbyś
> usłyszeć na tym wykładzie.

Bardzo się cieszę :)

Hmm, to nie jest tak łatwo dodefiniować, ale spróbuję, jeśli tu napiszę
jakieś bzdury, to mnie poprawcie, moja wiedza w zakresie logiki
matematycznej jest dosyć powierzchowna :) :

Na pewno przydało by się trochę historii, tzn. jak sylogistyka zostaje
zastąpiona rachunkiem predykatów przez Fregego, Russela i Whiteheada i
dlaczego tak się dzieje. Na początku badania dotyczą analizy
semantycznej języka naturalnego i analizy zdań kwantyfikowalnych i
prowadzą do parafraz języka naturalnego właśnie w rachunku predykatów
(słynne "obecny król Francji jest łysy):

http://pl.wikipedia.org/wiki/Teoria_deskrypcji

Kiedy nie istnieją jeszcze komputery, to to są czyste spekulacje które
dają w praktyce co najwyżej narzędzia weryfikacji dowodów
matematycznych. Kiedy pojawia się możliwość maszynowego przetwarzania
danych, to z czasem potrzebne też stają się języki opisu tych danych i
relacji między nimi. Typowemu programowaniu wystarcza tzw. Klasyczny
Rachunek Zdań (operacje logiczne)

np.:

if (a && b) {
} else {
}

, ale przy językach zapytań gdzie odnosimy się do relacji między danymi,
np. w SQL, trzeba już odwołać się do Klasycznego Rachunku Predykatów i
teorii mnogości (zbiory). Np. 

      * Język naturalny: wszystkie kierowniczki
      * Uniwersum: "wszyscy pracownicy" Predykat: Wszystkie x, takie że
        x jest kierownikiem i x jest kobietą (oczywiście to warto
        zapisać symbolami kwantyfikacji)
      * SQL: SELECT * FROM EMPLOYEES WHERE ROLE='manager' AND
        GENDER='F';

Wykład byłby tym ciekawszy, im więcej było by ciekawych przykładów -
chociażby diagramów zbiorów jak w programie PI i SIGMA :) IMHO to jest
bardzo ważne, żeby myśleć o SQL nie tyle w kategoriach tabel, co właśnie
relacji na zbiorach. Takie podejście okazać się może bardzo pomocne w
przypadku innych języków takich jak XPath czy XQuery, gdzie dla danych
uorganizowanych hierarchicznie typowo SQLowe przyzwyczajenia mogą
zawieść, jeśli nie podeprze ich właśnie odwołanie do teorii mnogości (i
wcale nie chodzi tu o jakąś bardzo skomplikowaną teorię).

No i dochodzi kolejny aspekt. O ile rozumiem takie języki jak SQL
operują na poziomie Logik Pierwszego Rzędu. Dla rozwiązania problemów
systemów eksperckich czy SemanticWeb (reguły wnioskowania), coraz
ważniejsze staje się wykorzystanie Logik Wyższych Rzędów, które niestety
rodzą problemy nierozstrzygalności.

Jakby co, to ta chętna osoba może się ze mną skontaktować. Możemy też
założyć stronę wiki specjalnie na cel tego wykładu, żeby mniej więcej
określić agendę.

> Wstępny plan swojego wykładu wrzuciłem na
> http://wiki.szluug.org/Wyk%C5%82ady
> i byłbym wdzięczny za uwagi, co zmienić, dodać, wywalić.

Z tego planu kumam tylko niektóre hasła, więc osobiście jestem
zainteresowany zrozumieniem wszystkich zagadnień. :) Zależało by mi na
wyraźnym zaznaczeniu dlaczego warto stosować języki funkcyjne - do
jakich zastosowań - żeby całość nie kojarzyła się czysto
"akademicko" :) . Może warto powiedzieć kilka słów o LISP i XSLT
(chociaż to już może być w dyskusji po wykładzie), czy ktoś ze
SzLUUGowiczów używa LISP? No i np. funkcje lambda wchodzą powoli do C#
co też jest dosyć ciekawe.

-- 
"Meaning is differential not referential"

Kazimierz Pogoda
Nordic Consulting & Development Company         http://www.ncdc.pl/

Odpowiedź listem elektroniczym