-
31. Data: 2014-05-25 23:35:02
Temat: Re: Prolog i hierarchiczna baza faktów
Od: Wojciech Muła <w...@g...com>
On Sunday, May 25, 2014 4:27:51 AM UTC+2, A. L. wrote:
> Owszem, ale nie wszystko da sie zalatwic przy pomocy SQL. SQL nei
> zlatwia "reachability problem" - na przykald mamy graf polaczen
> lotniczych miedzy miastami. SQL nei poradzi sobie z zapytaniem: Czy
> istnieje polaczenie miedzy miastami A i B?"
>
> Przez "polaczenie" rozumiemy tu nei tylko polaczenie bezposrednie, a
> polaczenie z dowolna iloscia stopow posrednich. To wymaga policzenia
> "transitive closure" grafu, a to jest ponad sily SQL (z grubsza).
> Wlasciwiie nei tyle SQL, co algebry relacyjnej
Istnieją bazy grafowe, tu lista http://en.wikipedia.org/wiki/Graph_database
Kiedyś się kilku przyjrzałem i w którejś z baz (Noe4j bodajże) istniał
całkiem przyjazny język zapytań. Niestety, nigdy nie stosowałem tych
rozwiązań w praktyce, więc nie wiem, na ile mogłyby być przydatne przy
tym problemie,
w.
-
32. Data: 2014-05-26 04:37:06
Temat: Re: Prolog i hierarchiczna baza faktów
Od: A.L. <a...@a...com>
On Sun, 25 May 2014 14:30:57 -0700 (PDT), g...@g...com
wrote:
>
>Ale szczerze mowiac raczej mam wrazenie, ze palnal Pan po prostu
>nieprzemyslana glupote wypowiadajac sie o ksiazce, ktorej Pan nie
>przeczytal, i zamiast przyznac sie do bledu, brnie Pan w coraz
>wymyslniejsze stwierdzenia (tj. ze "SICP sie zdezaktualizowal",
>ale "tresc SICP sie nie zdezaktualizowala", tylko "forma SICP
>sie zdezaktualizowala", ale wcale nie chodzi o forme, itd.)
Podsumowujac. Niech Pan zorganziuje taki biznes - kurs angielskiego
dla zaawansowanych. 5 tysiecy zlotych meisiecznie. I oglosi ze pzrez
pierwsze pol roku bedzie Pan uczyl laciny, bo lacina rozwija umysl i
ulatwia przyswajanie jezykow.
To ze jakis hobbysta uzywa Scheme, nie oznacza ze Scheme jest UZYWANA.
Studentow interesuje co uzywa PZREMYSL. A PZREMYSL Scheme NIE uzywa.
Przebijaja sie natomiast do pzremyslu koncepcje programowania
funkcyjnego, ale nie ortodoksyjne. Stad wlasnei elementy "functional
programming" w Pythonie, stad w Javei (Java 8), stad siie wziela Scala
i F#. Contunuations sa bardzo ciekawe i przyjemne, ale da sie bez nich
zyc. Natomiast koncepcja ze "wszystko jest funkcja" i ze "wszystkie
zmienne sa non-mutable" w przemysle sie nie przyjmie. Nie wszystko
jest funkcja. Przemyslowi potzrebne sa jezyki wspierajace rozne
paradygmaty. Stad "hubrydowosc" Pythona i dazenie Javy w strone
funkcyjnosci
A ksiazke zwana SICP to ja mam na polce od pierwszego wydania.
Niech Pan sobei pzreczyta to
http://cemerick.com/2009/03/24/why-mit-now-uses-pyth
on-instead-of-scheme-for-its-undergraduate-cs-progra
m/
i tam jest taki paragraf
As a short addendum, while I had Prof. Sussman's ear, I asked him
whether he thought that the shift in the nature of a typical
programmer's world minimizes the relevancy of the themes and
principles embodied in scheme. His response was an emphatic 'no'; in
the general case, those core ideas and principles that scheme and SICP
have helped to spread for so many years are just as important as they
ever were. However, he did say that starting off with python makes an
undergraduate's initial experiences maximally productive in the
current environment. To that, I suggested that that dynamic makes it
far easier to "hook" undergrads on "computer science" and programming,
and retaining people's interest and attracting people to the field(s)
is a good thing in general; Prof. Sussman agreed with that tangential
point.
To jest dokaldnie co ja twierdze: tresc sie nei zdezaktualzowala,
forma prezentacji - tak. Przyjemnie mi ze Sussman ma podobne zdanie
Proponuje przeczytac calosc, bo jest tam pare ciekawych uwag Sussmana
na temat programowania.
na ten tema tsa dziesiatki dyskusji w Internecie, tzreba tylko
poszukac Proponuje pogoglowac na mit replaces scheme with python
A czemu pytam "czy ma Pan jedna ksziazke"? No bo przy dowolnej okazji
Pan te ksziake cytuje. Czy to ma zwiazek z problemem czy nie.
Problem jest ciekawy i chetnei podyskutuje, o ile bedzie to dyskusja
merytoryczna i bez zacetrzewienia
A.L.
-
33. Data: 2014-05-26 04:46:54
Temat: Re: Prolog i hierarchiczna baza faktów
Od: A.L. <a...@a...com>
On Sun, 25 May 2014 19:33:49 +0200, Sebastian Biały
<h...@p...onet.pl> wrote:
>
>Język jest mało ważny. Ma być tylko znany i embedowalny. Prolog to
>eksperyment. Może nie będzie warto a może będzie. Chcę sprawdzić.
>Dlatego pytam jak sprawdzić w Prologu.
Hm... Nie da sie sprawdzic inaczej nzi sprawdzajac :)
Wydaje mi sie ze to bedzie jakies pzreszukiwaneiw grafe z atrybutami.
Prolog nie powinien miec problemow. Ale trudno powiedziec nei widzac
sformulowanego chociazby zadanai testowego. Proponuje sformulaowc "toy
problem" do cwiczen i testow. Maly ale reprezentatywny. Z checia
popatrze w wolnej chwili
A.L.
P.S> Jako lekture polecam "Prolog Programming for Artificial
Intelligence", Ivan Bratko, koniecznie 4 (lub 3) wydanie
-
34. Data: 2014-05-26 23:44:21
Temat: Re: Prolog i hierarchiczna baza faktów
Od: g...@g...com
W dniu poniedziałek, 26 maja 2014 04:37:06 UTC+2 użytkownik A. L. napisał:
> To ze jakis hobbysta uzywa Scheme, nie oznacza ze Scheme jest UZYWANA.
> Studentow interesuje co uzywa PZREMYSL. A PZREMYSL Scheme NIE uzywa.
Z moich doswiadczen wynika, ze studentow raczej interesuje seks, muzyka
i narkotyki. Moze studentow politechnik interesuje bardziej, czego uzywa
przemysl, ale w ogolnosci studenci miewaja rozne zainteresowania i motywacje,
natomiast Pan wydaje sie miec sklonnosc do absolutyzowania jednego punktu
widzenia.
> Przebijaja sie natomiast do pzremyslu koncepcje programowania
> funkcyjnego, ale nie ortodoksyjne. Stad wlasnei elementy "functional
> programming" w Pythonie, stad w Javei (Java 8), stad siie wziela Scala
> i F#.
i clojure
> Contunuations sa bardzo ciekawe i przyjemne, ale da sie bez nich
> zyc.
Tutaj nie chodzi tylko o ciekawosc i przyjemnosc, ale rowniez
o elastycznosc w uzywaniu jezyka. Byc moze programy uzywajace
call/cc sa jednymi z najtrudniejszych do zrozumienia, ale
bez niej wyrazenie niektorych konstrukcji byloby jeszcze bardziej
karkolomne
> Natomiast koncepcja ze "wszystko jest funkcja" i ze "wszystkie
> zmienne sa non-mutable" w przemysle sie nie przyjmie. Nie wszystko
> jest funkcja. Przemyslowi potzrebne sa jezyki wspierajace rozne
> paradygmaty. Stad "hubrydowosc" Pythona i dazenie Javy w strone
> funkcyjnosci
Ale to wcale nie programowanie funkcyjne jest istota SICP -- choc w istocie
SICP w swiadomy i celowy sposob promuje ten paradygmat, wypunktowujac wszystkie
wady, ktore wynikaja z uzywania przypisan. W Schemie istnieje przeciez
operator przypisania i mozna go uzywac -- co w niektorych przypadkach jest
nieodzowne -- jednak autorzy przestrzegaja przed naduzywaniem go, i dla
pewnych przypadkow uzycia proponuja alternatywy (np. strumienie)
Jezeli idzie o mnie, to raczej zgadzam sie, ze pisanie w sposob czysto
funkcyjny (vide monady w Haskellu) zakrawa niekiedy na paranoje i nie wnosi
do programu nic poza czysta perwersja (chociaz takiej calkowitej pewnosci
w tej kwestii nie mam).
> A ksiazke zwana SICP to ja mam na polce od pierwszego wydania.
Gdyby trzymanie ksiazek na polce mialo wartosc poznawcza, to
ksiegarze i bibliotekarki byliby najmadrzejszymi ludzmi w spoleczenstwie
> Niech Pan sobei pzreczyta to
>
> http://cemerick.com/2009/03/24/why-mit-now-uses-pyth
on-instead-of-scheme-for-its-undergraduate-cs-progra
m/
>
> i tam jest taki paragraf
>
> As a short addendum, while I had Prof. Sussman's ear, I asked him
> whether he thought that the shift in the nature of a typical
> programmer's world minimizes the relevancy of the themes and
> principles embodied in scheme. His response was an emphatic 'no'; in
> the general case, those core ideas and principles that scheme and SICP
> have helped to spread for so many years are just as important as they
> ever were. However, he did say that starting off with python makes an
> undergraduate's initial experiences maximally productive in the
> current environment. To that, I suggested that that dynamic makes it
> far easier to "hook" undergrads on "computer science" and programming,
> and retaining people's interest and attracting people to the field(s)
> is a good thing in general; Prof. Sussman agreed with that tangential
> point.
>
> To jest dokaldnie co ja twierdze: tresc sie nei zdezaktualzowala,
> forma prezentacji - tak. Przyjemnie mi ze Sussman ma podobne zdanie
Sussman nigdzie nie twierdzi, ze forma prezentacji tresci w SICP sie
zdezaktualizowala. Twierdzi jedynie, ze latwiej przyciagnac studentow
do omawianych tematow jezeli zacznie sie od Pythona. Ktos kiedys
stwierdzil, ze "ze wszystkich jezykow Python jest najbardziej podobny
do pseudo-kodu", i mysle, ze ta aparycja moze byc dla wielu osob
atrakcyjna. Z drugiej strony, Larry Wall powiedzial, ze programy
w Lispie wygladaja jak owsianka -- i najwidoczniej w tym gaszczu
nawiasow (ktore szkola uczy ignorowac) jest cos odstreczajacego
dla osob poczatkujacych.
I jezeli mialbym zastosowac Panskie rozumienie aktualnosci, to
SICP nigdy nie byl ksiazka aktualna, a Scheme nigdy nie byl
popularnym jezykiem programowania. Czy to sie zmieni -- trudno
powiedziec, ale stwierdzenie, ze "Scheme wraz z lispem wyladowaly
na smietniku historii" jest po prostu nieprawdziwe.
A zdezaktualizowac to sie moga takie ksiazki, jak "Visual Basic 6.0
w 21 dni" (moja pierwsza ksiazka o programowaniu, ktora kupilem jeszcze
w podstawowce. Pozbylem sie jej szybko i nawet by mi do glowy nie przyszlo,
zeby z nostalgii do niej wrocic) -- czyli takie, ktore dotycza technologii.
SICP nie dotyczy technologii, tylko istoty rzeczy (a konkretnie: struktury
i interpretacji programow komputerowych), a ta sie raczej predko nie zmieni.
> Proponuje przeczytac calosc, bo jest tam pare ciekawych uwag Sussmana
> na temat programowania.
W akcie rewanzu polecam do przeczytania, jezeli jeszcze Pan
nie mial stycznosci:
http://norvig.com/python-lisp.html
Wydaje mi sie, ze porownywanie Pythona z Common Lispem ma wiecej sensu,
niz ze Schemem. Scheme jest malym ksieciem -- jest tym, co powstaje
nie wtedy, kiedy nie mozna nic wiecej dodac, ale wtedy, kiedy nie mozna
nic wiecej odjac. Python i Common Lisp to duze systemy programistyczne
z bogatymi bibliotekami standardowymi, natomiast Scheme to wehikul dla
idei, ze programy komputerowe to nie sa rozkazy dla komputera, tylko
formy wyrazu dla mysli.
> na ten tema tsa dziesiatki dyskusji w Internecie, tzreba tylko
> poszukac Proponuje pogoglowac na mit replaces scheme with python
>
> A czemu pytam "czy ma Pan jedna ksziazke"? No bo przy dowolnej okazji
> Pan te ksziake cytuje. Czy to ma zwiazek z problemem czy nie.
Scisle rzecz biorac, nie pyta Pan, tylko stwierdza (domniemuje na glos?).
Jezeli chce mnie Pan w taki sposob skompromitowac, to mysle, ze lepszym
sposobem byloby po prostu wykazanie, ze przytaczane przeze mnie fragmenty
nie maja zwiazku z danym problemem (bo -- powiem szczerze -- w moim odczuciu
jednak maja)
Pozdrawiam
-
35. Data: 2014-05-27 00:08:09
Temat: Re: Prolog i hierarchiczna baza faktów
Od: A.L. <a...@a...com>
On Mon, 26 May 2014 14:44:21 -0700 (PDT), g...@g...com
wrote:
>Z moich doswiadczen wynika, ze studentow raczej interesuje seks, muzyka
>i narkotyki.
Doswiadczen jako studenta?
>> Przebijaja sie natomiast do pzremyslu koncepcje programowania
>> funkcyjnego, ale nie ortodoksyjne. Stad wlasnei elementy "functional
>> programming" w Pythonie, stad w Javei (Java 8), stad siie wziela Scala
>> i F#.
>
>i clojure
Celowo nie wymienilem clohure. Clojure wymyslil fanatyk Lispu
I na tym koncze, bo z wiara dyskutowac sie nie da
A.L.
-
36. Data: 2014-05-27 00:38:36
Temat: Re: Prolog i hierarchiczna baza faktów
Od: A.L. <a...@a...com>
On Mon, 26 May 2014 14:44:21 -0700 (PDT), g...@g...com
wrote:
>Z moich doswiadczen wynika, ze studentow raczej interesuje seks, muzyka
>i narkotyki. Moze studentow politechnik interesuje bardziej, czego uzywa
>przemysl, ale w ogolnosci studenci miewaja rozne zainteresowania i motywacje,
>natomiast Pan wydaje sie miec sklonnosc do absolutyzowania jednego punktu
>widzenia.
>
Niew wiem o jakim punkcie widzenia Pan mowi.
JA kiedys wykaldalem Real Time Programming poslugujac sie jezykiem
Ada. Studenci poszli do Dziekana ze skarga. Pzrez caly semetsr
zbierali ogloszenia o pracy z lokalnych gazet i poprosili Dziekana o
wskazanie chociaz jednej oferty pracy gdzie bylaby potzrebna Ada.
Dziekam ich pzrepedizl, potem odbylismy rozmowe w szczerej, partyjnej
atmosferze, i spedzilem cale lato pzredabiajac wyklad z Ady na C.
Mzoe i polskim studentom wszystko jedno, ale zareczam ze amerykanskim
nie.
>Sussman nigdzie nie twierdzi, ze forma prezentacji tresci w SICP sie
>zdezaktualizowala. Twierdzi jedynie, ze latwiej przyciagnac studentow
>do omawianych tematow jezeli zacznie sie od Pythona.
No wlasnie, forma zdezaktualizowala sie. Pamietam te czasy gdy na
slowo "lLisp" mlodziez dostawala wypiekow na twarzy. Ale te czasy, wie
Pan, dawno minely. Dzis juz nie da sie zarobic na clebek programujac w
Lispie. Przemysl tego nei potzrebuje. I studenci to doskonale wiedza.
Scheme ich nie podnieci
>
>I jezeli mialbym zastosowac Panskie rozumienie aktualnosci, to
>SICP nigdy nie byl ksiazka aktualna, a Scheme nigdy nie byl
>popularnym jezykiem programowania.
A gdzie ja twierdilem ze Scheme nigdy nie byla popularna?
Pzrekreca Pan. Ja twierdzilem, za Sussmanem, ze TRESC ksiazk ijest
zawsze aktualna. Forma pzrekazu - nie. Nikt sie dzisiaj nei bedzie
uczyl Scheme. Nie bedzie, i koniec.
Ledwo co daje sie studentow zmusic do nauki C i C++. Tez nei chca.
>Czy to sie zmieni -- trudno
>powiedziec, ale stwierdzenie, ze "Scheme wraz z lispem wyladowaly
>na smietniku historii" jest po prostu nieprawdziwe.
Wyladowaly.
Jest taki artykul, tworcy Haskella "How Industry is using functional
programming and why not". Prosze pogoglowac. Niestety, pelna wersja
dostepna jest tylko w wydaniu ksiazkowym, ale skrory na internecie sa
>
>A zdezaktualizowac to sie moga takie ksiazki, jak "Visual Basic 6.0
>w 21 dni" (moja pierwsza ksiazka o programowaniu, ktora kupilem jeszcze
>w podstawowce. Pozbylem sie jej szybko i nawet by mi do glowy nie przyszlo,
>zeby z nostalgii do niej wrocic) -- czyli takie, ktore dotycza technologii.
No, to Pan dosyc mlody programista...
>SICP nie dotyczy technologii, tylko istoty rzeczy (a konkretnie: struktury
>i interpretacji programow komputerowych), a ta sie raczej predko nie zmieni.
>
A czy ja mowie ze sie zmieni? Co mi Pan wmawia ze powiedzialem cos
czego nei powiezialem? Ja tylko mowie ze dzisiaj jest inne pololenie
niz 30 lat temu i co innego do nich przemawia.
>W akcie rewanzu polecam do przeczytania, jezeli jeszcze Pan
>nie mial stycznosci:
>
>http://norvig.com/python-lisp.html
>
Norviga mi Pan poleca? A kogo jeszcze mi pan poleci?...
>Wydaje mi sie, ze porownywanie Pythona z Common Lispem ma wiecej sensu,
>niz ze Schemem. Scheme jest malym ksieciem -- jest tym, co powstaje
>nie wtedy, kiedy nie mozna nic wiecej dodac, ale wtedy, kiedy nie mozna
>nic wiecej odjac. Python i Common Lisp to duze systemy programistyczne
>z bogatymi bibliotekami standardowymi, natomiast Scheme to wehikul dla
>idei, ze programy komputerowe to nie sa rozkazy dla komputera, tylko
>formy wyrazu dla mysli.
Owszem, CommonLisp to nei Scheme i na odwrot. Ale oba, solidarnie
wyladaowaly na smietniku historii. Norvig to Research Director w
Google. Ile programow w Google napisano w Lispie?....
A.L.
-
37. Data: 2014-05-27 00:43:46
Temat: Re: Prolog i hierarchiczna baza faktów
Od: firr <p...@g...com>
> Z moich doswiadczen wynika, ze studentow raczej interesuje seks, muzyka
> i narkotyki.
to chyba prawda ;/ osobliwe przy tym jak malo osob interesuje sie tym czym ja sie (w
cholere dużo) interesuję tj moralnoscią - dorzucilnym do tej listy jeszcze 'smianie'
cholernie duzo osób interesuje sie 'smianiem' i 'robieniem beki' (sa w tym nawet
dobrzy
> niz ze Schemem. Scheme jest malym ksieciem -- jest tym, co powstaje
>
> nie wtedy, kiedy nie mozna nic wiecej dodac, ale wtedy, kiedy nie mozna
>
> nic wiecej odjac.
ciekawa reguła, c chyba ja stosuje ale w pewnym
okreslonym moze nawet troche dziwnym stylu, dokladnie nie wiem; czy ja ja stosuje w
ew obmyslaniu poprawek do c, poki co raczej nie,
ale moze daloby sie ja kiedys wykorzystac
-
38. Data: 2014-05-27 07:51:16
Temat: Re: Prolog i hierarchiczna baza faktów
Od: slawek <f...@f...com>
On Sat, 24 May 2014 12:09:49 -0500, A.L. <a...@a...com> wrote:
> Zapytanie w rodzalju "podaj mi wszystkei autobusy do Kielc i Radomia
> ktore maja polaczenie do Krakowa tego samego dnia" nei da sie
zapisac
> w jednej linijce prologu
A czy w Prologu jest ograniczenie na długość linijki? ;)
-
39. Data: 2014-05-27 07:57:20
Temat: Re: Prolog i hierarchiczna baza faktów
Od: slawek <f...@f...com>
On Sat, 24 May 2014 23:43:05 +0200, Sebastian
Biały<h...@p...onet.pl> wrote:
> to aby w ogóle można było takie zapytanie zmodyfikować bądź wręcz
> zapisać od zera *bez* zmiany oprogramowania. Nie chcę hardkodować
A po czym odróżnia się program od danych? Jeżeli logika działania
tkwić będzie w danych, to te dane będą programem.
-
40. Data: 2014-05-27 23:52:30
Temat: Re: Prolog i hierarchiczna baza faktów
Od: Edek <e...@g...com>
Szarym od mżawki świtem Thu, 22 May 2014 21:48:04 +0200, Sebastian Biały
wyrzucił pustą ćwiartkę i oznajmił:
> Mam takie zagadnienie abstrakcyjne.
Nie ty pierwszy - poczytaj zanim się zabierzesz do tematu.
Oprogramowanie potrafiące "przeczytać" książkę w miarę techniczną
potrafiło zbudować bazę faktów i na jej podstawie odpowiadać
na proste pytania przed albo około 2000, zależnie od wymaganych
możliwości. Od tego czasu powstał cały olbrzymi temat semantyki
wraz z formatami danych i implementacjami, czyli bardzo się rozwinął.
Ontologie mają wiele mniej ścisłych problemów, trzeba wybrać
co da się zastosować. Ontologie, wiedza semantyczna, język
naturalny mniej - jakoś tak jest że algorytmy semantyczne
z ludzkim sposobem wysławiania się i myślenia mają zazwyczaj niewiele
wspólnego. Przynajmniej w rejonach tego problemu.
> Jest baza faktów. Ma ona budowę bardziej hierarchiczną niż typowe
> tabelki. Obrazowo mogę ją mniej więcej przedstawić tak:
>
> a) Są domy
> b) W domach siedzą ludzie w róznych ilościach
> c) Ludzie mają znajomych ludzi (relacje jeden-do-wielu)
> d) Ludzie siedzą u siebie, u znajomych, na ulicy
> e) Ludzie mają różne dobra
> f) Ludzie czasem są rodzinami, mają przodków, dzieci itd
> g) Ludzie współdzielą dobra w rodzinie i nie tylko
> h) Dobra naleą do wielu kategorii
Hierarchiczną? Czy punkt a jest b czy b nad a i dlaczego? Sformułuj
najpierw problem. Nie ja jedyny chętnie bym zobaczył drobny przykład,
albo kilka, które pokazywałyby w czym jest problem. Domena nie gra
roli, może być "jakie kfiatki rosną nad rzeczką w której pływał
pstrąg którego zjadł złodziej kradnąc go z marketu".
Bo sam fakt zdefiniowania ogólnie problemu jest za szeroki i za
wąski. Za szeroki, bo można tu się doszukiwać wielu rodzajów
koncepcji, (relacje, relacje relacji, rodzaje obiektów i relacji,
w ogóle "siedzą" wprowadza czynności ze swoją masą zmian; w ontologiach i
semantykach jest tego masa). Za wąski, bo brakuje mi kwantyfikatorów
(patrz punkt d. ci sami jednocześnie?) co się wiąże z constraints.
Pewnie to wszystko jest niepotrzebne, takie mam przeczucie.
Co widzę, jeżeli dobrze zformułowałeś relacje powyżej:
- to jest graf. Nie chce mi się uzasadniać.
- to jest graf, w którym zarówno węzły jak i połączenia są różnych
typów. Typów, właściwości, oznaczeń - w każdym razie węzeł "okulary"
ma inne właściwości niż domy, a domy niż punkt d). W ogóle idąc
w górę grupowania rodzajów relacji zaryzykowałbym, że masz drzewo
rodzajów relacji (pewnie nieistotny fakt że to jest drzewo) i kilka
rodzajów węzłów
- nie widzę hierarchii
- widzę powiązania pomiędzy rodzajami relacji ( f) i g) definiują
jedną relację "dzielą z" za pomocą drugiej "rodzina i nie tylko"/
Chciałem powiedzieć, że istnieje hierarchia rodzajów relacji, ale
się ugryzłem w język, choć wcześniej twierdziłem że to jest drzewo.
Czy taka analiza rodzajów powiązań jest potrzebna czy nie - może
jakiś konkretny przykład problemu?
Zresztą, wszystko nie rozwiązuje problemu. Jeżeli mamy tylko:
- węzły, kilku niezależnych rodzajów
- relacje, kilku niezależnych rodzajów
- nic więcej nam nie potrzeba
...to mamy labelled graph i jeżeli są znane rozwiązania nie ma sensu
się dłużej zastanawiać poza doborem narzędzi. Gorzej i ciekawiej się
robi, gdy są powiązania między rodzajami obiektów i relacji, nie
wspominając o kwantyfikatorach czy zmianach stanu (czynnościach).
Przydałby się real-life problem albo dwa, żeby pokazać o co tak
naprawdę chodzi.
> ....
> Można tak dużo pisać. Baza ba bardzo wiele ukrytych relacji
> hierachicznych typu "dziadek sąsiada co ma telewizor pacujący z moją
> matką ma na imię Heniek".
>
> Potrzebuje przekopać taką bazę pod kontem zapytań w stylu:
> "Ilu moich sąsiadów ma tostery?"
Nie widzę definicji, z której wynikałoby sąsiedztwo. Czepiam się,
bo przydałby się pełny wykrojony z domeny przykład.
> "Kim jest ten koleś co ma psa i pracuje z moją ciotką?"
> "Kto był wczoraj na imprezie łysego w okularach?"
> "Czy którykolwiek z informatyków ma dziewczynę?"
> "Czy ta dziewczyna z domu obok pracowała z moim kolegą ze studiów?"
>
> Bazę mam w postaci zywych struktur w pamięci i mogę je zserializować
> praktycznie do dowolnej postaci. Pomyślałem: może prolog? W zasadzie
> powinien móc mi tą bazę przekopać w sposób sprawniejszy niż SQL badź
> jakieś rękodzieło. Zaznaczam że pomimo że w prologu trochę pisałem,
> jestem technicznie zerem.
Sam SQL nie, ale tak w kwestii technicznej zacząłbym (co już było) od
pytania "co trzeba zrobić i jak" a potem wybrał narzędzia. Może SQL,
który sam w sobie nie ma takich możliwości, da się użyć tworząc serię
zapytań a wtedy podstawową strukturę grafu ma się za free. Pytanie
też ile tych danych jest i czy trzeba trzymać je na dysku. Czyli aspekty
techniczne, w tym kopanie się z koniem Prologiem, którego się nie zna.
> Pytanie: jaką literaturę mam przeczytać, aby rzucić światło na
> rozwiązania tego typu problemów w Prologu? Wydaje mi się że wszelkie
> ogólne ksiązki Prologowe jakoś niespecjalnie zajmują się tego typu
> tematyką, przynajmniej w tych do których mam obecnie dostęp nie znajduje
> odpowiedzi na pytanie jak taki temat ugryźć. Danych jest bardzo dużo,
> relacje są skomplikowane i robienie tego bez wskazówek kogoś
> doświadczonego raczej nie jest dobrym pomysłem.
Jeżeli nauczenie się Prologu zajmuje 12-18 miesięcy do tego przeczytanie
książki, pytanie jest: czy problem jest na tyle rozbudowany, żeby poświęcać
na niego tyle czasu. Drugie: nawet jeżeli tak, to czy nie lepiej odpuścić
Prolog i zaimplementować struktury danych i algorytmy samemu z pomocą
dostępnych bibliotek, a czas poświęcić na przeszukanie dostępnych źródeł
wiedzy na temat problemu. Trywialny nie jest, ale 6 miesięcy wydaje mi się
na wyrost żeby znaleźć wszystko co jest dostępne publicznie na ten temat
i ma bezpośrednie przełożenie na problem. Powinno wszystko być publicznie
dostępne, zostaje kwestia opanowania sporej dawki wiedzy.
Bilbioteki grafowe i algorytmy operujące na nich albo ich elementy są
dostępne w każdej możliwej formie. Martwiłbym się raczej tematem "jak
ich użyć" i "ile muszę sam z książki/publikacji przepisać".
Niestety nie znam dostępnej literatury, ale google scholar wypluwa
po kilkadziesiąć tysi publikacji, trzeba poświęcić trochę czasu na
dospracowanie zapytań, wybrać przeglądowe prace na początek, albo
dać konkretny przykład Panu A.L.
> Dlaczego Prolog? Nie wiem, to jeden z eksperymentów. I co ważne: to nie
> jest problem akademicki: jeśli Prolog ułatwi mi życie to zostanie
> zaembedowany w aplikacji. I nie, baza nie zawiera *takich* danych, ale
> myślę że podobne, na tyle by róznice nie wpływały istotnie na sens
> problemu. Na szczęscie dane są ścisłe, czyli nie interesuje mnie obraz
> statystyczny tylko *fakty*.
Powiedz od razu, że chcesz się nauczyć Prologa, po co zarzucasz jakiś
abstrakcyjny temat... żartuję, ale może najpierw problem potem narzędzie.
Disclaimer: nie znam Prologa, nawet teoretycznie, na tyle, żeby się
poważnie wypowiadać.
> Dlaczego nazywam to hierarchiczną bazą danych? Też nie jestem pewny tej
> nazwy, wydaje mi się że dane są uporządkowane bardziej "kto jest czyim
> wlascicielem" przy czym na róznych płaszczyznach. Byc może jestem w błędzie.
Ulica jest właścicielem ludzi na ulicy, czy ludzie są właścicielami ulicy
i którzy? Albo podane rodzaje relacji są niedokładne, albo istnieją częściowe
hierarchie, albo tak generalnie dołączam się do prośby o kompletny mały przykład.
--
Edek