-
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
atman.pl!news.chmurka.net!.POSTED!not-for-mail
From: Andrzej Jarzabek <a...@g...com>
Newsgroups: pl.comp.programming
Subject: Re: Prolog i hierarchiczna baza faktów
Date: Wed, 28 May 2014 22:54:36 +0100
Organization: news.chmurka.net
Lines: 55
Message-ID: <lm5lu6$olj$1@srv.chmurka.net>
References: <lllk9q$lfi$1@node1.news.atman.pl> <lm31eu$5qr$1@node2.news.atman.pl>
<lm5a9l$gt7$1@node2.news.atman.pl>
NNTP-Posting-Host: 90.217.191.199
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: srv.chmurka.net 1401314056 25267 90.217.191.199 (28 May 2014 21:54:16 GMT)
X-Complaints-To: abuse-news.(at).chmurka.net
NNTP-Posting-Date: Wed, 28 May 2014 21:54:16 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101
Thunderbird/24.5.0
In-Reply-To: <lm5a9l$gt7$1@node2.news.atman.pl>
X-Authenticated-User: ajarzabek
Xref: news-archive.icm.edu.pl pl.comp.programming:205857
[ ukryj nagłówki ]On 28/05/2014 19:35, Sebastian Biały wrote:
> On 2014-05-27 23:52, Edek wrote:
>
>> Hierarchiczną? Czy punkt a jest b czy b nad a i dlaczego?
>
> Ponieważ niezygle czesto wystepują tam zalezności "coś jest wewnątrz
> czegoś". Z programowania to oznacza częste relacje parent<->child
> wyrażone z relacji między obiektami w pamięci. Myślę że to dość istotna
> obsewacja.
Rozumiem, że chodzi ci o możliwość definiowania w języku zapytań reguł
typu "jeśli a jest wewnątrz b a b jest wewnątrz c, to a jest rónież
wewnątrz c?
> Danych jest *bardzo* dużo, powiedzmy ze zajmuja solidne gigabajty w
> pamięci. Jednak relacji nie ma za wiele,
Co rozumiesz przez "relację"? Chodzi o to, że rodzajów powiązań między
danymi jest niewiele?
Generalnie nie znam się zbyt dobrze, ale z wykorzystaniem Prologa do
przeczesywania dużej ilości danych może być problem.
Ja bym rozważył możliwość zembedowania jakiegoś języka skryptowego,
który ci będzie łatwo zintegrować (np. ten twój JavaScript czy Python) i
wystawienia mu API. W dowolnym języku Turing complete możesz wtedy
napisać dowolne zapytania (nawet jeśli ich wyrażenie nie będzie zbyt
eleganckie). W miarę identyfikacji typowych wzorców zapytań możesz
zrefaktoryzować swoje zapytania w bibliotekę/framework i efektywnie
stworzyć DSL-a osadzonego w wybranym języku.
> Problem już został wstepnie rozwiązany w C++ i tam mam najbardziej
> rozbudowane "zapytania" eksperymentalne. Niestety wygląd kodu ukrywa
> intencje (więcej emulacji logiki niż sensu zapytania).
C++, zwłaszcza C++11 jest dość ekspresywny, powinieneś móc zdefiniować
infrastrukturę tak, żeby "emulację logiki" poukrywać w klasach,
funkcjach, ostatecznie makrach - przy odpowiedniej bibliotece powinieneś
mieć czytelny sens zapytania z dodatkowym bonusem w postaci type safety.
Oczywiście nadal pozostaje ci problem taki, że jak masz mieć język
zapytań w C++ to musisz w swoją aplikację wbudować kompilator (albo
kazać użytkownikowi kompilować te zapytania samodzielnie), plus gdybyś
chciał je uruchamiać po stronie serwera to zabezpieczenie aplikacji jest
znacznie trudniejsze - tak więc C++ niekoniecznie jest dobrym pomysłem
tak czy inaczej.
> Chcę zrobić
> eksperyment z językiem zorientowanym logicznie aby sprawdzić czy będzie
> bardziej czytelny. Nie jestem tez zadowolony z mojej "bazy danych" i mam
> przeczucie że zmiene jej organizacji może coś pomóc. Tu muszę szeroko
> poczytać o innych organizacjach baz danych.
Może wrzuć w relacyjną?
Następne wpisy z tego wątku
Najnowsze wątki z tej grupy
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
Najnowsze wątki
- 2024-12-25 Wrocław => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2024-12-25 Warszawa => Sales Assistant <=
- 2024-12-25 Kraków => Inżynier bezpieczeństwa aplikacji <=
- 2024-12-25 Lublin => System Architect (Java background) <=
- 2024-12-25 Szczecin => Specjalista ds. public relations <=
- 2024-12-25 Wrocław => Key Account Manager <=
- 2024-12-25 Kraków => Full Stack .Net Engineer <=
- 2024-12-25 Kraków => Programista Full Stack .Net <=
- 2024-12-25 Bieruń => Regionalny Kierownik Sprzedaży (OZE) <=
- 2024-12-25 Białystok => Inżynier Serwisu Sprzętu Medycznego <=
- 2024-12-25 Białystok => Delphi Programmer <=
- 2024-12-25 Chrzanów => Team Lead / Tribe Lead FrontEnd <=
- 2024-12-25 Kraków => Ekspert IT (obszar systemów sieciowych) <=
- 2024-12-25 Mińsk Mazowiecki => Spedytor Międzynarodowy <=
- 2024-12-24 Dzisiaj Bentlejem czyli przybieżeli sześciu Króli do Rysia na kasie