eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingProlog i hierarchiczna baza faktów
Ilość wypowiedzi w tym wątku: 52

  • 21. Data: 2014-05-24 23:43:05
    Temat: Re: Prolog i hierarchiczna baza faktów
    Od: Sebastian Biały <h...@p...onet.pl>

    On 2014-05-24 19:09, A.L. wrote:
    >> prologa. Innymi slowy zapytanie Prologowe jest moim zapytaniem które
    >> chcę używać.
    > jakiego rodzaju to sa zapytania (przykaldy).

    "Kto mieszka na ulicy X i ma blond włosy".

    > Kto bedzie generowal
    > zapytania prologowe?

    Uzytkownik. Przy czym userem jest *programista* a nie Kowalski. I raczej
    nie jest to programator od PHP tylko ktoś rozumiejący po co i jak.

    > I jak? "Jak" w sensie technicznym?

    Wpisze sobie *gdzieś*. To szczegół techniczny wymagający posiadania
    jakiegoś embedowanego języka logicznego którzy umozliwi takie a nie inne
    zadawanie pytań i cięzko mi odpowiedzieć na pytanie jak to będzie jak
    już będzie. Ogólnie gdzieś mozna bedzie wpisać to zapytanie w Prologu.
    Powiedzmy w jakimś pliku.

    > Czy
    > uzytkownik podejcie do kumputera i wklepie zapytanei w Prologu?... Cos
    > mi sie nei widzi...

    Bo to nie jest soft dla ludzi, tylko dla programistów. IMHO dadzą radę.
    Prolog jest na tyle czytelny że nawet jesli sami nie napisza, to jest
    szansa że zmodyfikują exampla.

    > 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

    Nie chodzi o jedną linijkę. To może być kilkadziesiąt linijek. Chodzi o
    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ć
    zapytań bo ich może być bardzo dużo i nie jestem w stanie przewidzieć
    wszystkich.

    Chcę doprowadzić do tego że user może zmienić pewne elementy systemu u
    siebie w miarę prosty sposób. Od razu zaznaczam że odzyskanie bazy
    wiedzy jest samo w sobie sporym wyzwaniem co oznacza że sens istnienia
    oprogramowania jest. Chodzi o uczynienie go bardziej elastycznym.

    Mozna to sobie wyobrazić tak: jest oprogramowanie CAD. Oprogramowanie to
    może mieć zahardkodowane funkcje. Ale może też mieć elastyczny system
    skryptów pozwalający tworzyć wlasne funckcje. Kto jest programistą
    poradzi sobie. Więc u mnie chodzi o taką własnie elastyczność.
    Dostarczam *coś* user to przerabia jeśli chce więcej i bardziej
    specyficznie dla siebie.

    Innym przykładem niech będzie synteza języków VHDL czy Verilog. Tam
    nalezy znaleźć pewne struktury w kodzie. To jakie niestety nie zawsze
    jest znane na etapie tworzenia syntezera bo moga być różne implementacje
    dopuszczalne w FPGA. I znowu user może dostarczyć odpowiednie zapytania
    ktore np. znajduja w projekcie przerzutniki napisane w pewien
    specyficzny sposób i implementują je za pomocą tego co dostarcza
    hardwareowo FPGA.

    Innymi słowy nie przejmował bym sie kto bedzie tego Prologa czy coś
    innego uzywał. Raczej bedzie to ktoś świadomy co robi.


  • 22. Data: 2014-05-25 01:26:55
    Temat: Re: Prolog i hierarchiczna baza faktów
    Od: A.L. <a...@a...com>

    On Sat, 24 May 2014 23:43:05 +0200, Sebastian Biały
    <h...@p...onet.pl> wrote:

    >
    >Innymi słowy nie przejmował bym sie kto bedzie tego Prologa czy coś
    >innego uzywał. Raczej bedzie to ktoś świadomy co robi.

    Tak na pierwszy rzut oka:

    1. Nauczenie kogos aby byl tworczym a nei odtworczym programista w
    Prologu to 12 do 18 miesiecy. Byla keidys dluga dyskusja na ten temat
    na comp.lang.prolog. Zgodne jest to mniej wiecej z moim doswiadczeniem
    wzgledem prob edukacji wspolpracownikow. Tylko z jednym sie udalo

    2. Jak zrobic "embedding"? Na ogol nei da sie "zanurzyc" interpretera
    w aplikacji, "zanurza sie run-time system nie zawierajacy
    interpretera. Wiec jak ci programisci beda pisac swoje kawalki, i jak
    one sie beda kontaktowaly z Prologiem?

    3. Gdzie bedzie baza danych (wiedzy)? Baza wiedzy dla Prologu to zbior
    predykatow. Prolog na bardzo slabe mozliwosci wzgledem wspolpracy z
    zewnetrznymi bazami danych, czy po prostu zewnetrznymi nosnikami
    informacji

    4. Jak sie aplikacja "glowna" (java, C++) bedzie kontaktowala z
    Prologiem?

    Pytam jako "adwokat diabla", bo sam owe problemy jakos-tam
    rozwiazalem. Ale ogolnie, nie bylo to ani latwe ani przyjemne, i
    ogolnie, po latach, uwazam ze uzycie Prologu to byla neispecjalnie
    dobra decyzja.

    A.L.


  • 23. Data: 2014-05-25 02:58:13
    Temat: Re: Prolog i hierarchiczna baza faktów
    Od: Andrzej Jarzabek <a...@g...com>

    On 24/05/2014 22:43, Sebastian Biały wrote:
    > On 2014-05-24 19:09, A.L. wrote:
    >>> prologa. Innymi slowy zapytanie Prologowe jest moim zapytaniem które
    >>> chcę używać.
    >> jakiego rodzaju to sa zapytania (przykaldy).
    >
    > "Kto mieszka na ulicy X i ma blond włosy".

    Do takich zapytań świetnie nadaje się SQL.


  • 24. Data: 2014-05-25 04:27:51
    Temat: Re: Prolog i hierarchiczna baza faktów
    Od: A.L. <a...@a...com>

    On Sun, 25 May 2014 01:58:13 +0100, Andrzej Jarzabek
    <a...@g...com> wrote:

    >On 24/05/2014 22:43, Sebastian Biały wrote:
    >> On 2014-05-24 19:09, A.L. wrote:
    >>>> prologa. Innymi slowy zapytanie Prologowe jest moim zapytaniem które
    >>>> chcę używać.
    >>> jakiego rodzaju to sa zapytania (przykaldy).
    >>
    >> "Kto mieszka na ulicy X i ma blond włosy".
    >
    >Do takich zapytań świetnie nadaje się SQL.

    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

    Prolog poradzi sobie znakomicie

    A.L.

    P.S. Gdyby ktos nei byl pzrekonany:

    http://wwwis.win.tue.nl/~tcalders/teaching/advancedD
    B09/notes/lecture02.pdf


  • 25. Data: 2014-05-25 09:21:43
    Temat: Re: Prolog i hierarchiczna baza faktów
    Od: Sebastian Biały <h...@p...onet.pl>

    On 2014-05-25 01:26, A.L. wrote:
    > 1. Nauczenie kogos aby byl tworczym a nei odtworczym programista w
    > Prologu to 12 do 18 miesiecy. Byla keidys dluga dyskusja na ten temat
    > na comp.lang.prolog. Zgodne jest to mniej wiecej z moim doswiadczeniem
    > wzgledem prob edukacji wspolpracownikow. Tylko z jednym sie udalo

    Zgadzam się że to nie jest łatwe. Ale nie musi. Podobnie jak nie musisz
    znać VB aby pisać makra w Excelu, wystarczy zobaczyć przykłady i miec
    ogólne pojęcie o programowaniu. Czy jest jakiś język zorientowany
    logicznie łatwiejszy od Prologa?

    > 2. Jak zrobic "embedding"? Na ogol nei da sie "zanurzyc" interpretera
    > w aplikacji, "zanurza sie run-time system nie zawierajacy
    > interpretera. Wiec jak ci programisci beda pisac swoje kawalki, i jak
    > one sie beda kontaktowaly z Prologiem?

    SWI-Prolog ma interfejs C/C++. Nie wiem jakiej jakości. Do sprawdzenia.

    Być może do eksperymentu będzie to jakaś pokraczna hybryda typu Castor

    http://www.mpprogramming.com/cpp/default.aspx

    na pierwszy rzut. Co prawda nie pozwoli na pisanie relacji przez usera
    ale pozwoli ocenić czy wogole da się relacje odzyskać i jest o co walczyć.

    Ostatecznie może to być zewnętrzny exe i już.

    > 3. Gdzie bedzie baza danych (wiedzy)?

    Obecnie mam ją w pamięci. Idealnie gdyby tam została.

    > Baza wiedzy dla Prologu to zbior
    > predykatow. Prolog na bardzo slabe mozliwosci wzgledem wspolpracy z
    > zewnetrznymi bazami danych, czy po prostu zewnetrznymi nosnikami
    > informacji

    Owszem, to już doczytałem. Dlatego ostatecznie mogę ją zserializować do
    postaci która będzie plikiem tekstowym pozwalającym zwykłemu Prologowi w
    exe na odczytanie.

    > 4. Jak sie aplikacja "glowna" (java, C++) bedzie kontaktowala z
    > Prologiem?

    Dowolnie. Idealnie gdyby mozliwa była komunikacja dwustronna natywnie -
    baza wiedzy jest wprost używana przez prolog a wyniki zapytań sa wprost
    widoczne natywnie. Aż do "wszystko jest serializowane do prologa w te i
    nazad i odpalany prolog.exe".

    Mała uwaga: wydajnośc nie ma znaczenia na ten moment, interesuje mnie
    *czytelność*, ponieważ to jest eksperyment którego celem jest
    stwierdzenie czy jestem w stanie wydobyc pewne relacje i jakim kosztem.
    Jeśli eksperyment sie powiedzie wtedy bede mógl na spokojnie ocenić czy
    Prolog to jest to czy nie i ewentualnie rozwiązać problemy embedowania.

    > Pytam jako "adwokat diabla", bo sam owe problemy jakos-tam
    > rozwiazalem. Ale ogolnie, nie bylo to ani latwe ani przyjemne, i
    > ogolnie, po latach, uwazam ze uzycie Prologu to byla neispecjalnie
    > dobra decyzja.

    Jaki więc inny język (logiczny?) pozwalający na podobne zapytania co prolog?

    Napisanie "wlasnego języka zapytań" uważam za gruba przesadę. Z drugiej
    strony jedyny powszechnie znany język logiczny to Prolog. Wyboru dużego
    nie mam.


  • 26. Data: 2014-05-25 11:55:40
    Temat: Re: Prolog i hierarchiczna baza faktów
    Od: "intuicjonista" <n...@b...pl>


    Użytkownik "A.L." <a...@a...com> napisał w wiadomości
    news:c9k2o9lblaig5eog1r4fttrghtml66s51p@4ax.com...
    > On Sun, 25 May 2014 01:58:13 +0100, Andrzej Jarzabek
    > <a...@g...com> wrote:
    >
    >>On 24/05/2014 22:43, Sebastian Biały wrote:
    >>> On 2014-05-24 19:09, A.L. wrote:
    >>>>> prologa. Innymi slowy zapytanie Prologowe jest moim zapytaniem które
    >>>>> chcę używać.
    >>>> jakiego rodzaju to sa zapytania (przykaldy).
    >>>
    >>> "Kto mieszka na ulicy X i ma blond włosy".
    >>
    >>Do takich zapytań świetnie nadaje się SQL.
    >
    > 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?"

    ze względu na ograniczenia samego SQL
    bazy danych sa zwykle wyposazane w dodatkowe
    rozszerzenia/języki np. oracle posiada język PL/SQL
    MS-SQL posiada TSQL ( i zapewne C# :))- a w nich
    można napisać praktycznie wszystko. Klasyczne
    jest np. planowanie produkcji w systemach ERP.
    Pozostaje kwestia efektywnosci ale to inna sprawa.



  • 27. Data: 2014-05-25 16:00:03
    Temat: Re: Prolog i hierarchiczna baza faktów
    Od: Andrzej Jarzabek <a...@g...com>

    On 25/05/2014 03:27, A.L. wrote:
    > On Sun, 25 May 2014 01:58:13 +0100, Andrzej Jarzabek
    > <a...@g...com> wrote:
    >> On 24/05/2014 22:43, Sebastian Biały wrote:
    >>> On 2014-05-24 19:09, A.L. wrote:
    >>>> jakiego rodzaju to sa zapytania (przykaldy).
    >>> "Kto mieszka na ulicy X i ma blond włosy".
    >> Do takich zapytań świetnie nadaje się SQL.
    >
    > Owszem, ale nie wszystko da sie zalatwic przy pomocy SQL.

    Chodziło mi o to, że jeśli SQL się nie nadaje, to powinno się myśleć i
    podawać przykłady zapytań, do których SQL się nie nadaje.


  • 28. Data: 2014-05-25 19:25:12
    Temat: Re: Prolog i hierarchiczna baza faktów
    Od: A.L. <a...@a...com>

    On Sun, 25 May 2014 09:21:43 +0200, Sebastian Biały
    <h...@p...onet.pl> wrote:

    >Jaki więc inny język (logiczny?) pozwalający na podobne zapytania co prolog?
    >
    >Napisanie "wlasnego języka zapytań" uważam za gruba przesadę. Z drugiej
    >strony jedyny powszechnie znany język logiczny to Prolog. Wyboru dużego
    >nie mam.


    Hm... Prolog czytelny?... jak odczytac takie cos

    bagof(Z,X^Y^p(X,Y,Z),Bag).

    Ja sam mialem problemy z moimi wlasnymi programami po 3 miesiacach nie
    dotykania

    Inny jesyk zawierajacy w sobie logic programming to Mozart-OZ

    Ale wracajac do pryncypiow: malo sensowne wydaje mi sie wybieranie
    jezyka ZANIM sie sformuluje problem w miare scicly i formalny sposob.
    Moze w ogole zadne "programwoani w logice" nei jest potzrebne?

    W kazdym razie, za darmo udzielam porady: uzywalem Prologa do
    aplikacji komercyjnych przez 10 lat. Napisalem cwierc miliona linii
    kodu. I gdybym mial robic podobna rzecz drugi raz, zastanowilbym sie
    dobzre czy wybrac Prolog. Po 10 latach Prolog zostal wywalony co
    wsztscy przyjeli z ulga. Co zamiast Prologu? Program w Javie
    implementujeccy to co tzreba i tylko to co tzreba

    A.L.


  • 29. Data: 2014-05-25 19:33:49
    Temat: Re: Prolog i hierarchiczna baza faktów
    Od: Sebastian Biały <h...@p...onet.pl>

    On 2014-05-25 19:25, A.L. wrote:
    > Ale wracajac do pryncypiow: malo sensowne wydaje mi sie wybieranie
    > jezyka ZANIM sie sformuluje problem w miare scicly i formalny sposob.
    > Moze w ogole zadne "programwoani w logice" nei jest potzrebne?

    Byc może. Chcę to sprawdzić doświadczalnie. Mam część zapytań w postaci
    kodu w C++ i działa. Nie podoba mi się jednak, język silnie typowany nie
    pozwala mi się skupić na istocie problemu. Pozwolił mi jednak dowieść że
    dane jestem w stanie odzyskać zgodnie z pomyslem. Teraz rozglądam się za
    czymś do programowania logicznego bo być może uzyskam to samo prościej
    (w zapisie). Języka nie wybieram jeszcze. Na razie stukam i pukam w
    problem w celu zbadania czy można i jak można.

    > W kazdym razie, za darmo udzielam porady: uzywalem Prologa do
    > aplikacji komercyjnych przez 10 lat. Napisalem cwierc miliona linii
    > kodu. I gdybym mial robic podobna rzecz drugi raz, zastanowilbym sie
    > dobzre czy wybrac Prolog. Po 10 latach Prolog zostal wywalony co
    > wsztscy przyjeli z ulga. Co zamiast Prologu? Program w Javie
    > implementujeccy to co tzreba i tylko to co tzreba

    Jedną z opcji do rozważenia jest dokładnie takie coś. Zamiast Java -
    JavaScript, aby było łatwiej embedować. Ba, to doświadczenie mam już za
    sobą i w zasadzie dało by radę. Jednak dalej ilośc kodu emulująca zapis
    logiczny jest znaczna. W ogóle zapisywanie zapytań w językach
    imperatywnych wygląda na przekomplikowane i gubi sens.

    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.


  • 30. Data: 2014-05-25 23:30:57
    Temat: Re: Prolog i hierarchiczna baza faktów
    Od: g...@g...com

    W dniu sobota, 24 maja 2014 20:02:04 UTC+2 użytkownik A. L. napisał:
    > On Sat, 24 May 2014 10:44:44 -0700 (PDT), g...@g...com
    > wrote:
    >
    > >Nie chce z Panem dyskutowac, bo do tej pory wszelkie dyskusje z Panem
    > >nie mialy dla mnie zadnej wartosci,
    >
    > I nawzajem.

    W takim razie moze na przyszlosc da Pan sobie spokoj z takimi
    personalnymi wycieczkami jak "widac masz tylko te jedna ksiazke
    na polce". Czemu to mialo sluzyc?

    > Scheme JEST na smietniku historii i nikt nei bedzie uczyl sie Scheme
    > zbeby pzreczytac ksizke. Konec. Kropka.

    Ma Pan tupet, zeby wypowiadac sie za wszystkich ludzi.

    > Niech Pan zmusi studentow do nauczenai sie Scheme. Bedzie Pan mial na
    > uczelni rewolucje. Wiec tak czy siak, takimi czy innymi wykretami od
    > teg osie odchodzi.

    Ja nie bede nikogo do niczego zmuszal. Albo ktos czegos chce, albo
    nie chce. W najgorszym razie moge kogos probowac zachecic i cierpliwie
    wyjasniac podstawy.

    > NIKT NEI UZYWA SCHEME DO NICZEGO.

    Nawet niedaleko Pana, na Uniwersytecie Wroclawskim, mozna spotkac
    panstwa Biernackich, ktorzy uzywaja Scheme'u w swoich badaniach:
    http://www.ii.uni.wroc.pl/~mabi/
    http://www.ii.uni.wroc.pl/~dabi/

    Scheme jest tez uzywany w licznych kursach programowania, m.in.
    "Introduction to systematic program design" na Courserze albo
    w zajeciach z programowania dla dzieci Bootstrap World:
    http://www.bootstrapworld.org/

    Ponadto producent gier komputerowych "Naughty Dog" uzywa Racketa
    do opracowywania narzedzi deweloperskich dla swoich gier
    http://www.youtube.com/watch?v=oSmqbnhHp1c

    > studenci palcacy 50 tysiecy dolcow
    > rocznei za nauke nei czhcz sie uczyc rzeczy ktore sa na rynku
    > niepotzrebne. Niestety, nikt disiaj nei studiuje dla przyjemnosci
    > studiwoania.

    Ja znam wiele osob, ktore studiuja dla przyjemnosci studiowania.
    (Choc zgodze sie, ze raczej nie na politechnice)

    > Nawet na MIT. Jeszcze raz: nie twierdze se TRESC SICP sie
    > zdezaktualizowala. Nie twierdze z FORMA KSAIZKOWA sie
    > zdezaktualizowala. Twierdze ze pzrekaz oparty na Scheme sie
    > zdezaktualizowal, co twierdzil sa mSussmau usprawiedliwajac pzrejscie
    > na Pythona.

    Jezeli poda mi Pan zrodlo, w ktorym Sussman twierdzi cos takiego,
    to przyznam Panu racje. Jednak pomimo wielu wysilkow wlozonych
    w googlowanie, nie znalazlem ani jednej przeslanki, ktora potwierdzialaby
    Panskie stwierdzenie. Tym bardziej, ze mowienie o "przejsciu na Pythona"
    jest niedorzeczne, bo po prostu mowa jest o dwoch roznych kursach,
    poruszajacych inne tresci (nawet jesli czesciowo sie pokrywajace).

    > Mozna wylozyc TRESCI SICP przy pomocy Pythona. Co wlasnie zrobilem,
    > konczac semestralny kurs Functional Programming ku zadowoleniu
    > studentow

    Ciekawi mnie, w jaki sposob wylozyl Pan temat ewaluatora
    niedeterministycznego, nie majac w Pythonie do dyspozycji "first class
    continuations". Rownie ciekawe wydaje mi sie to, jak poradzil sobie
    Pan z ewaluatorem metacyklicznym bez homoikonicznosci, i czy Panskim
    studentom naprawde podobaly sie komplikacje wynikajace z wprowadzenia
    nietrywialnej skladni.

    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.)

    A dodatkowo w dosc ordynarny sposob rzuca Pan pod moim adresem
    jakies niemerytoryczne docinki.

strony : 1 . 2 . [ 3 ] . 4 ... 6


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: